class_docstr: Stochastic gradient descent with moment.
  
  :param math_engine: The math engine to be used for calculations.
  :type math_engine: object
  :param learning_rate: The learning rate.
  :type learning_rate: float, default=0.01
  :param l1: The L1 regularization parameter.    
  :type l1: float, default=0
  :param l2: The L2 regularization parameter.    
  :type l2: float, default=0
  :param max_gradient_norm: The upper limit for gradient norm.
      A negative value means no limit, which is also the default setting.  
  :type max_gradient_norm: float, default=-1.0
  :param moment_decay_rate: The moment decay rate. Moment is a weighted sum of previous gradients.
  :type moment_decay_rate: float, default=0.9
      
class_docstr_tok: ["Stochastic","gradient","descent","with","moment",".",":","param","math_engine",":","The","math","engine","to","be","used","for","calculations",".",":","type","math_engine",":","object",":","param","learning_rate",":","The","learning","rate",".",":","type","learning_rate",":","float",",","default=0.01",":","param","l1",":","The","L1","regularization","parameter",".",":","type","l1",":","float",",","default=0",":","param","l2",":","The","L2","regularization","parameter",".",":","type","l2",":","float",",","default=0",":","param","max_gradient_norm",":","The","upper","limit","for","gradient","norm",".","A","negative","value","means","no","limit",",","which","is","also","the","default","setting",".",":","type","max_gradient_norm",":","float",",","default=-1.0",":","param","moment_decay_rate",":","The","moment","decay","rate",".","Moment","is","a","weighted","sum","of","previous","gradients",".",":","type","moment_decay_rate",":","float",",","default=0.9"]
code: def __init__(
      self,
      math_engine,
      learning_rate=0.01,
      l1=0,
      l2=0,
      max_gradient_norm=-1.0,
      moment_decay_rate=0.9,
  ):
      if isinstance(math_engine, PythonWrapper.SimpleGradient):
          super().__init__(math_engine)
          return
  
      internal = PythonWrapper.SimpleGradient(
          math_engine._internal,
          float(learning_rate),
          float(l1),
          float(l2),
          float(max_gradient_norm),
          float(moment_decay_rate),
      )
      super().__init__(internal)
  
imports: import neoml.PythonWrapper
label_desc: Use image node_id 1 to create a new SimpleGradient object from inherited base classes: Solver with example: obj = SimpleGradient(math_engine, learning_rate, l1, l2, max_gradient_norm, moment_decay_rate)