本博客是针对李宏毅教授在youtube上上传的机器学习系列课程视频的学习笔记。(视频地址)
卷积神经网络(Convolutional Neural Network,简称CNN),在图像处理方面的效果一直非常突出。今天我们就来看一下CNN的原理,并探究一下其效果如此好的原因。
为什么用CNN来识别图像(Why CNN for Image)
Motivation to use CNN: previous fully connected deep network (DNN) has too many parameters.
比如,如果下图中的猫图像是一个100*100pixel的彩色图片,那么就有100*100*3(彩色)个像素点/特征,那么第一个隐藏层假设有1000个神经元,那么光是第一个隐藏层的权重矩阵就是30000*1000的矩阵了。
那么,我们能不能根据一些先验知识(图片的很多像素对于判定物体类别的作用肯定不大),从原本fully-connected的NN中拿掉一些参数呢?
我们注意到在图片识别问题中存在的三个属性:
- 属性一
我们想要识别的模式(pattern)往往比整张图片要小得多。比如下图中的鸟嘴,其实只要看红色框框中的小区域就可以判断。(Some patterns are much smaller than the whole image)