4.性能优化
4.1动量法
病态曲率
动量法
4.2自适应梯度算法
Adaptive Gradient
- 参数自适应变化:具有较大偏导的参数相应有一个较大的学习
率,而具有小偏导的参数则对应一个较小的学习率 - 具体来说,每个参数的学习率会缩放各参数反比于其历史梯度
平方值总和的平方根
特点: - 学习率是单调递减的,训练后期学习率过小会导致训练困难,
甚至提前结束 - 需要设置一个全局的初始学习率
RMSProp
RMSProp 解决 AdaGrad 方法中学习率过度衰减的问题
Adam
- Adam 在 RMSProp 方法的基础上更进一步:
➢ 除了加入历史梯度平方的指数衰减平均(𝑟)外,
➢ 还保留了历史梯度的指数衰减平均(𝑠),相当于动量。 - Adam 行为就像一个带有摩擦力的小球,在误差面上倾向于平
坦的极小值。
4.3性能优化问题描述
- 待解决问题:权值𝐰取何值,指标函数𝐽(𝐰)最小?恰恰是最优化方法中的基本问题:函数最小化。
进一步,我们希望建立迭代形式,并且形式尽量简单,类似
基本BP算法(最速梯度法): ω k + 1 = ω k + α k p k \omega_{k+1} = \omega_{k} + \alpha_{k}p_{k} ωk+1=ωk+αkpk - 基本思想
全局极小点, 局部极小点
◼ 一阶条件:必要条件𝛻𝑓(x)= 0 (驻点)
◼ 二阶条件:充分条件 H半正定
◼ 鞍点:沿某方向是极大值点,沿另一方向是极小值。
4.4二阶算法
牛顿法:
常用技巧
训练数据与测试数据:
数据包括:
➢ 训练数据
➢ 验证数据
➢ 测试数据
通常三者比例为70%,15%,15%或60,20,20当数据很多时,训练和验证数据可适当减少。
训练数据与测试数据:𝐾折交叉验证
原始训练数据被分成 K 个不重叠的子集。 然后执行 K 次模型训练和验证,每次在 K−1 个子集上进行训练, 并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。 最后,通过对 K 次实验的结果取平均来估计训练和验证误差。
欠拟合与过拟合:
➢ 欠拟合:误差一直比较大
➢ 过拟合:在训练数据集上误差小而在测试数据集上误差大
5. 卷积神经网络基础
5.1深度学习平台简介
Pytorch:
PyTorch是一个Python的深度学习库。它最初由Facebook人工智能研
究小组开发,而优步的Pyro软件则用于概率编程。
使用基本概念:
- 张量(Tensor)是一个物理量,对高维(维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组为三阶张量…
- 计算图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)
- 使用 tensor 表示数据
- 使用 Dataset、DataLoader 读取样本数据和标签
- 使用变量 (Variable) 存储神经网络权值等参数
- 使用计算图 (computational graph) 来表示计算任务
- 在代码运行过程中同时执行计算图
5.2卷积神经网络基础
进化史:
基本概念
全连接网络:链接权过多,难算难收敛,同时可能进入局部极小值,也容易产生过拟合问题
局部连接网络:顾名思义,只有一部分权值连接。部分输入和权值卷积。
填充(Padding),也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
结构:
构成:由多个卷积层和下采样层构成,后面可连接全连接网络
卷积层:k个滤波器
下采样层:采用mean或max
后面:连着全连接网络
算法:
5.3LeNet-5网络
网络介绍
网络结构:
C1层:
- 6个Feature map构成
- 每个神经元对输入进行5*5卷积
- 每个神经元对应55+1个参数,共6个feature map,2828个神经元,因此共有(55+1)6(2828)=122,304连接
S2层:
C3层(卷积层):
S4层:
与S2层工作相同
C5层:
- 120个神经元
- 每个神经元同样对输入进行5*5卷积,与S4全连接
- 总连接数(5516+1)*120=48120
F6层:
- 84个神经元
- 与C5全连接
- 总连接数(120+1)*84=10164
输出层:
- 由欧式径向基函数单元构成
- 每类一个单元
- 输出RBF单元计算输入向量和参数向量之间的欧式距离
网络说明
- 与现在网络的区别
- 卷积时不进行填充(padding)
- 池化层选用平均池化而非最大池化
- 选用Sigmoid或tanh而非ReLU作为非线性环节激活函数
- 层数较浅,参数数量小(约为6万)
误差反向传播:
总结
本周的深度学习和神经网络课程我学习了如上的知识,对于卷积神经网络的一些知识又有了深入的了解,受益匪浅。