CS231n笔记 Lecture 5 Convolutional Neural Networks

一些ConvNets的应用

  • Face recognition
    输入人脸,推测是谁
  • Video classfication
  • Recognition
    识别身体的部位, 医学图像, 星空, 标志牌, 鲸...
  • 图像描述 Image Captioning
  • transfer

卷积操作和信号处理的卷积操作的区别

印象中在学习数字图像处理这门课的时候,里面提到过卷积操作,当时的计算方法是,需要把卷积核作一个180度的旋转。其实在最开始听到“卷积神经网络“并开始在探究具体如何进行卷积操作的时候,我也有过这个疑惑,这里的卷积需要旋转吗?但是我当时不求甚解,没有深入地探查到底为什么。今天的课上,有一个同学把这个问题问了出来,Serena的回答是,我们在CNN里用的卷积实际上就是一个element wise的操作,只是思想上和信号处理的卷积相似,但具体计算还是有所区别了。感觉得到了官方的回复,这下可以少一些疑虑了。

卷积操作

计算


filter也是带有深度的,只是在很多时候这个*3被省略了。
但是,在经过一次计算后,这个深度信息(3)就没有了,或者是说被重新映射了,深度的个数取决于filter的个数。

输入输出的维度计算


这里需要注意的是,输出的图像为323210,此时已经没有所谓的rgb,新的通道个数为10,这是因为用了10个filter来做卷积。

参数个数


参数个数实际上就是filter里面元素的个数,由于共有10个55filter,且每个filter实际上是55*3的,外加1个bias项,所以总共的参数个数是760。

pooling


只spatially变小,depth保持不变。

为什么要用max pooling而不是average pooling?

因为每个region实际上是记录了一个激活强度,用max的话可以把这个激活强度最大程度地保留。(存疑)

为什么不直接用stride来做down sampling

当我们设置stride时,output的维度也会降低,Serena解释说这二者其实并没有太多本质的区别,而且最新的网络,大家也开始尝试用stride代替pooling来做down sampling.

posted @ 2018-08-03 23:23  zhsuiy  阅读(200)  评论(0编辑  收藏  举报