Loading...
Implement a single step of the Adam optimizer, widely used in deep learning.
Adam (Adaptive Moment Estimation) combines momentum and RMSprop, adapting learning rates per-parameter:
Algorithm (single step at time t):
Typical hyperparameters: α=0.001, β1=0.9, β2=0.999, ϵ=10−8
params = [1.0, 2.0] grads = [0.1, 0.2] m = [0.0, 0.0] v = [0.0, 0.0] t = 1 lr = 0.001 beta1 = 0.9 beta2 = 0.999
{'params': [0.999, 1.999], 'm': [0.01, 0.02], 'v': [0.00001, 0.00004]}Step 1: Update first moment (m) m1=0.9×0+0.1×[0.1,0.2]=[0.01,0.02]
Step 2: Update second moment (v) v1=0.999×0+0.001×[0.01,0.04]=[0.00001,0.00004]
Step 3: Bias correction m^1=1−0.91[0.01,0.02]=[0.1,0.2] v^1=1−0.9991[0.00001,0.00004]=[0.01,0.04]
Step 4: Parameter update θ1=[1,2]−0.001×[0.01,0.04]+ϵ[0.1,0.2] θ1=[1,2]−0.001×[0.1,0.2][0.1,0.2] θ1=[1,2]−0.001×[1,1]=[0.999,1.999]