戳上方蓝字【阿力阿哩哩的炼丹日常】关注我~
4.3
CNN卷积神经网络
我们在4.2节讲到了神经网络已经逐步成为人类智能生活的璀璨明珠,并介绍了全连接神经网络的整个训练过程(深度学习开端-全连接神经网络),整个流程紧凑而又科学,似乎全连接神经网络已经能解决很多问题了,但细心的读者会发现笔者并没有提及全连接神经网络的缺点。因此,这一节笔者正好通过全连接神经网络的缺点来开展CNN卷积神经网络(Convolutional Neural Network)的教学。
01
4.3.1 全连接神经网络的缺点
为了讲清全连接神经网络的局限性,笔者还是拿出上一节最简单的全连接网络结构图来讲解,如图4.3所示,相信大家对这个图也不陌生了。设想一下,我们为了求解损失Loss 列出了关于w,b 的方程,并通过梯度下降的方法去求解最佳的(w , b),从而得到最小的损失Loss。换言之,4.2节的内容简单来讲就是站在山上找最陡峭的地方(梯度),不断地往下走,一直走到山谷,这时候我们所在坐标(w , b)就是Loss方程的最优解。
为此,针对图 4.3的这个网络结构,我们要对隐藏层和输出层求4个偏导,又因为隐藏层的输出作为输出层的输入,这时我们就要用到求偏导的链式法则,公式如下:
由公式(4.14)~(4.19),我们可以看出,两个神经元,为了求出隐藏层和输出层最佳的(w , b),我们就要求四个偏导,期间还得为链式求导付出3次连乘的代价。
现在,重点来了,如图 4.8所示,倘若我们的网络层次越深,偏导连乘也就越多,付出的计算代价也就越大。
紧接着,一个网络层不单止一个神经元,它可能会有多个神经元,那么多个神经元的输出作为下一级神经元的输入时,就会形成多个复杂的嵌套关系。
我们知道全连接神经网络层级之间都是全连接的,所以网络结构越复杂,那要求的(w , b)就会非常多,整个网络就会收敛得非常慢,这是我们所不希望看到的。这就是全连接神经网络的局限性,特别是针对图像这些冗余信息特别多的输入,如果用全连接神经网络去训练,简直就是一场计算灾难。那么既然问题出现了,就会有人提出解决方法。这时候CNN卷积神经网络便应运而生了。
图 4.8 多层全连接神经网络
02
4.3.2 CNN卷积神经网络原理
说了这么多,笔者这就给大家附上一张CNN网络结构图,如图 4.9所示,让大家都有个直观的了