neural_network.optimizers.adam_optimizer ======================================== .. py:module:: neural_network.optimizers.adam_optimizer .. autoapi-nested-parse:: Adam Optimizer Implements Adam (Adaptive Moment Estimation) for neural network training using NumPy. Adam combines momentum and adaptive learning rates using first and second moment estimates. Reference: https://arxiv.org/abs/1412.6980 Author: Adhithya Laxman Ravi Shankar Geetha Date: 2025.10.21 Attributes ---------- .. autoapisummary:: neural_network.optimizers.adam_optimizer.optimizer Classes ------- .. autoapisummary:: neural_network.optimizers.adam_optimizer.Adam Module Contents --------------- .. py:class:: Adam(learning_rate: float = 0.001, beta1: float = 0.9, beta2: float = 0.999, epsilon: float = 1e-08) Adam optimizer. Combines momentum and RMSProp: m = beta1 * m + (1 - beta1) * gradient v = beta2 * v + (1 - beta2) * gradient^2 m_hat = m / (1 - beta1^t) v_hat = v / (1 - beta2^t) param = param - learning_rate * m_hat / (sqrt(v_hat) + epsilon) .. py:method:: update(param_id: int, params: numpy.ndarray, gradients: numpy.ndarray) -> numpy.ndarray Update parameters using Adam. 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 = Adam(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:: beta1 :value: 0.9 .. py:attribute:: beta2 :value: 0.999 .. py:attribute:: epsilon :value: 1e-08 .. py:attribute:: learning_rate :value: 0.001 .. py:attribute:: m :type: dict[int, numpy.ndarray] .. py:attribute:: t :type: dict[int, int] .. py:attribute:: v :type: dict[int, numpy.ndarray] .. py:data:: optimizer