0


人工智能卷积神经网络,CNN,梯度下降

卷积神经网络

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(平均采样),它的误差会平均分给上一层对应区块的所有神经元。

网络优化

网络优化

准备阶段:

  1. 数据预处理
  2. 网络搭建(归一化,正则化)
  3. 网络参数的初始化

训练阶段

  1. 前向传播(归一化,正则化)
  2. 反向传播
  3. 参数更新(优化算法)

等高线

概念:地图上高度相等各点形成的闭合曲线。在这里插入图片描述

三个函数

损失函数:单个样本的与真实值之间的误差。
代价函数:数据整体与真实值之间的误差。
目标函数:经验风险(代价函数)+ 结构风险。

经验风险:最小化训练集上的经验损失。
结构风险:通过正则防止过拟合。

梯度下降法

什么是梯度下降法:如何通俗地解释梯度下降法_哔哩哔哩_bilibili
因为神经网络参数很多,无法直接对损失函数求解,需要通过逼近的方法来求解,达到极值点。

  1. 参数初始化,定义损失函数。
  2. 计算损失函数关于参数梯度。
  3. 更新参数模型。
  4. 重复2,3 直到损失函数不再下降。

其中,BGD,SGD,MBGD,SGDM。统称为SGD。
它们几个计算梯度的方式不同:

  • BGD:采用所有样本计算梯度。
  • SGD:采用单个样本计算梯度。
  • MBGD:采用K个样本计算梯度。

学习率:

学习率是梯度前面的参数

设置过小,loss下降慢,收敛速度慢。
设置过大,loss下降快,无法收敛。

  • 线性学习率:loss下降稳定。
  • 周期学习率:特定网络下效果较好。

本文转载自: https://blog.csdn.net/m0_63563126/article/details/135506278
版权归原作者 charon桐 所有, 如有侵权,请联系我们删除。

“人工智能卷积神经网络,CNN,梯度下降”的评论:

还没有评论