机器学习之卷积神经网络CNN

 

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

CNN的目的:特征提取

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

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

 

 

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

        

 

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

 

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

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

 

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

 

 

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

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

 

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

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

 

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

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

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

 

转载于:https://www.cnblogs.com/jacker2019/p/11584978.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值