一些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.