本章思维导图
1. 图像表示
2. 分类模型
由线性分类器引入
而全连接神经网络级联多个变换来实现输入到输出的映射
与线性分类器的区别在于多了一个非线性操作即max,这是一个激活函数,这个激活函数不能去掉。
2.1 全连接神经网络的权值
2.2 全连接神经网络与线性不可分
2.3 全连接神经网络的绘制与命名
3. 激活函数
3.1 常用的激活函数
- Sigmoid将输出的结果压缩到0和1之间,
3.2. 网络结构设计
3.3. 全连接神经网络小结
4. 损失函数
先介绍激活函数softmax
4.1 交叉熵损失
4.2 交叉熵
其中H(p)往往是确定的,one-hot编码,熵是0,最后H(p,q) = KL(p||q)。
所有就用交叉熵来度量两个分布之间的关系
如果真实分布不是one-hot形式,那么交叉熵与KL散度不等价,只能用KL散度计算两个分布之间的偏差
4.3 交叉熵损失 vs 多类支撑向量机损失
相同分数下两种分类器的损失有什么区别?
5. 优化算法
5.1 计算图
什么是计算图?
计算图是一种有向图,它用来表达输入、输出以及中间变量之间的计算关系,图中的每个节点对应着一种数学运算
计算图的前反向计算
示例1:
示例2:
!!!:
链式法则是不断用乘法,如果局部梯度的值在不断减小,最后得到的值很小,这就是梯度消失
计算图的总结
计算图的颗粒度
计算图中常见的门单元
6. 再谈激活函数
9. 批归一化
与权值初始化不同的是,批归一化是直接对输出的值进行批归一化操作,
批归一化与梯度消失问题
批归一化一般放在激活函数之前,如下右图,经过线性计算得到的值可能会落在这个区域,经过批归一化后落回中间的区域,这样能解决梯度消失问题1
这里的x是经过线性计算得到的,y是批归一化得到的
得到0均值1方差的输出不一定适用于分类任务,所以平移变换留给神经网络来训练,(赣马、贝塔)
批归一化经常插在全连接层后,非线性激活前
10. 过拟合与欠拟合
过拟合基本的原理就是知识在训练集里面找规律并死记硬背规律;
欠拟合就相当于小学生做大学高数题
10.1 过拟合
过拟合现象,得到的模型在训练集上的准确率很高,但是在真是的场景中识别率却很低
学习过程中的过拟合
前面提到,一般把数据集分为训练集验证集和测试集,训练集用于训练模型参数优化的,验证集是用于超参数的优化的,前面找到最好的模型参数之后,测试集用于评测系统精度的,也就是近似度量系统的泛化能力。
10.2 应对过拟合
最优方案 - 获取更多的训练数据, 但是这种方法成本很高
次优方案 - 调节模型允许存储的信息量或者对模型允许存储的信息加以约束,该类方法也称为正则化
如下图,(分类O和X)如果如果没有加入正则化,分类的结果太好,容易出现过拟合,但是加了正则项,就不会出现很复杂的分界面,分类只有一个抛物线,面对新的输入,输出的结果会更好。
第三类方案还有随机失活
- 随机失活为什么能够防止过拟合?
解释2就是让每个神经元都包含更多的信息
解释3“”“三个臭皮匠顶过诸葛亮”
- 随机失活的应用
假设x和y的失活概率都是50%;训练阶段是根据神经元的随机失活计算的,测试阶段如果直接输出就不对了,还需要再乘上随机失活的概率。
如下图,H1是神经元通过计算得到的值;U1是mask矩阵,其值不是0就是1;p是神经元保持激活的概率,该值越高失活的单元就越少;
按照前面的分析,测试阶段最后还需要乘上随机失活的概率。这样有点麻烦,对上面的算法做出改进,
以下面为例,在训练阶段,将输出的值除以这个随机失活概率,这样就消掉了1/2。
11. 模型正则与超参数调优
11.1 神经网络中的超参数
超参数:(超参数和参数不一样超参数是认为设定的,参数是神经网络学习到的)
- 网络结构 —— 隐藏神经元个数,网络层数,非线性单元选择等
- 优化相关 —— 学习率、dropout比率、正则项强度等
学习率设置
11.2 超参数的优化方法
1.网格搜索
如下图,做九组实验,找出最好结果的超参数
2. 随机搜索(主要选择的方法)
11.3 超参数的尺标空间