李宏毅深度学习笔记(四)——卷积神经网络(CNN)

在图像处理中,神经网络的输入就是图像上的一个个像素,输入向量的维度就等于图像的像素数量,因此如果使用一般的神经网络(Fully Connected Feedforward Network),会导致参数过多并且使得训练效率低下。于是,我们想到可以利用图像处理的一些特性得到一种更简单的神经网络,这就是卷积神经网络(CNN)。

1.图像处理的性质

(1)决定一个图片的“模式”(比如图片里是否有某个物体)可以通过图像里面的一小部分决定。比如通过查看图片中是否包含鸟嘴来判断图片中是否有鸟。

(2)相同的特征可以出现在图片中的不同位置,它们是等价的。比如一只鸟出现在图片的任何地方都应当被识别出来。

(3)图像可以做subsampling。比如从一个图像中删除某几行几列的像素,对于图像的辨识几乎没有影响。

2.CNN的训练过程

整体的过程如下图所示。输入图片以后,反复进行convolution和maxpolling,最后把flatten得到的结果输入一个Fully Connected Feedforward Network得到结果。

(1)convolution 

convolution主要针对的是图像处理的前两个性质。在convolution过程中,需要训练n个filter,filter就是一个矩阵,它代表了一个特征,因此希望特征出现在多大的范围内,filter就要多大。

如下图所示,假设输入是一张黑白的图片,每个像素点用0或者1来表示。首先想象有一个与filter大小相同的框,在图像的最左上角框出一个矩阵,把这个矩阵跟filter矩阵对应位置的元素相乘后相加,得到一个值。然后把框向后移动一个stride的长度并重复同样的操作。最后得到一个新的矩阵。

这个过程就相当于经过了一层特殊的神经网络。如图所示,filter中的值就相当于对应的weight,因此convolution的训练过程与一般的神经网络一样,可以使用Backpropagation来训练。

(2)maxpooling

maxpooling的作用是进行subsampling的过程。把convolution得到的矩阵划分成几组,每组中取最大值,得到一个更小的矩阵。

(3)flatten

把多个filter产生的矩阵表示为一个一维向量作为下一个神经网络的输入。

CNN的应用不仅局限在图像识别上,包括deep style(用一个图片的画风画出另一张图片),ALphaGo,语音识别(读频谱图)等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值