性能优化
(1)动量法:
![](https://img-blog.csdnimg.cn/img_convert/8c8694a0d170760b4dce981191c68bc4.png)
(2)自适应梯度
![](https://img-blog.csdnimg.cn/img_convert/a2c2703afdc96ee20a1bf5134297423a.png)
(3)RMSProp算法
![](https://img-blog.csdnimg.cn/img_convert/834e5f35b3ec3ffa1b3d0c7f940f0156.png)
(4)Adam算法
![](https://img-blog.csdnimg.cn/img_convert/388aa85ace872ecaa4c07b39c85656d1.png)
(5)K折交叉验证
原始训练数据被分成K个不重叠的子集。 然后执行 K 次模型 训练和验证,每次在 K−1 个子集上进行训练, 并在剩余的一 个子集(在该轮中没有用于训练的子集)上进行验证。 最后, 通过对 K 次实验的结果取平均来估计训练和验证误差。 (6)欠拟合和过拟合
欠拟合:误差一直比较大
过拟合:在训练数据集上误差小而在测试数据集上误差大
(7)权重衰减(L2正则化)
为防止过拟合和权值震荡,加入新的指标函数项:
![](https://img-blog.csdnimg.cn/img_convert/669cce1b777760bfc94dd5e9f73e21bb.png)
第二项约束了权值不能过大。在梯度下降时,导数容易计算:
![](https://img-blog.csdnimg.cn/img_convert/379396eac075223e01c5c9182e488377.png)
(8)模型初始化
简单初始化:把所有权值在[-1,1]区间内按均值或高斯分布 进行初始化。
Xavier初始化:为了使得网络中信息更好的流动,每一层输 出的方差应该尽量相等。因此需要实现下面的均匀分布:
![](https://img-blog.csdnimg.cn/img_convert/d4a4b8d92061b4682203dcf54dead373.png)
卷积神经网络基础
(1)PyTorch的基本使用
构建简单的计算图,每个节点将零个或多个tensor作为输入,产生一个 tensor作为输出。PyTorch中,所见即为所得,tensor的使用和numpy中的多 维数组类似:
![](https://img-blog.csdnimg.cn/img_convert/82743b5ffa571a13c411de457e679b71.png)
![](https://img-blog.csdnimg.cn/img_convert/5dd00a43f4d17c572568d263c39b8b5e.png)
(2)线性回归
定义网络
![](https://img-blog.csdnimg.cn/img_convert/f13a4fd3a0719bc921a4e9854baff209.png)
进行训练
![](https://img-blog.csdnimg.cn/img_convert/6fb49da9bd7160c8d6aa1ea1da3e2c15.png)
得到结果
![](https://img-blog.csdnimg.cn/img_convert/49289f41dfeacd68747acf80f4173b09.png)
(3)基本概念
全连接网络:链接权过多,难算难收敛,同时可 能进入局部极小值,也容易产生过拟合问题
局部连接网络:顾名思义,只有一部分权值连接。 部分输入和权值卷积。
填充(Padding):也就是在矩阵的边界上填充一些值,以 增加矩阵的大小,通常用0或者复制边界像素来进行填充。
![](https://img-blog.csdnimg.cn/img_convert/9277f6da860d485e502a52818a7b1ae7.png)
步长(Stride):如图步长为2
![](https://img-blog.csdnimg.cn/img_convert/ed404158a060d289b2f0698cc46ec7da.png)
多通道卷积:如RGB
![](https://img-blog.csdnimg.cn/img_convert/566e92f98319ddb20f0971cc08c2958d.png)
![](https://img-blog.csdnimg.cn/img_convert/dce2a0af01a8bd48a5af343db2bdc493.png)
池化(Pooling)
思想:使用局部统计特征,如均值或最大值。解 决特征过多问题
![](https://img-blog.csdnimg.cn/img_convert/d0d9f8044582a4bfb2ea953f9f508f25.png)
卷积神经网络结构
构成:由多个卷积层和下采样层构成,后面可连 接全连接网络
卷积层:k个滤波器 下采样层:采用mean或max 后面:连着全连接网络
![](https://img-blog.csdnimg.cn/img_convert/bbf92f220d0fce5237d3b2b6bccfbe10.png)
学习算法
![](https://img-blog.csdnimg.cn/img_convert/b29e936c4a9b7b873b5b8bc349eb76b8.png)
![](https://img-blog.csdnimg.cn/img_convert/a19458468606417e794d5f6921002fe2.png)
(4)LeNet-5网络
网络结构
![](https://img-blog.csdnimg.cn/img_convert/22e99244aa9374e1341bbc096cb8a211.png)
C1层
6个Feature map构成 ,每个神经元对输入进行5*5卷积 每个神经元对应5*5+1个参数,共6个feature map, 28*28个神经元,因此共有 (5*5+1)*6*(28*28)=122,304连接。
S2层
Pooling层
![](https://img-blog.csdnimg.cn/img_convert/7c5392ef19d1a964e24d55c1da63efe8.png)
C3层
卷积层
![](https://img-blog.csdnimg.cn/img_convert/f956f2cd839f567a0d695aaf6722d0ec.png)
S4层
与S2层工作原理相同
![](https://img-blog.csdnimg.cn/img_convert/d620e06b240667ea58b82827a68c3130.png)
C5层
120个神经元 ,每个神经元同样对输入进行5*5卷积,与S4全连接 ,总连接数(5*5*16+1)*120=48120。
F6层
84个神经元 ,与C5全连接 ,总连接数(120+1)*84=10164。
输出层
由欧式径向基函数单元构成 ,每类一个单元 ,输出RBF单元计算输入向量和参数向量之间的欧式距离。
网络结构说明
![](https://img-blog.csdnimg.cn/img_convert/4914b78c62869627dc13da18e9b2c42e.png)
随网络深入,宽、高衰减,通道数增加
卷积NN的BP算法:下采样层
如果当前是卷积层,下一层为下采样层,误差如何从下采样层回传 ,假设为2*2核平均池化
![](https://img-blog.csdnimg.cn/img_convert/b01c3f491dd07a25406441852ba9d6e9.png)
![](https://img-blog.csdnimg.cn/img_convert/557a52b994d18a4e4570425c035a3087.png)
如果当前是下采样层,下一层为卷积层,误差如何从卷积回传 ,假设为2*2核卷积。
![](https://img-blog.csdnimg.cn/img_convert/51e41b9875cd2362653ff4976b63b5ae.png)
卷积核为:
![](https://img-blog.csdnimg.cn/img_convert/53515f4b2853cf410079823668931e9c.png)
![](https://img-blog.csdnimg.cn/img_convert/a549ce65f257429897ea2e7cc5d7e915.png)
式中五角星表示图像卷积,计算时需首先上下、左右翻转后再做相关(点乘)。