文章目录
梯度下降的变化
1. SGD随机梯度下降
每次使用一批(batch)数据进行梯度的计算,而不是计算全部的梯度
2. Momentum
SGD的同时,增加动量(momentum),帮助梯度跳出局部最小点
3. Adagrad
自适应学习率(adaptive),学习率每次计算出的梯度影响
缺点:某些情况下一直递减的学习率并不好,这样会造成学习过早结束
4. RMSprop
Adagrad的改进
5. Adam
RMSprop与动量Momentum的结合
数据预处理
1. 中心化
数据预处理中最常见的处理方法:每个特征维度都减去相应的均值实现中心化
这样使得数据变成0均值,即数据移动到坐标轴的0点位置,以坐标轴中心为中心点。
(尤其是图像数据)
2. 标准化
中心化之后,还要让数据不同的特征维度都有着相同的规模
- 除以标准差
- 让每个特征维度的最大值和最小值按比例缩放到-1~1之间
故:让数据有相同的范围
3. PCA主成分分析
中心化之后,将数据投影到一个特征空间,我们能够取得一些较大的、主要的特征向量来降低维度,去掉一些没有方差的维度。
4. 白噪声
首先会跟PCA一样,将数据投影到一个特征空间,然后每个维度除以特征值以标准化数据
(PCA和白噪声用的少)
权重初始化
1. 随机初始化
我们希望权重初始化的时候尽可能靠近0,但是不能全部为0
可以初始化权重为一些靠近0的随机数,神经元最开始都是随机的、唯一的,所以在跟新的时候也是作为独立的部分,最后一起合成在神经网络中。
2. 稀疏初始化
将权重全部初始化为0,然后为了打破对称性在里面随机挑选一些参数附上随机值
(用的少)
3. 初始化偏置(bias)
bias的初始化通常为0,因为权重已经打破了对称性
4. 批标准化(Batch Noemalization)
通常应用到全连接层后面,非线性层前面,同时还可以加快网络的收敛速度。
(常用)
防止过拟合
1. 正则化
- L2正则化: 对于权重过大的部分进行惩罚(常用)
- L1正则化
2. Dropout
训练网络的时候依概率P保留每个神经元,也就是说每次训练的时候,对一些神经元置0
- 训练:随机的部分神经元没有参与到网络的训练
- 预测:所有全部的神经元都参与
(实际应用中L2正则化搭配Dropout防止过拟合)