当前位置: 首页 > news >正文

如何做收费影视资源网站wordpress导航自定义

如何做收费影视资源网站,wordpress导航自定义,加工外包网,外贸小语种网站建设【Python Pytorch】人工神经网络 ANN#xff08;中#xff09; 6. 反向传播6.1 梯度下降法6.1.1 线搜索方法6.1.2 微分 导数6.1.3 偏导数6.1.4 Jacobian矩阵6.1.5 梯度 梯度下降法按维度介绍 6.1.6 面临挑战平原现象 振荡现象局部最小值鞍点梯度消失梯度爆… 【Python · Pytorch】人工神经网络 ANN中 6. 反向传播6.1 梯度下降法6.1.1 线搜索方法6.1.2 微分 导数6.1.3 偏导数6.1.4 Jacobian矩阵6.1.5 梯度 梯度下降法按维度介绍 6.1.6 面临挑战平原现象 振荡现象局部最小值鞍点梯度消失梯度爆炸 6.1.7 方向导数 6.2 牛顿法6.3 拟牛顿法6.3.1 DFP算法6.3.2 BFGS算法6.3.3 Broyden族方法 6.4 ‌‌共轭梯度法6.5 动量相关算法6.5.1 动量法6.5.2 Nesterov动量法 6.6. 自适应学习率算法6.6.1 AdaGrad算法6.6.2 RMSprop算法6.6.3 Adam算法6.6.4 Nadam算法 6.7 学习率调整6.7.1 学习率预热6.7.2 学习率衰减分段常数衰减 (Piecewise Constant Decay)逆时衰减 (Inverse Time Decay)指数衰减 (Exponential Decay)自然指数衰减 (Natural Exponential Decay)余弦衰减 (Cosine Decay) 6.7.3 周期性学习率调整循环学习率 (Cyclic Learning Rate) 6.7.4 带热重启的随机梯度下降 (Stochastic Gradient Descent with Warm Restart)带热重启的余弦衰减 6.7.5 其他学习率调整方法6.7.6 自适应调整学习率 6.8 其他算法6.8.1 信赖域算法6.8.2 坐标轴交替下降算法6.8.3 Sophia 算法 7. 模型评估7.1 模型容量7.2 ‌‌拟合能力7.3 泛化能力7.3.1 交叉验证K折交叉验证数据集划分 7.3.2 没有免费午餐定理 7.3 机器学习准则7.3.1 期望风险7.3.2 经验风险7.3.3 结构风险7.3.4 总结 7.4 参数范数正则化7.4.1 L1正则化权值稀疏7.4.2 L2正则化权重衰减 假设 w ⃗ ∗ [ w 1 w 2 ] \vec{w}^{*}\begin{bmatrix} w_1 \\ w_2 \end{bmatrix} w ∗[w1​w2​​]已知 ∇ w ∗ J ( w ⃗ ∗ ) 0 \nabla_{{w}^{*}}J(\vec{w}^{*})0 ∇w∗​J(w ∗)0即 ∂ J ∂ w 1 ∂ J ∂ w 2 0 \frac{\partial J}{\partial w_1}\frac{\partial J}{\partial w_2}0 ∂w1​∂J​∂w2​∂J​0可得 $ \frac{\partial^2J}{\partial w_1\partial w_2} \frac{\partial^2J}{\partial w_2\partial w_1}0$ $$ H \begin{bmatrix} \frac{\partial^2J}{\partial w^2_1} \frac{\partial^2J}{\partial w_1\partial w_2} \\ \frac{\partial^2J}{\partial w_2\partial w_1} \frac{\partial^2J}{\partial w^2_2} \end{bmatrix}7.4.3 弹性网络正则化 7.5 提前停止7.6 Dropout 丢弃法7.7 数据增强7.8 标签平滑7.9 模型超参数选择7.9.1 手动调整超参数7.9.3 网格搜索7.9.4 随机搜索7.9.5 贝叶斯搜索时序模型优化 7.9.6 动态资源分布7.9.7 神经架构搜索 8. 机器学习范式8.1 监督学习8.2 无监督学习8.3 强化学习8.4 其他范式 6. 反向传播 好的学习工具https://distill.pun/2017/momentum 前向传播计算误差找到差距 反向传播缩短差距 反向传播传递偏差信息“贡献”程度思想 → 哪种输入特征对输出帮助较大 6.1 梯度下降法 6.1.1 线搜索方法 线搜索一种寻找目标函数 f : R n → R f: \mathbb{R}^n \rightarrow \mathbb{R} f:Rn→R的局部最小值的近似方法。 线搜索近似首先找到一个使目标函数 f f f下降的方向然后计算 x x x应沿着这个方向移动的步长。 下降方向可通过多种方法计算梯度下降法、牛顿法、拟牛顿法 等。 线搜索准则Armijo准则、Goldstein准则、Wolfe准则、非单调线搜索准则 (Grippo准则) 6.1.2 微分 导数 假设存在函数 f : R → R f: \mathbb{R} \rightarrow \mathbb{R} f:R→R其输入和输出均为标量。设 y f ( x ) y f(x) yf(x)若其导数存在则 f ′ ( x ) d y d x d f ( x ) d x lim ⁡ h → 0 f ( x h ) − f ( x ) h f(x)\frac{d y}{d x}\frac{d f(x)}{d x}\lim_{h \rightarrow 0} \frac{f(xh)-f(x)}{h} f′(x)dxdy​dxdf(x)​h→0lim​hf(xh)−f(x)​ 若 f ′ ( a ) f(a) f′(a)存在则称f在a处可微differentiable 6.1.3 偏导数 偏导数多元函数在某一点上针对某个变量所求的导数。 对于函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2,\dots,x_n) f(x1​,x2​,…,xn​)它的偏导数可以表示为 ∂ f ∂ x i \frac{\partial f}{\partial x_i} ∂xi​∂f​其中 ∂ \partial ∂表示偏导符号 f f f表示函数 x i x_i xi​表示自变量。 偏导数计算方法与一元函数导数类似只需将其他变量视为常数对某个变量求导即可。 在深度学习中通常需要用到多变量将导数思想推广至多元函数Multivariate Function 假设存在函数 f : R n → R f: \mathbb{R}^n \rightarrow \mathbb{R} f:Rn→R其输入是一个 n n n维向量 x ⃗ [ x 1 x 2 ⋮ x n ] \vec{x}\begin{bmatrix}x_1\\x_2\\ \vdots \\x_n\end{bmatrix} x ​x1​x2​⋮xn​​ ​其输出是一个标量。 设 y f ( x 1 , x 2 , ⋯ , x n ) y f(x_1,x_2,\cdots,x_n) yf(x1​,x2​,⋯,xn​)则y关于第i个参数 x i x_i xi​的偏导数Partial Derivative为 ∂ y ∂ x i lim ⁡ h → 0 f ( x 1 , ⋯ , x i − 1 , x i h , x i 1 , ⋯ , x n ) − f ( x 1 , ⋯ , x i , ⋯ , x n ) h \frac{\partial y}{\partial x_i}\lim_{h→0} \frac{f(x_1, \cdots, x_{i-1}, x_ih,x_{i1},\cdots, x_n)-f(x_1,\cdots,x_i,\cdots,x_n)}{h} ∂xi​∂y​h→0lim​hf(x1​,⋯,xi−1​,xi​h,xi1​,⋯,xn​)−f(x1​,⋯,xi​,⋯,xn​)​ 6.1.4 Jacobian矩阵 Jacobian矩阵中文译名为雅可比矩阵。 假设存在函数 f : R n → R m \boldsymbol{f}:\mathbb{R^n}→\mathbb{R^m} f:Rn→Rm其由多个函数组成 f [ f 1 ( x 1 , x 2 , ⋯ , x n ) f 2 ( x 1 , x 2 , ⋯ , x n ) ⋮ f m ( x 1 , x 2 , ⋯ , x n ) ] \boldsymbol{f} \begin{bmatrix} f_{1}(x_1, x_2, \cdots, x_n)\\ f_{2}(x_1, x_2, \cdots, x_n)\\ \vdots \\ f_{m}(x_1, x_2, \cdots, x_n)\\ \end{bmatrix} f ​f1​(x1​,x2​,⋯,xn​)f2​(x1​,x2​,⋯,xn​)⋮fm​(x1​,x2​,⋯,xn​)​ ​ 其雅可比矩阵定义为 J ( f ) [ ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 ⋯ ∂ f 1 ∂ x n ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 ⋯ ∂ f 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ f n ∂ x 1 ∂ f n ∂ x 2 ⋯ ∂ f n ∂ x n ] J(\boldsymbol{f}) \begin{bmatrix} \frac{\partial f_1}{\partial x_1} \frac{\partial f_1}{\partial x_2} \cdots \frac{\partial f_1}{\partial x_n} \\ \frac{\partial f_2}{\partial x_1} \frac{\partial f_2}{\partial x_2} \cdots \frac{\partial f_2}{\partial x_n} \\ \vdots \vdots \ddots \vdots \\ \frac{\partial f_n}{\partial x_1} \frac{\partial f_n}{\partial x_2} \cdots \frac{\partial f_n}{\partial x_n} \end{bmatrix} J(f) ​∂x1​∂f1​​∂x1​∂f2​​⋮∂x1​∂fn​​​∂x2​∂f1​​∂x2​∂f2​​⋮∂x2​∂fn​​​⋯⋯⋱⋯​∂xn​∂f1​​∂xn​∂f2​​⋮∂xn​∂fn​​​ ​ 6.1.5 梯度 梯度下降法 假设存在函数 f : R n → R f: \mathbb{R}^n \rightarrow \mathbb{R} f:Rn→R其输入是一个 n n n维向量 x ⃗ [ x 1 x 2 ⋮ x n ] \vec{x}\begin{bmatrix}x_1\\x_2\\ \vdots \\x_n\end{bmatrix} x ​x1​x2​⋮xn​​ ​其输出是一个标量。 函数 f ( x ⃗ ) f(\vec{x}) f(x )相对于 x ⃗ \vec{x} x 的梯度是一个包含 n n n个偏导数的向量 g x ∇ x f ( x ⃗ ) [ ∂ f ( x ⃗ ) ∂ x 1 , ∂ f ( x ⃗ ) ∂ x 2 , ⋯ , ∂ f ( x ⃗ ) ∂ x n ] g_x\nabla_x f(\vec{x})[\frac{\partial f(\vec{x})}{\partial x_1},\frac{\partial f(\vec{x})}{\partial x_2},\cdots,\frac{\partial f(\vec{x})}{\partial x_n}] gx​∇x​f(x )[∂x1​∂f(x )​,∂x2​∂f(x )​,⋯,∂xn​∂f(x )​] 梯度下降法/最速下降法 - 核心思想梯度方向是函数值增长最快的方向反之负梯度方向是函数值减少最快的方向。 按维度介绍 一维情况 假设存在函数 f : R → R f: \mathbb{R} \rightarrow \mathbb{R} f:R→R其输入和输出均为标量则梯度坍缩为导数。 ∇ x f ( x ) d f ( x ) d x \nabla_x f(x)\frac{d f(x)}{d x} ∇x​f(x)dxdf(x)​ 根据图像可判断梯度(导数)正负也可根据梯度下降法核心思想求得该函数最小值 二维情况 假设存在函数 f : R 2 → R f: \mathbb{R}^2 \rightarrow \mathbb{R} f:R2→R其输入是一个 2 2 2维向量 x ⃗ [ x 1 x 2 ] \vec{x}\begin{bmatrix}x_1\\x_2\end{bmatrix} x [x1​x2​​]其输出是一个标量。 根据梯度下降法核心思想同样可求得该函数最小值 使用梯度下降法前提曲面光滑 6.1.6 面临挑战 平原现象 振荡现象 平原现象梯度绝对值小 → 参数几乎不更新 振荡现象在最优解处来回振荡 → 难收敛 / 不收敛 产生原因随机梯度下降 / 小批量梯度下降 循环轮次样本不同→梯度方向不同无法持续同向下降。 二维也同样存在振荡现象 局部最小值 ‌局部最小值是指在某一区域内函数的取值达到了最小值但这个最小值不一定是全局的最小值。 ‌具体来说如果一个函数在一个小区间内的取值都比该区间内的其他取值要小那么该点就被称为局部最小值。 局部最小值与全局最小值的关系 全局最小值是在定义域内函数的取值最小而局部最小值是在某一区域内函数的取值最小。全局最小值一定是局部最小值但反之不一定成立。这意味着如果一个点是全局最小值那么它必然是某个区域的局部最小值但一个局部最小值点不一定是全局最小值点。 局部最小值的数学条件 在数学上判断一个点是否是局部最小值通常需要满足一定的条件。对于多元函数如果函数在某点存在偏导数且在该点取得极值则该点称为稳定点。进一步地如果该点的黑塞矩阵在这一点是正定矩阵则函数在该点取得极小值如果是负定矩阵则取得极大值如果是不定矩阵则不取极值。 复杂损失函数图像 注意 训练中出现局部最小值不一定是坏事神经网络损失的优化过程中会出现很多最小值好的局部最小值与全局最小值一样好。 如果一个局部极小值对应着 0.7—0.8 的正确标签分数而全局最小值能够产生 0.95-0.98 的正确标签分数那么两者输出的预测标签结果将是相同的。 最小值的一个理想属性是它应该在平坦的一面。因为平坦的最小值很容易收敛到而且越过最小值或者在最小值的脊梁之间跳跃的可能性更小。 更重要的是我们期望测试集的损失曲面与我们训练的训练集的损失曲面略有不同。对处于平坦又较宽处的极小值由于这种变化损失不会有太大变化但处于相对较窄处的极小值不是这样。我们要指出的一点是更平坦处的最小值能够更好地泛化因此是可取的。 鞍点 鞍点得名于它的形状类似于马鞍。尽管它在 x 方向上是一个最小值点但是它在另一个方向上是局部最大值点并且如果它沿着 x 方向变得更平坦的话梯度下降会在 x 轴振荡并且不能继续根据 y 轴下降这就会给我们一种已经收敛到最小值点的错觉。 梯度消失 在‌深度神经网络中梯度在反向传播过程中逐渐变小并最终趋近于零的现象。这导致较浅层的网络参数更新缓慢难以有效学习和收敛。 原因 ‌激活函数的选择‌某些激活函数如Sigmoid、Tanh在输入较大或较小的情况下梯度会非常接近于零从而导致梯度消失。‌权重初始化‌如果网络的权重初始化过大或过小会导致梯度消失问题。‌深层网络结构‌深层网络中梯度需要通过多个层传播每一层都会引入一定的误差这些误差会累积导致梯度消失。 解决方法 为了解决梯度消失问题可以采取以下方法 ‌使用合适的激活函数 ‌‌ReLU(Rectified Linear Unit) 是一种常用的激活函数它在输入大于零时梯度为1避免了梯度消失的问题。‌适当的权重初始化方法‌ 如Xavier初始化、He初始化等可以使得网络的权重在初始化时不会过大或过小。‌批标准化‌ 批标准化可以使得网络输入的分布更加稳定有助于减少梯度消失的问题。‌残差连接‌ 通过将前一层的输出与后续层的输入相加可以更容易地进行优化和训练深层网络。‌使用合适的优化算法 ‌如‌Adam、‌RMSprop等可以自适应地调整学习率从而减少梯度消失的问题。 梯度爆炸 在深度学习训练过程中梯度在反向传播过程中呈指数级增长导致网络权重大幅更新从而使模型变得不稳定。梯度爆炸的原因主要包括网络层次过深、激活函数选择不当如sigmoid函数以及权重初始化不当等。‌ 原因 ‌网络层次过深‌在深层网络中梯度在反向传播过程中会进行多次连乘操作当连乘的因子大于1时梯度会迅速增长导致梯度爆炸。‌激活函数选择不当‌使用sigmoid等饱和函数作为激活函数时其导数在0附近取值较小导致梯度在反向传播过程中迅速衰减或爆炸。‌权重初始化不当‌不合理的权重初始化方法会导致网络在训练初期权值过大或过小从而引发梯度爆炸或消失。 解决方法 ‌权重衰减‌通过给参数增加L1或L2范数的正则化项来限制参数的取值范围防止权重过大。‌梯度截断‌当梯度的模大于一定阈值时将其截断为一个较小的数以防止梯度爆炸。‌合理的权重初始化‌使用合适的权重初始化方法如Xavier初始化、He初始化避免初始权重过大或过小。‌使用合适的激活函数‌使用ReLU、‌LeakyReLU等激活函数这些函数在正数区域的导数为1有助于缓解梯度消失问题。‌梯度裁剪‌限制梯度的最大值防止梯度爆炸。 6.1.7 方向导数 方向导数多元函数在某一点上沿着某个方向的变化率。 对于函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2,\dots,x_n) f(x1​,x2​,…,xn​)它的方向导数可以表示为 ∇ f ⋅ u \nabla f \cdot u ∇f⋅u其中 ∇ f \nabla f ∇f表示函数 f f f的梯度 u u u表示方向向量。 方向导数的计算方法通过梯度向量和方向向量的点积实现。梯度向量 ∇ f \nabla f ∇f表示函数在某一点上变化率最大的方向。 方向导数可做参考仅作补充内容。 标准梯度下降法缺点 计算量大梯度爆炸 / 梯度消失 对标准梯度下降法的优化思路如下所示 调整神经网络结构池化层、Dropout更换反向传播算法 减少每次训练计算量 随机梯度下降法小批量梯度下降法 优化下降路径更少步数 更快抵达极值点 梯度方向优化 二阶梯度牛顿法 → 拟牛顿法一阶梯度动量法、Nesterov法梯度截断按值截断、按模截断解决 梯度爆炸 学习率衰减 固定逆时衰减、指数衰减、自然指数衰减自适应AdaGrad → RMSprop、AdaDelta 二者结合 Adam、Nadam 随机梯度下降法 核心思想随机抽取 一个数据 代表整体用以计算优化网络参数值 期望摆脱样本具体数据代表样本总体的值抽样思想抽样以获取平均数据抽样越多越准确凸问题 f ( x ( k ) ) − f ∗ o ( 1 k ) f(x(k))-f^*o(\frac{1}{\sqrt{k}}) f(x(k))−f∗o(k ​1​)其中 f ∗ f^* f∗为凸问题极值点 k k k为迭代次数 o o o表示时间复杂度渐近符 o ( 1 k ) o(\frac{1}{\sqrt{k}}) o(k ​1​)表示误差量级 1 k \frac{1}{\sqrt{k}} k ​1​。强凸问题 f ( x ( k ) ) − f ∗ o ( 1 k ) f(x(k))-f^*o(\frac{1}{k}) f(x(k))−f∗o(k1​)强凸问题比凸问题 收敛更快减少计算资源占用 小批量梯度下降法 核心思想随机抽取 一组数据 代表整体用以计算优化网络参数值 更具代表性抽样越多越准确减少计算资源占用训练过程更加稳定高效‌ 梯度下降法优化树 6.2 牛顿法 ‌牛顿法 (Newton’s method)牛顿-拉夫逊方法 (Newton-Raphson method)一种在实数域和复数域上近似求解方程的方法。其基本思想是通过迭代的方式利用函数的‌泰勒展开式将非线性方程逐步线性化并通过求解线性方程来不断逼近真实解。‌ 可通过一维变量理解梯度下降法相比于牛顿法步长与最优方向偏差大而相切二次抛物线比切线更接近原本曲线故牛顿法有时相较于梯度下降法具有优势。 过程假设存在多元函数 f ( x ⃗ ) f(\vec{x}) f(x )对 f ( x ⃗ ) f(\vec{x}) f(x )泰勒展开保留到二阶导数下面简化为 x x x f ( x ) ≈ f ( x ( t ) ) g k ⊤ ( x ( t ) ) ( x − x ( t ) ) 1 2 H ( x ( t ) ) ( x − x ( t ) ) 2 f(x)\approx f(x^{(t)})g^\top_k(x^{(t)})(x-x^{(t)})\frac{1}{2}H(x^{(t)})(x-x^{(t)})^2 f(x)≈f(x(t))gk⊤​(x(t))(x−x(t))21​H(x(t))(x−x(t))2 其中 g k g ( x ( t ) ) ∇ f ( x ( t ) ) g_kg(x^{(t)})\nabla f(x^{(t)}) gk​g(x(t))∇f(x(t))是 f ( x ) f(x) f(x)的梯度向量在点 x ( t ) x^{(t)} x(t)的值 H ( x ( t ) ) H(x^{(t)}) H(x(t))是 f ( x ) f(x) f(x)的Hessian矩阵在点 x ( t ) x^{(t)} x(t)。 极小值必要条件 ∇ f ( x ) 0 \nabla f(x)0 ∇f(x)0 假设从点xk开始求目标函数的极小点假设xk1满足 ∇ f ( x ( t 1 ) ) 0 \nabla f(x^{(t1)})0 ∇f(x(t1))0 由泰勒展开可得 ∇ f ( x ) g k h k ( x − x ( t ) ) \nabla f(x)g_kh_k(x-x^{(t)}) ∇f(x)gk​hk​(x−x(t)) 其中 H k H ( x ( k ) ) H_kH(x^{(k)}) Hk​H(x(k))则 g k H k ( x ( t 1 ) − x ( t ) ) 0 g_kH_k(x^{(t1)}-x^{(t)})0 gk​Hk​(x(t1)−x(t))0 因此 x ( t 1 ) x ( t ) − H k − 1 g k x^{(t1)}x^{(t)}-H^{-1}_kg_k x(t1)x(t)−Hk−1​gk​ 从一元函数看 f ( x ) f(x) f(x)泰勒展开保留到二阶导 f ( x ) ≈ f ( x ( t ) ) f ′ ( x ( t ) ) ( x − x ( t ) ) 1 2 f ′ ′ ( x ( t ) ) ( x − x ( t ) ) 2 f(x)\approx f(x^{(t)})f(x^{(t)})(x-x^{(t)})\frac{1}{2}f(x^{(t)})(x-x^{(t)})^2 f(x)≈f(x(t))f′(x(t))(x−x(t))21​f′′(x(t))(x−x(t))2 f ( x ) f(x) f(x)求极值令 f ′ ( x ) 0 f(x)0 f′(x)0 f ′ ( x ) f ′ ( x ( t ) ) f ′ ′ ( x ( t ) ) ( x − x ( t ) ) 0 x ( t 1 ) x ( t ) − f ′ ( x ( t ) ) f ′ ′ ( x ( t ) ) f(x)f(x^{(t)})f(x^{(t)})(x-x^{(t)})0 \\ x^{(t1)}x^{(t)}-\frac{f(x^{(t)})}{f(x^{(t)})} f′(x)f′(x(t))f′′(x(t))(x−x(t))0x(t1)x(t)−f′′(x(t))f′(x(t))​ 由此可得牛顿法权重更新迭代公式为 W t ← W t − 1 − α H − 1 g W t − 1 − α H − 1 ∇ x f ( x ) W_t \leftarrow W_{t-1} - \alpha H^{-1} g W_{t-1} - \alpha H^{-1} \nabla_x f(x) Wt​←Wt−1​−αH−1gWt−1​−αH−1∇x​f(x) 将牛顿法与其他优化方法比对并绘制图像可得 其中灰色 最优路径橙色折线 梯度下降法绿色抛物线 牛顿法。 用途近似值 → 最优化 缺点计算量大更偏向于理论其实用性不强 补充资料 收敛性和应用场景 牛顿法具有局部二阶收敛性即每次迭代都能以平方的速度收敛到真实解。然而牛顿法对初始值的选取较为敏感且需要函数在求解点有定义且导数不为零。因此牛顿法常用于求解优化问题、非线性方程组等问题。 改进方法和局限性 为了克服牛顿法的局限性可以采用一些改进方法如引入‌下山因子以保证全局收敛性或者使用‌割线法代替切线法以减少对导数的依赖。此外对于重根问题可以通过调整迭代公式来避免陷入局部极值。‌ 6.3 拟牛顿法 拟牛顿法(Quasi-Newton Methods)是一种用于求解非线性优化问题的算法它基于牛顿法的思想但不需要计算目标函数的二阶导数矩阵(Hessian矩阵)以减少牛顿法的计算量。 拟牛顿法通过迭代的方式逐步逼近最优解每次迭代中构造一个近似Hessian矩阵或其逆矩阵的正定对称矩阵用该矩阵进行牛顿法的迭代。 核心思想满足 拟牛顿条件并构建一个 正定对称矩阵 近似Hessian矩阵 H H H 或其逆矩阵 H − 1 H^{-1} H−1。 **常见 拟牛顿法算法 ** BFGS法一种经典的拟牛顿法具有较好的数值稳定性和收敛性。它通过迭代更新一个近似Hessian矩阵的逆矩阵从而避免直接计算Hessian矩阵的逆。DFP法一种秩2拟牛顿法由Davidona、Fletchera和Powella三人提出。它通过迭代更新一个秩2的矩阵来近似Hessian矩阵的逆矩阵。Broyden族方法Broyden族方法是一类更广泛的拟牛顿法包括BFGS和DFP方法它们都可以看作是Broyden族方法的特殊形式。 优缺点 优点拟牛顿法不需要计算Hessian矩阵的逆从而大大减少了计算量提高了算法的效率。此外拟牛顿法通常具有较好的收敛性和数值稳定性。 缺点拟牛顿法对初始点的选择较为敏感且在某些情况下可能陷入局部最优解。此外算法的收敛速度和稳定性也受到近似矩阵构造方法的影响。 拟牛顿条件 迭代过程中记 y t g ( t 1 ) − g ( t ) y_tg^{(t1)}-g^{(t)} yt​g(t1)−g(t) δ t x ( t 1 ) x ( t ) \delta_tx^{(t1)}x^{(t)} δt​x(t1)x(t)则 y t H t δ t y_tH_t\delta_t yt​Ht​δt​ 或 H − 1 y t δ t H^{-1}y_t\delta_t H−1yt​δt​ 拟牛顿法将 G t G_t Gt​或 B t B_t Bt​作为 H t − 1 H^{-1}_t Ht−1​或 H t H_t Ht​的近似要求矩阵 G t G_t Gt​或 B t B_t Bt​满足同样的条件。 6.3.1 DFP算法 核心思想拟牛顿条件 正定对称矩阵 G G G 近似 H − 1 H^{-1} H−1 用 G t G_t Gt​近似Hessian矩阵此时拟牛顿条件 G t 1 y t δ t G_{t1}y_t\delta_t Gt1​yt​δt​ 引入附加矩阵 G t 1 G t P t Q t G_{t1}G_tP_tQ_t Gt1​Gt​Pt​Qt​ 其中 P t P_t Pt​和 Q t Q_t Qt​为待定矩阵此时 G t 1 y t G t y t P t y t Q t y t G_{t1}y_tG_t y_tP_t y_tQ_t y_t Gt1​yt​Gt​yt​Pt​yt​Qt​yt​ 为满足拟牛顿条件当 P t P_t Pt​和 Q t Q_t Qt​取值满足如下式子时才可配平公式 P t y t δ t Q t y t − G k y t P_t y_t\delta_t \\ Q_t y_t-G_ky_t Pt​yt​δt​Qt​yt​−Gk​yt​ 可找到满足以上条件的取值 P t δ t δ t ⊤ δ t ⊤ y t P_t\frac{\delta_t\delta_t^{\top}}{\delta_t^{\top}y_t} Pt​δt⊤​yt​δt​δt⊤​​ Q t − G t y t y t ⊤ G t y t ⊤ G t y t Q_t-\frac{G_t y_t y_t^\top G_t}{y_t^\top G_t y_t} Qt​−yt⊤​Gt​yt​Gt​yt​yt⊤​Gt​​ 这样就得到矩阵 G t 1 G_{t1} Gt1​的迭代公式 G t 1 G δ t δ t ⊤ δ t ⊤ y t − G t y t y t ⊤ G t y t ⊤ G t y t G_{t1}G\frac{\delta_t\delta_t^{\top}}{\delta_t^\top y_t}-\frac{G_t y_t y_t^\top G_t}{y_t^\top G_t y_t} Gt1​Gδt⊤​yt​δt​δt⊤​​−yt⊤​Gt​yt​Gt​yt​yt⊤​Gt​​ 可以证明若初始矩阵 G 0 G_0 G0​正定则迭代过程中 G t G_t Gt​均正定。 6.3.2 BFGS算法 核心思想拟牛顿条件 正定对称矩阵 B B B 近似 H H H 用 B t B_t Bt​近似Hessian矩阵此时拟牛顿条件 B t 1 δ k y t B_{t1}\delta_ky_t Bt1​δk​yt​ 引入附加矩阵 B t 1 G t P t Q t B_{t1}G_tP_tQ_t Bt1​Gt​Pt​Qt​ 其中 P t P_t Pt​和 Q t Q_t Qt​为待定矩阵此时 B t 1 δ t B t δ t P t δ t Q t δ t B_{t1}\delta_tB_t\delta_tP_t\delta_tQ_t\delta_t Bt1​δt​Bt​δt​Pt​δt​Qt​δt​ 为满足拟牛顿条件当 P t P_t Pt​和 Q t Q_t Qt​取值满足如下式子时才可配平公式 P t δ t y t Q t δ t − G t δ t P_t\delta_ty_t \\ Q_t\delta_t-G_t\delta_t Pt​δt​yt​Qt​δt​−Gt​δt​ 可找到满足以上条件的取值 P t y t y t ⊤ y t ⊤ δ t P_t\frac{y_t y_t^{\top}}{y_t^{\top}\delta_t} Pt​yt⊤​δt​yt​yt⊤​​ Q t − B t δ t δ t ⊤ B t δ t ⊤ B t δ t Q_t-\frac{B_t\delta_t\delta_t^\top B_t}{\delta_t^\top B_t \delta_t} Qt​−δt⊤​Bt​δt​Bt​δt​δt⊤​Bt​​ 这样就得到矩阵 B t 1 B_{t1} Bt1​的迭代公式 B t 1 B y t y t ⊤ y t ⊤ y t − B t δ t δ t ⊤ B t δ t ⊤ B t δ t B_{t1}B\frac{y_t y_t^{\top}}{y_t^\top y_t}-\frac{B_t \delta_t \delta_t^\top B_t}{\delta_t^\top B_t \delta_t} Bt1​Byt⊤​yt​yt​yt⊤​​−δt⊤​Bt​δt​Bt​δt​δt⊤​Bt​​ 可以证明若初始矩阵 B 0 B_0 B0​正定则迭代过程中 B t B_t Bt​均正定。 此外L-BGFS 算法也是一种拟牛顿法其通过保存有限的历史迭代信息来近似Hessian矩阵。 6.3.3 Broyden族方法 根据BDFS算法由 Sherman-Morrison公式推导得到。 Sherman-Morrison公式 ( A u ⃗ v ⃗ ⊤ ) − 1 A − 1 − A − 1 u ⃗ v ⃗ ⊤ A − 1 1 v ⃗ ⊤ A − 1 u ⃗ (A\vec{u}\vec{v}^{\top})^{-1}A^{-1}-\frac{A^{-1}\vec{u}\vec{v}^{\top}A^{-1}}{1\vec{v}^{\top}A^{-1}\vec{u}} (Au v ⊤)−1A−1−1v ⊤A−1u A−1u v ⊤A−1​ 由DFP算法和BFGS算法 G t G_t Gt​各自迭代公式得到的 G t 1 G_{t1} Gt1​分别记作 G D F P G^{DFP} GDFP和 G B F G S G^{BFGS} GBFGS其均满足拟牛顿条件故其线性组合 G k 1 α G D F P ( 1 − α ) G B F G S G_{k1}\alpha G^{DFP}(1-\alpha)G^{BFGS} Gk1​αGDFP(1−α)GBFGS 也满足拟牛顿条件且正定。其中 0 ≤ α ≤ 1 0\le\alpha\le1 0≤α≤1这样就得到了一类拟牛顿法称为Broyden族方法。 6.4 ‌‌共轭梯度法 基本概念 共轭梯度法 (Conjugate Gradient)一种介于 梯度下降法 与 牛顿法 之间的优化算法。它利用目标函数的梯度逐步产生共轭方向这些共轭方向在某种内积下正交通过当前点处的负梯度与上次迭代的搜索方向组合来构造。共轭梯度法最早由‌Hestenes和‌Stiefel在1952年提出主要用于求解无约束优化问题和大型线性方程组。 原理 共轭梯度法的原理基于目标函数的梯度和共轭方向。在每次迭代中算法通过当前点处的负梯度与上次迭代的搜索方向组合来构造新的搜索方向。这些搜索方向在某种内积下正交使得算法能够快速收敛。具体步骤包括从初始点开始计算当前点的残差然后根据残差和上次的搜索方向确定新的搜索方向。沿着这个方向进行一维搜索找到最优步长并更新解。重复这个过程直到满足收敛条件。 应用 共轭梯度法广泛应用于线性方程组求解、无约束优化问题以及偏微分方程数值解法等领域。它特别适用于解决大型线性方程组因为其存储量小、计算成本低且稳定性高。此外共轭梯度法还可以用于求解无约束优化问题通过将优化问题转化为线性方程组问题来解决。 优缺点 优点 收敛速度快共轭梯度法能够在较少的迭代次数内达到收敛。存储量小不需要存储和计算Hesse矩阵并求逆。计算成本低每次迭代只需进行一维搜索计算量较小。稳定性高算法具有较好的稳定性和可靠性。 缺点 适用范围有限主要适用于正定系数矩阵的线性方程组和无约束优化问题。对于非正定或不定系数矩阵的问题可能不适用。 6.5 动量相关算法 6.5.1 动量法 动量法 (Momentum)一种优化算法旨在加速梯度下降法的收敛尤其是在存在高曲率、嘈杂梯度或小但一致梯度的情况下。 动量法通过引入动量概念使得参数更新不仅依赖于当前的梯度还考虑之前梯度的累计效果从而加速收敛并减少参数更新时的震荡(振荡)。 原理 核心思想引入一个动量项 (velocity)记录历史梯度信息并让其共同决定每次参数更新。动量法的更新公式如下 动量更新 v t β v t − 1 ( 1 − β ) ∇ w J ( w ) v_t\beta v_{t-1}(1-\beta) \nabla_w J(w) vt​βvt−1​(1−β)∇w​J(w) 其中 v t v_t vt​为第 t t t次迭代的动量项 β ∈ [ 0 , 1 ] \beta \in [0,1] β∈[0,1]为动量超参数控制历史梯度的修正影响程度 ∇ w J ( w ) \nabla_w J(w) ∇w​J(w)为损失函数 J ( w ) J(w) J(w)对参数 w w w的梯度。 参数更新 w t ← w t − 1 − α v t w_t \leftarrow w_{t-1}-\alpha v_t wt​←wt−1​−αvt​ 其中 θ \theta θ为模型参数 α \alpha α为学习率控制每次更新的步长。 原理解析 以二元函数优化为例绘制函数等高线函数数值随着等高圆半径的减少而减少。 通过分析可发现拆分下降路径维度优化过程中纵轴方向存在振荡现象而横轴可帮助抵达最小值点。 解决方法减弱纵轴分量、加强横轴分量 核心思想利用历史梯度数据修正分量 动量对梯度进行修正具体体现纵轴相反抵消减弱、横轴相同促进加强 解析图像 实线优化算法 粉色实线梯度下降法绿色实线动量法 虚线分量 粉色虚线梯度下降法纵轴分量 → 需要被削弱绿色虚线梯度下降法横轴分量 → 需要被加强紫色虚线动量法两轴分量 → 修正后的分量 黑色椭圆线函数等高线 → 椭圆半径越小 函数值越小红点函数最小值点 由于过远的历史数据与当前历史数据相差较大没有参考价值故而进行加权求和 (指数加权移动平均法)时间越久远则权重越小反之越大。 具体表现动量超参数(影响因子) β ∈ [ 0 , 1 ] \beta \in [0,1] β∈[0,1]控制历史梯度的修正影响程度。 例如令 β 0.9 \beta0.9 β0.9计算第 t t t次迭代时权重更新的动量 v t 0.1 ⋅ 0. 9 0 ( ∇ w J ( w ) ) t 0.1 ⋅ 0. 9 1 ( ∇ w J ( w ) ) t − 1 0.1 ⋅ 0. 9 2 ( ∇ w J ( w ) ) t − 2 ⋯ 0.1 ⋅ 0. 9 t − 1 ( ∇ w J ( w ) ) 1 v_t 0.1\cdot 0.9^0 (\nabla_w J(w))_{t}0.1\cdot 0.9^1 (\nabla_w J(w))_{t-1}0.1\cdot 0.9^2 (\nabla_w J(w))_{t-2}\cdots0.1\cdot 0.9^{t-1} (\nabla_w J(w))_{1} vt​0.1⋅0.90(∇w​J(w))t​0.1⋅0.91(∇w​J(w))t−1​0.1⋅0.92(∇w​J(w))t−2​⋯0.1⋅0.9t−1(∇w​J(w))1​ 历史梯度的影响程度将随着 t t t的增加而减少逐渐不再对梯度修正起主要作用。即距离当前越远对当前影响越小。 6.5.2 Nesterov动量法 ‌Nesterov加速梯度下降法 (Nesterov Accelerated Gradient, NAG)一种改进的梯度下降算法通过引入动量项并预测参数的未来位置来更新显著提高了收敛速度和优化性能。其基本思想是在计算当前梯度之前先根据动量项对参数进行一步预测更新这种“前瞻”的方式使得算法能够更智能地选择更新方向特别是在遇到“陡峭”的梯度变化时能够提前调整步伐避免过度冲动。该与牛顿法无关。 核心思想超前考虑未来数据 → 当前动量先对权重求梯度预先获知下一步更新方向。 图像解析 红色箭头修正后 动量 ( 1 − β ) (1-\beta) (1−β)影响项绿色箭头 t − 1 t-1 t−1时刻动量 V t − 1 V_{t-1} Vt−1​细橙色箭头动量 ( 1 − β ) (1-\beta) (1−β)影响项透明橙色箭头梯度下降法粗橙色箭头Nesterov方法 Nesterov动量法公式 v t β v t − 1 ( 1 − β ) ∇ w J ( w γ v t − 1 ) w t ← w t − 1 − α v t v_t\beta v_{t-1}(1-\beta) \nabla_w J(w\gamma v_{t-1}) \\ w_t \leftarrow w_{t-1}-\alpha v_t vt​βvt−1​(1−β)∇w​J(wγvt−1​)wt​←wt−1​−αvt​ 6.6. 自适应学习率算法 6.6.1 AdaGrad算法 Adagrad通过自适应地调整学习率使得每个参教都有自己的学习率从而在训练过程中能够更好地处理稀疏数据和高维度数据。 在Adagrad算法中如果某个参数的偏导数累积比较大其学习率相对较小相反如果其偏导数累积较小其学习率相对较大。但整体是随着迭代次数的增加学习率逐渐缩小。 核心思想靠历史数据修正学习率 AdaGrad方法公式 W t ← W t − 1 − α S t ε ⋅ ∇ w J ( w ) S t S t − 1 ∇ w J ( w ) ⋅ ∇ w J ( w ) W_t \leftarrow W_{t-1} - \frac{\alpha}{\sqrt{S_t}\varepsilon} \cdot \nabla_w J(w) \\ S_tS_{t-1}\nabla_w J(w)\cdot\nabla_w J(w) Wt​←Wt−1​−St​ ​εα​⋅∇w​J(w)St​St−1​∇w​J(w)⋅∇w​J(w) 其中 S t S_t St​为第 t t t次迭代影响因子 ε \varepsilon ε为非常小的正数如 1 0 − 6 10^{-6} 10−6 ∇ w J ( w ) \nabla_w J(w) ∇w​J(w)为损失函数 J ( w ) J(w) J(w)对参数 w w w的梯度。 AdaGrad方法具有 延迟满足特性 Ada自适应 Grad梯度 在稀疏数据训练效果好 考虑维度 → 考虑特征 靠近末端的感知机代表各种人类不能直接理解的特征 学习率调整大小 → 对某一特征调整的大小学习率调整大→对这一特征调整比较大 稀疏数据依赖特征本身不同而非特征程度不同 稀疏数据某一维度/某一特征提供数据不够充分 → 梯度下降 → 震荡 AdaGrad可以减少这样的震荡 随着维度增加遇到稀疏数据的可能性越来越高 AdaGrad还需进行优化 AdaGrad遇到这种情况 → 存在问题考虑了所有历史上数据红线 所以出现了RMSprop算法。 6.6.2 RMSprop算法 RMSprop (Root Mean Square Propagation)一种常用的优化算法它是对AdaGrad优化器的一种改进旨在解决AdaGrad中学习率过快下降的问题。 对AdaGrad的改进学习率修正 S t S_t St​的计算 由累积方式 改用 指数加权移动平均法。 核心思想利用历史梯度的指数加权移动平均来自适应地调整学习率。 自适应调整学习率迭代过程中每个参数的学习率并不是呈衰减趋势即可增大也可减小。 效果距当前越远对当前影响越小与动量法类似 RMSprop方法公式 W t ← W t − 1 − α S t ε ⋅ ∇ w J ( w ) S t β S t − 1 ( 1 − β ) ∇ w J ( w ) ⋅ ∇ w J ( w ) W_t \leftarrow W_{t-1} - \frac{\alpha}{\sqrt{S_t}\varepsilon} \cdot \nabla_wJ(w) \\ S_t\beta S_{t-1}(1-\beta)\nabla_wJ(w) \cdot \nabla_wJ(w) Wt​←Wt−1​−St​ ​εα​⋅∇w​J(w)St​βSt−1​(1−β)∇w​J(w)⋅∇w​J(w) 其中 S t S_t St​为第 t t t次迭代影响因子 β ∈ [ 0 , 1 ] \beta \in [0,1] β∈[0,1]为学习率超参数控制历史梯度的修正影响程度 ε \varepsilon ε为非常小的正数如 1 0 − 6 10^{-6} 10−6 ∇ w J ( w ) \nabla_w J(w) ∇w​J(w)为损失函数 J ( w ) J(w) J(w)对参数 w w w的梯度。 6.6.3 Adam算法 Adam一个鲁棒且自适应的优化策略Adam 结合了 RMSprop 和 Momentum 两种优化算法的优点通过计算梯度的一阶矩均值和二阶矩未中心化的方差来调整每个参数的学习率。这种方法使得它特别适用于处理非稳定目标函数和非常大的数据集或参数数量。 自适应调整学习率同RMSprop 该方法结合了 动量法、RMSprop兼具两者的特点。 Adam方法公式 W t ← W t − 1 − α S t ε V t β 1 v t − 1 ( 1 − β 1 ) ∇ w J ( w ) S t β 2 S t − 1 ( 1 − β 2 ) ∇ w J ( w ) ⋅ ∇ w J ( w ) W_t \leftarrow W_{t-1} - \frac{\alpha}{\sqrt{S_t}\varepsilon} \\ V_t\beta_1 v_{t-1}(1-\beta_1) \nabla_w J(w) \\ S_t\beta_2 S_{t-1}(1-\beta_2)\nabla_wJ(w) \cdot \nabla_wJ(w) Wt​←Wt−1​−St​ ​εα​Vt​β1​vt−1​(1−β1​)∇w​J(w)St​β2​St−1​(1−β2​)∇w​J(w)⋅∇w​J(w) 其中 S t S_t St​为第 t t t次迭代影响因子 β 1 ∈ [ 0 , 1 ] \beta_1 \in [0,1] β1​∈[0,1]为动量超参数控制历史梯度的修正影响程度 β ∈ [ 0 , 1 ] \beta \in [0,1] β∈[0,1]为学习率超参数控制历史梯度的修正影响程度 ∇ w J ( w ) \nabla_w J(w) ∇w​J(w)为损失函数 J ( w ) J(w) J(w)对参数 w w w的梯度。 补充AdamW 算法 AdamW 是一种改进的 Adam 优化算法它对 Adam 的权重衰减组件进行了修改使得权重衰减不再是添加到梯度上而是直接对参数进行更新。这种方法与 L2 正则化的原理更为接近通常可以带来更好的训练稳定性和泛化性能。 6.6.4 Nadam算法 Nadam结合了 Nesterov方法、RMSprop兼具两者的特点。 6.7 学习率调整 学习率是神经网络优化时至关重要的超参数其取值直接影响网络的优化速度。 常用的学习率调整方法 学习率预热学习率衰减周期性学习率调整带热重启的随机梯度下降自适应调整学习率 6.7.1 学习率预热 训练初期参数为随机初始化梯度往往较大不确定因素较多若赋予较大初始学习率可能会致使训练不稳定。 解决方法训练初期采用较小的初始学习率经一段时间训练后 (达到设定迭代次数)再恢复到设定的基础学习率这种方法被称作 学习率预热。 学习率预热 (Warm-up)训练初期逐渐增加学习率的过程以帮助模型更好地收敛至最优解。 设定初始学习率 选择较小的初始值通常为基础学习率的一小份如0.1或0.01。 Warm-up阶段长度 设定 Warm-up 迭代次数 / 训练轮次根据数据集及模型复杂度、总迭代次数进行调节。 Warm-up学习率计算方式 使用线性函数逐步增加学习率线性地增长至预设的基础学习率。 Warm-up完成 当达到Warm-up迭代次数后学习率将达到/设定为基础学习率按正常训练策略优化模型。 常用的预热策略是 逐渐预热 (Gradual Warm-up)假设预热迭代次数为 T ′ T T′初始学习率为 α 0 \alpha_0 α0​预热过程中每次更新的学习率为 α t ′ t T ′ α 0 , 1 ≤ t ≤ T ′ \alpha_t\frac{t}{T}\alpha_0 \space\space, \space 1 \leq t \leq T αt′​T′t​α0​  , 1≤t≤T′ 可能存在的问题 初始学习率过大 / Warm-up过短 模型训练不稳定 / 出现梯度爆炸 初始学习率国小 / Warm-up过长 模型训练速度过慢 6.7.2 学习率衰减 学习率衰减 (Learning Rate Decay)初期取较大值确保收敛速度中后期在收敛至最优点附近时取较小值以避免振荡现象。 分段常数衰减 (Piecewise Constant Decay) 每经过 T 1 , T 2 , … , T m T_1, T_2, \dots, T_m T1​,T2​,…,Tm​次迭代将学习率衰减为原来的 β 1 , β 2 , … , β m \beta_1, \beta_2, \dots, \beta_m β1​,β2​,…,βm​其中KaTeX parse error: Undefined control sequence: \textless at position 5: T_m \̲t̲e̲x̲t̲l̲e̲s̲s̲ ̲1和KaTeX parse error: Undefined control sequence: \textless at position 9: \beta_m \̲t̲e̲x̲t̲l̲e̲s̲s̲ ̲1为根据经验设置的超参数。 别称阶梯衰减 (Step Decay) 逆时衰减 (Inverse Time Decay) α t α 0 1 1 β ⋅ t \alpha_t\alpha_0\frac{1}{1\beta \cdot t} αt​α0​1β⋅t1​ 其中 α 0 \alpha_0 α0​为初始学习率 β \beta β为衰减率 指数衰减 (Exponential Decay) α t α 0 β t \alpha_t\alpha_0\beta^t αt​α0​βt 其中 α 0 \alpha_0 α0​为初始学习率KaTeX parse error: Undefined control sequence: \textless at position 7: \beta \̲t̲e̲x̲t̲l̲e̲s̲s̲ ̲1为衰减率 自然指数衰减 (Natural Exponential Decay) α t α 0 exp ⁡ ( − β ⋅ t ) α 0 e − β ⋅ t \alpha_t\alpha_0\exp(-\beta \cdot t)\alpha_0 e^{-\beta \cdot t} αt​α0​exp(−β⋅t)α0​e−β⋅t 其中 α 0 \alpha_0 α0​为初始学习率 β \beta β为衰减率 余弦衰减 (Cosine Decay) 别称余弦退火衰减 α t 1 2 α 0 ( 1 cos ⁡ ( t ⋅ π T ) ) \alpha_t\frac{1}{2} \alpha_0 (1\cos(\frac{t \cdot \pi}{T})) αt​21​α0​(1cos(Tt⋅π​)) 其中 α 0 \alpha_0 α0​为初始学习率 T T T为总迭代次数 6.7.3 周期性学习率调整 目的梯度下降时逃离鞍点或尖锐最小值。 思想短期优化效率降低长期找到更好地最优解。 循环学习率 (Cyclic Learning Rate) 学习率在一个区间内周期性增大与减小。 线性缩放 → 三角循环学习率 (Triangle Cyclic Learning Rate) 假设循环周期 2 ⋅ Δ t 2\cdot \Delta t 2⋅Δt 前 Δ t \Delta t Δt学习率线性增大后 Δ t \Delta t Δt学习率线性减小 第 t t t次迭代时其所在的循环周期数 m m m为 m ⌊ 1 t 2 ⋅ Δ t ⌋ m\lfloor 1\frac{t}{2 \cdot \Delta t} \rfloor m⌊12⋅Δtt​⌋ 其中 ⌊ ⋅ ⌋ \lfloor \cdot \rfloor ⌊⋅⌋表示向下取整函数。 第 t t t次迭代的学习率为 α t α m i n m ( α m a x m − α m i n m ) [ max ⁡ ( 0 , 1 − b ) ] \alpha_t\alpha^m_{min}(\alpha^m_{max}-\alpha^m_{min})[\max{(0, 1-b)}] αt​αminm​(αmaxm​−αminm​)[max(0,1−b)] 其中 α m a x m \alpha^m_{max} αmaxm​为第 m m m个周期学习率的上界与初始学习率 α m i n m \alpha^m_{min} αminm​为第 m m m个周期学习率的下界上下边界可随 m m m增大逐步降低。 参数 b b b非人为设定其计算公式如下 b ∣ t Δ T − 2 m 1 ∣ , b ∈ [ 0 , 1 ] b|\frac{t}{\Delta T}-2m1| \space \space , \space b\in[0,1] b∣ΔTt​−2m1∣  , b∈[0,1] 6.7.4 带热重启的随机梯度下降 (Stochastic Gradient Descent with Warm Restart) 用热重启方式替代学习率衰减的方法其形式及过程类似于循环学习率均具有“周期性”。 学习率每间隔一个周期重新初始化为某个预先设定值随后逐渐衰减该操作重复进行。 每次重启后模型参数从重启前的参数基础上继续优化即新学习率基于“半成品”参数继续探索优值。 假设在梯度下降过程中重启 M M M次 T m T_m Tm​称为重启周期第 m m m次重启在上次重启迭代 T m T_m Tm​个回合后进行。 带热重启的余弦衰减 第 t t t次迭代学习率 α t α m i n m 1 2 ( α m a x m − α m i n m ) ( 1 cos ⁡ ( T c u r T m π ) ) \alpha_t \alpha^{m}_{min}\frac{1}{2}(\alpha^m_{max}-\alpha^m_{min})(1\cos(\frac{T_{cur}}{T_m}\pi)) αt​αminm​21​(αmaxm​−αminm​)(1cos(Tm​Tcur​​π)) 其中 α m a x m \alpha^m_{max} αmaxm​为第 m m m个周期学习率的上界与初始学习率 α m i n m \alpha^m_{min} αminm​为第 m m m个周期学习率的下界上下边界可随 m m m增大逐步降低 T m T_m Tm​为重启周期 T c u r T_{cur} Tcur​为当前重启时的迭代次数(epoch)。 当 T c u r T m T_{cur}T_m Tcur​Tm​时学习率为 α m i n m \alpha^m_{min} αminm​当 T c u r 0 T_{cur}0 Tcur​0时 (重启后)学习率为 α m m a x \alpha^m_max αmm​ax周期内做余弦衰减 6.7.5 其他学习率调整方法 快照集成 (Snapshot Ensebling) 快速几何集成 (Fast Geometric Ensembling, FGE) 随机加权平均 (Stochastic Weight AveragingSWA) 6.7.6 自适应调整学习率 以上方法均为学习率自身调整算法而自适应调整学习率算法结合了梯度下降及其扩展算法在上述章节已详细介绍这里仅进行简述。 AdaGrad Ada Grad是一种基于梯度平方和的自适应学习率调整方法。它将每个参数的历史梯度平方和累加起来并将其作为学习率的分母在更新参数时除以该值。这样做的效果是参数梯度较大的参数将有较小的学习率而梯度较小的参数将有较大的学习率。这种方法可以在训练初期快速收敛在训练后期避免参数更新过大。 RMSprop RMS prop是一种基于指数加权移动平均的自适应学习率调整方法。它引入了一个衰减率用来控制历史梯度平方和的权重。每次更新参数时RMS prop使用指数加权移动平均来估计当前梯度平方和的均值并将其作为学习率的分母。这种方法可以适应不同参数的梯度范围从而更好地调整学习率。 Adam Adam是一种结合了动量和自适应学习率的方法。它通过计算梯度的一阶矩估计和二阶矩估计来动态地调整学习率。Adam方法使用指数加权移动平均来估计梯度的一阶矩估计和二阶矩估计并通过除以这些估计来调整学习率。这种方法可以使得学习率在训练过程中既具有自适应性又具有动量性。 6.8 其他算法 6.8.1 信赖域算法 信赖域算法 (Trust Region)一类常用的非线性优化方法通过在局部区域内建立一个模型并在该模型上进行优化来逼近目标函数的最优解。 信赖域方法在求解非线性优化问题具有较好的收敛性能和鲁棒性被广泛应用于机器学习和优化领域。 基本思想 在每次迭代中给出一个信赖域这个信赖域一般是当前迭代点 x t x_t xt​的一个小邻域。然后在这个邻域内求解一个子问题得到试探步长trial step s t s_t st​ 接着用某一评价函数来决定是否接受该试探步以及确定下一次迭代的信赖域。 如果试探步长被接受则 x t 1 x t s t x_{t1}x_{t}s_{t} xt1​xt​st​ 否则 x t 1 x t x_{t1}x_{t} xt1​xt​。 新信赖域的大小取决于试探步的好坏若试探步较好下一步信赖域扩大或保持不变否则减小信赖域。 6.8.2 坐标轴交替下降算法 **坐标轴交替下降算法Coordinate Descent**‌是一种 非梯度优化算法主要用于求解优化问题。它通过在每次迭代中沿一个坐标方向进行一维搜索以找到函数的局部极小值并在每次迭代中循环使用不同的坐标方向‌。 坐标下降法基于的思想是多变量函数 可通过每次沿一个方向优化来获取最小值。 与通过梯度获取最速下降的方向不同在坐标下降法中优化方向从算法一开始就予以固定。 6.8.3 Sophia 算法 Sophia (Second-order Clipped Stochastic Optimization)一种轻量级二阶优化器它使用Hessian对角线的廉价随机估计作为预调节器并通过限幅机制来控制最坏情况下的更新大小。在GPT-2等预训练语言模型上Sophia以比Adam少了50%的步骤且实现了相同的预训练损失。由于Sophia几乎每步的内存和平均时间都保持在50%的Adam步骤因此也就可以说其在总的时间上面也减少了50%。 此外基于模型尺寸从125M到770M的缩放规律是Sophia优于Adam随着模型尺寸的增加在100K步长时Sophia与Adam之间的差距越来越大(上图C所示)。特别是Sophia在一个540M参数、100K步的模型上给出的验证损失与Adam在一个770M参数、100K步的模型上给出的验证损失相同。请注意后一种模型需要多40%的训练时间和多40%的推理成本。 具体来说「Sophia每k步使用一小批示例来估计损失的Hessian矩阵的对角线条目本文实现中k10」。本文考虑了对角Hessian估计器的两种选择(a) 使用Hessian向量积的无偏估计器其运行时间与mini-batch梯度达到一个常数因子相同(b)有偏估计器利用重采样标签进行小批量梯度计算。这两个估算器每步平均仅引入5%的开销。在每一步Sophia都会用梯度的指数移动平均值(EMA)除以对角Hessian估计的EMA然后用标量进行裁剪来更新参数。 7. 模型评估 7.1 模型容量 模型**容量 (capacity)**是指其拟合各种函数的能力容量低的模型可能很难拟合训练集容量高的模型可能会过拟合。 一种控制容量的方法是 选择 假设空间 (hypothesis space)即学习算法可以选择为解决方案的函数集。例如广义线性回归 → 多项式函数 表示容量 (representational capacity) 模型规定了调整参数降低训练目标时学习算法从中选择函数的函数族。 有效容量 (effective capacity)算法习得的一个可以大幅降低训练误差的函数。 奥卡姆剃刀原理在同样能够解释已知观测现象的假设中我们应该挑选 ‘‘最简单’’ 的那一个。如无必要勿增实体。 Vapnik-Chervonenkis维度 (Vapnik-Chervonenkis dimension, VC)简称VC维统计学中一种量化模型容量的方法. 最佳容量optimal capacity训练误差与泛化误差变化的最优折中容量值。 上图表示容量和误差之间的典型关系。训练误差和测试误差表现得非常不同。在图的左端训练误差和泛化误差都非常高。这是欠拟合机制 (underftting regime)。当我们增加容量时训练误差减小但是训练误差和泛化误差之间的间距却不断扩大。最终这个间距的大小超过了训练误差的下降我们进人到了过拟合机制 (overftting regime)其中容量过大超过了最佳容量 (optimalcapacity)。 7.2 ‌‌拟合能力 模型在训练数据上的表现即模型在‌训练集上的准确度。 一个好的模型应该在训练数据上表现良好同时在未见过的数据上也能表现出色否则会出现欠拟合和过拟合现象。 ‌欠拟合现象‌模型在训练过程中未能捕捉到数据集中的有效规律或模式模型过于简单无法正确预测结果。 过拟合现象模型在训练数据上表现过于优越但在未见过的数据上表现不佳。 7.3 泛化能力 模型的泛化能力是指模型对从未见过数据的适应能力/推广能力。 这意味着模型在训练集以外的数据上有良好的表现包括测试集测试、验证集验证和实际应用未知中的表现。 一个拥有高泛化能力的模型应该是对近乎所有新数据做出正确的预测而不仅仅是在训练集上表现良好高泛化能力的模型常常能够抵抗造成变化和异常值的影响从而更好地适用各种情况的数据。 提高泛化能力 ① 数据端收集更多的数据提高泛化能力 ② 模型选择选择合适的模型提高模型的泛化能力选择简答模型可减少过拟合风险 ③ 损失函数损失函数加正则化通过限制模型复杂度避免模型训练集过拟合 ④ 数据增强数据增强及增加数据多样性有著训练模型适用“新花样”数据图片: 旋转/平移/裁剪 ⑤ 优化策略在模型中加入BN层、Dropout层或使用不同梯度下降策略。 ⑥ 交叉验证一种用于评估模型方法的技术。通过将数据集分为训练集测试集、验证集多次训练模型并在验证集上进行验证从而获得模型的频率表现可理解为多次调参。 7.3.1 交叉验证 在实际训练中模型对于训练集的拟合程度较好但对未知数据的拟合程度通常不高。 因此通常并不会把所有数据集都用于训练而是取大部分作为训练集用于训练模型取剩余小部分作为验证集不参加训练用于评估模型相对客观的判断这些参数对训练集之外数据的符合程度这种思想就称为 交叉验证 (Cross Validation)又称 循环估计 (Rotation Estimation)。 K折交叉验证 K折交叉验证K-fold cross-validation是一种常用的交叉验证方法。它将原始数据集分成 K个子集称为折 (fold)。 模型在k个不同的训练集上进行k次训练和验证首次抽取其中 1 1 1 折作为验证集其余 k − 1 k-1 k−1 个折作为训练集后续循环选择不同验证集与训练集反复验证产生评估指标如准确率、精确度、召回率等直到每个子集都充当一次验证集从而产生了 k k k 个评估指标对 k k k 个评估指标取平均值作为最终的模型性能评估指标。 这里以 k 10 k10 k10 为例一般取值范围 k ∈ [ 5 , 12 ] k\in[5,12] k∈[5,12]过大的 k k k 值将使得训练模型次数过多致使计算效率降低。 特点 优点可以有效利用数据缺点计算成本高、每次计算结果不稳定。 数据集划分 训练神经网络模型时一般将可用于训练的数据集划分为三个部分训练集、验证集、测试集一种常见的分割比例为 6 : 2 : 2 6:2:2 6:2:2。 倘若不使用验证集训练集与测试集的常见分割比例为 7 : 3 7:3 7:3 或 8 : 2 8:2 8:2。 训练集验证集 / 评估集测试集英文Train SetValid SetTest Set用于训练是否否作用用于模型学习评估模型泛化能力 调节超参数 不侧重于训练效果评估模型拟合能力 观测训练训练效果 不可用于调节超参数使用次数一次若干次 不断调参一次缺陷/规模有限仍不能代表所有未知数据可取一小部分作为验证集也不能代表所有未知数据 仅凭一次验证无法对模型做出客观评价故引入交叉验证。利用不同的训练集/验证集划分针对模型进行多组训练/验证以避免单次验证结果过于片面、训练数据不足等问题。 7.3.2 没有免费午餐定理 机器学习算法能够在有限个训练集样本中很好地泛化。 站在归纳推理的角度必须拥有整个集合的元素从一组有限的样本中推断一般规则固然不是很可靠。但机器学习通过 概率法则 一定程度上规避了这个问题使得无需使用 纯粹逻辑 推理整个确定性法则这意味着机器学习找到一个在所关注 大多数样本 上可能正确的规则。 没有免费午餐定理定理 表明在所有可能的数据生成分布上平均之后每一个分类算法在未事先观测的点上都有相同的错误率。 未知样本数据总是存在算法不可能涵盖所有 各式各样各型各色的 样本数据随着数据量的增大算法间的平均性能差距逐渐缩小。 但我们在获取所有可能数据中最关键的数据仍能解决生活中的实际问题。 即没有一个机器学习算法总比其他的好这意味着没有一个通用或绝对最好的学习算法。 从感性直观上理解针对不同特定领域的数据总能找到比该领域通用模型性能更优的特化模型也没有能在所有领域都能 成为专家 并且 游刃有余 得心应手 的模型。 因此算法的设计和应用需要考虑具体问题的特性而不是盲目追求通用性。 即我们的目标时理解什么养的分布能够使得人工智能更好的获取“真实世界”的经验什么样的学习算法在我们关注的数据生成分布上效果最好。 没有免费午餐定理阐述了没有最优的学习算法同样也没有最优的正则化形式。 所以不仅需要设计一个适合解决特定任务的模型还须选择一个适合解决特定任务的正则形式。 7.3 机器学习准则 期望风险、经验风险、结构风险的概念与损失函数的概念息息相关。在机器学习中损失函数主要是用来衡量模型的拟合程度即表示模型预测值与真实值之间的差距。损失函数越小说明模型拟合的越好该模型对未知样本的预测能力越强。 而损失函数仅可描述单个样本的拟合程度但训练模型需要大量样本所以利用期望风险的概念衡量模型对所有样本的拟合能力。 7.3.1 期望风险 期望风险模型对所有样本的拟合能力所有样本 训练 测试 未知 因存在未知样本故而无法求出所有样本的联合概率分布。 但训练样本已知且训练样本占比大故可用训练样本代替所有样本从而诞生了经验风险的概念。 7.3.2 经验风险 经验风险模型对所有训练样本的拟合能力即模型关于训练数据集的平均损失。训练样本已知对所有训练样本求损失函数再累加求平均即可得经验风险。 经验风险最小化 存在过拟合问题。 由于训练样本已知总体联合分布分布未知则产生了用训练样本代替总体的思想。但经验风险最小化意味着模型过度贴合训练集即在训练集上表现很好但在预测新样本时表现很差这便是过拟合现象。 为避免过拟合现象发生需限制模型对训练集的拟合程度从而诞生了结构风险及正则化的概念。 7.3.3 结构风险 结构风险以经验风险为基础引入惩罚项 (也叫正则化因子)结构风险降低代表模型出现过拟合的风险降低。 结构风险降低模型过拟合风险降低的原因 经验风险最小化往往会出现过拟合如下图最右侧所示。 从上图中最左侧和最右侧对比中可以看出模型出现过拟合的原因在于将原本一个低次项的函数拟合成一个高次项提高了模型的复杂度。所以要想降低过拟合办法就是要尽量使得和变小或者趋于0从而降低模型的复杂度使模型从一个高次项变成契合的函数如中间的图所示。 当结构风险最小化时模型达到最优但有两点需要注意 ①此时的最优可能是相对的因为最优一般唯一且不容易找到。 ② 正则化项前有一个正则系数实际应用中需要对正则系数进行多次调节以保证损失函数和模型的复杂度达到一个相对平衡的状态。 7.3.4 总结 1、期望风险针对全局基于所有样本。是理想化的不可求不可实现。训练 测试 未知 2、经验风险针对局部基于训练样本。是现实的可求可实现。训练 3、结构风险经验风险和期望风险折中在经验风险的基础上加上 惩罚项/正则化函数同时控制模型的损失函数和模型的复杂度目的是为了减少经验风险最小化带来的过拟合的风险。 7.4 参数范数正则化 正则化定义凡是可以减少泛化误差而非减少训练误差的方法均可称作正则化方法。 而参数范数正则化属于经典正则化方法之一其核心思想是通过对目标函数添加一个参数范数惩罚 Ω ( θ ) \Omega(\theta) Ω(θ)限制模型的学习能力。 将正则化后的目标函数记为 J ~ ( θ ; X , y ) J ( θ ; X , y ) α Ω ( θ ) \tilde{J}(\theta;X,y)J(\theta;X,y)\alpha\Omega(\theta) J~(θ;X,y)J(θ;X,y)αΩ(θ) 其中 α ∈ [ 0 , ∞ ] \alpha\in[0,\infty] α∈[0,∞]是权衡范数惩罚项 Ω \Omega Ω和标准目标函数 J ( X , θ ) J(X,\theta) J(X,θ)相对贡献的超参数 α \alpha α与正则化力度成正比取0时表示未进行正则化取值越大正则化力度越强。 最小化 J ~ \tilde{J} J~时降低 J J J关于训练数据的误差同时减小在某些衡量标准下参数 θ \theta θ的规模。 神经网络模型中包含两种参数仿射变换-权重 w ⃗ \vec{w} w 正则化、偏置 b ⃗ \vec{b} b 不正则化 偏置项不正则化的原因 不对其正则化也不会导致太大的方差对其正则化可能会导致明显的欠拟合偏置作为神经元阈值会跟随权重变动变化 综上向量 θ ⃗ \vec{\theta} θ 表示所有参数向量 w ⃗ \vec{w} w 表示所有应受范数惩罚影响的权重所以在本文中不直接使用 θ ⃗ \vec{\theta} θ 。 7.4.1 L1正则化权值稀疏 L1正则化是指向量中各个元素绝对值之和。 L1范数会使权值稀疏 原因 任何的正则化算子如果他在 W i 0 W_i0 Wi​0的地方不可微并且可以分解为“求和” 的形式那么这个正则化算子就可以实现稀疏。 参数稀疏的优势 特征选择Feature Selection 权值稀疏化能够实现特征的自动选择一般 x i x_i xi​的大部分元素/特征都与其标签 y i y_i yi​没有直接关联。在最小化目标函数时非主要特征可减少训练误差但对于绝大多数样本及未知样本的帮助微不足道其反而干扰了模型对未知样本的预测。而参数稀疏可将这些 非主要特征权/无关特征 权重设置为0从而起到过滤效果。 可解释性 将非主要特征/无关特征置为0模型具有更良好的解释性。无法为结果提供较大帮助的特征 l1正则化模型的最优化问题等价于 m i n w L ( w ) m i n W ( J ( w ) λ ∑ i 1 n ∣ w i ∣ ) min_w\space L(w) min_W(J(w) \lambda\sum^{n}_{i1}|w_i|) minw​ L(w)minW​(J(w)λi1∑n​∣wi​∣) 等价为凸优化问题 m i n w J ( w ) ∑ i 1 n ∣ w i ∣ ≤ C , 其中 C 与正则化参数 λ 成反比 min_w \space J(w) \\ \sum^n_{i1}|w_i| \le C, 其中C与正则化参数\lambda成反比 minw​ J(w)i1∑n​∣wi​∣≤C,其中C与正则化参数λ成反比 在限定区域内找到使J(w)最小的值。 切向量始终指向 w 2 w2 w2轴故L1正则化易使参数为0实现特征稀疏化。 结论l1正则化易使参数为0使特征稀疏化 7.4.2 L2正则化权重衰减 L2正则化策略通过向目标函数添加一个正则化项 Ω ( θ ) 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 2 \Omega(\theta)\frac{1}{2}||\vec{w}||^2_2 Ω(θ)21​∣∣w ∣∣22​使权重更接近原点其又称岭回归、Tikhonov正则。 J ~ ( w ⃗ ; X , y ⃗ ) α 2 w ⃗ ⊤ w ⃗ J ( w ⃗ ; X , y ⃗ ) \tilde{J}(\vec{w};X,\vec{y})\frac{\alpha}{2}\vec{w}^{\top}\vec{w}J(\vec{w};X,\vec{y}) J~(w ;X,y ​)2α​w ⊤w J(w ;X,y ​) ∇ w J ~ ( w ⃗ ; X , y ⃗ ) α w ⃗ ∇ w J ( w ⃗ ; X , y ⃗ ) \nabla_w\tilde{J}(\vec{w};X,\vec{y})\alpha\vec{w}\nabla_wJ(\vec{w};X,\vec{y}) ∇w​J~(w ;X,y ​)αw ∇w​J(w ;X,y ​) 经正则化后梯度更新权重前先收缩权重向量乘以常数因子 1 − ε α 1-\varepsilon\alpha 1−εα w ⃗ ← w ⃗ − ε [ α w ⃗ ∇ w J ( w ⃗ ; X , y ⃗ ) ] ← ( 1 − ε α ) w ⃗ − ε ∇ w J ( w ⃗ ; X , y ⃗ ) \begin{equation} \begin{aligned} \vec{w}\leftarrow\vec{w}-\varepsilon[\alpha\vec{w}\nabla_wJ(\vec{w};X,\vec{y})] \\ \leftarrow(1-\varepsilon\alpha)\vec{w}-\varepsilon\nabla_wJ(\vec{w};X,\vec{y}) \end{aligned} \end{equation} w ​←w −ε[αw ∇w​J(w ;X,y ​)]←(1−εα)w −ε∇w​J(w ;X,y ​)​​​ 训练过程 令 w ⃗ ∗ \vec{w}^{*} w ∗ 为 未正则化的目标函数 取得最小训练误差时的权重向量令 w ⃗ ∗ \vec{w}^{*} w ∗ 为 未正则化时最优训练权重 w ⃗ ∗ a r g m i n w J ( w ⃗ ) \vec{w}^{*}argmin_w J(\vec{w}) w ∗argminw​J(w ) 并在 w ⃗ ∗ \vec{w}^{*} w ∗的邻域对目标函数做二次近似 (损失为MSE则完美近似)即泰勒展开至二次项。 J ^ ( θ ) J ( w ⃗ ∗ ) 1 2 ( w ⃗ − w ⃗ ∗ ) ⊤ H ( w ⃗ − w ⃗ ∗ ) \hat{J}(\theta)J(\vec{w}^{*})\frac{1}{2}(\vec{w}-\vec{w}^{*})^{\top}H(\vec{w}-\vec{w}^{*}) J^(θ)J(w ∗)21​(w −w ∗)⊤H(w −w ∗) 由于 w ⃗ ∗ \vec{w}^{*} w ∗最优 ∇ w ∗ J ( w ⃗ ∗ ) 0 \nabla_{{w}^{*}}J(\vec{w}^{*})0 ∇w∗​J(w ∗)0故式中无一次项且 H e s s i a n Hessian Hessian矩阵 H H H半正定。 这里对 H e s s i a n Hessian Hessian矩阵的正定性判定做出补充 (一般方阵也适用) 主要根据其特征值 Λ \Lambda Λ (由 λ i \lambda_i λi​组成对角阵) 判断 当 Λ 0 \Lambda \gt 0 Λ0 H e s s i a n Hessian Hessian矩阵 正定当 Λ ≥ 0 \Lambda \ge 0 Λ≥0 H e s s i a n Hessian Hessian矩阵 半正定当 Λ 0 \Lambda \lt 0 Λ0 H e s s i a n Hessian Hessian矩阵 负定当 Λ ≤ 0 \Lambda \le 0 Λ≤0 H e s s i a n Hessian Hessian矩阵 半负定当 Λ \Lambda Λ中正负 λ i \lambda_i λi​均存在时 H e s s i a n Hessian Hessian矩阵 不定 判断 H H H半正定简单理解 不严谨 仅供参考 假设 w ⃗ ∗ [ w 1 w 2 ] \vec{w}^{*}\begin{bmatrix} w_1 \\ w_2 \end{bmatrix} w ∗[w1​w2​​]已知 ∇ w ∗ J ( w ⃗ ∗ ) 0 \nabla_{{w}^{*}}J(\vec{w}^{*})0 ∇w∗​J(w ∗)0即 ∂ J ∂ w 1 ∂ J ∂ w 2 0 \frac{\partial J}{\partial w_1}\frac{\partial J}{\partial w_2}0 ∂w1​∂J​∂w2​∂J​0可得 $ \frac{\partial^2J}{\partial w_1\partial w_2} \frac{\partial^2J}{\partial w_2\partial w_1}0$ $$ H \begin{bmatrix} \frac{\partial^2J}{\partial w^2_1} \frac{\partial^2J}{\partial w_1\partial w_2} \ \frac{\partial^2J}{\partial w_2\partial w_1} \frac{\partial^2J}{\partial w^2_2} \end{bmatrix} \begin{bmatrix} \frac{\partial^2J}{\partial w^2_1} 0 \ 0 \frac{\partial^2J}{\partial w^2_2} \end{bmatrix} KaTeX parse error: Cant use function $ in math mode at position 3: 求$̲H$特征值 \begin{equation} \begin{aligned} |\lambda I-H| \left| \begin{matrix} \lambda-\frac{\partial^2J}{\partial w^2_1} 0\ 0 \lambda-\frac{\partial^2J}{\partial w^2_2} \end{matrix} \right| \ (\lambda-\frac{\partial^2J}{\partial w2_1})(\lambda-\frac{\partial2J}{\partial w^2_2}) \ \lambda2-(\frac{\partial2J}{\partial w2_1}\frac{\partial2J}{\partial w2_2})\lambda\frac{\partial2J}{\partial w2_1}\cdot\frac{\partial2J}{\partial w^2_2} \0 \end{aligned} \end{equation} 利用一元二次方程根的判别式 利用一元二次方程根的判别式 利用一元二次方程根的判别式 \begin{equation} \begin{aligned} \Delta (\frac{\partial^2J}{\partial w2_1}\frac{\partial2J}{\partial w2_2})2-4\cdot\frac{\partial^2J}{\partial w2_1}\cdot\frac{\partial2J}{\partial w^2_2} \ (\frac{\partial^2J}{\partial w2_1}-\frac{\partial2J}{\partial w2_2})2 \ \ge0 \end{aligned} \end{equation} $$ 因 Δ ≥ 0 \Delta\ge0 Δ≥0 且 方程中二次项为正数1故方程 ∣ λ I − H ∣ 0 |\lambda I-H|0 ∣λI−H∣0至少有1个非负根。 从而得出Hessian矩阵的特征值大于等于0为半正定矩阵。 先前在 w ⃗ ∗ \vec{w}^{*} w ∗的邻域对目标函数做二次近似 (损失为MSE则完美近似)即泰勒展开至二次项。 J ^ ( w ⃗ ) J ( w ⃗ ∗ ) 1 2 ( w ⃗ − w ⃗ ∗ ) ⊤ H ( w ⃗ − w ⃗ ∗ ) \hat{J}(\vec{w})J(\vec{w}^{*})\frac{1}{2}(\vec{w}-\vec{w}^{*})^{\top}H(\vec{w}-\vec{w}^{*}) J^(w )J(w ∗)21​(w −w ∗)⊤H(w −w ∗) 当 J ^ \hat{J} J^取最小时梯度为0 ∇ w J ^ ( w ⃗ ) H ( w ⃗ − w ⃗ ∗ ) 0 \nabla_{w} \hat{J}(\vec{w})H(\vec{w}-\vec{w}^*)0 ∇w​J^(w )H(w −w ∗)0 在上式中引入L2正则化的梯度 α w ~ \alpha \tilde{w} αw~假设 α \alpha α为较小值 且此时 w ~ \tilde{w} w~最优 w ~ \tilde{w} w~在 w ⃗ ∗ \vec{w}^{*} w ∗的邻域内 ( α → 0 \alpha \rightarrow 0 α→0 正则化最优解解 w ~ \tilde{w} w~会趋向 w ⃗ ∗ \vec{w}^* w ∗) α w ~ H ( w ~ − w ⃗ ∗ ) 0 ( H α I ) w ~ H w ⃗ ∗ w ~ ( H α I ) − 1 H w ⃗ ∗ \alpha \tilde{w} H(\tilde{w}-\vec{w}^*)0 \\ (H\alpha I)\tilde{w}H\vec{w}^* \\ \tilde{w}(H\alpha I)^{-1}H\vec{w}^* αw~H(w~−w ∗)0(HαI)w~Hw ∗w~(HαI)−1Hw ∗ 当 α \alpha α增加时探究两者的变换关系。因 H H H为实对称矩阵故可将其分解为标准正交基 H Q Λ Q ⊤ HQ \Lambda Q^\top HQΛQ⊤则有 w ~ ( Q Λ Q ⊤ α I ) − 1 Q Λ Q ⊤ w ⃗ ∗ ( Q Λ Q ⊤ α Q I Q ⊤ ) − 1 Q Λ Q ⊤ w ⃗ ∗ [ Q ( Λ α I ) Q ⊤ ] − 1 Q Λ Q ⊤ w ⃗ ∗ ( Q ⊤ ) − 1 ( Λ α I ) − 1 Q − 1 Q Λ Q ⊤ w ⃗ ∗ ( Q ⊤ Q − 1 ) Q ( Λ α I ) − 1 Λ Q ⊤ w ⃗ ∗ \begin{equation} \begin{aligned} \tilde{w}(Q \Lambda Q^\top \alpha I)^{-1}Q \Lambda Q^{\top}\vec{w}^* \\ (Q \Lambda Q^\top \alpha Q I Q^\top )^{-1}Q \Lambda Q^{\top}\vec{w}^* \\ [Q(\Lambda\alpha I)Q^\top]^{-1}Q \Lambda Q^{\top}\vec{w}^* \\ (Q^\top)^{-1}(\Lambda\alpha I)^{-1}Q^{-1}Q\Lambda Q^\top \vec{w}^* (Q^\topQ^{-1}) \\ Q(\Lambda\alpha I)^{-1}\Lambda Q^\top \vec{w}^* \end{aligned} \end{equation} w~​(QΛQ⊤αI)−1QΛQ⊤w ∗(QΛQ⊤αQIQ⊤)−1QΛQ⊤w ∗[Q(ΛαI)Q⊤]−1QΛQ⊤w ∗(Q⊤)−1(ΛαI)−1Q−1QΛQ⊤w ∗Q(ΛαI)−1ΛQ⊤w ∗​(Q⊤Q−1)​​​ 可得引入L2正则化时与未正则化时权重最优解的关系为 w ~ Q [ ( Λ α I ) − 1 Λ ] Q ⊤ w ⃗ ∗ \tilde{w}Q[(\Lambda\alpha I)^{-1}\Lambda]Q^\top\vec{w}^* w~Q[(ΛαI)−1Λ]Q⊤w ∗对角阵 Λ \Lambda Λ 对角线元素 λ i \lambda_i λi​ 可直接进行运算则关系式可进一步表示为 w ~ Q [ λ 1 λ 1 α λ 2 λ 2 α ⋱ λ n λ n α ] Q ⊤ w ⃗ ∗ \tilde{w} Q \begin{bmatrix} \frac{\lambda_1}{\lambda_1\alpha} \\ \frac{\lambda_2}{\lambda_2\alpha} \\ \ddots \\ \frac{\lambda_n}{\lambda_n\alpha} \end{bmatrix} Q^\top\vec{w}^* w~Q ​λ1​αλ1​​​λ2​αλ2​​​⋱​λn​αλn​​​​ ​Q⊤w ∗ 由于 Q Q Q是标准正交基其基向量两两正交且模长为1可视作新的坐标系 Q A Q ⊤ B QAQ^\topB QAQ⊤B 为空间表达转换式。 故L2正则化或权重衰减的效果沿着由 H H H的特征向量所定义的轴缩放 w ⃗ ∗ \vec{w}^* w ∗即根据 λ i λ i α \frac{\lambda_i}{\lambda_i\alpha} λi​αλi​​因子缩放与 H H H第 i i i个特征向量对齐 w ⃗ ∗ \vec{w}^* w ∗的分量。 图形表示为 上图所示红色实线是正则项区域的边界蓝色实线是J(w)的等高线越靠里的等高圆J(W)越小负梯度的方向是J(W)减小最快的方向用 w ⃗ \vec{w} w 表示正则项边界的法向量用实黑色箭头表示。 正则项边界在点P1的切向量有J(w)负梯度方向的分量所以该点会有往相邻的登高虚线圆运动的趋势当P1点运动到P2点正则项边界在点P2的切向量与J(w)梯度方向的向量垂直即该点没有往负梯度方向运动的趋势所以P2点是J(w)最小的点。 可以看出L2正则化相较于未正则化的最优解略微偏移且主要针对无助于目标函数减少的方向这对应着Hessian矩阵较小的特征值所以L2正则化具有权重衰减的作用。 结论L2正则化使Loss(w)值最小时对应的参数变小。 Karush–Kuhn-Tucker条件 / 拉格朗日乘数法 说明 最初介绍L2正则化时所列举公式如下 J ~ ( w ⃗ ; X , y ⃗ ) α 2 w ⃗ ⊤ w ⃗ J ( w ⃗ ; X , y ⃗ ) \tilde{J}(\vec{w};X,\vec{y})\frac{\alpha}{2}\vec{w}^{\top}\vec{w}J(\vec{w};X,\vec{y}) J~(w ;X,y ​)2α​w ⊤w J(w ;X,y ​) 这里将以KKT条件的视角可以将参数范数惩罚视作对权重强加约束的原因即利用L2范数规范模型参数。 J ~ ( w ⃗ ; X , y ⃗ ) α ∗ w ⃗ ⊤ w ⃗ J ( w ⃗ ; X , y ⃗ ) \tilde{J}(\vec{w};X,\vec{y})\alpha^*\vec{w}^{\top}\vec{w}J(\vec{w};X,\vec{y}) J~(w ;X,y ​)α∗w ⊤w J(w ;X,y ​) 训练神经网络时得到的w和b不是唯一确定的值相同的损失函数值可能对应很多不同的w和b。 初始值不同 若都能收敛至相同的损失函数最值其对应权重绝对值大小也不一定不同。 新的数据与大参数相乘噪声误差随着数值一同放大判断结果容易出错。 控制参数使其数值不要那么大。 “框框”→可行域范围内求最值→拉格朗日乘数法→约束w而b常数项随w变化不考虑以控制拟合程度。 问题转化在可行域内找到使 L o s s ( w ) Loss(w) Loss(w)最小的值。由于L2正则化范围是凸集该问题等价于凸优化问题。 m i n w J ( w ⃗ ) w ⃗ ⊤ w ⃗ ≤ C , 其中 C 与正则化参数 α ∗ 成反比 min_w \space J(\vec{w}) \\\vec{w}^{\top}\vec{w} \le C, 其中C与正则化参数\alpha^*成反比 minw​ J(w )w ⊤w ≤C,其中C与正则化参数α∗成反比 与上小节相同这里将问题简化为二维双轴问题以解释拉格朗日乘数法与正则化间的关系。 定义拉格朗日乘数法目标函数 L 0 ( w ⃗ , α ∗ ) J ( w ⃗ ) α ∗ ( w ⊤ w − C ) J ( w ⃗ ) α ∗ w ⊤ w − α ∗ C \begin{equation} \begin{aligned} L_0(\vec{w},\alpha^*) J(\vec{w})\alpha^*(w^\top w-C) \\ J(\vec{w})\alpha^* w^\top w-\alpha^* C \end{aligned} \end{equation} L0​(w ,α∗)​J(w )α∗(w⊤w−C)J(w )α∗w⊤w−α∗C​​​ 由于常数项 − α ∗ C -\alpha^* C −α∗C梯度为0故消去常数项后与原式等价由此得出L2正则化表达式 L ( w ⃗ , α ∗ ) L 0 ( w ⃗ , α ∗ ) α ∗ C J ( w ⃗ ) α ∗ w ⊤ w \begin{equation} \begin{aligned} L(\vec{w},\alpha^*) L_0(\vec{w},\alpha^*)\alpha^* C \\ J(\vec{w})\alpha^*w^\top w \end{aligned} \end{equation} L(w ,α∗)​L0​(w ,α∗)α∗CJ(w )α∗w⊤w​​​ 两目标函数等价并分别对两目标函数求梯度 a r g m i n w m a x α , α ≥ 0 L ( w ⃗ , α ∗ ) a r g m i n w m a x α , α ≥ 0 L 0 ( w ⃗ , α ∗ ) argmin_w \space max_{\alpha, \alpha\ge0} \space L(\vec{w},\alpha^*)argmin_w \space max_{\alpha, \alpha\ge0} \space L_0(\vec{w},\alpha^*) argminw​ maxα,α≥0​ L(w ,α∗)argminw​ maxα,α≥0​ L0​(w ,α∗) ∇ w L ( w ⃗ , α ∗ ) ∇ w L 0 ( w ⃗ , α ∗ ) \nabla_w \space L(\vec{w},\alpha^*) \nabla_w L_0(\vec{w},\alpha^*) ∇w​ L(w ,α∗)∇w​L0​(w ,α∗) 该问题中 参数 C C C确定圆半径 C C C↑ 可行域圆半径↑ 正则化力度↓参数 α ∗ \alpha^* α∗控制正则化力度 (确定 w ~ \tilde{w} w~远离 w ⃗ ∗ \vec{w}^* w ∗的程度) α ∗ \alpha^* α∗↑ 正则化力度↑故参数 C C C与参数 α ∗ \alpha^* α∗成反比 α ∗ \alpha^* α∗乘子负责调节两方梯度大小 损失函数梯度与约束条件梯度方向相反只有方向相反相加才能为0。 α ∗ \alpha^* α∗稀疏对应损失函数的梯度大小初一约束条件对应函数的梯度大小 不同切点数值不同→确定不同的 α ∗ \alpha^* α∗ 反之确定不同的 α ∗ \alpha^* α∗→确定切点的位置 只有在恰当的位置损失函数和约束条件的梯度乘以 α ∗ \alpha^* α∗后相加才能等于0。 只确定了一个超参数 C C C确定了 C C C则 α ∗ \alpha^* α∗可由它计算出来。 α ∗ \alpha^* α∗不是超参数无需无需人为确定只有 C C C能够人为确定之后计算出 α ∗ \alpha^* α∗来。 在 L L L中将 α ∗ \alpha^* α∗作为一个超参数利用两者反比关系整合 C C C的功能人为确定 α ∗ \alpha^* α∗即选择哪个点作为问题的最值点 7.4.3 弹性网络正则化 由于 ℓ1 和 ℓ2 正则化各具特点可整合二者为一种正则化方式称为弹性网络正则化 Elastic Net Regularization。 θ ∗ arg min ⁡ x 1 N ∑ n 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) α 1 l 1 ( θ ) α 2 l 2 ( θ ) \theta^*{ \underset {x} { \operatorname {arg\,min} } \, \frac{1}{N}\sum^N_{n1}\mathcal{L}(y^{(n)},f(\boldsymbol{x^{(n)}};\theta))\alpha_1\mathscr{l}_1(\theta)\alpha_2\mathscr{l}_2(\theta)} θ∗xargmin​N1​n1∑N​L(y(n),f(x(n);θ))α1​l1​(θ)α2​l2​(θ) 其中α1 和α2 分别为两个正则化项的系数。 7.5 提前停止 提前终止 (Early Stopping)又称早停法。 提前终止旨在模型开始显著过拟合前适时停止训练以使模型在验证集上表现最佳的状态从而实现训练效率与泛化能力的良好平衡。 在训练过程中需要设置设定最大训练轮数、验证集评估间隔不间断地利用验证集对模型状态进行评估直至评估指标不再大幅提升时提前终止训练任务。 7.6 Dropout 丢弃法 训练深层神经网络时随机丢弃一部分神经元及其连边 以避免过拟合的策略被称作Dropout丢弃法。 常用丢弃函数分别表示训练阶段神经元的丢弃情况和测试阶段的补偿情况。 训练阶段判定神经元是否丢弃测试阶段不丢弃神经元导致训练和测试时输出不一致所以在测试时需要将每个神经元的输出乘以 p p p也相当于对应用Dropout的神经元层做出补偿。 对于一个神经层 y f ( W x b ) \bold{y}f(W\bold{x}\bold{b}) yf(Wxb)可引入一个丢弃函数 d ( ⋅ ) d(\cdot) d(⋅) 使得 y f ( W d ( x ) b ) \bold{y}f(Wd(\bold{x})\bold{b}) yf(Wd(x)b)。 丢弃函数 d ( ⋅ ) d(\cdot) d(⋅)定义为 d ( ⋅ ) { m ⊙ x , 训练阶段 p x , 测试阶段 d(\cdot)\left\{ \begin{aligned} \begin{matrix} \bold{m} \odot \bold{x} , \space 训练阶段 \\ p \bold{x} , \space 测试阶段 \\ \end{matrix} \end{aligned} \right. d(⋅){m⊙xpx​, 训练阶段, 测试阶段​​ 其中 m d \bold{m}^d md是丢弃掩码dropout mask通过以概率为 p p p的伯努利分布随机生成即以 p p p为概率随机将部分神经元置为0从直观上可理解为丢弃部分神经元其结果可看作是一个只包含原始神经元子集的网络。 超参数 p p p可通过验证集来选取一个最优值或设 p 0.5 p0.5 p0.5。 对神经元进行丢弃相当于给数据或特征增加噪声以此来提高网络的鲁棒性。 丢弃法一般针对神经元进行随机丢弃但也可以扩展到对神经元间连接的随即丢弃或每一层进行随机丢弃。 7.7 数据增强 广泛应用在图像识别、音视频识别等领域。神经网络对噪声并不健壮故可通过在输入/隐藏层添加噪声以改善神经网络的噪声健壮性。 在数据量有限的情况下可通过数据增强Data Augmentation引入噪声来增加数据量及数据多样性 提高模型鲁棒性避免过拟合。 例如图像数据增强的方法主要有几种 旋转 (Rotation)将图像按顺时针或逆时针方向随机旋转一定角度 翻转 (Flip)将图像沿水平/垂直随机翻转一定角度 缩放 (Zoom In/Out)将图像放大/缩小一定比例 平移 (Shift)将图像沿水平/垂直方法平移一定步长 加噪声 (Noise)加入随机噪声 以上是对图像数据增强的实例将经处理后的图像用于神经网络训练可进一步提升网络识别的健壮性。 一种极端情况远处的红绿灯显示绿灯一个身上穿着一件带有停车标志的T恤或手持便携式红绿灯有意站在车道前它是否会影响自动驾驶车辆的前进 7.8 标签平滑 标签平滑 (Label Smoothing Regulation)一种正则化方法又称标签平滑归一化通常用于分类问题。 通常应用于文本分类任务像L2和Dropout等一样它是一种正则化方法只不过这种方法是通过在Label中添加噪声从而实现对模型的约束目的是防止模型在训练时过于自信地预测标签防止过拟合提高模型的泛化能力。 标签平滑的作用 解决传统one-hot标签 (hard label) 形式存在的问题。 上图假设现在是一个6分类的任务文本类别标签 y y y是鸟损失函数使用的是分类任务中常见的交叉熵损失函数结合交叉熵损失函数的公式k可以发现最终的Loss值就只与 y 1 y1 y1的维度相关。 这里可以发现平滑后对错误选项的输出进行了修正使得输出结果不再”过激“。 会出现的问题 训练过程中驱使目标类别的预测值(概率)趋于1非目标类别趋近于0。 使得模型向预测正确与错误标签的logit差值无限增大的方向学习而过大的logit差值会使得模型缺乏适应性对预测过于自信。最终致使过拟合泛化能力差。 面对易混淆分类任务有噪音 (误打标) 数据集时更容易受到影响。 解决方法 即 标签平滑 数学形式 y i y o n t − h o t ( 1 − α ) α K y_iy_{ont-hot}(1-\alpha)\frac{\alpha}{K} yi​yont−hot​(1−α)Kα​ 其中 K K K为类别个数 α \alpha α是较小超参数 ( α \alpha α一般取0.1) 优缺点 优点 可以防止网络过拟合具备一定抗噪能力增强模型泛化能力。进行数据增强增加了信息量。 缺点 单纯添加噪声提升有限。权衡泛化能力与预测能力。计算时间增加。 总结 主要解决的问题 传统One-Hot编码无法保证过模型的泛化能力使网络过于自信致使过拟合。 操作方式 将One-Hot中概率为1项进行衰减避免过度自信衰减的部分平均分到每个类别中 (包括自身)。 7.9 模型超参数选择 超参数需要预先优化设置而非通过训练得到的参数。 神经网络常见的超参数隐藏单元数量、学习率、卷积核宽度、隐式零填充、权重衰减系数、Dropout比率。 7.9.1 手动调整超参数 手动搜索超参数的主要目标是调整模型的有效容量以匹配任务的复杂性。 有效容量受限于三个因素模型的表示容量、学习算法成功最小化训练模型代价函数的能力以及代价函数和训练过程正则化模型的程度。 具有更多网络层每层有更多隐藏单元的模型具有较高的表示能力——能够表示更复杂的函数。 可能最应注意的超参数学习率 调整过程中需要同时检测训练误差及验证误差判断是否过拟合或欠拟合适当调整其容量。 7.9.3 网格搜索 网格搜索 (Grid Search)一项模型超参数优化技术常用于优化三个或者更少数量的超参数本质是一种穷举法。 对于每个超参数使用者选择一个较小的有限集去探索并利用笛卡尔乘积得到若干组超参数这些超参数的组合被称作参数空间。网格搜索使用每组超参数训练模型挑选验证集误差最小的超参数作为最优超参数。通过系统地遍历所有可能的超参数组合寻找最佳超参数设置。 假设两超参数 λ \lambda λ和 α \alpha α每个超参数三个可能值则参数空间: [( λ 1 \lambda_1 λ1​, α 1 \alpha_1 α1​), ( λ 1 \lambda_1 λ1​, α 2 \alpha_2 α2​), ( λ 1 \lambda_1 λ1​, α 3 \alpha_3 α3​), ( λ 2 \lambda_2 λ2​, α 1 \alpha_1 α1​), ( λ 2 \lambda_2 λ2​, α 2 \alpha_2 α2​), ( λ 2 \lambda_2 λ2​, α 3 \alpha_3 α3​)]。 对于每个超参数组合训练模型并用验证集评估其性能。 优点简单明了、易于实现 缺点超参数数量及其可能值过多计算成本高 基本步骤 定义超参数空间创建参数网格设置评估指标训练和评估模型选择最佳超参数可视化和分析验证和测试 转自花书 7.9.4 随机搜索 随机搜索 (Randomized Search)在超参数空间中随机采样参数组合并非系统地遍历所有组合。 优点计算量小 (计算成本低)有限时间内快速找到较好超参数组合 缺点具有局限性可能会错过潜在的优质参数组合 基本步骤 定义超参数空间选择随机超参数组合训练和评估模型更新最佳配置重复迭代 7.9.5 贝叶斯搜索 贝叶斯搜索 (Bayes Search)一种基于贝叶斯统计的自适应超参数优化方法在搜索空间中建立一个目标函数概率模型智能地选择下一组待试验的超参数。 时序模型优化 时序模型优化 (Sequential Model-Based OptimizationSMBO)一种基于序列的贝叶斯优化方法其中的“时序”指的是通过不断地迭代来逐步改善模型。 基本步骤 定义超参数空间 首先需要定义每个超参数的可能取值范围。选择初始样本点 选择一组初始的超参数样本点通常是通过随机选择或者根据先验知识选择的。建立概率模型 使用已有的样本点建立一个对目标函数的概率模型。常用的模型包括高斯过程Gaussian Process和随机森林。选择下一个样本点 基于当前的概率模型选择下一个超参数样本点这个选择通常是基于对目标函数的不确定性的评估。一种常见的策略是使用“概率提升Probability of Improvement”或“置信区间Expected Improvement”等指标来评估每个点的潜在收益。采样和评估 在选择的超参数点处进行模型的训练和评估得到目标函数的值。更新概率模型 将新的样本点加入已有的样本然后更新概率模型以更准确地表示目标函数。重复迭代 重复上述步骤直到达到预定的迭代次数或满足其他停止准则。 优点能根据已有样本预测目标函数形状从而更好地选择下一个样本点。 7.9.6 动态资源分布 动态资源分配一种在超参数优化中更加智能地分配有限资源的方法。 它的核心思想是通过早期停止和逐次减半等策略在训练过程中识别哪些超参数组合可能不会带来较好的性能从而及时中止这些配置的评估将资源更多地留给其他有潜力的配置。 以下是动态资源分配的一般步骤特别 逐次减半方法 定义超参数空间和总资源预算 和其他超参数优化方法一样首先需要定义每个超参数的可能取值范围并确定可用的总资源预算例如摇臂的次数。初始化超参数配置 随机选择一组初始的超参数配置并开始评估它们的性能。逐次减半 将总资源预算分配给一组超参数配置并在每一轮中选择性能较好的一半进行下一轮的评估。这个过程会重复进行逐次减半资源分配直到达到预定的轮数或资源用尽。早期停止策略 对于正在评估的每个超参数配置可以通过监测学习曲线的形状比如早期停止来判断是否中止当前训练。如果学习曲线不收敛或者收敛较差可以中止当前训练将资源留给其他配置。选择最佳超参数配置 根据逐次减半的过程选择性能最好的超参数配置作为最终的结果。 逐次减半方法 优缺点 优点通过在每一轮中聚焦性能较好的超参数配置更有可能找到全局最优或局部最优的配置且花费时间较短。 7.9.7 神经架构搜索 神经架构搜索 (Neural Architecture SearchNAS)一种探索神经网络结构的自动化方法。 与传统方法不同NAS旨在通过使用机器学习技术来搜索神经网络的结构以提高性能。 神经架构搜索采用元学习的思想。这意味着有一个控制器负责生成神经网络结构的描述。这个控制器本身可以是一个循环神经网络RNN它学会生成有效的网络结构描述。控制器的训练过程通常使用强化学习来完成。奖励信号一般是由生成的子网络在开发集或验证集上的性能例如准确率。整个神经架构搜索的流程如下 定义搜索空间 确定神经网络结构的参数化表示并定义一个搜索空间包含各种可能的网络结构。设计控制器 创建一个控制器通常是一个循环神经网络RNN负责生成神经网络结构的描述。初始化控制器 初始化控制器的参数。强化学习训练 通过强化学习算法如REINFORCE训练控制器。在每一轮训练中生成一个网络结构描述训练该结构的子网络然后使用性能作为奖励信号来更新控制器的参数。搜索过程 通过不断迭代上述过程搜索最佳的神经网络结构描述。评估最优结构 使用测试集评估最终选择的最优神经网络结构的性能。 优缺点 优点可自动发现复杂网络结构无需人类专家介入。使其设计更具普适性和适应性能更好适应不同的任务和数据缺点计算资源消耗大、搜索空间巨大等 8. 机器学习范式 8.1 监督学习 根据已经标记的训练样本来推断一个功能的机器学习任务。 即算法通过已经标记的数据中学习输入输出的映射关系。 常见的监督学习任务分类、回归、结构性学习 监督式学习网络Supervised Learning Network 人工神经网络ANN卷积神经网络CNN循环神经网络RNN / LSTM / GRU 应用实例音频图片识别、曲线趋势预测 8.2 无监督学习 根据没有被标记的训练样本解决模式识别中的各种问题的机器学习任务。 即从未标记的数据中学习数据的结构、模式或分布。 常见的无监督学习任务聚类、降维、异常值检测、噪声过滤 无监督式学习网络 (Unsupervised Learning Network) 生成对抗网络GAN自组织映射网络SOM适应性共振理论网络ART 应用实例聚类、主成分分析 (PCA) 8.3 强化学习 通过观察环境、执行动作并从奖励中学习。使智能体 (agent) 在环境中学会采取一系列动作以最大化累计奖励。 经典案例AlphaGo深度学习 → 监督学习 强化学习 8.4 其他范式 除上述常见机器学习范式还有其他范式半监督学习、自监督学习、迁移学习 半监督学习结合使用大量的未标记数据及标记数据同时进行模式识别的机器学习任务。 自监督学习通过自动生成标签或任务的机器学习任务。 迁移学习将一个领域的知识应用于另一个领域的机器学习任务通过源领域提高目标领域的训练效率。
http://www.hkea.cn/news/14345574/

