卷积神经网络 (Convolution Neural Networks, CNN)

卷积神经网络一般用在图像处理、计算机视觉等领域。下面1-4节介绍了构造卷积神经网络基础知识,第5节介绍一些经典的卷积神经网络,7-9节介绍了三种CNN常见应用:目标检测、人脸识别、风格迁移。

1. 卷积计算

  1.1 卷积运算 (Convolution):

   如图,一个6×6的矩阵A与一个3×3的filter矩阵进行卷积计算,生成了一个4×4的矩阵B,B[1][1]就是矩阵A红色边框中的数字与filter矩阵依次相乘再相加计算出来的,滑动边框依次计算就可以得到B。

                             

  滤波器大小一般是奇数,例如3×3、5×5等,这样就会有一个中心点,便于计算。

  注意:在一些数学书籍上,卷积需要对滤波器进行镜像操作,没有镜像操作的运算称为“互相关”。但在深度学习文献中,卷积一般没有镜像操作。

  1.2 边缘检测 (Vertical edge detection):

  下面展示了一个垂直滤波器(vertical filters)的效果 ,可以检测出垂直的边缘,还可以反映由明到暗或由暗到明的变化。

                                      

  滤波器的大小、参数可以根据需要设计,例如还可以实现不同角度的边缘检测。在神经网络中,参数可以通过训练得出。

                                                                                     

                                                                

  1.3 填充 (Padding):

   在卷积计算中,矩阵大小变化为:( n × n ) * ( f × f ) = ( n-f+1 × n-f+1 )。这样的计算存在两个问题:(1) 输出缩小,随着网络的加深,图片经过多次卷积处理会越来越小;(2) 图像边缘的大部分信息丢失,例如左上角的元素只使用过一次。所以我们需要填充一层像素,使( n × n ) * ( f × f ) = ( n × n ),一般会填充0,如图所示:

                                           

  其中 n=4、f=3、p(padding amount)=1。

  因此,后面说的卷积有两种模式:

  • Valid convolution:不填充数据
  • Same convolution:填充数据,输入输出大小相同,p=(f-1)/2

  没有特殊说明一般指Valid convolution。

  此外,还有一个参数是卷积的歩长s (strided convolution),一般默认s=1,下面给出了一个s=2的例子:

                                               

   所以,卷积后的大小为:

                                                       

  1.4 三维卷积:

   下面给出了一个三通道图像卷积的示例:

                                        

   图像的大小为 6×6×3,分别为宽w、高h、通道数c。滤波器也是三维的,其中滤波器的通道数必须与图像相同,所以后面可能不会注明滤波器的通道数。最终的结果是只有一个通道的4×4图像。

  如果我们有多个滤波器 (Multiple filters),可以做以下运算:

         

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值