8.1从神经网络到卷积神经网络:解决参数太多的问题

> 卷积神经网络的应用

卷积神经网络在多个方面已经取得了比较好的应用,比如自然语言处理、医药发现、机器视觉以及围棋的人机对弈等。

目前,卷积神经网络在机器视觉的识别任务中应用最为广泛,也是最为成功的。比如下图中的图像分类。

在图像分类这个任务上,15年的ResNet已经超越了人类识别的水平,它的错误率仅仅是3.57%,而人类识别的错误率是5.1%(详见下图)。

我们再来看几张CIFAR-10数据集上的样例。

这几张是分类难度较高的照片,如果直接从图片上去看,我们也很难分辨图片上实际的类别。目前,在CIFAR-10数据集上最好的识别算法的正确率就是ResNet,它的错误率是百分之三点多,达到这个正确率的算法就是使用了卷积神经网络。

除了图像分类之外,还有物体检测。比如下图中给出一张照片,机器可以以很高的准确率判别里面出现了什么类型的物体,比如车、马、狗等。

通过下图我们可以看到,物体检测的准确率也是不断在提升的。

除此之外,还有实例分割(图8-6)、看图说话(图8-7)、看图问答(图8-8)等等。

我们不难发现,卷积神经网络已经成了机器视觉任务的一个极为重要的工具。

卷积神经网络在刚才介绍的这些机器视觉任务上有着非常突出的表现,那么卷积神经网络跟前面章节所介绍的传统的神经网络相比有什么特别之处呢?它突破了全连接网络的什么局限呢?

> 全连接网络的局限性(参数太多)

对于MNIST数据集来说,每一张图片的大小都是28×28×1,这里的1表示图像的通道数,或者说特征图的数量。作为输入,28×28×1代表这个28×28尺寸的图像是黑白的,只有一个色彩通道。

假设我们只有一个隐层,隐层的节点数为500,那么一个全连接层的神经网络有多少个参数呢?参数个数为28×28×1×500+500≈40万(28×28×1是输入图像的尺寸,前一个500表示隐层的500个节点,这些乘起来是连接权值的个数,后面加上的500表示500个偏置)。当图片更大时,比如在CIFAR数据集中,图片大小为32×32×3,32×32是图像的尺寸,3表示图片是RGB三通道。如果隐层还是500个节点,那么此时全连接层的参数为32×32×3×500+500≈150万。

目前考虑的还仅仅是单个隐层,如果我们想得到更好的效果,我们还需要增加若干个隐层。而且在现实生活中,我们所处理的照片尺寸都是在几百或一千以上。假设我们现在的图像是600×600的,我们为了得到更好的效果,把隐层的个数增加到三层,各隐层节点数分别为300、200和100,这样计算下来,参数个数为600×600×300+300×200+200×100≈1.08亿。并且这里还不包括偏置,因为偏置的个数跟权值比少得多,可以忽略不计。

参数的增多,不仅会导致计算速度减慢,还容易出现过拟合的问题。所以我们需要一个更加合理的神经网络结构来有效减少参数个数,卷积神经网络就可以达到这个目的。

Last updated