Skip to content

Commit 548e9b7

Browse files
committed
Update 2.improving-deep-neural-networks-2.optimization-algorithms.md
1 parent b7ff353 commit 548e9b7

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

deep-learning/2.improving-deep-neural-networks-2.optimization-algorithms.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,6 @@ Python伪代码如下
245245
计算 _v<sub>100</sub>_ 是通过,把两个函数对应的元素,然后求和,用这个数值100号数据值乘以0.1,99号数据值乘以0.1乘以 _(0.9)<sup>2</sup>_ ,这是第二项,以此类推,所以选取的是每日温度,将其与指数衰减函数相乘,然后求和,就得到了 _v<sub>100</sub>_ 。
246246

247247

248-
<p align="center">
249-
<img src="https://raw.github.com/loveunk/deeplearning_ai_books/master/images/880dbafaccbd93a4ab0a92a9b8607956.png" />
250-
</p>
251-
252248
结果是,稍后我们详细讲解,不过所有的这些系数( _0.1、0.1 × 0.9、0.1 × (0.9)<sup>2</sup>、0.1 × (0.9)<sup>3</sup> ..._ ),相加起来为1或者逼近1,我们称之为偏差修正,下节会涉及。
253249

254250
最后也许你会问,到底需要平均多少天的温度。实际上 _(0.9)<sup>10</sup>_ 大约为0.35,这大约是 _(<sup> 1 </sup>/<sub> e </sub>)_ ,e是自然算法的基础之一。大体上说,如果有 _1 - ϵ_ ,在这个例子中, _ϵ = 0.1_ ,所以 _1 - ϵ = 0.9__(1 - ϵ)<sup>(<sup>1</sup>/<sub> ϵ </sub>)</sup>_ 约等于 _(<sup>1</sup>/<sub>e</sub>)_ ,大约是0.34,0.35,换句话说,10天后,曲线的高度下降到 _(<sup>1</sup>/<sub>3</sub>)_ ,相当于在峰值的 _(<sup>1</sup>/<sub>e</sub>)_
@@ -488,9 +484,9 @@ for i in range(1, iterations):
488484
<p align="center">
489485
<img src="https://raw.github.com/loveunk/deeplearning_ai_books/master/images/7c4141aeec2ef4afc6aa534a486a34c8.png" />
490486
</p>
491-
你应该拆分成不同的mini-batch,第一次遍历训练集叫做第一代。第二次就是第二代,依此类推,你可以将 _α_ 学习率设为 _α = (<sup> 1 </sup>/<sub> 1 + decayrate * epoch - num </sub>)α<sub>0</sub>_ (**decay-rate**称为衰减率,**epoch-num**为代数, _α<sub>0</sub>_ 为初始学习率),注意这个衰减率是另一个你需要调整的超参数。
487+
你应该拆分成不同的mini-batch,第一次遍历训练集叫做第一代。第二次就是第二代,依此类推,你可以将 _α_ 学习率设为 _α = (<sup> 1 </sup>/<sub> 1 + decayrate * epoch_num </sub>)α<sub>0</sub>_ (**decay-rate**称为衰减率,**epoch-num**为代数, _α<sub>0</sub>_ 为初始学习率),注意这个衰减率是另一个你需要调整的超参数。
492488

493-
这里有一个具体例子,如果你计算了几代,也就是遍历了几次,如果 _α<sub>0</sub>_ 为0.2,衰减率**decay - rate**为1,那么在第一代中, _α = (<sup> 1 </sup>/<sub> 1 + 1 </sub>)α<sub>0</sub> = 0.1_ ,这是在代入这个公式计算( _α = (<sup> 1 </sup>/<sub> 1 + decayrate * epoch - num </sub>)α<sub>0</sub>_ ),此时衰减率是1而代数是1。在第二代学习率为0.67,第三代变成0.5,第四代为0.4等等(如下表)。
489+
这里有一个具体例子,如果你计算了几代,也就是遍历了几次,如果 _α<sub>0</sub>_ 为0.2,衰减率**decay - rate**为1,那么在第一代中, _α = (<sup> 1 </sup>/<sub> 1 + 1 </sub>)α<sub>0</sub> = 0.1_ ,这是在代入这个公式计算( _α = (<sup> 1 </sup>/<sub> 1 + decayrate * epoch_num </sub>)α<sub>0</sub>_ ),此时衰减率是1而代数是1。在第二代学习率为0.67,第三代变成0.5,第四代为0.4等等(如下表)。
494490

495491
| Epoch | α |
496492
| ----- | ----- |
@@ -506,9 +502,9 @@ for i in range(1, iterations):
506502
<img src="https://latex.codecogs.com/gif.latex?\text{formula}&space;=&space;\left\{&space;\begin{matrix}&space;\alpha&space;=&space;0.95^{epoch\_num}&space;&&space;\text{exponentialy&space;decay}&space;\\&space;\alpha&space;=&space;\frac{k}{\sqrt{epoch\_num}}&space;&&space;\text{&space;or&space;}&space;\frac{k}{\sqrt{t}}\alpha&space;_0&space;\\&space;\alpha&space;=&space;&&space;\text{discrete&space;function}&space;\text{d}&space;\end{matrix}&space;\right." title="\text{formula} = \left\{ \begin{matrix} \alpha = 0.95^{epoch\_num} & \text{exponentialy decay} \\ \alpha = \frac{k}{\sqrt{epoch\_num}} & \text{ or } \frac{k}{\sqrt{t}}\alpha _0 \\ \alpha = & \text{discrete function} \text{d} \end{matrix} \right." />
507503
</p>
508504

509-
* 指数衰减:其中 _α_ 相当于一个小于1的值,如 _α = 0.95<sup>epoch - num</sup> a<sub>0</sub>_ ,所以学习率呈指数下降。
505+
* 指数衰减:其中 _α_ 相当于一个小于1的值,如 _α = 0.95<sup>epoch_num</sup> a<sub>0</sub>_ ,所以学习率呈指数下降。
510506

511-
* 人们用到的其它公式有 _α = (<sup> k </sup>/<sub> sqrtepoch - num </sub>)α<sub>0</sub>_ 或者 _α = (<sup> k </sup>/<sub> sqrtt </sub>)α<sub>0</sub>_ ( _t_ 为mini-batch的数字)。
507+
* 人们用到的其它公式有 _α = (<sup> k </sup>/<sub> sqrt(epoch_num) </sub>)α<sub>0</sub>_ 或者 _α = (<sup> k </sup>/<sub> sqrt(t) </sub>)α<sub>0</sub>_ ( _t_ 为mini-batch的数字)。
512508

513509
* 有时也会用一个离散下降的学习率,也就是某个步骤有某个学习率,一会之后,学习率减少了一半,一会儿减少一半,一会儿又一半,这就是离散下降(**discrete stair cease**)的意思。
514510

0 commit comments

Comments
 (0)