0. 前言
深度学习 (Deep Learning
, DL
) 是贯穿所有生成模型 (Generative Model
) 的共同特征,几乎所有复杂的生成模型都以深度神经网络为核心,深度神经网络能够学习数据结构中的复杂关系,而不需要预先提取数据特征。在本节中,我们将介绍深度学习基本概念,并利用 Keras
构建深度神经网络。
1. 深度学习基本概念
1.1 基本定义
深度学习 (Deep Learning
, DL
) 是一类机器学习算法,使用多个堆叠的处理单元层从非结构化数据中学习高级表示。
为了充分理解深度学习,尤其是理解深度学习在生成建模中的重要性,我们将首先介绍深度学习中常见的非结构化数据,然后探讨如何构建多个堆叠的处理单元层解决分类任务。
1.2 非结构化数据
多数类型的机器学习算法需要结构化的表格数据作为输入,表格数据中的每一列都用于描述观测数据的特征。例如,一个人的年龄、收入和上个月购物网站访问等特征有助于预测此人在下个月网络购物的金额,可以使用这些特征的结构化表格来训练逻辑回归、随机森林或 XGBoost
等模型,并使用这些模型预测连续空间的响应变量(模型预测输出结果),即此人的网购消费金额。在此示例中,每个特征都包含观测数据的一部分信息,模型将学习这些特征如何相互作用以影响响应变量。
非结构化数据指的是不能自然地将特征组织成列形式的数据,例如图像、音频、文本和视频等。其中,图像具有空间结构,音频或文本具有时间结构,而视频数据兼具空间和时间结构,但由于数据不是以特征列的形式组织,因此称为是非结构化数据,如下图所示。
在非结构化数据中,单个像素、频率或字符几乎不含任何信息。例如,知道一张图像的第 3
行、第 4
列的像素是白色并不能帮助我们确定这张图像是一只狗还是一只猫,知道一个句子的第 5
个单词是字母 that
也不能帮助我们预测这段文本是关于电影还是体育的。
实际上,像素或字符只是嵌入到更高级信息特征(例如小狗图像或 “football
” 单词)的一部分。无论图像中的小狗被放置屋子里或马路边,图像仍然包含小狗,只不过该信息将由不同的像素传递;无论文本中的 “football
” 稍早或稍晚出现,该文本仍然是关于足球的,只是该信息将由不同的字符位置提供。数据的细粒度和高度的空间依赖性破坏了像素或字符作为独立信息特征的意义。
因此,如果我们对原始像素值训练逻辑回归、随机森林或 XGBoost
模型,则训练后的模型通常只能处理最简单的分类任务,而在其他较复杂的任务中通常表现不佳。这些模型依赖于输入特征具有的信息量且不具有空间依赖性。而深度学习模型可以直接从非结构化数据中自行学习如何构建高级信息特征。
深度学习也可以应用于结构化数据,但其真正的作用(尤其在生成模型领域)来自于其处理非结构化数据的能力。通常,我们希望生成非结构化数据,比如新的图像或文本,这就是为什么深度学习对于生成模型领域有如此深远的影响的原因。