没有合适的资源?快使用搜索试试~ 我知道了~
chap-网络优化与正则化1
需积分: 0 0 下载量 201 浏览量
2022-08-03
20:27:46
上传
评论
收藏 3.79MB PDF 举报
温馨提示
试读
35页
第 7 章网络优化与正则化任何数学技巧都不能弥补信息的缺失。虽然神经网络具有非常强的表达能力,但是当应用神经网络模型到机器学习时依然存在一些难点。主要分为两大类
资源详情
资源评论
资源推荐
第 7 章 网络优化与正则化
任何数学技巧都不能弥补信息的缺失。
— Cornelius Lanczos,1964
虽然神经网络具有非常强的表达能力,但是当应用神经网络模型到机器学
习时依然存在一些难点。主要分为两大类:
(1)优化问题:神经网络模型是一个非凸函数,再加上在深度网络中的梯
度消失问题,很难进行优化;另外,深层神经网络模型一般参数比较多,训练
数据也比较大,会导致训练的效率比较低。
(2)泛化问题:因为神经网络的拟合能力强,反而容易在训练集上产生过
拟合。因此,在训练深层神经网络时,同时也需要通过一定的正则化方法来改
进网络的泛化能力。
目前,研究者从大量的实践中总结了一些经验技巧,从优化和正则化两个
方面来提高学习效率并得到一个好的网络模型。
7.1 网络优化
深层神经网络是一个高度非线性的模型,其风险函数是一个非凸函数,因
此风险最小化是一个非凸优化问题,会存在很多局部最优点。
7.1.1 网络优化的难点
有效地学习深层神经网络的参数是一个具有挑战性的问题,其主要原因有
以下几个方面。
166 2019 年 4 月 10 日 第 7 章 网络优化与正则化
7.1.1.1 网络结构多样性
神经网络的种类非常多,比如卷积网络、循环网络等,其结构也非常不同。
有些比较深,有些比较宽。不同参数在网络中的作用也有很大的差异,比如连
接权重和偏置的不同,以及循环网络中循环连接上的权重和其它权重的不同。
由于网络结构的多样性,我们很难找到一种通用的优化方法。不同的优化
方法在不同网络结构上的差异也都比较大。
此外,网络的超参数一般也比较多,这也给优化带来很大的挑战。
7.1.1.2 高维变量的非凸优化
低维空间的非凸优化问题主要是存在一些局部最优点。基于梯度下降的优
化方法会陷入局部最优点,因此低维空间非凸优化的主要难点是如何选择初始
化参数和逃离局部最优点。深层神经网络的参数非常多,其参数学习是在非常
高维空间中的非凸优化问题,其挑战和在低维空间的非凸优化问题有所不同。
鞍点 在高维空间中,非凸优化的难点并不在于如何逃离局部最优点,而是如何
逃离鞍点(Saddle Point)[Dauphin et al., 2014]。鞍点的梯度是 0,但是在一些
鞍点的叫法是因为其形状像
马鞍。
维度上是最高点,在另一些维度上是最低点,如图7.1所示。
1
1/2
0
1/2
1
1
1/2
0
1/2
1
1
1/2
0
1/2
1
图 7.1 鞍点示例
在高维空间中,局部最优点要求在每一维度上都是最低点,这种概率非常
低。假设网络有 10, 000 维参数,一个点在某一维上是局部最低点的概率为 p,那
么在整个参数空间中,局部最优点的概率为 p
10,000
,这种可能性非常小。也就
是说高维空间中,大部分梯度为 0 的点都是鞍点。基于梯度下降的优化方法会
在鞍点附近接近于停滞,同样很难从这些鞍点中逃离。
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
7.2 优化算法 2019 年 4 月 10 日 167
平坦底部 深层神经网络的参数非常多,并且有一定的冗余性,这导致每单个参
数对最终损失的影响都比较小,这导致了损失函数在局部最优点附近是一个平
坦的区域,称为平坦最小值(Flat Minima)[Hochreiter and Schmidhuber, 1997,
Li et al., 2017a]。并且在非常大的神经网络中,大部分的局部最小值是相等的。
虽然神经网络有一定概率收敛于比较差的局部最小值,但随着网络规模增加,网
络陷入局部最小值的概率大大降低 [Choromanska et al., 2015]。图7.2给出了一
种简单的平坦底部示例。
w1
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
w2
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
0.00
0.25
0.50
0.75
1.00
1.25
1.50
1.75
2.00
图 7.2 神经网络中的平坦底部示例
7.2 优化算法
目前,深层神经网络的参数学习主要是通过梯度下降方法来寻找一组可以
最小化结构风险的参数。在具体实现中,梯度下降法可以分为:批量梯度下降、
随机梯度下降以及小批量梯度下降三种形式。根据不同的数据量和参数量,可
以选择一种具体的实现形式。除了在收敛效果和效率上的差异,这三种方法都
存在一些共同的问题,比如 1)如何初始化参数;2)预处理数据;3)如何选择
合适的学习率,避免陷入局部最优等。
7.2.1 小批量梯度下降
目前,在训练深层神经网络时,训练数据的规模比较大。如果在梯度下降
时,每次迭代都要计算整个训练数据上的梯度需要比较多的计算资源。此外,大
规模训练集中的数据通常也会非常冗余,也没有必要在整个训练集上计算梯度。
因此,在训练深层神经网络时,经常使用小批量梯度下降算法。
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
168 2019 年 4 月 10 日 第 7 章 网络优化与正则化
令 f(x, θ)表示一个深层神经网络,θ 为网络参数,在使用小批量梯度下降进
行优化时,每次选取K 个训练样本 I
t
= {(x
(k)
, y
(k)
)}
K
k=1
。第t次迭代(iteration)
时损失函数关于参数 θ 的偏导数为
g
t
(θ) =
1
K
(x
(k)
,y
(k)
)∈I
t
∂L
y
(k)
, f(x
(k)
, θ)
∂θ
, (7.1)
其中 L(·) 为可微分的损失函数,K 称为批量大小(Batch Size)。
这里的损失函数忽略了正则
化项。加上 ℓ
p
正则化的损失
函数参见第7.7.1节。
第 t 次更新的梯度 g
t
定义为
g
t
, g
t
(θ
t
−
1
). (7.2)
使用梯度下降来更新参数,
θ
t
← θ
t−1
− αg
t
, (7.3)
其中 α > 0 为学习率。
每次迭代时参数更新的差值 ∆θ
t
定义为
∆θ
t
, θ
t
− θ
t−1
. (7.4)
∆θ
t
和梯度 g
t
并不需要完全一致。∆θ
t
为每次迭代时参数的实际更新方向,即
θ
t
= θ
t−1
+ ∆θ
t
。在标准的小批量梯度下降中,∆θ
t
= −αg
t
。
图7.3给出了在 MNIST 数据集上,批量大小对损失下降的影响。一般批量
值得注意的是,图7.3中的三
种批量大小对应的学习率并
不一致,因此并不是严格对
比。
大小较小时,需要设置较小的学习率较,否则模型会不收敛。从图7.3a可以看
出,每次迭代选取的批量样本数越多,下降效果越明显,并且下降曲线越平滑。
当每次选取一个样本时(相当于随机梯度下降),损失整体是下降趋势,但局部
看会来回震荡。从图7.3b可以看出,如果按整个数据集上的迭代次数(Epoch)
的来看损失变化情况,则是批量样本数越小,下降效果越明显。
Epoch(回 合) 和 Iteration
(单次更 新) 的 关 系 为 1 个
epoch 等 于 (
训练样本的数量N
批量大小K
)
次 Iterations。
0 1000 2000 3000 4000 5000
iterations
10
-3
10
-2
10
-1
10
0
10
1
loss
SGD(batchsize=1 learningrate=0.01)
SGD(batchsize=32 learningrate=0.5)
SGD(batchsize=2048 learningrate=0.5)
(a) 按每次小批量更新的损失变化
0 1 2 3 4 5 6 7 8
epochs
10
-3
10
-2
10
-1
10
0
10
1
loss
SGD(batchsize=1 learningrate=0.05)
SGD(batchsize=32 learningrate=0.5)
SGD(batchsize=2048 learningrate=0.5)
(b) 按整个数据集迭代的损失变化
图 7.3 批量大小对损失下降的影响
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
剩余34页未读,继续阅读
无能为力就要努力
- 粉丝: 16
- 资源: 332
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0