:全连接神经网络
Posted 113之落
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:全连接神经网络相关的知识,希望对你有一定的参考价值。
计算机视觉与深度学习
本文按照北京邮电大学计算机学院鲁鹏老师的计算机视觉与深度学习课程按章节进行整理,需要的同学可借此系统学习该课程详尽知识~
第四章 全连接神经网络
本节重点
一、分类模型
1.多层感知器
全连接神经网络权值
全连接神经网络与线性分类器区分
全连接神经网络绘制及命名
2.激活函数
常用的激活函数
网络结构设计
- 用不用隐层,用一个还是用几个隐层? (深度设计)
- 每隐层设置多少个神经元比较合适? (宽度设计)
注:
1)神经元个数越多,分界面就可以越复杂,在这个集合上的分类能力就越强。
2)输入层与输出层的神经元个数由任务决定,而隐层数量以及每个隐层的神经元个数需要人为指定。
依据分类任务的难易程度来调整神经网络模型的复杂程度。分类任务越难,我们设计的神经网络结构就应该越深、越宽。但是,需要注意的是对训练集分类精度最高的全连接神经网络模型,在真实场景下识别性能未必是最好的(过拟合)。
激活函数缺陷
梯度消失是神经网络训练中非常致命的一个问题,其本质是由于链式法则的乘法特性导致的。
梯度爆炸:断崖处梯度乘以学习率后会是一个非常大得值,从而“飞”出了合理区域,最终导致算法不收敛。
解决方案:把沿梯度方向前进的步长限制在某个值内就可以避免“飞”出了,这个方法也称为梯度裁剪。
激活函数选择
尽量选择ReLU函数或者Leakly ReLU函数,相对于Sigmoi d/tanh,RelLU函数或者Leakly ReLU函数会让梯度流更加顺畅,训练过程收敛得更快。
二、损失函数
1.SOFTMAX与交叉熵(交叉熵损失)
示例
2.交叉熵损失与多类支撑向量机损失对比
三、优化算法
1.计算图与反向传播
计算图是一种有向图,它用来表达输入、输出以及中间变量之间的计算关系,图中的每个节点对应着一种数学运算。
示例一
示例二
附:计算图中常见的门单元
总结
- 任意复杂的函数,都可以用计算图的形式表示。
- 在整个计算图中,每个门单元都会得到一些输入,然后,进行下面两个计算:
a)这个门的输出值
b)其输出值关于输入值的局部梯度。 - 利用链式法则,门单元应该将回传的梯度乘以它对其的输入的局部梯度,从而得到整个网络的输出对该门单元的每个输入值的梯度。
2.梯度下降算法缺陷
3.动量法
4.自适应梯度法
5.ADAM法
训练过程
1.权值初始化
Xavier初始化
HE初始化(MSRA)
权值初始化方法选择
- 好的初始化方法可以防止前向传播过程中的信息消失,也可以解决反向传递过程中的梯度消失。
- 激活函数选择双曲正切或者Sigmoi d时,建议使用Xaizer初始化方法。
- 激活函数选择ReLU或Leakly ReLU时,推荐使用He初始化方法。
2.批归一化
3.欠拟合与过拟合
欠拟合:是指模型描述能力太弱,以至于不能很好地学习到数据中的规律。产生欠拟合的原因通常是模型过于简单。
过拟合:是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测得很差的现象。这种情况下模型可能只是记住了训练集数据,而不是学习到了数据特征。
应对过拟合
最优方案——获取更多的训练数据
次优方案——调节模型允许存储的信息量或者对模型允许存储的信息加以约束,该类方法也称为正则化。
- 调节模型大小
- 约束模型权重,即权重正则化(常用的有L1、L2正则化)
- 随机失活(Dr opout)
权重正则化
随机失活(Dropout)
4.超参数调优
超参数
- 网络结构——隐层神经元个数,网络层数,非线性单元选择等
- 优化相关——学习率、dr opout比率、正则项强度等
学习率设置
超参数优化方法
超参数搜索策略
超参数标尺空间
以上是关于:全连接神经网络的主要内容,如果未能解决你的问题,请参考以下文章
深度学习常见概念字典(感知机全连接层激活函数损失函数反向传播过拟合等)
深度学习常见概念字典(感知机全连接层激活函数损失函数反向传播过拟合等)