Path: blob/master/translate_cache/optimizers/amsgrad.si.json
4923 views
{1"<h1>AMSGrad</h1>\n<p>This is a <a href=\"https://pytorch.org\">PyTorch</a> implementation of the paper <a href=\"https://arxiv.org/abs/1904.09237\">On the Convergence of Adam and Beyond</a>.</p>\n<p>We implement this as an extension to our <a href=\"adam.html\">Adam optimizer implementation</a>. The implementation it self is really small since it's very similar to Adam.</p>\n<p>We also have an implementation of the synthetic example described in the paper where Adam fails to converge.</p>\n": "<h1>AMSGrad</h1>\n<p>\u0db8\u0dd9\u0dba\u0d85 <a href=\"https://pytorch.org\">PyTorch</a> \u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 <a href=\"https://arxiv.org/abs/1904.09237\">\u0d86\u0daf\u0db8\u0dca \u0dc3\u0dc4 \u0d89\u0db1\u0dca \u0d94\u0db6\u0dca\u0db6\u0da7 \u0d85\u0db7\u0dd2\u0dc3\u0dcf\u0dbb\u0dd3 \u0dc0\u0dd3\u0db8</a> . </p>\n<p>\u0d85\u0db4\u0d9c\u0dda <a href=\"adam.html\">\u0d86\u0daf\u0db8\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0daf\u0dd2\u0d9c\u0dd4\u0dc0\u0d9a\u0dca \u0dbd\u0dd9\u0dc3 \u0d85\u0db4\u0dd2 \u0db8\u0dd9\u0dba \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a</a>\u0d9a\u0dbb\u0db8\u0dd4. \u0d91\u0dba \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d86\u0daf\u0db8\u0dca\u0da7 \u0db6\u0dd9\u0dc4\u0dd9\u0dc0\u0dd2\u0db1\u0dca \u0dc3\u0db8\u0dcf\u0db1 \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0d91\u0dba \u0dc3\u0dca\u0dc0\u0dba\u0d82\u0d9a\u0dca\u0dbb\u0dd3\u0dba\u0dc0 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d87\u0dad\u0dca\u0dad\u0dd9\u0db1\u0dca\u0db8 \u0d9a\u0dd4\u0da9\u0dcf \u0dc0\u0dda. </p>\n<p>\u0d86\u0daf\u0db8\u0dca\u0d85\u0db7\u0dd2\u0dc3\u0dcf\u0dbb\u0dd3 \u0dc0\u0dd3\u0db8\u0da7 \u0d85\u0db4\u0ddc\u0dc4\u0ddc\u0dc3\u0dad\u0dca \u0dc0\u0db1 \u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0dc0\u0dbd \u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb \u0d9a\u0dbb \u0d87\u0dad\u0dd2 \u0d9a\u0dd8\u0dad\u0dd2\u0db8 \u0d8b\u0daf\u0dcf\u0dc4\u0dbb\u0dab\u0dba \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0d9a\u0dca \u0daf \u0d85\u0db4 \u0dc3\u0dad\u0dd4\u0dc0 \u0d87\u0dad. </p>\n",2"<h2>AMSGrad Optimizer</h2>\n<p>This class extends from Adam optimizer defined in <a href=\"adam.html\"><span translate=no>_^_0_^_</span></a>. Adam optimizer is extending the class <span translate=no>_^_1_^_</span> defined in <a href=\"index.html\"><span translate=no>_^_2_^_</span></a>.</p>\n": "<h2>AMSGrad\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba</h2>\n<p>\u0db8\u0dd9\u0db8\u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba \u0d85\u0dbb\u0dca\u0dae \u0daf\u0d9a\u0dca\u0dc0\u0dcf \u0d87\u0dad\u0dd2 \u0d86\u0daf\u0db8\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba\u0dd9\u0db1\u0dca \u0dc0\u0dd2\u0dc4\u0dd2\u0daf\u0dda <a href=\"adam.html\"><span translate=no>_^_0_^_</span></a>. \u0d86\u0daf\u0db8\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba <span translate=no>_^_1_^_</span> \u0d85\u0dbb\u0dca\u0dae \u0daf\u0d9a\u0dca\u0dc0\u0dcf \u0d87\u0dad\u0dd2 \u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba \u0daf\u0dd3\u0dbb\u0dca ing <a href=\"index.html\"><span translate=no>_^_2_^_</span></a>\u0d9a\u0dbb\u0dba\u0dd2. </p>\n",3"<h2>Synthetic Experiment</h2>\n<p>This is the synthetic experiment described in the paper, that shows a scenario where <em>Adam</em> fails.</p>\n<p>The paper (and Adam) formulates the problem of optimizing as minimizing the expected value of a function, <span translate=no>_^_0_^_</span> with respect to the parameters <span translate=no>_^_1_^_</span>. In the stochastic training setting we do not get hold of the function <span translate=no>_^_2_^_</span> it self; that is, when you are optimizing a NN <span translate=no>_^_3_^_</span> would be the function on entire batch of data. What we actually evaluate is a mini-batch so the actual function is realization of the stochastic <span translate=no>_^_4_^_</span>. This is why we are talking about an expected value. So let the function realizations be <span translate=no>_^_5_^_</span> for each time step of training.</p>\n<p>We measure the performance of the optimizer as the regret, <span translate=no>_^_6_^_</span> where <span translate=no>_^_7_^_</span> is the parameters at time step <span translate=no>_^_8_^_</span>, and <span translate=no>_^_9_^_</span> is the optimal parameters that minimize <span translate=no>_^_10_^_</span>.</p>\n<p>Now lets define the synthetic problem,</p>\n<span translate=no>_^_11_^_</span><p>where <span translate=no>_^_12_^_</span>. The optimal solution is <span translate=no>_^_13_^_</span>.</p>\n<p>This code will try running <em>Adam</em> and <em>AMSGrad</em> on this problem.</p>\n": "<h2>\u0d9a\u0dd8\u0dad\u0dd2\u0db8\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf \u0db6\u0dd0\u0dbd\u0dd3\u0db8</h2>\n<p>\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2\u0dc0\u0dbd \u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb \u0d9a\u0dbb \u0d87\u0dad\u0dd2 \u0d9a\u0dd8\u0dad\u0dd2\u0db8 \u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf \u0db6\u0dd0\u0dbd\u0dd3\u0db8 \u0db8\u0dd9\u0dba\u0dba\u0dd2, \u0d91\u0dba <em>\u0d86\u0daf\u0db8\u0dca</em> \u0d85\u0dc3\u0db8\u0dad\u0dca \u0dc0\u0db1 \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0dba\u0dd2. </p>\n<p>\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2(\u0dc3\u0dc4 \u0d86\u0daf\u0db8\u0dca) \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd3\u0db1\u0dca \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dba\u0dd9\u0db1\u0dca \u0dc1\u0dca\u0dbb\u0dd2\u0dad\u0dba\u0d9a \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d85\u0d9c\u0dba \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dbd\u0dd9\u0dc3 \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d9c\u0dd0\u0da7\u0dc5\u0dd4\u0dc0 \u0dc3\u0d9a\u0dc3\u0dca \u0d9a\u0dbb\u0dba\u0dd2 <span translate=no>_^_1_^_</span>. <span translate=no>_^_0_^_</span> \u0dc3\u0dca\u0dae\u0dd2\u0dad\u0dd2\u0d9a \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0dc3\u0dd0\u0d9a\u0dc3\u0dd4\u0db8 \u0dad\u0dd4\u0dc5 \u0d85\u0db4\u0da7 <span translate=no>_^_2_^_</span> \u0d91\u0dba \u0dc3\u0dca\u0dc0\u0dba\u0d82\u0d9a\u0dca\u0dbb\u0dd3\u0dba\u0dc0 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0db1\u0ddc\u0dc0\u0dda; \u0d91\u0db1\u0db8\u0dca, \u0d94\u0db6 \u0d91\u0db1\u0dca\u0d91\u0db1\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1 \u0dc0\u0dd2\u0da7 \u0dc3\u0db8\u0dc3\u0dca\u0dad \u0daf\u0dad\u0dca\u0dad \u0d9a\u0dcf\u0dab\u0dca\u0da9\u0dba\u0dda\u0db8 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0d9a\u0dcf\u0dbb\u0dd2\u0dad\u0dca\u0dc0\u0dba <span translate=no>_^_3_^_</span> \u0dc0\u0db1\u0dd4 \u0d87\u0dad. \u0d85\u0db4 \u0d87\u0dad\u0dca\u0dad \u0dc0\u0dc1\u0dba\u0dd9\u0db1\u0dca\u0db8 \u0d87\u0d9c\u0dba\u0dd3\u0db8\u0da7 \u0dbd\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0d9a\u0dd4\u0da9\u0dcf \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0d9a\u0dd2, \u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0dc3\u0dd0\u0db6\u0dd1 \u0d9a\u0dcf\u0dbb\u0dca\u0dba\u0dba \u0dc0\u0db1\u0dca\u0db1\u0dda \u0dc3\u0dca\u0da7\u0ddd\u0da0\u0dcf\u0dc3\u0dca\u0da7\u0dd2\u0d9a\u0dca \u0dc3\u0dcf\u0d9a\u0dca\u0dc2\u0dcf\u0dad\u0dca \u0d9a\u0dbb <span translate=no>_^_4_^_</span>\u0d9c\u0dd0\u0db1\u0dd3\u0db8\u0dba\u0dd2. \u0db8\u0dda \u0db1\u0dd2\u0dc3\u0dcf \u0d85\u0db4\u0dd2 \u0d9a\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0dc0\u0da7\u0dd2\u0db1\u0dcf\u0d9a\u0db8\u0d9a\u0dca \u0d9c\u0dd0\u0db1 \u0dba. \u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0dd3\u0db8\u0dda \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dcf\u0dbd \u0db4\u0dd2\u0dba\u0dc0\u0dbb <span translate=no>_^_5_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0dca\u0dbb\u0dd2\u0dad\u0dba \u0d85\u0dc0\u0db6\u0ddd\u0db0 \u0d9a\u0dbb \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0d89\u0da9 \u0daf\u0dd9\u0db1\u0dca\u0db1. </p>\n<p>\u0d85\u0db4\u0dd2\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba\u0dda \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0d9a\u0dcf\u0dbb\u0dd2\u0dad\u0dca\u0dc0\u0dba \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0dbd\u0dd9\u0dc3 \u0db8\u0db1\u0dd2\u0db1\u0dca\u0db1\u0dd9\u0db8\u0dd4, \u0d9a\u0dcf\u0dbd \u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0dda\u0daf\u0dd3 \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd3\u0db1\u0dca <span translate=no>_^_6_^_</span> <span translate=no>_^_7_^_</span> \u0d9a\u0ddc\u0dad\u0dd0\u0db1\u0daf <span translate=no>_^_8_^_</span>, \u0dc3\u0dc4 \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad <span translate=no>_^_9_^_</span> \u0dc0\u0dda \u0d85\u0dc0\u0db8 \u0d9a\u0dbb\u0db1 \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd3\u0db1\u0dca <span translate=no>_^_10_^_</span>. </p>\n<p>\u0daf\u0dd0\u0db1\u0dca\u0d9a\u0dd8\u0dad\u0dd2\u0db8 \u0d9c\u0dd0\u0da7\u0dc5\u0dd4\u0dc0 \u0db1\u0dd2\u0dbb\u0dca\u0dc0\u0da0\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d89\u0da9 \u0daf\u0dd9\u0dba\u0dd2,</p>\n<span translate=no>_^_11_^_</span><p>\u0d9a\u0ddc\u0dc4\u0dd9\u0daf <span translate=no>_^_12_^_</span>. \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad \u0dc0\u0dd2\u0dc3\u0db3\u0dd4\u0db8 \u0dc0\u0dda <span translate=no>_^_13_^_</span>. </p>\n<p>\u0db8\u0dd9\u0db8\u0d9a\u0dda\u0dad\u0dba \u0db8\u0dd9\u0db8 \u0d9c\u0dd0\u0da7\u0dbd\u0dd4\u0dc0 \u0db8\u0dad <em>\u0d86\u0daf\u0db8\u0dca</em> \u0dc3\u0dc4 <em>AMSGrad</em> \u0db0\u0dcf\u0dc0\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d8b\u0dad\u0dca\u0dc3\u0dcf\u0dc4 \u0d9a\u0dbb\u0db1\u0dd4 \u0d87\u0dad. </p>\n",4"<h3><span translate=no>_^_0_^_</span></h3>\n": "<h3><span translate=no>_^_0_^_</span></h3>\n",5"<h3>Calculate <span translate=no>_^_0_^_</span> and and <span translate=no>_^_1_^_</span> or <span translate=no>_^_2_^_</span></h3>\n<ul><li><span translate=no>_^_3_^_</span> is the optimizer state of the parameter (tensor) </li>\n<li><span translate=no>_^_4_^_</span> stores optimizer attributes of the parameter group </li>\n<li><span translate=no>_^_5_^_</span> is the current gradient tensor <span translate=no>_^_6_^_</span> for the parameter <span translate=no>_^_7_^_</span></li></ul>\n": "<h3>\u0d9c\u0dab\u0db1\u0dba\u0d9a\u0dbb\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> \u0dc3\u0dc4 <span translate=no>_^_1_^_</span> \u0dc4\u0ddd <span translate=no>_^_2_^_</span></h3>\n<ul><li><span translate=no>_^_3_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba \u0dbb\u0dcf\u0da2\u0dca\u0dba \u0dc0\u0dda (tensor) </li>\n<li><span translate=no>_^_4_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2 \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dda \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c \u0d9c\u0db6\u0da9\u0dcf \u0d9a\u0dbb\u0dba\u0dd2 </li>\n</ul><li><span translate=no>_^_5_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba <span translate=no>_^_6_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca \u0db5\u0dbd\u0dba \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a tensor \u0dc0\u0dda <span translate=no>_^_7_^_</span></li>\n",6"<h3>Initialize a parameter state</h3>\n<ul><li><span translate=no>_^_0_^_</span> is the optimizer state of the parameter (tensor) </li>\n<li><span translate=no>_^_1_^_</span> stores optimizer attributes of the parameter group </li>\n<li><span translate=no>_^_2_^_</span> is the parameter tensor <span translate=no>_^_3_^_</span></li></ul>\n": "<h3>\u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dad\u0dad\u0dca\u0dc0\u0dba\u0d9a\u0dca \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1</h3>\n<ul><li><span translate=no>_^_0_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba \u0dbb\u0dcf\u0da2\u0dca\u0dba \u0dc0\u0dda (tensor) </li>\n<li><span translate=no>_^_1_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2 \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dda \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c \u0d9c\u0db6\u0da9\u0dcf \u0d9a\u0dbb\u0dba\u0dd2 </li>\n</ul><li><span translate=no>_^_2_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba tensor \u0dc0\u0dda <span translate=no>_^_3_^_</span></li>\n",7"<h3>Initialize the optimizer</h3>\n<ul><li><span translate=no>_^_0_^_</span> is the list of parameters </li>\n<li><span translate=no>_^_1_^_</span> is the learning rate <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> is a tuple of (<span translate=no>_^_4_^_</span>, <span translate=no>_^_5_^_</span>) </li>\n<li><span translate=no>_^_6_^_</span> is <span translate=no>_^_7_^_</span> or <span translate=no>_^_8_^_</span> based on <span translate=no>_^_9_^_</span> </li>\n<li><span translate=no>_^_10_^_</span> is an instance of class <span translate=no>_^_11_^_</span> defined in <a href=\"index.html\"><span translate=no>_^_12_^_</span></a> </li>\n<li>'optimized_update' is a flag whether to optimize the bias correction of the second moment by doing it after adding <span translate=no>_^_13_^_</span> </li>\n<li><span translate=no>_^_14_^_</span> is a flag indicating whether to use AMSGrad or fallback to plain Adam </li>\n<li><span translate=no>_^_15_^_</span> is a dictionary of default for group values. This is useful when you want to extend the class <span translate=no>_^_16_^_</span>.</li></ul>\n": "<h3>\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba\u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1</h3>\n<ul><li><span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd3\u0db1\u0dca \u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0\u0dba\u0dd2 </li>\n<li><span translate=no>_^_1_^_</span> \u0dba\u0db1\u0dd4 \u0d89\u0d9c\u0dd9\u0db1\u0dd4\u0db8\u0dca \u0d85\u0db1\u0dd4\u0db4\u0dcf\u0dad\u0dba\u0dba\u0dd2 <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> (<span translate=no>_^_4_^_</span>, <span translate=no>_^_5_^_</span>) \u0d9a tuple \u0dc0\u0dda </li>\n<li><span translate=no>_^_6_^_</span> <span translate=no>_^_7_^_</span> \u0dc4\u0ddd \u0db8\u0dad <span translate=no>_^_8_^_</span> \u0db4\u0daf\u0db1\u0db8\u0dca \u0dc0\u0dda <span translate=no>_^_9_^_</span> </li>\n<li><span translate=no>_^_10_^_</span> <span translate=no>_^_11_^_</span> \u0d85\u0dbb\u0dca\u0dae \u0daf\u0d9a\u0dca\u0dc0\u0dcf \u0d87\u0dad\u0dd2 \u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba\u0dda \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dd2 <a href=\"index.html\"><span translate=no>_^_12_^_</span></a> </li>\n<li>'optimized_update'\u0dba\u0db1\u0dd4 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca \u0db4\u0dc3\u0dd4 \u0d91\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca \u0daf\u0dd9\u0dc0\u0db1 \u0db8\u0ddc\u0dc4\u0ddc\u0dad\u0dda \u0db4\u0d9a\u0dca\u0dc2\u0d9c\u0dca\u0dbb\u0dcf\u0dc4\u0dd3\u0dc0 \u0db1\u0dd2\u0dc0\u0dd0\u0dbb\u0daf\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0daf \u0dba\u0db1\u0dca\u0db1 \u0db0\u0da2\u0dba\u0d9a\u0dd2 <span translate=no>_^_13_^_</span> </li>\n<li><span translate=no>_^_14_^_</span> \u0d86\u0daf\u0db8\u0dca \u0dc3\u0dbb\u0dbd \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf AMSGrad \u0dc4\u0ddd \u0dc0\u0dd0\u0da7\u0dd3\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0daf \u0dba\u0db1\u0dca\u0db1 \u0daf\u0dd0\u0d9a\u0dca\u0dc0\u0dd9\u0db1 \u0db0\u0da2\u0dba\u0d9a\u0dd2 </li>\n<li><span translate=no>_^_15_^_</span> \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca \u0d85\u0d9c\u0dba\u0db1\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2 \u0dc1\u0db6\u0dca\u0daf \u0d9a\u0ddd\u0dc2\u0dba\u0d9a\u0dd2. \u0d94\u0db6\u0da7 \u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba \u0daf\u0dd3\u0dbb\u0dca extend \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d85\u0dc0\u0dc1\u0dca\u0dba \u0dc0\u0dd2\u0da7 \u0db8\u0dd9\u0dba \u0db4\u0dca\u0dbb\u0dba\u0ddd\u0da2\u0db1\u0dc0\u0dad\u0dca <span translate=no>_^_16_^_</span>\u0dc0\u0dda. </li></ul>\n",8"<p><span translate=no>_^_0_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span> </p>\n",9"<p>Calculate <span translate=no>_^_0_^_</span>.</p>\n<p>\ud83e\udd14 I feel you should be taking / maintaining the max of the bias corrected second exponential average of squared gradient. But this is how it's <a href=\"https://github.com/pytorch/pytorch/blob/19f4c5110e8bcad5e7e75375194262fca0a6293a/torch/optim/functional.py#L90\">implemented in PyTorch also</a>. I guess it doesn't really matter since bias correction only increases the value and it only makes an actual difference during the early few steps of the training. </p>\n": "<p>\u0d9c\u0dab\u0db1\u0dba\u0d9a\u0dbb\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span>. </p>\n<p>\ud83e\udd14\u0db8\u0db8 \u0d94\u0db6 \u0dc0\u0dbb\u0dca\u0d9c \u0db5\u0dbd\u0dba \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a \u0daf\u0dd9\u0dc0\u0db1 \u0d9d\u0dcf\u0dad\u0dd3\u0dba \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0db1\u0dd2\u0dc0\u0dd0\u0dbb\u0daf\u0dd2 \u0db1\u0dd0\u0db9\u0dd4\u0dbb\u0dd4\u0dc0 \u0d8b\u0db4\u0dbb\u0dd2\u0db8 \u0d9c\u0dd0\u0db1\u0dd3\u0db8/\u0db4\u0dc0\u0dad\u0dca\u0dc0\u0dcf \u0d9c\u0dad \u0dba\u0dd4\u0dad\u0dd4 \u0daf\u0dd0\u0db1\u0dd9\u0db1\u0dc0\u0dcf. \u0db1\u0db8\u0dd4\u0dad\u0dca \u0d91\u0dba <a href=\"https://github.com/pytorch/pytorch/blob/19f4c5110e8bcad5e7e75375194262fca0a6293a/torch/optim/functional.py#L90\">PyTorch \u0dc4\u0dd2 \u0daf \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0dc0\u0db1\u0dca\u0db1\u0dda \u0d91\u0dbd\u0dd9\u0dc3\u0dd2\u0db1\u0dd2</a>. \u0db4\u0d9a\u0dca\u0dc2\u0d9c\u0dca\u0dbb\u0dcf\u0dc4\u0dd3 \u0db1\u0dd2\u0dc0\u0dd0\u0dbb\u0daf\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db4\u0db8\u0dab\u0d9a\u0dca \u0dc0\u0da7\u0dd2\u0db1\u0dcf\u0d9a\u0db8 \u0dc0\u0dd0\u0da9\u0dd2 \u0d9a\u0dbb\u0db1 \u0d85\u0dad\u0dbb \u0d91\u0dba \u0dc3\u0dd0\u0db6\u0dd1 \u0dc0\u0dd9\u0db1\u0dc3\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0dda \u0db8\u0dd4\u0dbd\u0dca \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba \u0dad\u0dd4\u0dc5 \u0db4\u0db8\u0dab\u0d9a\u0dca \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0d91\u0dba \u0dc3\u0dd0\u0db6\u0dc0\u0dd2\u0db1\u0dca\u0db8 \u0dc0\u0dd0\u0daf\u0d9c\u0dad\u0dca \u0db1\u0ddc\u0dc0\u0db1 \u0db6\u0dc0 \u0db8\u0db8 \u0dc3\u0dd2\u0dad\u0db8\u0dd2. </p>\n",10"<p>Calculate gradients </p>\n": "<p>\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",11"<p>Call <span translate=no>_^_0_^_</span> of Adam optimizer which we are extending </p>\n": "<p>\u0d85\u0db4\u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dcf\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1 \u0d86\u0daf\u0db8\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba\u0dda <span translate=no>_^_0_^_</span> \u0d87\u0db8\u0dad\u0dd4\u0db8 </p>\n",12"<p>Clear gradients </p>\n": "<p>\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0db4\u0dd0\u0dc4\u0dd0\u0daf\u0dd2\u0dbd\u0dd2 \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",13"<p>Create experiment to record results </p>\n": "<p>\u0db4\u0dca\u0dbb\u0dad\u0dd2\u0db5\u0dbd\u0dc0\u0dcf\u0dbb\u0dca\u0dad\u0dcf \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf \u0db1\u0dd2\u0dbb\u0dca\u0db8\u0dcf\u0dab\u0dba </p>\n",14"<p>Define <span translate=no>_^_0_^_</span> parameter </p>\n": "<p><span translate=no>_^_0_^_</span> \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba \u0db1\u0dd2\u0dbb\u0dca\u0dc0\u0da0\u0db1\u0dba </p>\n",15"<p>Fall back to <em>Adam</em> if the parameter group is not using <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0db1\u0ddc\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db1\u0db8\u0dca <em>\u0d86\u0daf\u0db8\u0dca</em> \u0dc0\u0dd9\u0dad \u0d86\u0db4\u0dc3\u0dd4 \u0dba\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> </p>\n",16"<p>Get <span translate=no>_^_0_^_</span> and <span translate=no>_^_1_^_</span> from <em>Adam</em> </p>\n": "<p><span translate=no>_^_1_^_</span> <em>\u0d86\u0daf\u0db8\u0dca\u0d9c\u0dd9\u0db1\u0dca <span translate=no>_^_0_^_</span> </em> \u0dc3\u0dc4 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1 </p>\n",17"<p>Get <span translate=no>_^_0_^_</span>.</p>\n<p>\ud83d\uddd2 The paper uses the notation <span translate=no>_^_1_^_</span> for this, which we don't use that here because it confuses with the Adam's usage of the same notation for bias corrected exponential moving average. </p>\n": "<p>\u0dbd\u0db6\u0dcf\u0d9c\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span>. </p>\n<p>\ud83d\uddd2\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0db8\u0dda <span translate=no>_^_1_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0d82\u0d9a\u0db1\u0dba \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0dba\u0dd2, \u0d91\u0dba \u0db1\u0dd0\u0db9\u0dd4\u0dbb\u0dd4\u0dc0 \u0db1\u0dd2\u0dc0\u0dd0\u0dbb\u0daf\u0dd2 \u0d9d\u0dcf\u0dad\u0dd3\u0dba \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0dc0\u0db1 \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0d91\u0db8 \u0d85\u0d82\u0d9a\u0db1\u0dba \u0d86\u0daf\u0db8\u0dca\u0d9c\u0dda \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dba \u0dc3\u0db8\u0d9c \u0db4\u0da7\u0dbd\u0dc0\u0dcf \u0db1\u0dd2\u0dc3\u0dcf \u0d85\u0db4\u0dd2 \u0db8\u0dd9\u0dad\u0db1 \u0db6\u0dc0 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db1\u0dd0\u0dc4\u0dd0. </p>\n",18"<p>If <span translate=no>_^_0_^_</span> flag is <span translate=no>_^_1_^_</span> for this parameter group, we maintain the maximum of exponential moving average of squared gradient </p>\n": "<p><span translate=no>_^_0_^_</span> \u0db0\u0da2\u0dba \u0db8\u0dd9\u0db8 \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2\u0dba \u0db4\u0dd2\u0dbb\u0dd2\u0dc3\u0d9a\u0dca <span translate=no>_^_1_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0db1\u0db8\u0dca, \u0d85\u0db4\u0dd2 \u0dc0\u0dbb\u0dca\u0d9c \u0db5\u0dbd\u0dba \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a \u0d9a \u0d9d\u0dcf\u0dad\u0dd3\u0dba \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0dc0\u0db1 \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0d8b\u0db4\u0dbb\u0dd2\u0db8 \u0db4\u0dc0\u0dad\u0dca\u0dc0\u0dcf </p>\n",19"<p>If this parameter group is using <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0db8\u0dd9\u0db8\u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd2 \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db1\u0db8\u0dca <span translate=no>_^_0_^_</span> </p>\n",20"<p>Initialize the relevant optimizer </p>\n": "<p>\u0d85\u0daf\u0dcf\u0dc5\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",21"<p>Make sure <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0dc0\u0d9c\u0db6\u0dbd\u0dcf \u0d9c\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> </p>\n",22"<p>Optimal, <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad, <span translate=no>_^_0_^_</span> </p>\n",23"<p>Optimize </p>\n": "<p>\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",24"<p>Run for <span translate=no>_^_0_^_</span> steps </p>\n": "<p><span translate=no>_^_0_^_</span> \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0dc3\u0db3\u0dc4\u0dcf \u0db0\u0dcf\u0dc0\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",25"<p>Run the synthetic experiment is <em>AMSGrad</em> <a href=\"https://app.labml.ai/run/uuid=bc06405c384411eb8b82acde48001122\">Here are the results</a>. You can see that AMSGrad converges to true optimal <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0d9a\u0dd8\u0dad\u0dd2\u0db8\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf \u0db6\u0dd0\u0dbd\u0dd3\u0db8 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dbb\u0db1\u0dca\u0db1 <em>AMSGrad</em> <a href=\"https://app.labml.ai/run/uuid=bc06405c384411eb8b82acde48001122\">\u0db8\u0dd9\u0db1\u0dca\u0db1 \u0db4\u0dca\u0dbb\u0dad\u0dd2. \u0dbd</a>. AMSGrad \u0dc3\u0dd0\u0db6\u0dd1 \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad \u0db6\u0dc0\u0da7 \u0d85\u0db7\u0dd2\u0dc3\u0dcf\u0dbb\u0dd3 \u0dc0\u0db1 \u0db6\u0dc0 \u0d94\u0db6\u0da7 \u0daf\u0dd0\u0d9a \u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2\u0dba <span translate=no>_^_0_^_</span> </p>\n",26"<p>Run the synthetic experiment is <em>Adam</em>. <a href=\"https://app.labml.ai/run/61ebfdaa384411eb94d8acde48001122\">Here are the results</a>. You can see that Adam converges at <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0d9a\u0dd8\u0dad\u0dd2\u0db8\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf \u0db6\u0dd0\u0dbd\u0dd3\u0db8 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dbb\u0db1\u0dca\u0db1 <em>\u0d86\u0daf\u0db8\u0dca</em>. <a href=\"https://app.labml.ai/run/61ebfdaa384411eb94d8acde48001122\">\u0db8\u0dd9\u0db1\u0dca\u0db1 \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0db5\u0dbd</a>. \u0d86\u0daf\u0db8\u0dca \u0d85\u0db7\u0dd2\u0dc3\u0dcf\u0dbb\u0dd3 \u0dc0\u0db1 \u0db6\u0dc0 \u0d94\u0db6\u0da7 \u0db4\u0dd9\u0db1\u0dda <span translate=no>_^_0_^_</span> </p>\n",27"<p>Track results every 1,000 steps </p>\n": "<p>\u0dc3\u0dd1\u0db8\u0db4\u0dd2\u0dba\u0dc0\u0dbb 1,000 \u0d9a\u0da7 \u0dc0\u0dbb\u0d9a\u0dca \u0db4\u0dca\u0dbb\u0dad\u0dd2 results \u0dbd </p>\n",28"A simple PyTorch implementation/tutorial of AMSGrad optimizer.": "AMSGrad \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dcf\u0dbb\u0d9a\u0dba\u0dda \u0dc3\u0dbb\u0dbd PyTorch \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8/\u0db1\u0dd2\u0db6\u0db1\u0dca\u0db0\u0db1\u0dba.",29"AMSGrad Optimizer": "AMSGrad \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba"30}3132