第九讲_Convolutional neural networks

写在前面

记录一下非常好的博客讲解:

[1] CNN 卷积神经网络 https://dorianzi.github.io/2019/04/25/CNN/

卷积神经网络

上述图片引自:https://dorianzi.github.io/2019/04/25/CNN/

卷积神经网络是为了处理图片而生的分类任务

全连接神经网络与卷积神经网络

从卷积的角度理解全连接,从全连接的角度理解卷积

为什么选择 卷积层神经网络 而不用 全连接神经网络

卷积核的作用(优点):①减少了计算量;②减少参数

对于卷积神经网络来说,计算一个输出涉及到的输入数量只与卷积核的大小有关; 对于全连接神经网络来说,计算一个输出需要所有的输出参与计算,大大增大了计算量

卷积神经网络一般使用的激活函数为 Relu,为什么?

卷积神经网络使用的激活函数为 relu,前面学过的神经网络使用的激活函数为 sigmoid,最后一层使用了sotfmax

ReLU(Rectified Linear Unit)函数的数学表达式非常简单,定义如下:

1
f(x) = \max(0, x) 

这个表达式的含义是:

  • 当输入 ( x ) 大于0时,输出就是 ( x ) 本身;

  • 当输入 ( x ) 小于或等于0时,输出为0。

  • 计算效率:

    • ReLU函数计算非常高效,因为它仅仅是将所有负值设为零,保留正值不变。这种操作在硬件上实现起来非常快,不需要复杂的数学运算如指数或除法,这对于训练深层网络尤其重要,因为可以显著减少训练时间和资源消耗。
  • 缓解梯度消失问题:

    • 在深度网络中,当使用像Sigmoid或tanh这样的激活函数时,容易遇到梯度消失的问题,即随着网络层数增加,反向传播时梯度逐渐减小到接近于零,导致底层权重难以有效更新。ReLU函数由于其导数在正区间内恒等于1,可以有效地缓解这一问题,促进梯度的有效传播。
  • 稀疏激活:

    • ReLU可以使一部分神经元输出为零,这意味着模型会自动忽略一些不重要的特征,从而实现一种形式的内部特征选择,有助于提高模型的泛化能力,并且使模型更加紧凑。
  • 生物学合理性:

    • 从生物学的角度来看,神经元要么活跃要么不活跃,这种二元行为与ReLU函数的行为相似,因此ReLU也符合大脑神经元工作的某些假设。

从全连接的角度理解卷积神经网络:稀疏的全连接神经网络:

不管是全连接神经网络还是卷积神经网络,本质上都是多元复合函数!

根据卷积核以及输入图片的大小判断输出图片大小的公式:

Padding 操作:

卷积操作会导致输出图片的大小发生变化,所以需要padding操作:让输入尺寸与输出尺寸保持一致

计算量的大小比较:

利用卷积神经网络实现边缘检测

有点类似在ROS2实验课上做的边缘检测算法,原理都差不多

卷积是能够提取特征的

为了丢掉不必要的信息,引入池化层的概念:

经验:最大池化比平均池化效果会好一点

卷积神经网络帮助我们提取特征,进行分类工作,可以理解为特征提取器

卷积神经网络的损失函数同前面学过的交叉熵损失函数

卷积神经网络反向传播

先后经过:softmax、池化层、relu、卷积层:

(1)softmax (2)池化层 (3)relu (4)卷积层,卷积层的反向传播有点复杂 卷积层反向传播的规律

多层CNN的卷积结构

卷积核的通道数需要与输入的通道数相匹配,输出的通道数与卷积核的个数相匹配

这里的偏置结构有点问题,应该是有三层的结构,与输出的结构一模一样,与输出对应

当遇到多通道卷积网络时,需要考虑稍微多一点点内容

img2col

第一种结构的优化相对会更好一点,各有优劣


第九讲_Convolutional neural networks
http://jrhu0048.github.io/2024/10/25/ji-qi-xue-xi/di-jiu-jiang-convolutional-neural-networks/
作者
JR.HU
发布于
2024年10月25日
更新于
2024年12月26日
许可协议