class_docstr: Update rule of the M-SVAG optimization algorithm.
  
  See: `Dissecting Adam: The Sign, Magnitude and Variance of Stochastic
  Gradients <https://arxiv.org/abs/1705.07774>`_
  
  Modified for proper weight decay.
  
  See: `Fixing Weight Decay Regularization in Adam
  <https://openreview.net/forum?id=rk6qdGgCZ>`_
  
  See :class:`~chainer.optimizers.MSVAG` for the default values
  of the hyperparameters.
  
  Args:
      parent_hyperparam (~chainer.optimizer.Hyperparameter): Hyperparameter
          that provides the default values.
      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_state(self, param):
      with chainer.using_device(param.device):
          xp = param.device.xp
          self.state["m"] = xp.zeros_like(param.data)
          self.state["v"] = xp.zeros_like(param.data)
  
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 2 for calling the MSVAGRule obj's underlying member method code with example usage: obj.init_state(param) without return types