|
|
Line 90: |
Line 90: |
|
| |
|
| <math>G_t = \begin{bmatrix} 0.3&-0.2&0.4\\ -0.5&0.6&-0.1\\0.2&-0.4 &0.3 \end{bmatrix}</math> | | <math>G_t = \begin{bmatrix} 0.3&-0.2&0.4\\ -0.5&0.6&-0.1\\0.2&-0.4 &0.3 \end{bmatrix}</math> |
|
| |
|
| |
|
| |
|
| '''<big>Hyperparameters setup</big>''' | | '''<big>Hyperparameters setup</big>''' |
Line 104: |
Line 102: |
|
| |
|
| <math>\hat{\beta}_{2t} = 1 - t^{-0.8}</math> (Second moment decay) | | <math>\hat{\beta}_{2t} = 1 - t^{-0.8}</math> (Second moment decay) |
|
| |
|
| |
|
| |
|
| '''<big>Step 1: Learning Rate Scaling</big>''' | | '''<big>Step 1: Learning Rate Scaling</big>''' |
Line 136: |
Line 132: |
|
| |
|
| <math>\alpha_1 = max(0.001,0.806)\cdot 0.01=0.00806</math> | | <math>\alpha_1 = max(0.001,0.806)\cdot 0.01=0.00806</math> |
|
| |
|
| |
|
| |
|
| '''<big>Step 2: Compute <math>G^{2}_t</math> (Element-wise Square of Gradient)</big>''' | | '''<big>Step 2: Compute <math>G^{2}_t</math> (Element-wise Square of Gradient)</big>''' |
|
| |
|
| Square the gradient value
| | Compute the squared value of each element in the gradient matrix '''<math>G_t</math>'''. |
|
| |
|
| <math>G^{2}_t = \begin{bmatrix} 0.3^2&(-0.2)^2&0.4^2\\ (-0.5)^2&0.6^2&(-0.1)^2\\0.2^2&(-0.4)^2 &0.3^2 \end{bmatrix}</math> | | <math>G^{2}_t = \begin{bmatrix} 0.3^2&(-0.2)^2&0.4^2\\ (-0.5)^2&0.6^2&(-0.1)^2\\0.2^2&(-0.4)^2 &0.3^2 \end{bmatrix}</math> |
Line 153: |
Line 147: |
| '''<big>Step 3: Find the moment estimate</big>''' | | '''<big>Step 3: Find the moment estimate</big>''' |
|
| |
|
| | | Compute the exponential moving average of squared gradients to capture the variance or scale of gradients. |
|
| |
|
| '''Step 3.1: Compute row moments (<math>R_t</math>)''' | | '''Step 3.1: Compute row moments (<math>R_t</math>)''' |
Line 163: |
Line 157: |
| <math>R_t = \hat{\beta_{2t}} \cdot R_{t-1} + (1-\hat{\beta})\cdot (\tfrac{1}{m}\textstyle \sum_{j=1}^m \displaystyle G^{2}_t[i,j]+\epsilon_1) </math> | | <math>R_t = \hat{\beta_{2t}} \cdot R_{t-1} + (1-\hat{\beta})\cdot (\tfrac{1}{m}\textstyle \sum_{j=1}^m \displaystyle G^{2}_t[i,j]+\epsilon_1) </math> |
|
| |
|
| Since <math>\hat{\beta}_{2t} = 1 - t^{-0.8}</math>, for first iteration: <math>\hat{\beta}_{21} = 0</math>. And because <math>\epsilon_1 </math> is too small, we ignore it. The update of '''<math>R_1</math>''' is: | | Since <math>\hat{\beta}_{2t} = 1 - t^{-0.8}</math>, for first iteration: <math>\hat{\beta}_{21} = 0</math>. And because <math>\epsilon_1 </math> is too small, we can ignore it. The update of '''<math>R_t</math>''' is: |
|
| |
|
| <math>R_{1} = \tfrac{1}{m}\textstyle \sum_{j=1}^m \displaystyle G^{2}_t[i,j] </math> | | <math>R_{1} = \tfrac{1}{m}\textstyle \sum_{j=1}^m \displaystyle G^{2}_t[i,j] </math> |
Line 189: |
Line 183: |
| The Second Moment Estimate is calculated as the outer product of the row moments ('''<math>R_t</math>''') and column moments ('''<math>C_t</math>'''). | | The Second Moment Estimate is calculated as the outer product of the row moments ('''<math>R_t</math>''') and column moments ('''<math>C_t</math>'''). |
|
| |
|
| <math>V_t = R_t \otimes C_t</math> | | <math>\hat{V}_t = R_t \otimes C_t</math> |
| | |
| | <math>\hat{V}_1 = \begin{bmatrix} 0.0967\\0.2067\\0.0967 \end{bmatrix} \otimes \begin{bmatrix} 0.1267&0.1867&0.0867\\ \end{bmatrix} </math> |
|
| |
|
| <math>V_t = \begin{bmatrix} 0.0967\\0.2067\\0.0967 \end{bmatrix} \otimes \begin{bmatrix} 0.1267&0.1867&0.0867\\ \end{bmatrix} </math>
| |
|
| |
|
|
| |
|
| <math>V_t = \begin{bmatrix} 0.0122&0.0180&0.0084\\ 0.0262&0.0386&0.0179\\ 0.0122&0.0180&0.0084\end{bmatrix} </math> | | <math>\hat{V}_1 = \begin{bmatrix} 0.0122&0.0180&0.0084\\ 0.0262&0.0386&0.0179\\ 0.0122&0.0180&0.0084\end{bmatrix} </math> |
|
| |
|
|
| |
|
Line 228: |
Line 223: |
|
| |
|
|
| |
|
| Calculate RMS of '''<math>U_t </math>'''
| | Compute RMS of '''<math>U_t </math>''' |
|
| |
|
| '''<small><math>RMS(U_t) = \sqrt{\tfrac{1}{9} \sum_{i=1}^9 U_t[i]^2} \approx 3.303 </math></small>''' | | '''<small><math>RMS(U_t) = \sqrt{\tfrac{1}{9} \sum_{i=1}^9 U_t[i]^2} \approx 3.303 </math></small>''' |
Line 241: |
Line 236: |
|
| |
|
| '''<big>Step 4: Weight Update (</big>'''<math>X_1 </math>'''<big>)</big>''' | | '''<big>Step 4: Weight Update (</big>'''<math>X_1 </math>'''<big>)</big>''' |
| | |
| | |
| | <math>X_1 = X_0 - \alpha \cdot \hat{U_t}</math> |
| | |
| | The result for first iteration |
| | |
| | <math>X_1 = \begin{bmatrix} 0.7 &-0.5& 0.9\\ -1.1 & 0.8& -1.6\\1.2&-0.7& 0.4 \end{bmatrix} - 0.00806 \cdot \begin{bmatrix} 0.965&-0.53&1.556 \\-1.1&1.088&-0.266\\0.664&-1.06&1.167 \end{bmatrix} </math> |
| | |
| | <math>X_1 = \begin{bmatrix} 0.692&-0.496&0.887 \\-1.091&0.791&-0.596\\ 1.195&-0.691&0.391\end{bmatrix} </math> |
| | |
|
| |
|
|
| |
|
Author: Aolei Cao (ac3237), Ziyang Li (zl986), Junjia Liang (jl4439) (ChemE 6800 Fall 2024)
Stewards: Nathan Preuss, Wei-Han Chen, Tianqi Xiao, Guoqing Hu
Introduction
Problem formulation
1. Objective
Minimize the loss function , where and is the weight vector to be optimized.
2. Parameters
- Where:
- is the running average of the squared gradient.
- is the corrected decay parameter.
- is a regularization constant.
- Where:
- is the relative step size.
- is a regularization constant.
- is the root mean square, defined as:
3. Algorithms
Adafactor for Weighted Vectors
Inputs:
- Initial point:
- Relative step sizes: for to
- Second moment decay: for to , with
- Regularization constants:
- Clipping threshold:
Algorithm:
- For to :
- Compute adaptive step size:
- Compute gradient:
- Update second moment estimate:
- Compute normalized gradient:
- Apply clipping:
- Update parameter:
- End for
Adafactor for Weighted Matrices
Inputs:
- Initial point:
- Relative step sizes: for to
- Second moment decay: for to , with
- Regularization constants:
- Clipping threshold:
Algorithm:
- For to :
- Compute adaptive step size:
- Compute gradient:
- Update row-wise second moment:
- Update column-wise second moment:
- Update overall second moment estimate:
- Compute normalized gradient:
- Apply clipping:
- Update parameter:
- End for
4. Proposed Hyperparameters for Adafactor
- Regularization constant 1:
- Regularization constant 2:
- Clipping threshold:
- Relative step size:
- Second moment decay:
Numerical Examples
Step-by-step instructions for determining the result of the first iteration.
Problem setup
Initial weights ():
Initial gradient ():
Gradient of the loss function with respect to X
Hyperparameters setup
(Minimum learning rate scaling factor))
(Regularization constant)
(Clipping threshold)
(Relative step size)
(Second moment decay)
Step 1: Learning Rate Scaling
Define the relative step size
Step 1.1: Root Mean Square(RMS) calculation for
Root Mean Square(RMS) calculation for
RMS formula
Substitute the initial weights
Step 1.2: Find the Learning Rate Scaling ():
Learning rate formula
Substitute the RMS
Step 2: Compute (Element-wise Square of Gradient)
Compute the squared value of each element in the gradient matrix .
Step 3: Find the moment estimate
Compute the exponential moving average of squared gradients to capture the variance or scale of gradients.
Step 3.1: Compute row moments ()
This equation computes the row-wise second moments ( ) as an exponential moving average of past moments () and the current row-wise mean of squared gradients ( ), with a balance controlled by ().
For
Since , for first iteration: . And because is too small, we can ignore it. The update of is:
Row-wise mean ():
Step 3.2: Compute column moments ()
The process is same as row moments
Column-wise mean ():
Step 3.3: Second Moment Estimate ()
The Second Moment Estimate is calculated as the outer product of the row moments () and column moments ().
Step 4: Update the vector ()
step 4.1: Find the vector value of
Formula of
Substitute and
step 4.2: Clipped Update Vector
Formula of
Compute RMS of
Since RMS()>d, scale by
Step 4: Weight Update ()
The result for first iteration
Applications
Conclusion
Reference