不用数学公式理解卷积神经网络CNN
1)导论
卷积神经网络,也就是Convolutional Neural Networks, 那我们平时都称他CNN啦,是深度学习的一个重要算法之一,但是一般一碰到算法就有看数学公式,一查网上的资料也都是各种数学公式来帮助理解,对数学不好的人很不友好!
后来决定跳过数学来看一下cnn他是什么进行计算的cnn现在的用处已经很广泛啦,比如说我之前有用pytorch做过的风格转换,我们很熟悉的物体识别,图像识别,包括验证码识别啥的。
图片来自于 Brandon Rohrer,b站有他的视频不过我没找到中文字幕的,英语好的可以去看看!!是个很好的深度神经网络入门老师!
2)cnn提取特征
好的!那假如我们要从一开始训练一个cnn,用来识别这个是x还是o
这时候可以告诉一下计算机,这个就是x,白色的框框交叉的就是x,计算机很聪明就就记住了。
但是我们的验证码一般都长得歪歪扭扭的。。。。
那计算机这个时候就蒙了,又不认识了,这时候就有个一个专业词汇叫“过拟合”。
这个时候咋办,那当然是想想我以前教他的那张x,提取一下他的特征,然后进行对比啦。
我们都知道,图片在电脑里是暗数字存储的,也就是在计算机的眼里,你告诉他的x的图是这样的
如果我们按照普通的1,-1进行匹配那计算机就只认识这一张图,所以我们想到了一个新的匹配办法,叫patch匹配
(又是一个专业名词,在这里“patch”指的就是图片的一个小区域,一个patch是图片的一个3x3或5x5的小正方形区域,我理解就是特征匹配)
所以观察一下这两张x,可以明显的看出他是有三个地方比较相像。
那计算机这个时候通过比对这三个特征,就知道这张是x还是o了。
平时我们所说的人脸识别,说白了也是计算机通过提取你的眼睛鼻子嘴这些特征来判断是不是人。
我们从这三张图中分别提取了3个特征,在cnn里又被叫卷积核
一般提取特征都是3x3或5x5的小正方形
3)卷积运算
好!接下来这个卷积运算大部分都需要数学公式来辅助学习,因为高数里面的卷积公式和我们所讲的卷积的思想是一样的!这边可以用图片进行直接的了解卷积是如何运算的。
其实说白了就是对应相乘,我们取之前教了计算机的x的三张特征图,与需要识别的图片进行相乘,并填入新的图中。
直到计算完了9张图
接下来的工作是对右图九个值求平均,得到一个均值,将均值填入一张新的图中。
这张新的图我们称之为 feature map (特征图)
之所以为什么要放在这里呢,这边就要牵扯到滑动窗口啦!
那滑动窗口下期见!