Skip to content

Commit 81ac6dd

Browse files
committed
Updates dl/introduction/introduction.md
Auto commit by GitBook Editor
1 parent 35adee6 commit 81ac6dd

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

dl/introduction/introduction.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737

3838
### Regularization 归一化 {#regularization-归一化}
3939

40-
```
40+
4141
对于以上提到的问题,说明针对特定的问题需要设置特定的学习算法,但是呢,对于要解决的问题可以设置偏好的算法,当这个算法不好用时再采用其它的算法。例如对于线性回归可以采用weight decay(权值衰减)的方法,添加一个权值来调节线性回归的非线性能力。**更通用的方法是**给cost function 添加一个regularizer(正则化矩阵)用来调节学习函数模型(正则化中我们将保留所有的特征变量,但是会减小特征变量的数量级(*参数数值的大小θ(j))。这个方法非常有效,当我们有很多特征变量时,其中每一个变量都能对预测产生一点影响。正如我们在房价预测的例子中看到的那样,我们可以有很多特征变量,其中每一个变量都是有用的,因此我们不希望把它们删掉,这就导致了正则化概念的发生。接下来我们会讨论怎样应用正则化和什么叫做正则化均值,然后将开始讨论怎样使用正则化来使学习算法正常工作,并避免过拟*)
42-
```
42+
4343

4444
# Hyperparameters and Validation Sets {#hyperparameters-and-validation-sets}
4545

@@ -75,9 +75,9 @@ DBNs是一个概率生成模型,与传统的判别模型的神经网络相对
7575

7676
## 机器学习优化算法—L-BFGS {#机器学习优化算法—l-bfgs}
7777

78-
```
78+
7979
关于优化算法的求解,书上已经介绍了很多的方法,比如有**梯度下降法,坐标下降法,牛顿法和拟牛顿法**。梯度下降法是基于目标函数梯度的,算法的收敛速度是线性的,并且当问题是病态时或者问题规模较大时,收敛速度尤其慢(几乎不适用);坐标下降法虽然不用计算目标函数的梯度,但是其收敛速度依然很慢,因此它的适用范围也有局限;牛顿法是基于目标函数的二阶导数(海森矩阵)的,其收敛速度较快,迭代次数较少,尤其是在最优值附近时,收敛速度是二次的。但牛顿法的问题在于当海森矩阵稠密时,每次迭代的计算量比较大,因为每次都会计算目标函数的海森矩阵的逆,这样一来,当问题规模较大时,不仅计算量大(有时大到不可计算),而且需要的存储空间也多,因此牛顿法在面对海量数据时由于每一步迭代的开销巨大而变得不适用;拟牛顿法是在牛顿法的基础上引入了海森矩阵的近似矩阵,避免每次迭代都要计算海森矩阵的逆,拟牛顿法的收敛速度介于梯度下降法和牛顿法之间,是超线性的。拟牛顿法的问题也是当问题规模很大时,近似矩阵变得很稠密,在计算和存储上也有很大的开销,因此变得不实用。
80-
```
80+
8181

8282
另外需要注意的是,牛顿法在每次迭代时不能总是保证海森矩阵是正定的,一旦海森矩阵不是正定的,优化方向就会“跑偏”,从而使得牛顿法失效,也说明了牛顿法的鲁棒性较差。拟牛顿法用海森矩阵的逆矩阵来替代海森矩阵,虽然每次迭代不能保证是最优的优化方向,但是近似矩阵始终是正定的,因此算法总是朝着最优值的方向在搜索。 从上面的描述可以看出,很多优化算法在理论上有很好的结果,并且当优化问题的规模较小时,上面的任何算法都能够很好地解决问题。而在实际工程中,很多算法却失效了。比如说,在实际工程中,很多问题是病态的,这样一来,基于梯度的方法肯定会失效,即便迭代上千上万次也未必收敛到很好的结果;另外,当数据量大的时候,牛顿法和拟牛顿法需要保存矩阵的内存开销和计算矩阵的开销都很大,因此也会变得不适用。 L-BFGS算法就是对拟牛顿算法的一个改进。它的名字已经告诉我们它是基于拟牛顿法BFGS算法的改进。L-BFGS算法的基本思想是:算法只保存并利用最近m次迭代的曲率信息来构造海森矩阵的近似矩阵。
8383

0 commit comments

Comments
 (0)