关于深度学习:深度学习教程-神经网络优化算法

38次阅读

共计 11078 个字符,预计需要花费 28 分钟才能阅读完成。

  • 作者:韩信子 @ShowMeAI
  • 教程地址:http://www.showmeai.tech/tutorials/35
  • 本文地址:http://www.showmeai.tech/article-detail/217
  • 申明:版权所有,转载请分割平台与作者并注明出处

珍藏 ShowMeAI 查看更多精彩内容


本系列为吴恩达老师《深度学习专项课程 (Deep Learning Specialization)》学习与总结整顿所得,对应的课程视频能够在 这里 查看。

引言

在 ShowMeAI 前一篇文章 深度学习的实用层面 中咱们对以下内容进行了介绍:

  • Train / Dev / Test sets 的切分和比例抉择
  • Bias 和 Variance 的相干常识
  • 避免过拟合的办法:L2 正则化和 Dropout
  • 规范化输出以放慢梯度降落速度和精度
  • 梯度隐没和梯度爆炸的起因及解决办法
  • 梯度查看

本篇内容开展介绍深度神经网络中的一些优化算法,通过应用这些技巧和办法来进步神经网络的训练速度和精度。

1.Batch 梯度降落法

Batch 梯度降落法 ( 批梯度降落法 ) 是最罕用的梯度降落模式,它是基于整个训练集的梯度降落算法,在更新参数时应用所有的样本来进行更新。

对整个训练集进行梯度降落法的时候,咱们必须解决整个训练数据集,而后能力进行一步梯度降落,即每一步梯度降落法须要对整个训练集进行一次解决,如果训练数据集很大的时候,处理速度就会比较慢。

然而如果每次解决训练数据的一部分,基于这个子集进行梯度降落法,算法迭代速度会更快。而解决的这些一小部分训练子集即称为 Mini-Batch,这个算法也就是咱们说的Mini-Batch 梯度降落法

2.Mini-Batch 梯度降落法

Mini-Batch 梯度降落法 ( 小批量梯度降落法 ) 每次同时解决单个的 Mini-Batch,其余与 Batch 梯度降落法统一。

应用 Batch 梯度降落法,对整个训练集的一次遍历只能做一个梯度降落;而应用 Mini-Batch 梯度降落法,对整个训练集的一次遍历 (称为一个 epoch) 能做 Mini-Batch 个数个梯度降落。之后,能够始终遍历训练集,直到最初收敛到一个适合的精度。

Batch 梯度降落法和 Mini-Batch 梯度降落法 代价函数的变化趋势 如上图所示:

  • 应用 Batch gradient descent,随着迭代次数减少,cost 是 一直减小 的。
  • 应用 Mini-batch gradient descent,随着在不同的 mini-batch 上迭代训练,cost 并不是枯燥降落,而是 振荡降落 的,最终也能失去较低的 cost 值。呈现轻微振荡的起因是不同的 mini-batch 之间是有差别的。例如可能第一个子集 \((X^{{1}},Y^{{1}})\)是好的子集,而第二个子集 \((X^{{2}},Y^{{2}})\)蕴含了一些噪声 noise。呈现轻微振荡是失常的。

2.1 Batch 大小及影响

咱们在训练神经网络的时候,应用 mini-batch gradient descent,常常要指定一个 batch 批次的样本数量。而不同的 batch 大小会影响训练的过程,其中有 2 个特例,mini-batch gradient descent 会进化为不同的算法:

  • Mini-Batch 的大小为 1,即是 随机梯度降落法(stochastic gradient descent),每个样本都是独立的 Mini-Batch。
  • Mini-Batch 的大小为 \(m\)(数据集大小),即是 Batch 梯度降落法。

如上图,咱们比照一下 Batch gradient descentStachastic gradient descent的梯度降落曲线。

  • 图中 蓝色 的线代表 Batch gradient descent。Batch gradient descent 会 比拟安稳地靠近全局最小值,然而因为应用了所有 m 个样本,每次后退的速度有些慢。
  • 图中 紫色 的线代表 Stochastic gradient descent。Stochastic gradient descent每次后退速度很快,然而路线波折,有较大的振荡,最终会在最小值左近来回稳定,难以真正达到最小值处。而且在数值解决上就不能应用向量化的办法来进步运算速度。

