深度学习算法之过拟合、局部最小值和梯度弥散·
来源:互联网 发布:雅可比矩阵的计算 编辑:程序博客网 时间:2024/05/29 04:48
紧接着上文优化方法总结一下优化方法是从哪些地方入手的。
The Difficulty of Training Deep Architectures and the Effect of Unsupervised Pre-Training
一、局部最小值
求解函数的梯度,当梯度值为0时,可以说该点是该函数的极大值或者极小值。当把定义域内的所有极值点都求出来,进行比较之后,最终可以确定函数在定义域内的最值。
如果函数是凸函数,那么极值点就是最值点。
可以说极值点就是局部最小值,最值点就是全局最小值。(不考虑边界)
由于有界集上的连续可微函数是一定能通过梯度下降法找到极值点的。对于凸函数,从任意一点出发,沿着梯度下降的方向走,最终一定下降到全局最小值附近,而非凸函数,从任意一点出发,沿着梯度下降方向最大可能则是走向那个离出发点最近的局部最小值basin of attraction。
但是多层神经网络恰恰不是凸函数,所以理论上存在多个局部最小值,而且随着层数的增加,局部最小值就越多,这就是CNN的致命缺陷之一。
如何针对局部最小值进行优化呢?
首先,就是优化起始点。
1、均匀分布初始权重(Uniform distribution)
2、高斯分布初始权重(Gaussian distribution)
3、PositiveUnitball
4、Xavier
5、MSRA
6、Bilinear
然后,就是在梯度下降中自适应的调节学习率,使得梯度有可能跳出某个局部最小值。caffe中的solver
比如加入动量的梯度下降,在梯度下降后期陷入局部最小值的时候,有可能借助之前相同的动量越出局部最小值。
二、梯度弥散
激活函数与梯度弥散
梯度弥散造成梯度反向传播在最后几层就结束了,不管后面训练的再好,前面的网络仍然一塌糊涂。
三、过拟合
拟合能力强,预测能力弱。
解决方法:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)、Dropout,BN
从三个方面讲:
第一就是输入,数据集越大,网络的泛化能力越强;
第二,从输出的角度讲,密切关注loss的变化趋势,当loss变化不在陡峭,趋于平缓时,就可以提前结束训练过程,防止过拟合;
最后,从网络结构的角度,过拟合说明网络结构太复杂,可以使用dropout或者BN进行结构的瘦身。
- 深度学习算法之过拟合、局部最小值和梯度弥散·
- 深度学习总结(六)——梯度弥散、爆炸和过拟合
- 【深度学习:CNN】过拟合、梯度弥散、batchsize的影响的问题
- 深度学习基础之-梯度弥散和梯度爆炸及解决办法
- 欠拟合和过拟合、局部梯度下降
- 深度学习: gradient diffusion (梯度弥散)
- 深度学习关键词之—过拟合
- 深度学习关键词之—过拟合
- 深度学习:过拟合
- 深度学习中的欠拟合和过拟合简介
- 梯度弥散和梯度爆炸
- 梯度弥散和梯度爆炸
- 梯度弥散和梯度爆炸
- 深度学习之减少过拟合的可能性
- 深度学习lstm防止过拟合之dropout
- 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题(二)
- 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题
- 梯度弥散
- 事务隔离级别
- truncate与delete的区别
- 单例设计模式反射,序列化漏洞及解决方案
- java基础总结13-面向对象9(对象转型)
- openstack 手动部署
- 深度学习算法之过拟合、局部最小值和梯度弥散·
- [程序员面试宝典]链表中倒数第K个节点
- 迭代器模拟实现STL中的list
- 使用jedis连接单机和集群redis的两种方式
- python中的is、==和cmp()比较字符串
- (16)caffe总结之自定义数据输入层
- Git详解(1)——Git起步
- Leetcode -- 35. Search Insert Position
- css3 images