# Coursera吴恩达《优化深度神经网络》课程笔记（2）-- 优化算法

• X^{(i)} ：第i个样本
• Z^{[l]}：神经网络第ll层网络的线性输出
• X^{\{t\}},Y^{\{t\}}：第t组mini-batch

Mini-batches Gradient Descent的实现过程是先将总的训练样本分成T个子集（mini-batches），然后对每个mini-batch进行神经网络训练，包括Forward Propagation，Compute Cost Function，Backward Propagation，循环至T个mini-batch都训练完毕。

for t=1,⋯,T {for t=1,⋯,T {

Forward Propagation

ComputeCostFunction

BackwardPropagation

W:=W−α⋅dW

b:=b−α⋅db

### 3. Exponentially weighted averages

V_1=0.9V_0+0.1\theta_1

\begin{eqnarray}V_2 &=&0.9V_1+0.1\theta_2\\ &=&0.9(0.9V_0+0.1\theta_1)+0.1\theta_2\\ &=&0.9^2V_0+0.9\cdot0.1\theta_1+0.1\theta_2 \end{eqnarray}

\begin{eqnarray}V_3 &=&0.9V_2+0.1\theta_3\\ &=&0.9(0.9^2V_0+0.9\cdot0.1\theta_1+0.1\theta_2)+0.1\theta_3\\ &=&0.9^3V_0+0.9^2\cdot 0.1\theta_1+0.9\cdot 0.1\theta_2+0.1\theta_3 \end{eqnarray}

\begin{eqnarray}V_t &=&0.9V_{t-1}+0.1\theta_t\\ &=&0.9^tV_0+0.9^{t-1}\cdot0.1\theta_1+0.9^{t-2}\cdot 0.1\theta_2+\cdots+0.9\cdot0.1\theta_{t-1}+0.1\theta_t \end{eqnarray}

V_t=\beta V_{t-1}+(1-\beta)\theta_t

\frac{1}{1-\beta}

\beta^{\frac{1}{1-\beta}}=\frac1e

\frac{1}{1-\beta}=N，N>0N>0，则β\beta=1-\frac{1}{N}\frac1N<1。即证明转化为：

(1-\frac1N)^N=\frac1e

### 4. Understanding exponetially weighted averages

\begin{eqnarray}V_t &=&\beta V_{t-1}+(1-\beta)\theta_t\\ &=&(1-\beta)\theta_t+(1-\beta)\cdot\beta\cdot\theta_{t-1}+(1-\beta)\cdot \beta^2\cdot\theta_{t-2}+\cdots\\ &&+(1-\beta)\cdot \beta^{t-1}\cdot \theta_1+\beta^t\cdot V_0 \end{eqnarray}

V_{\theta}=0

Repeat {Repeat {

Get next θt Get next θt

Vθ:=βVθ+(1−β)θt

}

5. Bias correction in exponentially weighted average

\frac{V_t}{1-\beta^t}

### 6. Gradient descent with momentum

V_{dW}=\beta\cdot V_{dW}+(1-\beta)\cdot dW V_{db}=\beta\cdot V_{db}+(1-\beta)\cdot db

On iteration t:

Compute dW, db on the current mini−batch

V_{dW}=\beta V_{dW}+(1-\beta)dW

V_{db}=\beta V_{db}+(1-\beta)db

W=W-\alpha V_{dW},\ b=b-\alpha V_{db}

V_{dW}=\beta V_{dW}+dW

V_{db}=\beta V_{db}+db

### 7. RMSprop

RMSprop是另外一种优化梯度下降速度的算法。每次迭代训练过程中，其权重W和常数项b的更新表达式为：

S_W=\beta S_{dW}+(1-\beta)dW^2

S_b=\beta S_{db}+(1-\beta)db^2 W:=W-\alpha \frac{dW}{\sqrt{S_W}},\ b:=b-\alpha \frac{db}{\sqrt{S_b}}

W:=W-\alpha \frac{dW}{\sqrt{S_W}+\varepsilon},\ b:=b-\alpha \frac{db}{\sqrt{S_b}+\varepsilon}

V_{dW}=0,\ S_{dW},\ V_{db}=0,\ S_{db}=0

On iteration t:

Cimpute dW, db

V_{dW}=\beta_1V_{dW}+(1-\beta_1)dW,\ V_{db}=\beta_1V_{db}+(1-\beta_1)db

S_{dW}=\beta_2S_{dW}+(1-\beta_2)dW^2,\ S_{db}=\beta_2S_{db}+(1-\beta_2)db^2

V_{dW}^{corrected}=\frac{V_{dW}}{1-\beta_1^t},\ V_{db}^{corrected}=\frac{V_{db}}{1-\beta_1^t}

S_{dW}^{corrected}=\frac{S_{dW}}{1-\beta_2^t},\ S_{db}^{corrected}=\frac{S_{db}}{1-\beta_2^t}

W:=W-\alpha\frac{V_{dW}^{corrected}}{\sqrt{S_{dW}^{corrected}}+\varepsilon},\ b:=b-\alpha\frac{V_{db}^{corrected}}{\sqrt{S_{db}^{corrected}}+\varepsilon}

### 9. Learning rate decay

Learning rate decay就是随着迭代次数增加，学习因子α逐渐减小。下面用图示的方式来解释这样做的好处。下图中，蓝色折线表示使用恒定的学习因子α，由于每次训练α相同，步进长度不变，在接近最优值处的振荡也大，在最优值附近较大范围内振荡，与最优值距离就比较远。绿色折线表示使用不断减小的α，随着训练次数增加，α逐渐减小，步进长度减小，使得能够在最优值处较小范围内微弱振荡，不断逼近最优值。相比较恒定的α来说，learning rate decay更接近最优值。

Learning rate decay中对α可由下列公式得到：

\alpha=\frac{1}{1+decay\_rate*epoch}\alpha_0

\alpha=0.95^{epoch}\cdot \alpha_0

\alpha=\frac{k}{\sqrt{epoch}}\cdot \alpha_0\ \ \ \ or\ \ \ \ \frac{k}{\sqrt{t}}\cdot \alpha_0

### 10. The problem of local optima

• 只要选择合理的强大的神经网络，一般不太可能陷入local optima
• Plateaus可能会使梯度下降变慢，降低学习速度

0 条评论

## 相关文章

782

3587

### Coursera吴恩达《卷积神经网络》课程笔记（1）-- 卷积神经网络基础

《Convolutional Neural Networks》是Andrw Ng深度学习专项课程中的第四门课。这门课主要介绍卷积神经网络（CNN）的基本概念、...

5330

3417

1042

### 统计学习导论 Chapter2--What Is Statistical Learning?

Book: An Introduction to Statistical Learning with Appli...

2038

3826

4156

861

### BP神经网络

BP(Back Propagation)神经网络是1986年由以Rumelhart和McCelland为首的科学家小组提出的，是一种按误差逆传播算法训练的多层前...

2479