neural_network.optimizers.adam_optimizer¶
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¶
Classes¶
Adam optimizer. |
Module Contents¶
- class neural_network.optimizers.adam_optimizer.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)
- 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,)
- beta1 = 0.9¶
- beta2 = 0.999¶
- epsilon = 1e-08¶
- learning_rate = 0.001¶
- m: dict[int, numpy.ndarray]¶
- t: dict[int, int]¶
- v: dict[int, numpy.ndarray]¶
- neural_network.optimizers.adam_optimizer.optimizer¶