神经网络基础-卷积神经网络

在深度学习的路上,从头开始了解一下各项技术。本人是DL小白,连续记录我自己看的一些东西,大家可以互相交流。

本文参考:本文参考吴恩达老师的Coursera深度学习课程,很棒的课,推荐 

本文默认你已经大致了解深度学习的简单概念,如果需要更简单的例子,可以参考吴恩达老师的入门课程:

http://study.163.com/courses-search?keyword=%E5%90%B4%E6%81%A9%E8%BE%BE#/?ot=5

转载请注明出处,其他的随你便咯

一、前言

卷积神经网络(Convolutional Neural Network, CNN)是一种深度前馈人工神经网络,已成功地应用于图像识别领域,同时在声纹识别领域,也取得了不小的成果。

二、卷积运算

卷积运算是卷积神经网络的基本组成部分,我们用边缘检测的例子来说明一下卷积运算的过程。

在下图中,我们通过垂直边缘检测和水平边缘检测,可以获得右边的图像:

è¿å¨è·¯ä¸ï¼ç¨ç­...

即,仅保留图片中的垂直边缘或水平边缘。

垂直边缘检测:

假设一张图片的大小为 6×6(数字表示图片大小,具体为像素值),和一个3×3的filter(卷积核)进行卷积运算,用“*”符号表示。图片和垂直边缘检测器分别如图中左1矩阵和左2矩阵:

è¿å¨è·¯ä¸ï¼ç¨ç­...

卷积运算的过程,实际上是让filter从图片左上角开始不断移动,不断地和其大小相同的部分做对应元素的乘法运算并求和,最终得到的数字相当于新图片的一个像素值,如右矩阵所示,最终得到一个 4×4 大小的图片。这个过程即为卷积运算。

PS.给出卷积纬度计算公式:

图片为 n×n 大小,filter为 f×f 大小,结果为(n - f + 1)×(n - f + 1)

三、填充(Padding)

在卷积运算的过程中,我们发现了如下的问题:

  • 每次卷积操作,会让图片缩小;
    • 如例子中,6×6的图片,经过 3×3 filter的卷积后,只剩下4×4 大小
  • 角落和边缘位置的像素在卷积运算的过程中,参与的次数很少,最终结果中,可能会损失数据。

为了解决如上的两个问题,我们在进行卷积运算前,为图片加Padding,包围角落和边缘的像素,使得通过filter的卷积运算后,图片大小不变,也不会丢失角落和边缘的信息。Padding的过程如图所示:

è¿å¨è·¯ä¸ï¼ç¨ç­...

用p来表示Padding的值,当输入为n×n大小的图片,最终得到的图片大小为(n + 2p − f + 1)×(n + 2p − f + 1),为了让图片大小保持不变,需根据filter的大小f来调整p的值。根据是否使用Padding我们可以将卷积分为两种。

Valid / Same 卷积:

  • Valid卷积:没有padding,输入n×n的图像,输出(n - f + 1)×(n - f + 1)的图像;
  • Same卷积:有padding,输出与输入图片大小相同,p = (f - 1) / 2。

四、卷积步长(stride)

卷积的步长是构建CNN的一个基本的属性。在上述的例子里面,我们使用的步长 stride = 1,即每次filter移动一个像素。当stride = 2时,卷积运算如下:

è¿å¨è·¯ä¸ï¼ç¨ç­...

即每次filter在计算完一个数值时,会移动两个像素的位移,继续计算下一个数值。

我们用s表示stride步长的大小,那么在进行卷积运算后,图片从n×n大小,变为如下大小:

五、立体卷积

在上面的例子和介绍中,我们的图像都是二维的。在应用于彩色图像时,我们用RGB三通道来表示一张图片。其中R红色,G绿色和B蓝色,该表示法是用三个三原色的数值,来组合成一个图片。当我们对彩色图片进行卷积的时候,此时的卷积核应为三维卷积核。

è¿å¨è·¯ä¸ï¼ç¨ç­...

其实与二维的卷积类似,只是我们现在的filter与图片的维度保持一致,卷积核的第三个维度需要与图片保持一致&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值