(1) Batch 梯度降落法(Batch gradient descent)

  • 对所有 m 个训练样本执行一次梯度降落,每一次迭代工夫较长,训练过程慢
  • 绝对噪声低一些,幅度也大一些。
  • 老本函数总是向减小的方向降落。

(2) 随机梯度降落法(Stochastic gradient descent)

  • 对每一个训练样本执行一次梯度降落,训练速度快,但 失落了向量化带来的计算减速
  • 有很多噪声,减小学习率能够适当。
  • 老本函数总体趋势向全局最小值凑近,但永远不会收敛,而是始终在最小值左近稳定。

(3) Mini-Batch gradient descent

理论应用中,batch size 不能设置得太大(会偏向于 Batch gradient descent),也不能设置得太小(偏向于 Stochastic gradient descent)。

抉择一个 1<size<m 的适合的大小进行 Mini-Batch 梯度降落,能够实现疾速学习,也利用了向量化带来的益处,且老本函数的降落处于前两者之间。

mini-batch gradient descent 的梯度降落曲线如图 绿色曲线 所示,每次后退速度较快,且振荡较小,根本能靠近全局最小值

2.2 Batch 大小的抉择

吴恩达老师也给出了一些对于 batch 大小抉择的教训:

  • 训练样本量小(如 \(m \le 2000\)),抉择 Batch 梯度降落法。
  • 训练样本量大,抉择 Mini-Batch 梯度降落法。
  • 与计算机的信息存储形式相适应,代码在 Batch 大小为 2 的幂次时运行要快一些,典型的大小为 \(2^6\)、\(2^7\)、…、\(2^9\)。
  • Batch 的大小要匹配 CPU/GPU 内存。

Batch 的大小是重要的超参数,须要依据教训疾速尝试,找到可能最无效地缩小老本函数的值。

2.3 取得 Mini-Batch 的步骤

后面提到了 batch 大小的抉择办法,当咱们确定 batch 大小后,在利用 mini-batch 梯度降落算法时,能够通过以下形式取得 1 个 Batch 的数据:

  • 将数据集打乱
  • 依照既定的大小宰割数据集

其中打乱数据集的代码:

# 取得样本数量
m = X.shape[1] 
# 对 m 个样本进行乱序
permutation = list(np.random.permutation(m))
# 取出洗牌之后的样本特色和标签
shuffled_X = X[:, permutation]
shuffled_Y = Y[:, permutation].reshape((1,m))

(上述 python 代码应用到 numpy 工具库,想理解更多的同学能够查看 ShowMeAI 的 图解数据分析 系列中的 numpy 教程,也能够通过 ShowMeAI 制作的 numpy 速查手册 疾速理解其应用办法)

代码解读

np.random.permutationnp.random.shuffle 有两处不同:

  • 如果传给 permutation 一个矩阵,它会返回一个洗牌后的矩阵正本;而 shuffle 只是对一个矩阵进行洗牌,没有返回值。
  • 如果传入一个整数,它会返回一个洗牌后的arange

2.4 符号示意

在进一步解说优化算法之前,咱们来对数学标记做一个对立和阐明:

  • 咱们应用小括号上标 \(i\)示意训练集里的值,\(x^{(i)}\)是第 \(i\)个训练样本。
  • 咱们应用中括号上标 \(l\)示意神经网络的层数,\(z^{[l]}\)示意神经网络中第 \(l\)层的 \(z\)值。
  • 咱们应用上标 \(t\)来代表不同的 Batch 数据,即 \(X^{t}\)、\(Y^{t}\)。

3. 指数加权均匀

上面咱们将介绍指数加权均匀(Exponentially weighted averages)的概念。

举个例子,记录半年内伦敦市的气温变动,并在二维立体上绘制进去,如下图所示:

看上去,温度数据仿佛有 noise,而且抖动较大。如果咱们心愿看到半年内气温的整体变化趋势,能够通过「挪动均匀」(moving average)的办法来对每天气温进行平滑解决。

例如咱们能够设 \(V_0=0\),当成第 0 天的气温值。

第一天的气温与第 0 天的气温无关:

$$
V_1=0.9V_0+0.1\theta_1
$$

第二天的气温与第一天的气温无关:

$$
\begin{aligned}
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{aligned}
$$

第三天的气温与第二天的气温无关:

$$
\begin{aligned}
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{aligned}
$$

即第 \(t\)天与第 \(t-1\)天的气温迭代关系为:

通过「挪动均匀」(moving average)解决失去的气温如下图红色曲线所示:

