目录
深度学习
在CNN的基础上,只需通过 叠加层,就可以创建深度网络
8.1 加深网络
这个网络使用He初始值作为权重的初始值,使用Adam更新权重参数。
把上述内容总结起来,这个网络有如下特点
- 基于3×3的小型滤波器的卷积层。
- 激活函数是ReLU。
- 全连接层的后面使用Dropout层。
- 基于Adam的最优化。
- 使用He初始值作为权重初始值。
识别进度高达了为99.38%
出错的图:
8.1.2 进一步提高识别精度
我们可以采用集成学习、学习率衰减、Data Augmentation(数据扩充)等都有 助于提高识别精度。
Data Augmentation基于算法“人为地”扩充输入图像(训练图像)。具 体地说
Data Augmentation还可以通过其他各 种方法扩充图像,比如裁剪图像的“crop处理”、将图像左右翻转的“fl ip处 理”A 等
8.1.3 加深层的动机
到层越深,识别性能也越高
接下来我们思考一下图8-6中重复两次3 × 3的卷积 运算的情形。
一次5 × 5的卷积运算的区域可以由两次3 × 3的卷积运算抵充。
通过叠加卷积层,参数数量减少了。而且,这个参数数量之差会随着层的加深而变大
具体的说:
重复三次3 × 3的卷积运算时,参数的数量总共是27。而为了用一次 卷积运算“观察”与之相同的区域,需要一个7 × 7的滤波器,此时的参数数 量是49。
叠加小型滤波器来加深网络的好处是可以减少参数的数量,扩大感受野(receptive field),给神经元施加变化的某个局部空间区域)并且, 通过叠加层,将 ReLU等激活函数夹在卷积层的中间,进一步提高 了网络的表现力。这是因为向网络添加了基于激活函数的“非线性” 表现力,通过非线性函数的叠加,可以表现更加复杂的东西。
8.2 深度学习的小历史
8.2.1 ImageNet
ImageNet是拥有超过100万张图像的数据集。
8.2.2 VGG
VGG是由卷积层和池化层构成的基础的CNN
它的特点在于将有权重的层(卷积层或者全连接层)叠加至16层(或者19层), 具备了深度(根据层的深度,有时也称为“VGG16”或“VGG19”)。
8.2.3 GoogLeNet
GoogLeNet的网络结构如图8-10所示。图中的矩形表示卷积层、池化层等
8.2.4 ResNet
它的特征在于具有比以前的网络更深的结构。
实践中经常会灵活应用使用ImageNet这个巨大的数据集学习到的权重数据,这称为迁移学习,将学习完的权重(的一部分)复制到其他神经网络,进行再学习(fine tuning)。
比如,准备一个和 VGG相同 结构的网络,把学习完的权重作为初始值,以新数据集为对象,进 行再学习。
迁移学习在手头数据集较少时非常有效。
8.3 深度学习的高速化
大多数深度学习的框架都支持 GPU(Graphics Processing Unit)
8.3.1 需要努力解决的问题
AlexNex中,大多数时间都被耗费在卷积层上
卷积层的处理时间加起来占GPU整体的95%,占CPU整体的89%
8.3.2 基于GPU的高速化
GPU计算的目标就是将这种压倒性的计算能力用于各种用途。
深度学习中需要进行大量的乘积累加运算(或者大型矩阵的乘积运算)。 这种大量的并行运算正是GPU所擅长的(反过来说,CPU比较擅长连续的、 复杂的计算)。
GPU主要由NVIDIA和AMD两家公司提供,虽然两家的GPU都可以 用于通用的数值计算,但与深度学习比较“亲近”的是NVIDIA的GPU。
基于im2col以大型矩阵的乘积的方式汇总计算, 更容易发挥出 GPU的能力。
8.3.3 分布式学习
8.3.4 运算精度的位数缩减
8.4 深度学习的应用案例
8.4.1 物体检测
在使用CNN进行物体检测的方法中,有一个叫作R-CNN的有名的方 法。
8.4.2 图像分割
如图8-19所示,使用以像 素为单位对各个对象分别着色的监督数据进行学习
卷积运算中会发生重复计算很多区域的无意义的计算)
有人提出了一个名为FCN(Fully Convolutional Network)FCN的字面意思是“全部由卷积层构成的网络”
8.4.3 图像标题的生成
有一项融合了计算机视觉和自然语言的有趣的研究,该研究如图8-21所 示,给出一个图像后,会自动生成介绍这个图像的文字(图像的标题)。
一个基于深度学习生成图像标题的代表性方法是被称为NIC(Neural Image Caption)的模型。我们将组合图像和自 然语言等多种信息进行的处理称为多模态处理。多模态处理是近年来备受关 注的一个领域。
8.5.1 图像风格变换
有一项研究是使用深度学习来“绘制”带有艺术气息的画。如图8-23所示, 输入两个图像后,会生成一个新的图像。两个输入图像中,一个称为“内容 图像”,另一个称为“风格图像”。
8.5.2 图像的生成
现从零生成“卧室”的图像
DCGAN生成的图像是谁都没有见过的 图像(学习数据中没有的图像),是从零生成的新图像
8.5.3 自动驾驶
8.5.4 Deep Q-Network(强化学习)
就像人类通过摸索试验来学习一样(比如骑自行车),让计算机也在摸索 试验的过程中自主学习,这称为强化学习(reinforcement learning)
强化学习的基本框架是,代理(Agent)根据环境选择行动,然后通过这 个行动改变环境。根据环境的变化,代理获得某种报酬。
在使用了深度学习的强化学习方法中,有一个叫作Deep Q-Network(通 称DQN)的方法。
在游戏上 的应用:
8.6 小结
- 这一章的主要是开开眼
- 对于大多数的问题,都可以期待通过加深网络来提高性能。
- 在最近的图像识别大赛ILSVRC中,基于深度学习的方法独占鳌头, 使用的网络也在深化。
- VGG、GoogLeNet、ResNet等是几个著名的网络。
- 基于GPU、分布式学习、位数精度的缩减,可以实现深度学习的高速化。
- 深度学习(神经网络)不仅可以用于物体识别,还可以用于物体检测、 图像分割。
- 深度学习的应用包括图像标题的生成、图像的生成、强化学习等。
- 最近, 深度学习在自动驾驶上的应用也备受期待。