深度学习入门(鱼书)学习笔记:第8章 深度学习

鱼书(入门)目录导航

第8章 深度学习(Deep Learning)

8.1 加深网络

image
图8-1 进行手写数字识别的深度CNN

这个网络有如下特点(用到了很多第6章中的技巧):
• 基于3×3的小型滤波器的卷积层。
• 激活函数是ReLU。全连接层的后面使用Dropout层。
• 基于Adam的最优化。
• 使用He初始值作为权重初始值。
这个网络的识别精度约为99%+!

实现图 8-1的网络的源代码在ch08/deep_convnet.py中,训练用的代码在ch08/train_deepnet.py中。虽然使用这些代码可以重现这里进行的学习,不过深度网络的学习需要花费较多的时间(大概要半天以上)。本书以ch08/deep_conv_net_params.pkl的形式给出了学习完的权重参数。下面给出调用pkl文件直接运行脚本ch08/misclassified_mnist.py的结果,用到了class DeepConvNet

点击查看构造的深度网络在MNIST数据的准确率
calculating test accuracy ...
test accuracy:0.9935
======= misclassified result =======
{view index: (label, inference), ...}
{1: (6, 0), 2: (3, 5), 3: (3, 5), 4: (8, 3), 5: (7, 3), 6: (1, 3), 7: (8, 9), 8: (6, 0), 9: (6, 5), 10: (7, 2), 11: (9, 4), 12: (7, 1), 13: (5, 3), 14: (1, 3), 15: (0, 6), 16: (9, 4), 17: (7, 9), 18: (6, 0), 19: (9, 8), 20: (4, 9)}

Process finished with exit code 0

image
图8-2 识别错误的图像的例子:各个图像的左上角显示了正确解标签,右下角显示了本网络的推理结果

集成学习、学习率衰减、Data Augmentation(数据扩充)等都有助于提高识别精度。

image
图8-4 Data Augmentation的例子

加深层的动机

1、可以减少网络的参数数量。
2、使学习更加高效。

8.2 深度学习小历史

ImageNet[25]是拥有超过100万张图像的数据集。
[25] J. Deng, W. Dong, R. Socher, L.J. Li, Kai Li, and Li Fei-Fei (2009):
ImageNet: A large-scale hierarchical image database. In IEEE
Conference on Computer Vision and Pattern Recognition, 2009. CVPR
2009. 248 – 255.

VGG[22]是由卷积层和池化层构成的基础的CNN。
[22] Karen Simonyan and Andrew Zisserman(2014): Very Deep
Convolutional Networks for Large-Scale Image Recognition.
arXiv:1409.1556 [cs] (September 2014).
image
图8-9 VGG(根据文献[22]生成)

GoogleNet[23]
image
图8-10 GoogLeNet(引用自文献[23])

ResNet[24]是微软团队开发的网络。它的特征在于具有比以前的网络更深的结构。
image
图8-13 ResNet(引用自文献[24]):方块对应3×3的卷积层,其特征在于引入了横跨层的快捷结构

8.3 深度学习的高速化

基于GPU的高速化、分布式学习、运算精度的位数缩减。

Python中一般使用64位的浮点数。NumPy中提供了16位的半精度浮点数类型(不过,只有16位类型的存储,运算本身不用16位进行),即便使用NumPy的半精度浮点数,识别精度也不会下降。相关的论证也很简单,运行代码ch08/half_float_network.py,以下是运行结果:

caluculate accuracy (float64) ...
0.9935
caluculate accuracy (float16) ...
0.9935
Process finished with exit code 0

8.4 深度学习的应用案例

物体检测

image
图8-17 物体检测的例子(引用自文献[34])

图像分割

image
图8-19 图像分割的例子(引用自文献[34]):左边是输入图像,右边是监督用的带标签图像

图像标题的生成

image
图8-21 基于深度学习的图像标题生成的例子(引用自文献[38])

8.5 深度学习的未来

图像风格变换

image
图8-23 基于论文“A Neural Algorithm of Artistic Style”的图像风格变换的例子:左上角是风格图像,右上角是内容图像,下面的图像是新生成的图像(图像引用自文献[40])

图像的生成

image
图8-24 基于DCGAN生成的新的卧室图像(引用自文献[41])

自动驾驶

image
图8-25 基于深度学习的图像分割的例子:道路、车辆、建筑物、人行道等被高精度地识别了出来(引用自文献[43])

深度强化学习DQN

image
图8-27 基于Deep Q-Network学习电子游戏的操作。输入是电子游戏的图像,经过摸索试验,学习出让专业玩家都自愧不如的游戏手柄(操作杆)的操作手法(引用自文献[44])

8.6 小结

本章我们实现了一个(稍微)深层的CNN,并在手写数字识别上获得了超过99%的高识别精度。此外,还讲解了加深网络的动机,指出了深度学习在朝更深的方向前进。之后,又介绍了深度学习的趋势和应用案例,以及对高速化的研究和代表深度学习未来的研究案例。
深度学习领域还有很多尚未揭晓的东西,新的研究正一个接一个地出现。今后,全世界的研究者和技术专家也将继续积极从事这方面的研究,一定能实现目前无法想象的技术。

posted @ 2022-08-08 23:25  萧驭  阅读(358)  评论(0编辑  收藏  举报