CNN

作者: 猴子喜 | 来源:发表于2018-09-30 13:51 被阅读0次

    一、 CNN的功能

    分类

    二、 组成

    这个最简单的卷积神经网络说到底,终究是起到一个分类器的作用

    卷积层负责提取特征,采样层负责特征选择,全连接层负责分类

    卷积层——卷积层

    池化层/采样层——池化层/采样层

    flatten layer——flatten layer

    全连接层——全连接层


    三、 重要概念

    1. 局部感受野

    图像的空间联系是局部的,就像人是通过一个局部的感受野去感受外界图像一样,每一个神经元都不需要对全局图像做感受,每个神经元只感受局部的图像区域,然后在更高层,将这些感受不同局部的神经元综合起来就可以得到全局的信息了。

    下图左:如果我们有1000x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数(每条连接对应一个参数weight)。

    下图右:假如局部感受野是10x10,隐层每个感受野只需要和这10x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来减少了四个0(数量级),这样训练起来就没那么费力了。

    2. 权值共享 parameters sharing

    隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这就是权值共享。由于一条连接产生一个参数,参数量大大减少,可以防止过拟合。

    合理吗?filter是用来检测特征的,那一个特征一般情况下很可能在不止一个地方出现,比如“竖直边界”,就可能在一幅图中多出出现,那么 我们共享同一个filter不仅是合理的,而且是应该这么做的。同样,由于filter的参数共享,即使图片进行了一定的平移操作,我们照样可以识别出特征,这叫做 “平移不变性”。因此,模型就更加稳健了。

    3. Feature Map

    一个卷积核对图片卷积一次,产生一个feature map. 在每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起,其中每一个称为一个feature map。在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。层与层之间会有若干个卷积核(kernel),上一层和每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map。

    一种滤波器,也就是一种卷积核,提出图像的一种特征. 这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为Feature Map。所以100种卷积核有100个Feature Map。这100个Feature Map就组成了一层神经元。

    ||大小计算||

    INPUT为32*32,filter的大小即kernel size为5*5,stride = 1,pading=0,卷积后得到的feature maps边长的计算公式是:

    output_h =(originalSize_h+padding*2-kernelSize_h)/stride +1

    所以,卷积层的feature map的边长为:conv1_h=(32-5)/1 + 1 = 28

    卷积层的feature maps尺寸为28*28.

    4. 神经元个数

    图像是1000x1000像素,而滤波器大小是10x10,假设滤波器没有重叠,也就是步长为10,这样隐层的神经元个数就是(1000x1000 )/ (10x10)=100x100个神经元(100x100个连接)了。这只是一种滤波器,也就是一个Feature Map的神经元个数。

    5. 通道 Channel

    彩色图像,一般都是RGB三个通道(channel)的,因此输入数据的维度一般有三个:(长,宽,通道)。比如一个28×28的RGB图片,维度就是(28,28,3)。

     我们的输入图片就是X,shape=(8,8,3);

     4个filters其实就是第一层网络的参数W1,,shape=(3,3,3,4),这个4是指有4个filters;

     我们的输出(四个feature map),就是Z1,shape=(6,6,4);

     后面其实还应该有一个激活函数,比如relu,经过激活后,Z1变为A1,shape=(6,6,4);

    八、 微调 fine-tune

    1. 作用

    使用预训练模型(用大数据集已经训练的差不多的模型,相当于一个模板)的时候,进行权重的调整

    九、 Transposed Convolutions

    (a.k.a. deconvolutions or fractionally strided convolutions)

    1. 定义

    Imagine inputting an image into a single convolutional layer. Now take the output, throw it into a black box and out comes your original image again. This black box does a deconvolution. It is the mathematical inverse of what a convolutional layer does.

    十、 反卷积

    2. 定义

    卷积的反向操作

    十一、 CNN和传统神经网络的区别

    传统的神经网络,其实就是多个FC层叠加起来。 CNN,无非就是把FC改成了CONV和POOL

    十二、 应用

    1. 边界检测

    从上面这个例子中,我们发现,我们可以通过设计特定的filter,让它去跟图片做卷积,就可以识别出图片中的某些特征,比如边界。 上面的例子是检测竖直边界,我们也可以设计出检测水平边界的,只用把刚刚的filter旋转90°即可。

    学过神经网络之后,我们就知道,这些filter,根本就不用我们去设计,每个filter中的各个数字,不就是参数吗,我们可以通过大量的数据,来 让机器自己去“学习”这些参数

    相关文章

      网友评论

          本文标题:CNN

          本文链接:https://www.haomeiwen.com/subject/eerwoftx.html