【CNN】一文读懂卷积神经网络CNN

https://blog.csdn.net/np4rHI455vg29y2/article/details/78958121

 


本文为大家解读如何简单明了的解释卷积,并且分享了学习中的一些方法案例。

 

首先文章的提纲为:

  • CNN栗子镇楼

  • What is CNN

            什么是卷积

            什么是池化

  • Why CNN

  • 对CNN的其他一些理解

  • CNN实现(接口)

 

1、CNN栗子(A Beginning Glimpse of CNN)

 

  1. Modern CNN since Yann LeCun

 

 

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

2.

640?wx_fmt=jpeg

上面是最经典和开始的两篇CNN的结构图

 

2、What is CNN?

 

神经网络?卷积?

 

2.1 什么是卷积?

 

 卷积的定义

 

  •  其连续的定义为:

 

 

640?wx_fmt=jpeg

  •   特点:

640?wx_fmt=jpeg

 

2.2 离散卷积的栗子:

 

  • 丢骰子时加起来要等于4的概率是多少?

 

640?wx_fmt=jpeg

  • 二维离散的卷积

640?wx_fmt=jpeg

  • 计算的动图如下

 

0?wx_fmt=gif

2.3 用到二维图像上:

 

  • 关于卷积中常用到的一些概念:神经网络的卷积是对应位相乘,现在是信号相乘。

 

640?wx_fmt=jpeg

0?wx_fmt=gif

上面移动的小矩阵有两种叫法,一种叫做滤波器filter,一种加法叫做卷积核Kernel,是相同的东西只是不同的叫法。

 

 

640?wx_fmt=jpeg

 

2.4、用到神经网络中

 

640?wx_fmt=jpeg

 

我们其实需要学习的就是里面的线上面对应的权值,比如上面绿色的代表3*1的卷积核大小,只是这里用神经网络的结构表示出来了。

 

2.5、卷积的细节

 

  • filter/Kernel size,number

  • 假设神经网络的输入是6*6的image,

 

 

640?wx_fmt=jpeg

 

其中每一个卷积核代表提取不同的特征,多个卷积核提取的特征然后进行组合(这样更强大),一同送入到后续的结构。

 

  • 下面来一个更通俗的解释:

     

     

    640?wx_fmt=jpeg

     

     

     

    每个人代表一个卷积核来进行提取不同的特征,一个人是弱小的,但是一组人就强大了,他们有着不同的知识(权重),这样类比来理解,就会好理解很多。

 

  • Stride

The step size you take the filter to sweep the image

 

640?wx_fmt=jpeg

 

  • Zero-padding

  • A way not to ignore pattern on border

  • New image is smaller than the original image

640?wx_fmt=jpeg

 

  • Channel

 

640?wx_fmt=jpeg

 

2.6  池化(pooling)

 

640?wx_fmt=jpeg

  • Max pooling 例子:

 

640?wx_fmt=jpeg

  • Pooling is unsensitive to local translation.(局部不变性)

  • "If we translation the input by a small amount ,the values of mosts of the pooled outputs do not change."

  • 图像往左或者往右移动,pooling 的结果是不变的

640?wx_fmt=jpeg

 

2.7 flatten

 

640?wx_fmt=jpeg

 

2. 8 Convolution v.s. Fuly Connected

 

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

 

2.9 The whole CNN

 

 

640?wx_fmt=jpeg

  • So as the whole,CNN is conposed of

  • Convolution

  • Nonlinearity:e.g.ReLU

  • Pooling

  • FC Layers

640?wx_fmt=jpeg

 

3. Why CNN

 

  • Some patterns are much smaller whole image.

 

 

640?wx_fmt=jpeg

 

  • The same patterns appear in different regions

 

640?wx_fmt=jpeg

 

  • Subsampling the pixels will not change the object

 

640?wx_fmt=jpeg

640?wx_fmt=jpeg

 

4. 对CNN的其他一些理解

 

4.1 关于接受域(receptive field)

 

  • 称在底层中影响上层输出单元s的单元合集为s的接受域(receptive field)。

 

 

640?wx_fmt=jpeg

  • 处于卷积网络更深的层中的单元,它们的接受域要比处在浅层的单元的接受的域更大。如果网络还包含类似步幅卷积或者池化之类的结构特征,这种效应会加强。这意味着在卷积网络中尽管直接连接都是很稀疏的,但处在更深的层中的单元可以间接地链接到全部或者大部分输入图像。(表现性能)

 

640?wx_fmt=jpeg

 

4.2 卷积与池化作为一种无限强的先验

 

首先,弱先验具有较高的熵值,因此自由性较强,强先验具有较低的熵值,这样的先验在决定参数最终取值时可以起着非常积极的作用。

 

把卷积网络类比成全连接网络,但对于网络的权重具有无限强的先验。

 

  • 所有隐藏单元的权重是共享的。

  • 除了一些连续的小单元的权重外,其他的权重都是0.

  • 池化也是一个无限强的先验:每个单元都具有对少量平移的不变性。

 

卷积和池化可能导致欠拟合!任何其他先验类似,卷积和池化只有当先验的夹着合理且正确时才有用。如果一项任务依赖于保存精确的空间信息,那么在所有的特征上使用池化将会增大训练误差。

 

根据实际需求选取先验

 

5. CNN in Pytorch

 

  • pytorch的相关接口

 

 

640?wx_fmt=jpeg

 

  • LeNet in PyTorch

 

 

640?wx_fmt=jpeg

参考:

如何通俗易懂得解释卷积(马同学知乎答案)

李宏毅老师slides

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值