这种滑动均匀算法称为指数加权均匀(exponentially weighted average)。依据后面的例子,咱们能够看到它的推导公式个别模式为:\(V_t=\beta V_{t-1}+(1-\beta)\theta_t\)。

其中指数加权均匀的天数由 \(\beta\)值决定,近似示意为 \(\frac{1}{1-\beta}\)。下面的例子中:

  • 当 \(\beta=0.9\),则 \(\frac{1}{1-\beta}=10\),示意将前 10 天进行指数加权均匀。
  • 当 \(\beta=0.98\),则 \(\frac{1}{1-\beta}=50\),示意将前 50 天进行指数加权均匀。

\(\beta\)值越大,则指数加权均匀的天数越多,均匀后的趋势线就越平缓,然而同时也会向右平移。上图中绿色曲线和橙色曲线别离示意了 \(\beta=0.98\)和 \(\beta=0.5\)时,指数加权均匀的后果。

公式解释

这里的 \(\frac{1}{1-\beta}\)是怎么来的呢?就规范数学公式来说,指数加权均匀算法跟之前所有天的数值都有关系。

然而指数是衰减的,个别认为衰减到 \(\frac1e\)就能够忽略不计了。因而,依据之前的推导公式,咱们只有证实 \(\beta^{\frac{1}{1-\beta}}=\frac1e\)就好了。

令 \(\frac{1}{1-\beta}=N\),\(N>0\),则 \(\beta=1-\frac{1}{N}\),\(\frac1N<1\)。即证实转化为 \((1-\frac1N)^N=\frac1e\)

显然,当 \(N>>0\)时,上述等式是近似成立的。这就简略解释了为什么指数加权均匀的天数的计算公式为 \(\frac{1}{1-\beta}\)。

综上,指数加权均匀 (Exponentially Weight Average) 是一种罕用的序列数据处理形式,计算公式为:

$$
S_t =
\begin{cases}
Y_1, &t = 1 \\
\beta S_{t-1} + (1-\beta)Y_t, &t > 1
\end{cases}
$$

其中 \(Y_t\)为 \(t\)下的理论值,\(S_t\)为 \(t\)下加权均匀后的值,\(\beta\)为权重值。

指数加权平均数在统计学中被称为“指数加权挪动平均值”。

3.1 了解指数均匀加权

咱们将指数加权均匀公式的个别模式写下来:

$$
\begin{aligned}
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{aligned}
$$

察看上述推导失去的计算公式,其中:

  • \(\theta_t\),\(\theta_{t-1}\),\(\theta_{t-2}\),…,\(\theta_1\)是原始数据值。
  • \((1-\beta)\),\((1-\beta)\beta\),\((1-\beta)\beta^2\),…,\((1-\beta)\beta^{t-1}\)是相似指数曲线,从右向左,呈指数降落的。

如果咱们把每个工夫点的 \(\theta\)和衰减指数写成向量模式,则最终指数加权均匀后果 \(V_t\)相当于两者的点乘。将原始数据值与衰减指数点乘,相当于做了指数衰减,随间隔越远衰减越厉害(留神到 \(\beta\)小于 1),有如下结论:

  • 离得越近的数据点,影响越大,离得越远的数据点,影响越小。

当 \(\beta = 0.9\)时,

$$v_{100} = 0.9v_{99} + 0.1 \theta_{100}$$

$$v_{99} = 0.9v_{98} + 0.1 \theta_{99}$$

$$v_{98} = 0.9v_{97} + 0.1 \theta_{98}$$

开展:

$$
v_{100} = 0.1 \theta_{100} + 0.1 * 0.9 \theta_{99} + 0.1 * {(0.9)}^2 \theta_{98} + \dots
$$

其中,\(\theta_i\)指第 \(i\)天的理论数据。所有 \(\theta\)后面的系数 (不包含 0.1) 相加起来为 1 或者靠近于 1,这些系数被称作 偏差修改(Bias Correction)

依据函数极限的一条定理:

$$
{\lim_{\beta\to 0}}(1 – \beta)^{\frac{1}{\beta}} = \frac{1}{e} \approx 0.368
$$

当 \(\beta = 0.9\)时,能够当作把过来 10 天的气温指数加权均匀作为当日的气温,因为 10 天后权重曾经降落到了当天的 1 / 3 左右。同理,当 \(\beta = 0.98\)时,能够把过来 50 天的气温指数加权均匀作为当日的气温。

