neural_network.optimizers.nesterov_accelerated_sgd ================================================== .. py:module:: neural_network.optimizers.nesterov_accelerated_sgd .. autoapi-nested-parse:: Nesterov Accelerated Gradient (NAG) Optimizer Implements Nesterov momentum for neural network training using NumPy. NAG looks ahead and computes gradients at the anticipated position. Reference: https://cs231n.github.io/neural-networks-3/#sgd Author: Adhithya Laxman Ravi Shankar Geetha Date: 2025.10.21 Attributes ---------- .. autoapisummary:: neural_network.optimizers.nesterov_accelerated_sgd.optimizer Classes ------- .. autoapisummary:: neural_network.optimizers.nesterov_accelerated_sgd.NesterovAcceleratedGradient Module Contents --------------- .. py:class:: NesterovAcceleratedGradient(learning_rate: float = 0.01, momentum: float = 0.9) Nesterov Accelerated Gradient (NAG) optimizer. Updates parameters using Nesterov momentum: velocity = momentum * velocity - learning_rate * gradient_at_lookahead param = param + velocity .. py:method:: update(param_id: int, params: numpy.ndarray, gradients: numpy.ndarray) -> numpy.ndarray Update parameters using NAG. Args: param_id (int): Unique identifier for parameter group. params (np.ndarray): Current parameters. gradients (np.ndarray): Gradients at lookahead position. Returns: np.ndarray: Updated parameters. >>> optimizer = NesterovAcceleratedGradient(learning_rate=0.1, momentum=0.9) >>> params = np.array([1.0, 2.0]) >>> grads = np.array([0.1, 0.2]) >>> updated = optimizer.update(0, params, grads) >>> updated.shape (2,) .. py:attribute:: learning_rate :value: 0.01 .. py:attribute:: momentum :value: 0.9 .. py:attribute:: velocity :type: dict[int, numpy.ndarray] .. py:data:: optimizer