Implement one update step of AdamW optimizer. Given current parameters, moments, and gradients, return updated parameters and moments using decoupled weight decay.
Step 1: Update First Moment
mt=β1mt−1+(1−β1)gtStep 2: Update Second Moment
vt=β2vt−1+(1−β2)gt2Step 3: AdamW Parameter Update
wt=wt−1−η(decay⋅wt−1)−η⋅vt+εmtWhere: w = parameters, m = first moment, v = second moment, g = gradients, \u03b7 = learning rate, decay = weight decay
Input: w=[1.0, -2.0], m=[0, 0], v=[0, 0], grad=[0.3, -0.7], lr=0.01, weight_decay=0.1
Output: ([0.967, -1.966], [0.03, -0.07], [0.00009, 0.00049])
Input: w=[1.0, 2.0], m=[0.1, 0.2], v=[0.01, 0.04], grad=[0, 0], lr=0.01, weight_decay=0.1
Output: ([0.99, 1.989], [0.09, 0.18], [0.00999, 0.03996])
Convert inputs to NumPy arrays first. Update moments using exponential moving averages.
The parameter update has two parts: weight decay term and adaptive gradient term. Apply both simultaneously.
(new_w, new_m, new_v) with same shapes as inputsSign in to take notes on this problem
Accepts: array
Accepts: array
Accepts: array
Accepts: array
Accepts: number
Accepts: number
Accepts: number
Accepts: number
Accepts: number
Implement one update step of AdamW optimizer. Given current parameters, moments, and gradients, return updated parameters and moments using decoupled weight decay.
Step 1: Update First Moment
mt=β1mt−1+(1−β1)gtStep 2: Update Second Moment
vt=β2vt−1+(1−β2)gt2Step 3: AdamW Parameter Update
wt=wt−1−η(decay⋅wt−1)−η⋅vt+εmtWhere: w = parameters, m = first moment, v = second moment, g = gradients, \u03b7 = learning rate, decay = weight decay
Input: w=[1.0, -2.0], m=[0, 0], v=[0, 0], grad=[0.3, -0.7], lr=0.01, weight_decay=0.1
Output: ([0.967, -1.966], [0.03, -0.07], [0.00009, 0.00049])
Input: w=[1.0, 2.0], m=[0.1, 0.2], v=[0.01, 0.04], grad=[0, 0], lr=0.01, weight_decay=0.1
Output: ([0.99, 1.989], [0.09, 0.18], [0.00999, 0.03996])
Convert inputs to NumPy arrays first. Update moments using exponential moving averages.
The parameter update has two parts: weight decay term and adaptive gradient term. Apply both simultaneously.
(new_w, new_m, new_v) with same shapes as inputsSign in to take notes on this problem
Accepts: array
Accepts: array
Accepts: array
Accepts: array
Accepts: number
Accepts: number
Accepts: number
Accepts: number
Accepts: number