因而,在计算以后时刻的平均值时,只须要前一天的平均值和以后时刻的值。

$$
v_t = \beta v_{t-1} + (1 – \beta)\theta_t
$$

在理论代码中,只须要一直迭代赋值更新 \(v\)即可:

$$
v := \beta v + (1 – \beta)\theta_t
$$

指数均匀加权并不是最精准的计算平均数的办法,你能够间接计算过来 10 天或 50 天的平均值来失去更好的预计,但毛病是保留数据须要占用更多内存,执行更加简单,计算成本更加昂扬。

指数加权平均数公式的益处之一在于它只须要一行代码,且占用极少内存,因而效率极高,且节省成本。

3.2 指数均匀加权的偏差修改

当 \(\beta=0.98\)时,后面提到的气温示例,指数加权均匀后果如绿色曲线。但实际上实在曲线如 紫色曲线 所示:

紫色曲线与绿色曲线的区别是,紫色曲线开始的时候绝对较低一些。因为开始时设置 \(v_0 = 0\),所以初始值会绝对小一些,直到前面受后面的影响慢慢变小,趋于失常。

修改这种问题的办法是进行 偏移校对(bias correction),即在每次计算完 \(v_t\)后,对 \(v_t\)进行下式解决:

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

换算到迭代公式中,即有 \(v_t = \frac{\beta v_{t-1} + (1 – \beta)\theta_t}{{1-\beta^t}}\)。

察看上式:随着 \(t\)的增大,\(\beta\)的 \(t\)次方趋近于 0。因而当 \(t\)很大的时候,偏差修改简直没有作用,然而在后期学习能够帮忙更好的预测数据。

4. 动量梯度降落法

4.1 从指数加权均匀到动量梯度降落

大家曾经理解了指数加权均匀,当初咱们回到神经网络优化算法,介绍一下动量梯度降落算法,其速度要比传统的梯度降落算法快很多。做法是在每次训练时,计算梯度的指数加权平均数,并利用该值来更新权重 \(W\)和常数项 \(b\)。

具体过程 为:for l = 1, .. , L

$$v_{dW^{[l]}} = \beta v_{dW^{[l]}} + (1 – \beta) dW^{[l]}$$

$$v_{db^{[l]}} = \beta v_{db^{[l]}} + (1 – \beta) db^{[l]}$$

$$W^{[l]} := W^{[l]} – \alpha v_{dW^{[l]}}$$

$$b^{[l]} := b^{[l]} – \alpha v_{db^{[l]}}$$

其中,将动量衰减参数 \(\beta\)设置为 0.9 是超参数的一个常见且成果不错的抉择。当 \(\beta\)被设置为 0 时,显然就成了 Batch 梯度降落法。

4.2 梯度降落 vs 动量梯度降落

咱们用下图来比照一下优化算法的优化过程

图中:

  • 蓝色曲线:应用个别的梯度降落的优化过程,因为存在高低稳定,减缓了梯度降落的速度,因而只能应用一个较小的学习率进行迭代。
  • 紫色曲线:应用个别梯度降落 + 较大的学习率,后果可能偏离函数的范畴。
  • 红色曲线:应用动量梯度降落,通过累加过来的梯度值来缩小到达最小值门路上的稳定,减速了收敛,因而在横轴方向降落得更快。

以后后梯度方向统一时,动量梯度降落可能减速学习;而前后梯度方向不统一时,动量梯度降落可能克制震荡。

另外,在 10 次迭代之后,挪动均匀曾经不再是一个具备偏差的预测。因而理论在应用梯度降落法或者动量梯度降落法时,不会同时进行偏差修改。

补充:在其它文献资料中,动量梯度降落还有另外一种写法:

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

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

即消去了 \(dW\)和 \(db\)前的系数 \((1-\beta)\)。这样简化了表达式,然而学习因子 \(\alpha\)相当于变成了 \(\frac{\alpha}{1-\beta}\),示意 \(\alpha\)也受 \(\beta\)的影响。从成果上来说,这种写法也是能够的,然而不够直观,且调参波及到 \(\alpha\),不够不便。所以,理论利用中,举荐第一种动量梯度降落的表达式。

动量梯度降落法的形象解释

将老本函数设想为一个碗状,从顶部开始静止的小球向下滚,其中 \(dw\),\(db\)设想成球的加速度;而 \(v_{dw}\)、\(v_{db}\)相当于速度。

