爆炸;循环神经网络进阶

过拟合、欠拟合及其解决方案

1.1 如何防止过拟合

1).在训练和建立模型的时候,从相对简单的模型开始,不要一开始就把特征做的非常多,模型参数跳的非常复杂。

2).增加样本,要覆盖全部的数据类型。数据经过清洗之后再进行模型训练,防止噪声数据干扰模型。

3).正则化。在模型算法中添加惩罚函数来防止过拟合。常见的有L1,L2正则化。

4).集成学习方法bagging(如随机森林)能有效防止过拟合

5).减少特征个数(不是太推荐)注意:降维不能解决过拟合。降维只是减小了特征的维度,并没有减小特征所有的信息。


1.2 过拟合的解决方法

1. 早停(early stop)

2. L1和L2正则化

3. dropout

4. SVM的松弛变量

5. 决策树减枝

6. 特征筛选

7. 增加数据集

8. 集成学习’


梯度消失、梯度爆炸

2.1梯度消失梯度爆炸怎么解决

1)、使用 ReLU、LReLU、ELU、maxout 等激活函数

sigmoid函数的梯度随着x的增大或减小和消失,而ReLU不会。

2)、使用批规范化

通过规范化操作将输出信号x规范化到均值为0,方差为1保证网络的稳定性。从上述分析分可以看到,反向传播式子中有w的存在,所以w的大小影响了梯度的消失和爆炸,Batch Normalization 就是通过对每一层的输出规范为均值和方差一致的方法,消除了w带来的放大缩小的影响,进而解决梯度消失和爆炸的问题。


2.2RNN梯度消失问题,为什么LSTM和GRU可以解决此问题

RNN由于网络较深,后面层的输出误差很难影响到前面层的计算,RNN的某一单元主要受它附近单元的影响。而LSTM因为可以通过阀门记忆一些长期的信息,相应的也就保留了更多的梯度。而GRU也可通过重置和更新两个阀门保留长期的记忆,也相对解决了梯度消失的问题。


循环神经网络进阶

AlexNet

首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。

特征:

1. 8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。

2. 将sigmoid激活函数改成了更加简单的ReLU激活函数。

3. 用Dropout来控制全连接层的模型复杂度。

4. 引入数据增强,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。


机器学习笔记03:过/欠拟合;梯度消失/爆炸;循环神经网络进阶


使用重复元素的网络(VGG)

VGG:通过重复使⽤简单的基础块来构建深度模型。

Block:数个相同的填充为1、窗口形状为$3\\times 3$的卷积层,接上一个步幅为2、窗口形状为$2\\times 2$的最大池化层。

卷积层保持输入的高和宽不变,而池化层则对其减半。


机器学习笔记03:过/欠拟合;梯度消失/爆炸;循环神经网络进阶


⽹络中的⽹络(NiN)

LeNet、AlexNet和VGG:先以由卷积层构成的模块充分抽取 空间特征,再以由全连接层构成的模块来输出分类结果。

NiN:串联多个由卷积层和“全连接”层构成的小⽹络来构建⼀个深层⽹络。

用了输出通道数等于标签类别数的NiN块,然后使⽤全局平均池化层对每个通道中所有元素求平均并直接⽤于分类。


机器学习笔记03:过/欠拟合;梯度消失/爆炸;循环神经网络进阶


1×1卷积核作用

1.放缩通道数:通过控制卷积核的数量达到通道数的放缩。

2.增加非线性。1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性。

3.计算参数少


GoogLeNet

1. 由Inception基础块组成。

2. Inception块相当于⼀个有4条线路的⼦⽹络。它通过不同窗口形状的卷积层和最⼤池化层来并⾏抽取信息,并使⽤1×1卷积层减少通道数从而降低模型复杂度。

3. 可以⾃定义的超参数是每个层的输出通道数,我们以此来控制模型复杂度。


机器学习笔记03:过/欠拟合;梯度消失/爆炸;循环神经网络进阶


GoogLeNet模型

完整模型结构


机器学习笔记03:过/欠拟合;梯度消失/爆炸;循环神经网络进阶


分享到:


相關文章: