首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟我学CS231n(2):Convolutional Neural Network

Hello,大家好!我是MPIG2017级研究生袁洪慧。今天我要给大家分享的是跟我学CS231n的第二讲:Convolutional Neural Network。今天我们首先来了解一下Convolutional Neural Network(CNN)的一些理论知识。

我们先预览一下本章讲解的主要内容:

(1)CNN的应用

(2)CNN的基本模块及其维度计算

(3)1×1卷积核

(4)CNN的常用框架

(5)CNN的特点

(6)CNN的示例:LeNet-5

一、CNN的应用

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。CNN的应用十分的广泛,例如:

1、医学图像的解释和诊断、星系分类和街道识别

2、姿势识别

3、对图片内容进行语义匹配

4、用特定艺术家或作品的风格来渲染图片

5、鲸鱼识别和图像分割

二、CNN的基本模块

CNN一共有卷积层(CONV)、ReLU层(ReLU)、池化层(Pooling)、全连接层(FC),下面是各个层的详细解释。

1、全连接层

全连接层是一个常规的神经网络,它就是把输入展开成一个列向量,然后与权重进行点乘,得到对应的映射激活。它的作用是对经过多次卷积层和池化层所得出的高级特征进行全连接,算出最后的预测值。

2、卷积层

卷积层是CNN的核心。卷积核与输入图像进行卷积也就是将卷积核在图像上进行滑动,也就是将卷积核与它所对应的感受野进行点乘,求出所对应的映射激活。那在这里我们要求卷积核的深度与输入图像的深度相同。

如果输入图像与N个卷积核进行卷积,我们将得到N个单独的映射激活。也就是输入图像与每个卷积核进行卷积,将卷积后的结果进行叠加。

2.1 空间维数的计算

首先,我们先来看几个例子:

然后,由此我们可以得到,输出的空间维数的计算公式:

2.2 零填充

在进行卷积操作时,为了防止边缘信息会被漏掉,一般我们会采用用零来填充边界。

下面我们来看几个具体的例子:

2.3 动态卷积过程

输入大小:5×5 ;零填充的数量: 1;卷积核大小:3×3;卷积核个数: 1;步长: 1 ; 输出大小:5×5

2.4 小结

3、池化层

池化层有两种方法可以进行池化:最大池化法和平均池化法。通常用的是最大池化法是(邻域四个像素中的最大值变为一个像素)。前面卷积层已经提取出特征,相邻区域的特征是类似,近乎不变,池化只是选出最能表征特征的像素,缩减了数据量,同时保留了特征。池化层的作用可以描述为模糊图像,丢掉了一些不是那么重要的特征,也就是下采样。

4、CNN的一般结构

三、1×1卷积核

1x1的卷积核由于大小只有1x1,所以并不需要考虑像素跟周边像素的关系,它主要用于调节通道数,对不同的通道上的像素点进行线性组合,然后进行非线性化操作,可以完成升维和降维的功能,如下图所示,选择2个1x1大小的卷积核,那么特征图的深度将会从3变成2,如果使用4个1x1的卷积核,特征图的深度将会由3变成4。

四、CNN的常用框架

五、CNN的特点

CNN主要有三个特点:局部感知、权值共享和多卷积核。

5.1 局部感知

局部感知就是我们上面说的感受野,实际上就是卷积核和图像卷积的时候,每次卷积核所覆盖的像素只是一小部分,是局部特征,所以说是局部感知。CNN是一个从局部到整体的过程(局部到整体的实现是在全连通层),而传统的神经网络是整体的过程。通过下图我们可以看到,局部感知将参数的数量直接减少了4个数量级。

5.2 权值共享

传统的神经网络的参数量是非常巨大的,比如1000X1000像素的图片,映射到和自己相同的大小,需要10的12次方,参数量太大了,而CNN除全连接层外,卷积层的参数完全取决于滤波器的设置大小,比如10x10的滤波器,这样只有100个参数。与传统的神经网络相比,参数量小,计算量小。整个图片共享一组滤波器的参数。

5.3 多卷积核

一种卷积核代表的是一种特征,为获得更多不同的特征集合,卷积层会有多个卷积核,生成不同的特征,这也是为什么卷积后的图片的高,每一个图片代表不同的特征。

六、CNN示例:LeNet-5

流程: 输入层——>第一层卷积层——>第一层池化层——>第二层卷积层——>第二层池化层——>三层全连接层——>输出层

详解:输入为32×32,经过第一层卷积层,得到了C1层的6个28×28的激活映射,6个说明第一层卷积层用了6个卷积核。然后经过第一层池化层,28×28变成了14×14,一般是每邻域4个像素中的最大值变成一个像素,相应图片的长宽缩小为原来的一半。然后又经过一个卷积层,变成了C3层的16个10×10的激活映射图。然后又经过一个池化层,得到S4层的16个5×5的激活映射。然后传入3层全连接层,得出最后的结果。

总结:前面的卷积层和池化层是为了提取高级特征,然后输入到全连接层,最后训练处结果。

想要更加详细了解本讲更多细节的内容吗?那就一起来观看下面的Presentation的具体讲解吧:

想获取本presentation的对应文稿和代码,可以点击如下链接下载:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190123G181XB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券