'Updates the given parameter using the corresponding gradient and state.
Parameters
index : int
The unique index of the parameter into the individual learning
rates and weight decays. Learning rates and weight decay
may be set via `set_lr_mult()` and `set_wd_mult()`, respectively.
weight : NDArray
The parameter to be updated.
grad : NDArray
The gradient of the objective with respect to this parameter.
state : any obj
The state returned by `create_state()`.'

def update(self, index, weight, grad, state):

    raise NotImplementedError()