相关文章:

  • 网站要实现的电商功能com域名免费
  • 怎么做网站诊断分析wordpress手机版中文版
  • 做网站模板链接放哪里网站商场系统软件
  • 大连网站推广怎么收费网站的页面风格是什么
  • 哪些网站可以做go注释怎么制作自己的网站
  • 网站建设客户沟通昊诺网站建设网络推广
  • 做网站算法网站建设的重点是什么
  • 邢台做移动网站费用简述制作网站的步骤和过程
  • 门户网站设计要求加盟型网站
  • 找做网站公司需要注意什么条件知识管理软件
  • 设计类网站策划书工程建设公司发展规划
  • 海珠网站建设价格用rp怎么做网站按钮下拉菜单
  • 天津手机网站建设制作标准网站建设合同
  • 河南自助建站seo公司为什么没有人做搜索网站了
  • 站点推广策略包括淘宝关键词排名怎么查询
  • 云南省建设厅官方网站怎么建立网站
  • 宜昌网站制作公司行业数据可以从哪里获取
  • 58同城网站官网好看的主页背景图片
  • 工程建设信息官方网站为什么菜市场不可以做网站
  • 网游网站开发深圳龙华区发达吗
  • 福田皇岗社区做网站做企业网站前期需要准备什么
  • 中国开发网站的公司沈阳建筑工程信息平台
  • 东营市东营网站设计网站平台建设项目书
  • 网站开发怎样东阳网站建设价格
  • 有自己的网站怎么做淘宝客做网站自己装服务器
  • 太原网站建设开发公司游戏源码买卖平台
  • 做系统的图标下载网站佛山小程序开发公司
  • 网站不能访问的原因wordpress文章收费阅读
  • 网站编程语言有哪些修改wordpress 2m
  • 酒店官方网站建设书忘记wordpress登录密码忘记