1 前言
本章就是《深度学习入门-基于python的理论与实现》这本书的最后一章节了。
深度学习是加深了层的深度神经网络,基于之前介绍的网络,只需要通过叠加层就可以创建深度深度网络,本章学习深度网络的性质、课题、可能性,对当前的深度学习概括。
1.1 加深网络
在之前的章节中,我们学习了构成神经网络的各种层、学习时的有效技巧、对图像特别有效的CNN、参数的最优化方法等,这章将会利用前面学到的技术创建一个深度网络,挑战MNIST数据集的手写数字识别。
1.1.1 向更深的网络出发
这个网络有以下特点
1)基于3*3的小型滤波器的卷积层
2)激活函数是ReLU
3) 全连接层的后面使用Dropout层
4)基于Adam 的最优化
5)使用He初始值作为权重初始值
这个网络的识别精度是99.38%,使用了之前介绍的神经网络技术。
上图我们人类也有可能识别错误。
1.1.2 进一步提高识别精度
在“what is the class of this image?”为标题的网站上,以排行榜的形式刊登了目前通过论文等渠道发表的针对各种数据集的方法的识别精度。
排名靠前的都是基于CNN,到2016年6月,对MNIST 数据集识别精度为99.79%,是使用了CNN,其中卷积层为两层,全连接层为两层的网络。对于手写数字识别不需要用到太多层。
集成学习、学习率衰减、数据扩充都可以提高识别精度,数据扩充在提高识别精度上效果显著。
数据扩充可以通过图像的旋转、平移等变形,或者施加亮度,放大、缩小等。
1.1.3 加深层的动机
对于加深层的重要性理论上的研究不够透彻,从过往的研究和实验中可以解释。
以ILSVRC为代表的大规模图像识别的比赛结果中可以