下面我们正式来介绍卷积神经网络。这个网络是如何神奇,怎么能够仅仅依靠一些数学加工的方法,就能完成对图像的分类,或者说检测呢?按照惯例,我们先通过一张形象的图片,来理解它是如何进行图像分类的:
图是从网上剽窃来的,实在是没时间画了,而且也不是我的专长。以后真有精力再做替换吧。
关键是这张图说明得非常形象,很容易理解,似乎一眼就看明白“卷积神经网络”是干什么以及如何工作的了,比我上面那段苍白的文字定义要好一百倍。这也是一张非常流行的图,不知道最初是谁画出来的。
大意是说,先从一张原始图片中,提取出线条,然后由线条组成物体的部件,然后再由部件组成一个整体,最终判断出图像中物体所属的分类。
这便是卷积神经网络的原理(当然是写意的)。
具体来讲它是如何工作的,它有哪些结构呢?下面我打算分这么几部分来介绍它。
首先介绍组成卷积神经网络的几个主要部件。
接着通过一个例子来说明一个完整的卷积神经网络是什么样子。
最后讲讲其他同样会用到卷积神经网络上的不同的技术或方法。
开始之前,我想说一下,网上关于什么是卷积神经网络的最好的介绍,我觉得应该算吴恩达的“卷积神经网络”的视频课程,讲得非常详细,深入浅出,而且全程都是例子和手把手的计算。虽然课程的侧重点不是讲解卷积网络的工作原理,不是在讲“所以然”,但是对“知其然”来说是我见过最好的了。
视频在B站上一搜就有,不过我估计全部是未授权的,所以这里就不放链接了,有需要的自己在视频网站输入“吴恩达 卷积神经网络”一搜就能找到很多。
所以关于“是什么”这部分我会讲解得比较粗略一些,有看不明白或想了解更多细节的,我建议去网上看看吴恩达的视频。
上一节我们介绍“卷积神经网络”这个词,但是完整的网络其实并不只包含卷积,还有其他的部件,下面我们将逐个介绍这基组成网络的基础构件。
一个典型的卷积网络(LeNet-5)
一个典型的卷积网络通常由输入层、卷积层、激活层、池化层,全连接层,输出层等关键部件构成。其中卷积层、激活层、池化层通常成一组出现,每一组被视作网络的一层,层数越多,网络越深。输入层是网络的开始,而输出层是网络的结束。网络是单向的,总是由输出到输出。后一层由前一层计算得来,前一层是后一层的输入。