CNN[卷积神经网络]的架构

CNN卷积神经网络

在全连接神经网络里拿掉一些参数,就可以得到用于影像处理的CNN。

CNN主要的流程为:重复卷积和Max pooling的流程,最后扁平化得到结果。

卷积Convolution

卷积神经网络主要面向三个问题

1、相同的图案可能出现在不同的地方

2、一些图案可能远比整个图案要小,比如鸟的嘴

3、对像素进行子采样不会更改对象

在这里插入图片描述

以一张黑白图为例,墨水沾到的地方设为1,没沾到的地方设为0

将会有一组过滤器进行过滤,那么如何理解过滤器呢?

过滤器就是一个矩阵,它类比于全连接网络中的一个神经网络,用它对整个图案进行扫描,每次扫描的结果称之为内积,stride是扫描的步伐,最后的扫描结果存放于一个矩阵,比如图中的结果是一个4乘4的矩阵。图中的过滤器,从左上到右下都是1,其余为0,它意味着要寻找图中有没有这样的图片部分(从左上到右下为1的3乘3的图片区域),从结果矩阵中看,内积为3(最大值)的部分就是要找的部分,有N个这样的部分就称之为Property N。这样做的好处是,我们只需要一个过滤器,就可以解决上面的问题1

有多少个过滤器,就会得到多少个image作为结果,这些结果叫做Feature Map。但是过滤器的大小可能是不同的,这意味着它在不知道图像的情况并不能自动处理这件事情,有一种解决办法就是在CNN之前再加一层神经网络,它的作用将是对图像不同的区域进行scalar,将得到的缩放、旋转到合适的结果后,再将这个结果作为input传入CNN。

那对于彩色图案,CNN又如何处理呢?

彩色由RGB三个颜色组成,所以表示一个图片的矩阵也是立方体,对应的filter也是立方体的形式,如图。

在这里插入图片描述

那卷积又和神经网络有什么关系呢?

其实卷积就是去掉一部分权重的全连接神经网络,如果把图片矩阵展开成一个向量,那么经过filter得到的许多的结果矩阵可以对应于一个隐藏层,每一个filter的结果就对应该隐藏层的一个神经元。而权重则是filter的值,如下图。

在这里插入图片描述

可以看出,在全连接神经网络里,weight都是独立的,但是在卷积的时候,同一层的weight是共用一组的,并且也不是全连接的

Max Pooling

在这里插入图片描述

将得到的结果,分成四部分,每部分只取一个值出来,可以取最大值、平均值(主要就这两种手段)等,图中以最大池化为例。

在这里插入图片描述

经过一次卷积-池化后,得到的结果是一个2乘2乘N的矩阵,N代表维数,即过滤器有几个,它就有多少维。每个filter都是一个channel【通道】。而得到的这个矩阵,也可以看作一个新的image,它比原图要小。

对于第一次卷积,其输入是原图的像素,这很好理解,那么进行第二次卷积的时候,它的输入意味着什么呢?filter在做什么呢?

假设进行第二次卷积的时候,每个fliter都是3乘3(乘25)的,一共有50个filter,那么其结果矩阵的形式应该是50乘11乘11(乘25)。第二次卷积里,第k个filter的作用可以这样理解:

首先,我们需要定义一个激活度函数,其值代表了第k个过滤器的激活度:
a k = ∑ i = 1 11 ∑ j = 1 11 a i j k a^k=\sum^{11}_{i=1}\sum^{11}_{j=1}a^k_{ij} ak=i=111j=111aijk
就是把经过这个filter得到的结果矩阵里的值全部加起来。

假设输入的图片叫做X,我们要找到一个X使得 a k a^k ak做大(通过梯度上升获得)。通过获得的X,我们可以看出一个filter的作用。这里需要说明一下,在原来我们学习的梯度下降中,参数是待学习的,不确定的,而输入是固定的。现在反过来了,参数是filter,它是固定的,而输入是不固定的。

因为第二次卷积的时候有50个filter,所以经过50次操作后,会得到50个最大的激活度,以及他们所对应的结果的50张input的image。

在这里插入图片描述
比如有四个filter所对应的X的图像如图所示。其中第三张发现有明显的斜条纹路,因此得知在第二次卷积中的第三个filter的作用是寻找一个图片是否有斜条纹路。

池化是必须的吗?不是的

比如alpha Go围棋的CNN中,没有max pooling这一项架构,因为对于围棋而言,如果少了某一行或者某一列,都是不可行的。

Flatten

最后一步就是扁平化,将最后一次池化的结果拉成一个向量,然后以它为input,放到一个全连接前馈神经网络中,最后即可得到训练结果。

以上就是CNN的架构。

前馈神经网络

扁平化之后的这个前馈神经网络和第二次卷积类似,假设第j个神经元是aj,则可以通过梯度上升的方法得到一个图像X,使得aj最大,与卷积不同的是,卷积的filter检测的是图像的一个小部分,而这里的神经元检测的是整个图像

在这里插入图片描述

To learn more

Pixel RNN

variation autoencoder(VAE)变分自编码器

Generative Adversarial Networks (GAN)生成对抗网络

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值