vanilla :: (VectorSpace w, Monad m) => Scalar w -> w -> w -> VanillaT (Scalar w) m w
vanilla cost grad w_t = do
  lr <- view learningRate
  return $ w_t ^-^ lr *^ grad
vanilla :: (VectorSpace w, Monad m) => Scalar w -> w -> w -> VanillaT (Scalar w) m w
vanilla cost grad w_t = do
  lr <- view learningRate
  return $ w_t ^-^ lr *^ grad
vanilla cost grad w_t = do
  lr <- view learningRate
  return $ w_t ^-^ lr *^ grad