第 2 章 深度学习 深度学习
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
让我们从深度学习的基本定义开始:
Deep Learning 是一类机器学习算法,它使用多层堆叠的处理单元,从非结构化数据中学习高层表征。
要全面理解 Deep Learning,我们需要对这一定义深入研究一番。首先,我们来看看深度学习可用于建模的不同类型的非结构化数据,然后深入了解构建多层堆叠处理单元以解决分类任务的机制。这将为我们今后重点介绍深度学习用于生成任务的章节打下基础。
深度学习数据
许多 类型的机器学习算法都需要结构化的表格数据作为输入,这些数据被排列成描述每个观察结果的特征列。例如,一个人的年龄、收入和上个月访问网站的次数都是有助于预测此人下个月是否会订阅特定在线服务的特征。我们可以使用这些特征的结构化表格来训练逻辑回归、随机森林或 XGBoost 模型,以预测二元响应变量--该人是否订阅(1)或不订阅(0)?在这里,每个单独的特征都包含有关观察结果的信息,模型将学习这些特征如何相互作用来影响响应。
非结构化数据是指没有自然排列成特征列的任何数据,如图像、音频和文本。当然,图像有空间结构,录音或文字段落有时间结构,视频数据既有空间结构也有时间结构,但由于数据没有按特征列排列,因此被视为非结构化数据,如图 2-1 所示。
图 2-1. 结构化数据与非结构化数据的区别
当我们的数据是非结构化数据时,单个像素、频率或字符几乎完全不能提供信息。例如,知道图像的 234 像素是浑浊的棕色,并不能真正帮助识别图像是房子还是狗;知道句子的 24 字符是e,并不能帮助预测文本是关于足球还是政治。
像素或字符实际上只是画布上的凹陷,其中嵌入了更高层次的信息特征,如烟囱图像或前锋一词。如果把图像中的烟囱放在房子的另一侧,图像中仍然会有一个烟囱,但这一信息现在将由完全不同的像素来承载。如果 "前锋"一词在文本中出现的时间稍早或稍晚,文本仍然是关于足球的,但不同的字符位置会提供这一信息。数据的粒度加上高度的空间依赖性,破坏了像素或字符本身作为信息特征的概念。
因此,如果我们用原始像素值来训练逻辑回归模型、随机森林模型或 XGBoost 模型,除了最简单的分类任务外,训练出来的模型往往表现不佳。这些模型依赖于输入特征的信息量,而非空间依赖性。而 Deep Learning 模型则可以直接从非结构化数据中自行学习如何构建高级信息特征。
Deep Learning 可以应用于结构化数据,但其真正的威力,尤其是在生成建模方面,来自于它处理非结构化数据的能力。大多数情况下,我们希望生成新图像或原始文本串等非结构化数据,这就是为什么深度学习对生成建模领域产生了如此深远的影响。
深度神经网络
大部分深度学习系统都是具有多个堆叠隐藏层的人工神经网络(ANN,简称神经网络)。因此,深度学习现在几乎成了深度神经网络的代名词。不过,任何采用多层来学习输入数据高层表征的系统也是深度学习的一种形式(如深度信念网络)。 ...