@@ -245,10 +245,6 @@ Python伪代码如下
245
245
计算 _ v<sub >100</sub >_ 是通过,把两个函数对应的元素,然后求和,用这个数值100号数据值乘以0.1,99号数据值乘以0.1乘以 _ (0.9)<sup >2</sup >_ ,这是第二项,以此类推,所以选取的是每日温度,将其与指数衰减函数相乘,然后求和,就得到了 _ v<sub >100</sub >_ 。
246
246
247
247
248
- <p align =" center " >
249
- <img src =" https://raw.github.com/loveunk/deeplearning_ai_books/master/images/880dbafaccbd93a4ab0a92a9b8607956.png " />
250
- </p >
251
-
252
248
结果是,稍后我们详细讲解,不过所有的这些系数( _ 0.1、0.1 × 0.9、0.1 × (0.9)<sup >2</sup >、0.1 × (0.9)<sup >3</sup > ..._ ),相加起来为1或者逼近1,我们称之为偏差修正,下节会涉及。
253
249
254
250
最后也许你会问,到底需要平均多少天的温度。实际上 _ (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):
488
484
<p align =" center " >
489
485
<img src =" https://raw.github.com/loveunk/deeplearning_ai_books/master/images/7c4141aeec2ef4afc6aa534a486a34c8.png " />
490
486
</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 >_ 为初始学习率),注意这个衰减率是另一个你需要调整的超参数。
492
488
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等等(如下表)。
494
490
495
491
| Epoch | α |
496
492
| ----- | ----- |
@@ -506,9 +502,9 @@ for i in range(1, iterations):
506
502
<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. " />
507
503
</p >
508
504
509
- * 指数衰减:其中 _ α_ 相当于一个小于1的值,如 _ α = 0.95<sup >epoch - num </sup > a<sub >0</sub >_ ,所以学习率呈指数下降。
505
+ * 指数衰减:其中 _ α_ 相当于一个小于1的值,如 _ α = 0.95<sup >epoch_num </sup > a<sub >0</sub >_ ,所以学习率呈指数下降。
510
506
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的数字)。
512
508
513
509
* 有时也会用一个离散下降的学习率,也就是某个步骤有某个学习率,一会之后,学习率减少了一半,一会儿减少一半,一会儿又一半,这就是离散下降(** discrete stair cease** )的意思。
514
510
0 commit comments