吴恩达深度学习之卷积神经网络(一)卷积神经网络
笔记大全:http://www.4u4v.net/shen-du-xue-xi-bi-ji-mu-lu-da-quan-wu-en-da-zhong-yu-you-fan-yi-ban-ben-liao.html
1、计算机视觉
2、边缘检测示例
说明:
比如,一张图片由亮到暗,中间就会有一条边缘线,通过卷积后得到的图片会出现一条白色带,这也就检测出了图片中的边缘线。这张所给的图片比较小,所以白色带会比较明显,如果给一张很大的图片,那么白色带会变成一条线,也就不明显了。这个过程在上面所给的例子中有所体现,卷积后边缘会显示出白色线条。
3、更多边缘检测内容
4、padding
说明:
卷积后的缺点:
1、卷积后图像会缩小。如果一个神经网络有100层的话,每一层都卷积一下,那么这张图片最后会变的很小。
2、图像的角落,或者边上只会被fitter过滤一次,而中间的会被fitter过滤多次,这样就意味着卷积出来对图像的边角位置欠考虑。
比如,如果输入的图片边角也有比较明显的物体,那么就检测不到。
这就引入了padding方法:
沿着图片边缘再填充一些图像。如:如果输入的是一个6*6的图片,在该图片边缘再填充,使该图片为8*8的图片,卷积后就会得到6*6
的图片,这和本来输入的图片大小一致,这就解决了缺点1。习惯上用0去填充。padding可以为1也可以为2等等,具体情况具体分析。
同时也解决了问题。
通常,fitter一般使用奇数滤波器。
5、卷积步长
当[(n+2p-f)\s]+1不是整数时,往下取整数,但这有一个前提,就是当滤波器没有完全被图片包围时,就不要去计算了。
这样就有一个疑问了,添加padding层不就没发挥作用吗?
一般卷积(数学或者信号处理中)会对fitter进行翻转处理,但深度学习中不需要。
6、卷积为何有效
当想知道R这一层的垂直边缘时,可以把滤波器除R这一层的数值设为0,这样就检测出R层的垂直边缘了。
也可以用两个滤波器分别检测彩色图片的垂直边缘和水平边缘,输出的图片维度为x1*x2*x3,其中x3为滤波器的个数。
问题:如何在卷积后区分R,G,B分别的垂直边缘,水平边缘,换句话说,卷积后得出的图片不就成黑白图片了吗?
答:图片的色彩是由灰度构成的,RGB三个通道分别有不同的灰度,一组成就成了彩色图片。
这个问题暂且不谈,先看视频
可以这样理解,为什么可以这样做,这是对图片的一种处理方法,比如黑白照片的水平边缘化和垂直边缘化也是对图片的处理
方法,比如说,黑白照边缘化处理后,就能提取该图片的特征(fitter后得出的数字网格图每一个数字都是特征),从而做下
一步提取,而彩色图片也是一样的,用fitter的目的是去提取图片的特征,一步一步深化。
总体来说,就是一种处理彩色图片的方法罢了,而为什么可以用这种方法,黑白照片的处理可以为一个解释,但深化的解释视频
中也没说,我们就当成数学家们的严谨推导得出来的证明吧,这不是我们需要做的工作,我们会用就可以了。
RGB图片卷积:
7、卷积计算小结
8、简单卷积网络示例
该实例用来做图片分类问题:
最终提取出7*7*40=1960个特征
然后对这些特征展开成一个很长的向量,进行逻辑回归或者softmax处理来判断。
卷积神经网络包括三部分:
卷积层
池话层(一般我们有最大池化和平均池化,而最大池化就我认识来说是相对多的。需要注意的是,池化层一般放在卷积层后面。所以池化层池化的是卷积层的输出!)
全连接层
9、池化层
分为平均池化和最大池化
池化层:
用fitter筛选最大值
可以把左边的4*4当做某种特征的集合,用池化算子提取出某种特征,可能是一种垂直边缘,一只眼睛,或者是CAP特征,这个特征可能是
一个猫眼探测器。
如果输入图片是一个多信道(多维)图片,那么输出也是一个多维图片。
平均池话层:
用fitter去寻找平均值。
池化过程中没有需要学习的参数,它是神经网络中的一种静态属性。
10、卷积神经网络示例
letnet-5:
上面第二层网络后将特征打散,然后通过一个全连接层,全连接层是一个单层神经网络,将400个特征变成200个特征。然后再
通过一个全连接层,将特征变为84个特征,最后通过激活函数softmax。
如果是手写体识别图片,那么softmax将会输出10个东西。
关于超级参数怎么选择,比如池话层中fitter中超级参数的选择,池化层没有需要训练的参数,但有超参数,这些参数不要随意选择,
后期会讲。
11、为什么用卷积