提交 e859672b 编写于 作者: W wizardforcel

2020-08-30 21:54:37

上级 9366f276
...@@ -948,11 +948,11 @@ plt.scatter(x=projection[:, 0], y=projection[:, 1], c=('g')) ...@@ -948,11 +948,11 @@ plt.scatter(x=projection[:, 0], y=projection[:, 1], c=('g'))
![](img/28d6a247-eb12-45c2-a471-8673b8610e63.png) ![](img/28d6a247-eb12-45c2-a471-8673b8610e63.png)
其中`g`是梯度向量, `H``f(x)``x[0]`时的 Hessian。 如果ε是我们使用的学习率,则根据梯度下降的新点为`x[0] - ε[g]`。 将其替换为 Taylor 系列展开式,我们得到: 其中`g`是梯度向量, `H``f(x)``x[0]`时的 Hessian。 如果`ε`是我们使用的学习率,则根据梯度下降的新点为`x[0] - ε[g]`。 将其替换为 Taylor 系列展开式,我们得到:
![](img/88f6f0bb-b7d9-4a33-8d96-f46e8db8138b.png) ![](img/88f6f0bb-b7d9-4a33-8d96-f46e8db8138b.png)
注意,如果`-ε g^t g + ½ε^2 g^T H[g] > 0`,则与`x[0]`相比,新点的函数值会增加。 同样,在存在强梯度的情况下,我们将具有较高的平方梯度范数`||g||^2 = g^T g`,但同时,如果其他数量为`g^T H[g]`增长一个数量级,那么我们将看到`f(x)`的下降速度非常缓慢。 但是,如果此时可以缩小学习率ε,则可能会在某种程度上使这种影响无效,因为`g^T H[g]`数量乘以`ε^2`。 可以通过在训练周期绘制平方梯度范数和`g^T H[g]`来监测疾病的影响。 我们在*热板*中看到了如何计算梯度范数的示例。 注意,如果`-ε g^t g + ½ε^2 g^T H[g] > 0`,则与`x[0]`相比,新点的函数值会增加。 同样,在存在强梯度的情况下,我们将具有较高的平方梯度范数`||g||^2 = g^T g`,但同时,如果其他数量为`g^T H[g]`增长一个数量级,那么我们将看到`f(x)`的下降速度非常缓慢。 但是,如果此时可以缩小学习率`ε`,则可能会在某种程度上使这种影响无效,因为`g^T H[g]`数量乘以`ε^2`。 可以通过在训练周期绘制平方梯度范数和`g^T H[g]`来监测疾病的影响。 我们在*热板*中看到了如何计算梯度范数的示例。
# 局部最小值和鞍点 # 局部最小值和鞍点
...@@ -1061,7 +1061,7 @@ AdaGrad 算法通过按与先前所有梯度的平方和值的平方根成比例 ...@@ -1061,7 +1061,7 @@ AdaGrad 算法通过按与先前所有梯度的平方和值的平方根成比例
# RMSprop # RMSprop
RMSprop 通过采用先前平方梯度的 EWMA 来修改 AdaGrad 算法。 它具有移动平均参数ρ,它控制移动平均的长度和比例。 这是深度神经网络训练最成功的算法之一。 RMSprop 通过采用先前平方梯度的 EWMA 来修改 AdaGrad 算法。 它具有移动平均参数`ρ`,它控制移动平均的长度和比例。 这是深度神经网络训练最成功的算法之一。
# Adam # Adam
...@@ -1098,7 +1098,7 @@ RMSprop 通过采用先前平方梯度的 EWMA 来修改 AdaGrad 算法。 它 ...@@ -1098,7 +1098,7 @@ RMSprop 通过采用先前平方梯度的 EWMA 来修改 AdaGrad 算法。 它
# 权重衰减 # 权重衰减
可以看到,像前面示例中的多项式一样,过拟合模型的权重非常大。 为了避免这种情况,可以将罚分项Ω添加到目标函数中,这将使权重更接近原点。 因此,惩罚项应该是权重范数的函数。 同样,可以通过乘以超参数α来控制惩罚项的效果。 因此我们的目标函数变为:`E(w) + αΩ(w)`。 常用的惩罚条款是: 可以看到,像前面示例中的多项式一样,过拟合模型的权重非常大。 为了避免这种情况,可以将罚分项`Ω`添加到目标函数中,这将使权重更接近原点。 因此,惩罚项应该是权重范数的函数。 同样,可以通过乘以超参数`α`来控制惩罚项的效果。 因此我们的目标函数变为:`E(w) + αΩ(w)`。 常用的惩罚条款是:
* **L2 正则化**:惩罚项由`Ω = 1/2 · ||w||^2`给出。 在回归文献中,这称为**岭回归** * **L2 正则化**:惩罚项由`Ω = 1/2 · ||w||^2`给出。 在回归文献中,这称为**岭回归**
* **L1 正则化**:惩罚项由`Ω = ||w||[1] = Σ[i](w[i])`给出。 这称为 **LASSO 回归** * **L1 正则化**:惩罚项由`Ω = ||w||[1] = Σ[i](w[i])`给出。 这称为 **LASSO 回归**
...@@ -1125,7 +1125,7 @@ L1 正则化导致稀疏解; 也就是说,它会将许多权重设置为零 ...@@ -1125,7 +1125,7 @@ L1 正则化导致稀疏解; 也就是说,它会将许多权重设置为零
# 批量标准化 # 批量标准化
在 ML 中,通常的做法是先缩放并标准化输入的训练数据,然后再将其输入模型进行训练。 对于神经网络而言,缩放也是预处理步骤之一,并且已显示出模型表现的一些改进。 在将数据馈送到隐藏层之前,我们可以应用相同的技巧吗? 批量规范化基于此思想。 它通过减去激活的最小批量平均值μ并除以最小批量标准偏`σ`来归一化前一层的激活。 在进行预测时,我们一次可能只有一个示例。 因此,不可能计算批次均值`μ`和批次`σ`。 将这些值替换为训练时收集的所有值的平均值。 在 ML 中,通常的做法是先缩放并标准化输入的训练数据,然后再将其输入模型进行训练。 对于神经网络而言,缩放也是预处理步骤之一,并且已显示出模型表现的一些改进。 在将数据馈送到隐藏层之前,我们可以应用相同的技巧吗? 批量规范化基于此思想。 它通过减去激活的最小批量平均值`μ`并除以最小批量标准`σ`来归一化前一层的激活。 在进行预测时,我们一次可能只有一个示例。 因此,不可能计算批次均值`μ`和批次`σ`。 将这些值替换为训练时收集的所有值的平均值。
# 我们需要更多数据吗? # 我们需要更多数据吗?
......
...@@ -333,7 +333,7 @@ return vj ...@@ -333,7 +333,7 @@ return vj
![](img/74d14517-90ed-4828-aad4-1cb89b7b96e1.png) ![](img/74d14517-90ed-4828-aad4-1cb89b7b96e1.png)
让我们看一下使用基于梯度的优化算法学习权重所需的总误差导数。 我们有`h[t] = Uφh[t-1] + Wx[t]`Φ是非线性激活,而`y[t] = Vφh[t]` 让我们看一下使用基于梯度的优化算法学习权重所需的总误差导数。 我们有`h[t] = Uφh[t-1] + Wx[t]``Φ`是非线性激活,而`y[t] = Vφh[t]`
现在是: 现在是:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册