卷积神经网络
CNN,是针对图像领域提出的神经网络。
猫的视觉系统实验
得出的结论:
- 神经元存在局部感受区域,也称 感受野
- 细胞对角度有选择性 如细胞对垂直光条响应最强
- 细胞对运动方向有选择性
对CNN的启发
1.视觉系统是分层,分级处理的。从低到高堆叠使用卷积和池化。
2.神经系统是存在局部感受区域的。
第一个神经网络
第一个卷积神经网络雏形 — 新认知机
1980年,日本使用c和s两个细胞堆叠使用,相当于卷积和池化。
缺点:没有反向传播更新权值。
第一个大型商用卷积神经网络 — Lenet-5
1989年美国,用于手写邮政编码识别。
缺点:没有大规模数据和高性能计算。
第一个技惊四座的卷积神经网络 – AlexNet
2012年,图像领域霸主。
成功秘诀:
GPU
卷积层
图像识别特点
1.特征具有局部性:如老虎”王“字
卷积核每次只链接K*K尺寸,相当于卷积核尺寸大小
2.特征可能出现在任意位置
3.调整了图片的尺寸,但是图像识别目标不会受到影响。
卷积核:
具可学习参数的算子,用于对输入图像进行特征提取,输出通常称为特征图。
理解:
- 可学习参数的算子:是指卷积核的权重,是在反向传播过程中优化学习的,能够逐渐更好的提取图像特征。
- 输出为特征图:卷积操作的结果是特征图,是通过在输入图像上面滑动卷积核得到的。
2012年,AlexNet第一个卷积核呈现边缘,频率和色彩的特征。
填充
在输入图像周围天空额外的行或者列
作用:
使得卷积后的图像尺寸不变,弥补特征图像提取后边界信息的丢失。
步幅
卷积核滑动的行数和列数,控制输出特征图大小,会被缩小1/s倍。
输出图像尺寸计算
多通道卷积
多通道卷积:RGB图像是3hw的三维的数据,第一个维度3表示通道数channel,一个卷积核是3-D张量,第一个维与输入通道有关。
解释:3是通道数,h是高度,w为宽度。
多通道卷积考虑了每个通道的信息。
一个卷积核是3-D张量:指的是每个卷积核都包括通道数,高度和宽度的信息。
池化层
池化层的解释
1.池化层也是一个特征图,如下所示:
池化层一个像素就代表了前团一片区域的像素值。
通过这种方式降低了图像分辨率。
2.那前面的
一个像素就代表了前团一片区域的像素值
怎么实现呢?
- 取最大值,如上图左边所示
- 取最小值,如上图右边所示 3.输出图像的尺寸大小计算方式与卷积核计算方式相同。注意:池化层没有学习参数。
池化的作用
1.缓解卷积层对位置的过度敏感。
2.减少冗余。
3.降低图像分辨率,从而减少参数量。
CNN
卷积计算
卷积其实是将卷积核反转180°之后的互相关操作,互相关就是最开始的点乘。
相乘后相加的到最后输出图像,取正方体的时候依次平移。
平移的距离是步长。
CNN的超参数和参数
CNN的代价函数
代价函数是指:单个或者整体训练样本与真实值之间的偏差。
交叉熵
交叉熵是一种代价函数,通常越小代表模型预测和实际情况越一致。
CNN反向传播-卷积层
反向传播中的filter(过滤器)旋转与卷积
最简单情况:
步长为一,通道为一,过滤器为一。
情况2:
步长为一,通道为D,过滤器为一。
- 当输入的通道为D,则过滤器的通道也为D。
情况3:
步长为一,通道为一,过滤器为N。
过滤器的数量为N,则输出层的通道也为N。
情况4:
步长为一,通道为D,过滤器为N。
卷积层权重更新
卷积层权值共享。
polling层(采样层)权重更新
无论是max polling 还是mean polling 都没有需要学习的参数。
polling层需要做的仅仅是将误差传递给上一层,没有梯度的计算。
1.对于最大采样(max polling),它的误差会原封不动的给上一层最大值对应的神经元,而其他神经元误差都是0.
2.对于mean polling(平均采样),它的误差会平均分给上一层对应区块的所有神经元。
网络优化
网络优化
准备阶段:
- 数据预处理
- 网络搭建(归一化,正则化)
- 网络参数的初始化
训练阶段
- 前向传播(归一化,正则化)
- 反向传播
- 参数更新(优化算法)
等高线
概念:地图上高度相等各点形成的闭合曲线。
三个函数
损失函数:单个样本的与真实值之间的误差。
代价函数:数据整体与真实值之间的误差。
目标函数:经验风险(代价函数)+ 结构风险。
经验风险:最小化训练集上的经验损失。
结构风险:通过正则防止过拟合。
梯度下降法
什么是梯度下降法:如何通俗地解释梯度下降法_哔哩哔哩_bilibili
因为神经网络参数很多,无法直接对损失函数求解,需要通过逼近的方法来求解,达到极值点。
- 参数初始化,定义损失函数。
- 计算损失函数关于参数梯度。
- 更新参数模型。
- 重复2,3 直到损失函数不再下降。
其中,BGD,SGD,MBGD,SGDM。统称为SGD。
它们几个计算梯度的方式不同:
- BGD:采用所有样本计算梯度。
- SGD:采用单个样本计算梯度。
- MBGD:采用K个样本计算梯度。
学习率:
学习率是梯度前面的参数
设置过小,loss下降慢,收敛速度慢。
设置过大,loss下降快,无法收敛。
- 线性学习率:loss下降稳定。
- 周期学习率:特定网络下效果较好。
版权归原作者 charon桐 所有, 如有侵权,请联系我们删除。