当前课程知识点:大数据机器学习 > 第二十章 深度学习优化方法 > 2.神经网络优化的挑战 > 2. 神经网络优化的挑战
我们在分析了机器学习的
优化算法的特性之后呢
我们下面再来看一看
神经网络优化
到底有哪些具体的所面临的挑战
这些挑战包括
病态问题
局部极小值
高原
鞍点和其他平坦区域
悬崖和梯度爆炸
长期依赖
不精确梯度
局部和全局结构不匹配
以及优化理论的局限性等
在优化凸函数的时候
我们会遇到一些挑战
这其中最突出的是hessian矩阵H的病态问题
这是数值优化
凸优化或其他形式的优化当中
普遍会存在的问题
我们回顾一下
代价函数的二阶泰勒级数展开
当X沿梯度方向下降负的εg
则代价函数会增加
(见上图)
当前项大于后项的时候
梯度的病态就会成为问题
判断病态同时来监测平方梯度范数
(见上图)
在很多情况中
梯度范数不会在训练过程中显着的缩小
但是
g转置Hg的增长会超过一个数量级
那么结果就是尽管梯度很强
然而学习依然会变得非常缓慢
因为学习率必须收缩
来弥补更强的曲率
我们来看这张图
这是一个卷积神经网络的训练期间的
分类错误率和梯度大小的分析图
左图的横轴呢是训练时间
纵轴是梯度范数
右图的横轴也是训练时间
纵轴是分类的错误率
我们可以先看一下右图
看到训练过程中
分类误差是逐渐减小
最后呢逐渐收敛
我们也注意到
在50次迭代以后
分类误差下降呢就很小
而左图我们看到
在整个的训练过程中
梯度的范数一直是在增长的
即使在分类误差几乎没有下降的情况下
梯度范数呢依然会不断增大
而并不是像我们所预计的那样
会随着分类误差的减小
梯度也逐渐的减小并收敛
下面我们来看一些神经网络优化的
第二个问题就是局部极小值
我们知道神经网络呢尤其是深度神经网络
往往都是非凸的
也就是说啊
有可能会存在多个局部极小值
除了这一点以外
还有一些因素是导致深度神经网络
会出现非常多的局部极值的问题
注意呢
我们这里用了非常多这个描述
我们来看一看问题究竟出在哪里
我们来看什么是模型可辨识性问题
神经网络和任意具有
多个等效参数化潜变量的模型
都会具有多个局部极小值
如果一个足够大的训练集
可以唯一的确定一组模型参数的话
那么该模型就被称为可辨认的
带有潜变量的模型通常是不可辨认的
因为我们通过相互的交换前变量
可以得到等价的模型
比如
考虑神经网络的第一层
我们可以交换单元i和单元J的传入权重的向量
以及传出权重向量
却可以得到等价的模型
那么 神经网络如果有M层
每一层有n个单元的话
那么 会有n的阶乘乘m种
排列的隐藏单元的方式是
这种不可辨认性被称为是权重空间的对称性
另外
我们在上一讲介绍的maxout网络当中
我们可以将传入权重和偏置扩大α倍
然后呢
再将传出的权重扩大1/α倍
而可以保持模型是等价的
对于实际中感兴趣的网络
是否存在大量的代价很高的局部极小值
优化算法是否会碰到这些局部极小值
都是尚未解决的非常公开的问题
下面我们讨论深度神经网络当中
优化问题中的高原鞍点
和其他平坦区域的问题
对于很多高维的非凸函数而言
局部极小值以及极大值
事实上呢都远少于另一类梯度为0的点
就是鞍点
也就是说
我们在学习过程中找到的极值点
很有可能就是鞍点
鞍点附近的点
既有可能是比鞍点更大的代价
也有可能是有更小的代价
在鞍点的地方
Hessian 矩阵呢同时具有正负的特征值
位于正特征值对应的特征向量方向的点
比鞍点呢有更大的代价
反之呢
位于负特征值所对应的
特征向量方向的点就有更小的代价
我们可以将鞍点视为代价函数当中
某个横截面上的局部极小点
同时也可以视为代价函数
某个横截面上的局部极大点
低维空间中局部极小值很普遍
在更高维的空间当中
局部极小值却很罕见
而鞍点则很常见
对于这类函数f Rn到R而言
鞍点和局部极小值的数目比例的期望
是随着N呈现指数级的增长
从图中可以看出
随机梯度下降法比二阶的优化方法
也就是牛顿法要好
于是呢
无鞍点的牛顿法的一些算法呢
也被研究者们相继被提出
多层神经网络通常存在
像悬崖一样的斜率的较大的区域
如该图所示
这是由于几个较大的权重相乘导致的
遇到斜率极大的悬崖的结构的时候
梯度更新呢会很大程度地改变参数值
通常呢就会完全地跳过这段悬崖的结构
不管我们是从上还是从下去接近这个悬崖
情况呢都很不理想
但是呢我们可以用启发式的梯度截断
来尽量避免它的严重的后果
我们来看一下长期依赖问题
这个问题是指
由于变深的深度神经网络的结构
使得模型丧失了学习到先前信息的能力
会让优化变得极为困难
深层的计算图不仅存在于前馈网络
也存在循环网络当中
因为循环网络呢
要在很长的时间序列的各个时刻
重复应用相同的操作
来构建非常深的计算图
并且呢模型参数是共享的
这就使得问题也就是
长期依赖问题更加凸显
假设某个计算图当中包含了一条
反复与矩阵W相乘的路径的话
那么在T步以后呢
就相当于乘以了W的t次方
我们假设W有特征值分解
(见上图)
在这种简单的情况下
(见上图)
很容易就看出当特征值i
不在1附近的时候呢
如果在量级上大于1就会爆炸
若小于一呢就会消失
这就是梯度消失和爆炸的问题
大多数优化算法的先决条件
都是我们知道精确的梯度或是Hessian矩阵
但是呢在实践中通常这些量都会有噪声
甚至是有偏的估计
希望最小化的目标函数实际上是难以处理的
在这种情况下
我们只能近似梯度
各种神经网络优化算法的设计
都考虑到了梯度估计的缺陷
我们可以选择比真实的损失函数
更容易估计的代理损失函数来避免这个问题
我们把刚才所学习的这些问题再列举一下
第一
Jθ在当前点θ下是病态问题
第二
θ是在悬崖中
第三
θ是下降点不明显的鞍点
第四呢
在自身的局部方向上改进很大
但是并没有指向代价更低的更遥远的区域
第五
或许根本就不会到达任何一个临界点
或者呢
临界点啊根本就不存在
那么在深度学习中著名的专家
goodfellow就曾经说过
认为大部分的训练的运营时间
取决于到达解决方案的轨迹的长度
这些问题呢
可以看成是局部和全局结构间的弱对应
我们来看这张图
初始化呢是在山的错误的一侧
就会导致代价函数
虽然是向低值方向移动
但是呢 它却无法绕过这个高山
到达图的右侧也就是真正的极值
如果它想绕过高山的话
那么相关的轨迹就会很长
而且会导致过长的训练时间
下面我们讨论一下优化算法的理论限制
研究结果表明
为神经网络设计的任何优化算法都是有性能限制的
通常这些结果不影响
神经网络在实践中的应用
也就是说也是可以用的
在神经网络中
理论和实际操作的关系有以下这些
首先
虽然一些算法在理论上
仅仅适用于神经网络的单元输出是离散值的情况
然而呢
在实际应用中大多数的神经网络单元
输出光滑的连续值的情况下
算法呢也可以使得局部搜索求解优化是可行的
第二呢
从理论上看
存在某类的问题是不可解的
但是在实际应用中
很难判断一个特定问题
是否是属于这一类的
第三
从理论上寻找给定规模的网络的
一个可行解是很困难的
然而实际应用中
我们可以通过设置更多的参数
更大的网络就能轻松地找到可以接受的解
第四点
从理论上
我们关注函数的极小值问题
然而实际应用中
我们通常不关注某个函数的精确的极小值
我们只是关注
在这个值下降到足够小
来获得一个较好的泛化误差
-1.机器学习定义和典型应用
-2.机器学习和人工智能的关系
-3.深度学习方法和其它人工智能方法的共性和差异
-4.机器学习和数据挖掘的关系
-5.机器学习和统计学习的关系
-6.机器学习的发展历程
-7.大数据机器学习的主要特点
-第一章 概述--7.大数据机器学习的主要特点
-1机器学习的基本术语
-2.监督学习
--2.监督学习
-3.假设空间
--3.假设空间
-4.学习方法三要素
-第二章 机器学习基本概念--4.学习方法三要素
-5.奥卡姆剃刀定理
-6.没有免费的午餐定理
-7.训练误差和测试误差
-8.过拟合与模型选择
-第二章 机器学习基本概念--8.过拟合与模型选择
-9.泛化能力
--9.泛化能力
-10.生成模型和判别模型
-1.留出法
--1.留出法
-2.交叉验证法
--2.交叉验证法
-3.自助法
--3.自助法
-4.性能度量
--4.性能度量
-5.PR曲线
--5.PR曲线
-6.ROC和AUC曲线
-第三章 模型性能评估--6.ROC和AUC曲线
-7.代价敏感错误率
-8.假设检验
--8.假设检验
-9.T检验
--9.T检验
-10.偏差和方差
--10.偏差和方差
-1.感知机模型
--1.感知机模型
-第四章 感知机--1.感知机模型
-2.感知机学习策略
-3.感知机学习算法
-第四章 感知机--3.感知机学习算法
-1.原型聚类描述
--1.原型聚类描述
-第五章 聚类--1.原型聚类描述
-2.性能度量
--2.性能度量
-第五章 聚类--2.性能度量
-3.1原型聚类 k均值算法
-3.2 原型聚类 学习向量算法
-3.3 原型聚类 密度聚类
-第五章 聚类--3.3 原型聚类 密度聚类
-3.4原型聚类 层次聚类
-1.综述
--1.综述
-2.概率图模型
--2.概率图模型
-第六章 贝叶斯分类器及图模型--2.概率图模型
-3.贝叶斯网络
--3.贝叶斯网络
-第六章 贝叶斯分类器及图模型--3.贝叶斯网络
-4.朴素贝叶斯分类器
-第六章 贝叶斯分类器及图模型--4.朴素贝叶斯分类器
-5.半朴素贝叶斯分类器
-第六章 贝叶斯分类器及图模型--5.半朴素贝叶斯分类器
-6.贝叶斯网络结构学习推断
-7.吉布斯采样
--7.吉布斯采样
-第六章 贝叶斯分类器及图模型--7.吉布斯采样
-开头
--开头
-1.决策树模型与学习基本概念
-2.信息量和熵
--2.信息量和熵
-第七章 决策树和随机森林--2.信息量和熵
-3.决策树的生成
--3.决策树的生成
-4.决策树的减枝
--4.决策树的减枝
-5.CART算法
--5.CART算法
-6.随机森林
--6.随机森林
-简介
--简介
-1.逻辑斯谛回归模型
-第八章 逻辑斯谛回归与最大熵模型--1.逻辑斯谛回归模型
-2.最大熵模型
--2.最大熵模型
-3.模型学习的最优化方法
-第八章 逻辑斯谛回归与最大熵模型--3.模型学习的最优化方法
-1.开头
--1.开头
-2.SVM简介
--2.SVM简介
-3.线性可分支持向量机
-第九章 SVM--3.线性可分支持向量机
-4. 凸优化问题的基本概念
-第九章 SVM--4. 凸优化问题的基本概念
-5.支持向量的确切定义
-6.线性支持向量机
-第九章 SVM--6.线性支持向量机
-svm相关拓展资料
-开头
--开头
-第十章 核方法与非线性SVM--开头
-1.泛函基础知识
--1.泛函基础知识
-第十章 核方法与非线性SVM--1.泛函基础知识
-2. 核函数和非线性支持向量机
-第十章 核方法与非线性SVM--2. 核函数和非线性支持向量机
-3. 序列最小最优化算法
-第十章 核方法与非线性SVM--3. 序列最小最优化算法
-开头
--开头
-1. k近邻学习
--1. k近邻学习
-第十一章 降维与度量学习--1. k近邻学习
-2. 降维嵌入
--2.降维嵌入
-第十一章 降维与度量学习--2. 降维嵌入
-3. 主成分分析
--3.主要成分分析
-第十一章 降维与度量学习--3. 主成分分析
-4. 核化线性降维
--4.核化线性降维
-5. 流型学习和度量学习
-1. 提升方法Adaboost算法
-第十二章 提升方法--1. 提升方法Adaboost算法
-2. Adaboost算法的训练误差分析
-3. Adaboost算法的解释
-4. Adaboost的实现
-第十二章 提升方法--4. Adaboost的实现
-adaboost拓展资料
-开头
--开头
-1. 问题提出
--1. 问题提出
-2. EM算法的引入
-3. EM算法的收敛性
-4. EM算法在高斯混合模型学习中的应用
-5. EM算法的推广
-第十三章 EM算法及混合高斯模型--3. EM算法的收敛性
-开头
--开头
-1. 计算学习理论的基础知识
-第十四章 计算学习理论--1. 计算学习理论的基础知识
-2. 概率近似正确学习理论
-3. 有限假设空间
--3.有限假设空间
-4. VC维
--4. VC维
-第十四章 计算学习理论--4. VC维
-5. 学习稳定性
--5. 学习稳定性
-开头
--开头
-1. 隐马尔科夫模型的基本概念
-第十五章 隐马尔可夫模型--1. 隐马尔科夫模型的基本概念
-2. 概率计算算法
-3. 学习算法
--3.学习算法
-第十五章 隐马尔可夫模型--3. 学习算法
-4预测算法
--4. 预测算法
-第十五章 隐马尔可夫模型--4预测算法
-开头
--开头
-1.概率无向图模型
-第十六章 条件随机场--1.概率无向图模型
-2.条件随机场的定义与形式
-第十六章 条件随机场--2.条件随机场的定义与形式
-3.条件随机场的计算问题
-4.条件随机场的学习算法
-5.条件随机场的预测算法
-第十六章 条件随机场--5.条件随机场的预测算法
-开头
--开头
-1.精确推断法:变量消去法和信念传播法
-第十七章 概率图模型的学习与推断--1.精确推断法:变量消去法和信念传播法
-2.近似推断法:MCMC和变分推断
-第十七章 概率图模型的学习与推断--2.近似推断法:MCMC和变分推断
-1.神经网络的发展历程
-2.神经网络的基本概念以及常见的神经网络(一)
-第十八章 神经网络和深度学习--2.神经网络的基本概念以及常见的神经网络(一)
-3.神经网络的基本概念以及常见的神经网络(二)
-4.玻尔兹曼机
--4.玻尔兹曼机
-5.深度学习
--5.深度学习
-第十八章 神经网络和深度学习--5.深度学习
-1. 深度学习简介和架构设计
-2. 计算图形式的反向传播算法
-3.深度学习的正则化方法(一)
-4.深度学习的正则化方法(二)
-1.深度学习的优化问题
-第二十章 深度学习优化方法--1.深度学习的优化问题
-2.神经网络优化的挑战
-3.神经网络的优化算法
-第二十章 深度学习优化方法--3.神经网络的优化算法
-4.相关策略
--4.相关策略
-第二十章 深度学习优化方法--4.相关策略