深度学习课堂笔记 5.14
深度学习存在的问题
(1)参数过多,训练难度大
(2)非凸优化问题,局部最优影响迭代
(3)梯度消失or爆炸
(4)参数解释困难
(5)过拟合or欠拟合
梯度消失or爆炸产生的原因:
(1)BP法先天问题
(2)初始权重带来的影响
(3)激活函数选择不当
(4)梯度流动带来的影响:网络结构本身的问题,如CNN
(5)损失值过大带来的影响:数据集的问题,如标注不准等
一:BP法是连乘,容易出现过大或者过小
二:权重初始化不当造成梯度消失或者爆炸
三:sigmoid和tan函数梯度消失问题严重,最常使用relu,偶尔使用leakyrelu
四:网络结构的问题:设置剪切阈值or更好的网络结构(RNN-LSTM)
五:训练集中存在大量噪声
怎么解决梯度消失or爆炸?
1、权重预训练+微调
2、我不用BP了!!胶囊网络
正则化
目的:防止过拟合
方法1:增加约束
方法2:干扰优化过程
参数的范数惩罚:L0正则化:模型中非零参数的个数
L1正则化:Lasso,用于选择特征(使权重稀疏)
L2正则化:岭回归,防止权重过大
数据增强:增加训练集,如图象的旋转、缩放,语音随机添加噪声,自然语言处理中近义词替换,神经网络中添加噪声
集成方法:平均输出
Dropout:丢弃一部分神经元
其他方法:多任务学习;半监督学习;对抗训练
深度学习中的优化和纯优化
1、经验风险最小化代替期望风险
最小化训练集上的误差代替真实的分布
2、代理损失函数代替损失函数
如添加了正则化的损失函数
没有导数的损失函数进行一些变化,如交叉熵函数
3、批量算法/小批量算法
深度学习常采用小批量的优化方式
深度学习优化的挑战–梯度计算问题
1、Hessian病态矩阵
条件数很大的非奇异矩阵
微小的数据变化导致结果巨大变化
梯度下降缓慢或者无法下降
2、局部极小点
高维空间鞍点多,低维空间极值点多
3、鞍点、高原和其他平坦区域
鞍点附近的梯度非常小,梯度下降可能逃离鞍点,牛顿法可能跳进鞍点
恒值的、宽且平坦的区域,梯度和Hessian矩阵都是零
4、悬崖和梯度爆炸
5、长期依赖问题
6、近似问题
7、局部和全局结构间的弱对应
即使在局部解决了所有困难,全局也不一定好
大多数优化的难点在于训练中是否达到了全局最小点、局部最小点或者鞍点,但是在实践中,神经网络可能哪个点都达不到
8、优化理论的限制
理论上很难解决的问题,由于加深层数可能很简单就解决了
BGD–批量梯度下降
使用全部的样本求解梯度的累积
SGD–随机梯度下降
每次随机选择一个一个样本
更新速度大大加快
缺点:1、准确度下降 2、可能收敛于局部最优 3、不易于并行实现
MBGD–小批量梯度下降
随机选择一批样本
(注意:有些书上SGD就是指小批量,不同的人叫法不一样,要清楚本质)