小球在向下滚动的过程中,因为加速度的存在速度会变快,然而因为 \(\beta\)的存在,其值小于 1,能够认为是摩擦力,所以球不会有限减速上来。

5.RMSProp 算法

RMSProp(Root Mean Square Propagation,均方根流传)是另外一种优化梯度降落速度的算法,它在对梯度进行指数加权均匀的根底上,引入平方和平方根。具体过程为(省略了 \( l\)):

$$s_{dw} = \beta s_{dw} + (1 – \beta)(dw)^2$$

$$s_{db} = \beta s_{db} + (1 – \beta)(db)^2$$

$$w := w – \alpha \frac{dw}{\sqrt{s_{dw} + \epsilon}}$$

$$b := b – \alpha \frac{db}{\sqrt{s_{db} + \epsilon}}$$

其中,\(\varepsilon\)是一个实际操作时加上的较小数(例如 \( 10^{-8}\)),为了避免分母太小而导致的数值不稳固。

如图所示,蓝色轨迹 代表初始的挪动,能够看到在 \(b\)方向上走得比拟平缓 (即 \( db\) 较大),相比起来 \(dw\)较小,这影响了优化速度。

因而,在采纳 RMSProp 算法后,因为 \((dw)^2\)较小、\((db)^2\)较大,进而 \(s_{dw}\)也会较小、\(s_{db}\)也会较大,最终使得 \(\frac{dw}{\sqrt{s_{dw} + \varepsilon}}\)较大,而 \(\frac{db}{\sqrt{s_{db} + \varepsilon}}\)较小。前面的更新就会像绿色轨迹一样,显著好于蓝色的更新曲线。RMSProp 减小某些维度梯度更新稳定较大的状况,使降落速度变得更快。

RMSProp 有助于缩小到达最小值门路上的摆动,并容许应用一个更大的学习率 \(\alpha\),从而放慢算法学习速度。并且,它和 Adam 优化算法已被证实实用于不同的深度学习网络结构。

留神,\(\beta\)也是一个超参数。

比照原始梯度降落与 RMSProp 算法优化过程,如下图所示(上方为原始梯度降落,下方为 RMSProp)

6.Adam 优化算法

6.1 Adam 算法介绍

Adam (Adaptive Moment Estimation,自适应矩预计)算法联合了动量梯度降落算法和 RMSprop 算法,通常有超过二者独自时的成果。具体过程如下(省略了 \( l\)):

首先进行初始化:

$$v_{dW} = 0, s_{dW} = 0, v_{db} = 0, s_{db} = 0$$

用每一个 Mini-Batch 计算 \(dW\)、\(db\),第 \(t\)次迭代时:

$$v_{dW} = \beta_1 v_{dW} + (1 – \beta_1) dW$$

$$v_{db} = \beta_1 v_{db} + (1 – \beta_1) db$$

$$s_{dW} = \beta_2 s_{dW} + (1 – \beta_2) {(dW)}^2$$

$$s_{db} = \beta_2 s_{db} + (1 – \beta_2) {(db)}^2$$

个别应用 Adam 算法时须要计算偏差修改:

$$v^{corrected}_{dW} = \frac{v_{dW}}{1-{\beta_1}^t}$$

$$v^{corrected}_{db} = \frac{v_{db}}{1-{\beta_1}^t}$$

$$s^{corrected}_{dW} = \frac{s_{dW}}{1-{\beta_2}^t}$$

$$s^{corrected}_{db} = \frac{s_{db}}{1-{\beta_2}^t}$$

所以,更新 \(W\)、\(b\)时有:

$$
W := W – \alpha \frac{v^{corrected}_{dW}}{{\sqrt{s^{corrected}_{dW}} + \varepsilon}}
$$

$$
b := b – \alpha \frac{v^{corrected}_{db}}{{\sqrt{s^{corrected}_{db}} + \varepsilon}}
$$

6.2 Adam 超参数的抉择

Adam 优化算法有很多的超参数,其中

  • 学习率 \(\alpha\):须要尝试一系列的值,来寻找比拟适合的
  • \(\beta_1\):罕用的缺省值为 0.9
  • \(\beta_2\):Adam 算法的作者倡议为 0.999
  • \(\varepsilon\):不重要,不会影响算法体现,Adam 算法的作者倡议为 \(10^{-8}\)

\(\beta_1\)、\(\beta_2\)、\(\varepsilon\)通常不须要调试。

比照原始梯度降落与 RMSProp 算法优化过程,如下图所示(上方为原始梯度降落,下方为 Adam)

7. 学习率衰减

减小学习率 \(\alpha\)也能无效进步神经网络训练速度,这种办法被称为学习率衰减法(learning rate decay)。

学习率衰减就是随着迭代次数减少,学习率 \(\alpha\)逐步减小。如下图示例。

蓝色折线 示意设置一个固定的学习率 \(\alpha\)

  • 在最小值点左近,因为不同的 Batch 中存在肯定的噪声,因而不会准确收敛,而是始终在最小值四周一个较大的范畴内稳定。

绿色折线 示意随着工夫缓缓缩小学习率 \(\alpha\)的大小

  • 在初期 \(\alpha\)较大时,降落的步长较大,能以较快的速度进行梯度降落;
  • 前期逐渐减小 \(\alpha\)的值,即减小步长,有助于算法的收敛,更容易靠近最优解。

最罕用的学习率衰减办法:

$$
\alpha = \frac{1}{1 + decay\_rate \ast epoch\_num} \ast \alpha_0
$$

其中,decay_rate 为衰减率(超参数),epoch_num 为将所有的训练样本残缺过一遍的次数。

  • 指数衰减:\(\alpha = 0.95^{epoch\_num} \ast \alpha_0\)
  • 其余:\(\alpha = \frac{k}{\sqrt{epoch\_num}} \ast \alpha_0\)
  • 离散降落

对于较小的模型,也有人会在训练时依据进度手动调小学习率。

8. 部分最优问题

在应用梯度降落算法一直减小 cost function 时,可能会失去 部分最优解(local optima)而不是 全局最优解(global optima)

之前咱们对部分最优解的了解是形如碗状的凹槽,如图右边所示。然而在神经网络中,local optima 的概念产生了变动。精确来说,大部分梯度为零的“最长处”并不是这些凹槽处,而是形如左边所示的马鞍状,称为 saddle point。

所以在深度学习损失函数中,梯度为零并不能保障都是convex(极小值),也有可能是concave(极大值)。特地是在神经网络中参数很多的状况下,所有参数梯度为零的点很可能都是左边所示的马鞍状的 saddle point,而不是右边那样的 local optimum。

相似马鞍状的 plateaus 会升高神经网络学习速度。Plateaus 是梯度接近于零的平缓区域,如图所示。在 plateaus 上梯度很小,后退迟缓,达到 saddle point 须要很长时间。达到 saddle point 后,因为随机扰动,梯度个别可能沿着图中绿色箭头,来到 saddle point,继续前进,只是在 plateaus 上破费了太多工夫。

论断

  • 在训练较大的神经网络、存在大量参数,并且老本函数被定义在较高的维度空间时,困在极差的部分最优中是不大可能的;
  • 鞍点左近的安稳段会使得学习十分迟缓,而这也是动量梯度降落法、RMSProp 以及 Adam 优化算法可能减速学习的起因,它们能帮忙尽早走出安稳段。

参考资料

  • 图解数据分析
  • numpy 速查手册

ShowMeAI 系列教程举荐

  • 图解 Python 编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解 AI 数学根底:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程
  • 图解机器学习算法:从入门到精通系列教程
  • 机器学习实战:手把手教你玩转机器学习系列
  • 深度学习教程 | 吴恩达专项课程 · 全套笔记解读

举荐文章

  • 深度学习教程 | 深度学习概论
  • 深度学习教程 | 神经网络根底
  • 深度学习教程 | 浅层神经网络
  • 深度学习教程 | 深层神经网络
  • 深度学习教程 | 深度学习的实用层面
  • 深度学习教程 | 神经网络优化算法
  • 深度学习教程 | 网络优化:超参数调优、正则化、批归一化和程序框架
  • 深度学习教程 | AI 利用实际策略(上)
  • 深度学习教程 | AI 利用实际策略(下)
  • 深度学习教程 | 卷积神经网络解读
  • 深度学习教程 | 经典 CNN 网络实例详解
  • 深度学习教程 | CNN 利用:指标检测
  • 深度学习教程 | CNN 利用:人脸识别和神经格调转换
  • 深度学习教程 | 序列模型与 RNN 网络
  • 深度学习教程 | 自然语言解决与词嵌入
  • 深度学习教程 | Seq2seq 序列模型和注意力机制

正文完
 0