class_docstr: M-SVAG optimizer.
  
  See: `Dissecting Adam: The Sign, Magnitude and Variance of Stochastic
  Gradients <https://arxiv.org/abs/1705.07774>`_
  
  Modified for proper weight decay (also called AdamW).
  AdamW introduces the additional parameters ``eta``
  and ``weight_decay_rate``, which can be used to properly scale the
  learning rate, and decouple the weight decay rate from ``alpha``,
  as shown in the below paper.
  
  See: `Fixing Weight Decay Regularization in Adam
  <https://openreview.net/forum?id=rk6qdGgCZ>`_
  
  Args:
      lr (float): Learning rate.
      beta (float): Exponential decay rate of the first and second order
                    moment.
      eta (float): Schedule multiplier, can be used for warm restarts.
      weight_decay_rate (float): Weight decay rate.
code: def __init__(
      self,
      lr=_default_hyperparam.lr,
      beta=_default_hyperparam.beta,
      eta=_default_hyperparam.eta,
      weight_decay_rate=_default_hyperparam.weight_decay_rate,
  ):
      super(MSVAG, self).__init__()
      self.hyperparam.lr = lr
      self.hyperparam.beta = beta
      self.hyperparam.eta = eta
      self.hyperparam.weight_decay_rate = weight_decay_rate
  
file_path: chainer/chainer/optimizers/msvag.py
imports: from __future__ import division
  import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import optimizer
  from chainer import types
label_desc: Use image node_id 1 to create a new MSVAG object from inherited base classes: optimizer with example: obj = MSVAG(lr, beta, eta, weight_decay_rate)