neural_network.optimizers.adagrad ================================= .. py:module:: neural_network.optimizers.adagrad .. autoapi-nested-parse:: Adagrad Optimizer Implements Adagrad (Adaptive Gradient) for neural network training using NumPy. Adagrad adapts the learning rate for each parameter based on historical gradients. Reference: https://en.wikipedia.org/wiki/Stochastic_gradient_descent#AdaGrad Author: Adhithya Laxman Ravi Shankar Geetha Date: 2025.10.22 Attributes ---------- .. autoapisummary:: neural_network.optimizers.adagrad.optimizer Classes ------- .. autoapisummary:: neural_network.optimizers.adagrad.Adagrad Module Contents --------------- .. py:class:: Adagrad(learning_rate: float = 0.01, epsilon: float = 1e-08) Adagrad optimizer. Adapts learning rate individually for each parameter: accumulated_grad += gradient^2 param = param - (learning_rate / sqrt(accumulated_grad + epsilon)) * gradient .. py:method:: update(param_id: int, params: numpy.ndarray, gradients: numpy.ndarray) -> numpy.ndarray Update parameters using Adagrad. Args: param_id (int): Unique identifier for parameter group. params (np.ndarray): Current parameters. gradients (np.ndarray): Gradients of parameters. Returns: np.ndarray: Updated parameters. >>> optimizer = Adagrad(learning_rate=0.1) >>> 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:: accumulated_grad :type: dict[int, numpy.ndarray] .. py:attribute:: epsilon :value: 1e-08 .. py:attribute:: learning_rate :value: 0.01 .. py:data:: optimizer