卷积神经网络CNN(入门认知)

CNN的目的:特征提取

层次:卷积层  .池化层  .输出层

卷积层:利用局部特征(卷积核),去计算出目标的 整体特征情况。

 

 

 上图中的 各种X ,我们可以提取其中的几个特征作为卷积核。下图中选择红框框起来的作为特征。

        

 

所以我们可以得到三个卷积核(也称为过滤器)

 

 卷积运算: 矩阵对应位子的乘法运算,然后选择平均值填入 feature map 图中。(如下图所示)

将目标与卷积核分别进行卷积运算,就可以 一个feature map,比如这里三个卷积核,最后会有三层的 feature map被得到。 

 

 所以经过卷积运算,可以将目标数据缩小,上图中9×9 的目标,卷积后 变成 7×7了。完整动态图见下方

 

 

激励层Relu: 获取特征图中 关联性大的数据,将关联性小的 都直接设置为0

数学公式是:f(X)=max(0,X)

 

池化层pooling (采样):压缩数据

虽然进行卷积操作已经使得数据变小了一点,但是还是不够小。需要使用到池化层,池化的方法有 最大池化(取最大值)和平均池化(取最小值)。下图所示的就是最大池化,在2×2的池化窗口中,选择一个最大的数值 填入到新的 特征图(feature mao)中。

 

 为什么可以这样压缩?因为CNN想要的是知道有没有匹配的特征,不需要知道这个特征在那个位置匹配,所以这样压缩还是可以知道有匹配的数据以及其程度。

1.卷积和池化 可以多次叠加使用,这样就可以达到缩小目标数据 到理想的地步。比如 9×9 -> 2×2. 

2.特征维度的计算公式:

 

 其中W表示宽,H表示高,P表示pading填充,S表示步长。所以最后的维度与 步长和原先维度等均有关系

 

全连接层

 卷积/池化目的是获取特征,而全连接层就是将这些特征进行整合进行分类。

过程 将多个矩阵转化为 一个向量。然后 通过激活函数softmax 达到分类的目的。

 

 

 BP算法:使用反向传播算法修正权重值 W 

 

 激活函数

常见的有sigmoid、tanh、relu;其中sigmoid、tanh 常用于全连接层,而 relu 常用于卷积层。

 线性激活函数:y=wx+b,一般用于解决二分类问题。

 

Sigmoid函数:可以把连续实数值变成0或1 输出,缺点是在神经网络中会出现梯度爆炸或者梯度消失。

 

 

 

Tanh函数:

 

 

ReLU函数: 

 

 

 

 

神经元:

 

 

 

数学推导看下面大佬的博文吧,毕竟复制粘贴意义不大:

https://www.zybuluo.com/hanbingtao/note/485480

https://www.zybuluo.com/hanbingtao/note/476663

 

版权声明:本文为jacker2019原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jacker2019/p/11584978.html