深度学习初学者指南
上QQ阅读APP看书,第一时间看更新

1.1 接触ML生态系统

从图1.1所示的典型ML应用程序流程图可以看出,ML具有广泛的应用。然而,ML算法只是更大生态系统的一小部分。尽管这个更大的生态系统有很多部分在运作,但是ML正在改变世界各个角落的生活。

部署ML应用程序通常从数据收集过程开始,该过程使用不同类型的传感器,如照相机、激光器、分光镜或其他类型的直接访问数据的手段,包括本地和远程数据库,数据库的规模或大或小。在最简单的情况下,可以通过计算机键盘或智能手机屏幕点击收集输入。在这个阶段,收集或感知到的数据称为原始数据。

图1.1 ML生态系统——ML通过数据操作和解释的几个阶段与世界交互,以实现整体的系统集成

原始数据通常需要在呈现给ML模型之前进行预处理。它很少是ML算法的实际输入,除非该ML模型是为了找到原始数据的丰富表示,然后用作另一个ML算法的输入。换句话说,有一些专门用作预处理代理的ML算法,它们与用于对预处理后数据进行分类或回归的主要ML模型完全无关。一般来说,数据预处理阶段的目标是将原始数据转换为具有特定数据类型的数组或矩阵。一些流行的预处理策略包括:

·词–向量转换,例如GloVe或Word2Vec

·序列–向量或序列–矩阵策略

·值域的归一化,例如(0,255)到(0.1,1.0)

·统计值归一化,例如零均值法和单位方差法

在进行了这些预处理措施之后,大多数ML算法就可以使用这些数据了。然而,我们必须注意,预处理阶段并不是微不足道的,它需要操作系统方面,有时甚至是电子方面的高级知识和技能。一般来说,真正的ML应用程序有很长的管道,涉及计算机科学和工程学的不同方面。

预处理完毕的数据就是你通常会在书中看到的数据,本书也是如此。原因在于,我们需要关注的是深度学习而不是数据处理。如果你希望在这个领域有更深入的了解,可以阅读Ojeda,T.et.al.(2014)或Kane,F.(2017)的数据科学文献。

在数学上,将处理完毕的数据用包含N行(或数据点)的矩阵X表示。如果想要引用数据集的第i个元素(或行),可以将其写作。数据集将有d列,它们通常称为特征。一种研究特征的方法是将特征看作维度。例如,如果数据集有两个特征,身高和体重,那么可以使用二维图来表示整个数据集。第一个维度(身高)可以是横轴,第二个维度(体重)可以是纵轴,如图1.2所示。

图1.2 二维数据样本

在生产过程中,当数据呈现给ML算法时,将执行一系列张量乘积和加法运算。这种向量运算通常使用非线性函数进行变换或归一化。然后是更多的乘积和加法运算、更多的非线性变换、中间值的临时存储,并最终产生与输入相对应的期望输出。现在,你可以把这个过程看作关于ML的黑盒,它的内部结构会在你继续阅读的过程中逐渐显现出来。

ML产生的对应于输入的输出通常需要进行某种类型的解释。例如,如果输出是对象被分类为属于一个组或另一个组的概率向量,那么可能需要对其进行解释。你可能需要知道概率有多低才能解释为不确定性,或者说可能需要知道概率有多不同才能解释为更多的不确定性。通过使用业务规则,输出处理充当ML和决策世界之间的连接因素。例如,这些业务规则可以是如果–那么规则:“如果最大值的预测概率是第二个最大值的两倍,那么发出预测;否则,不要继续做决定。”或者,它们可以是基于公式的规则或更为复杂的方程组。

最后,在决策阶段,ML算法已经准备好了与世界互动:通过使用执行器打开灯泡;或者在预测不确定时购买股票;或者提醒经理,该公司将在三天内耗尽存货,需要购买更多的物品;或者向智能手机扬声器发送音频消息“这是去电影院的路线”,并通过应用程序编程接口(API,Application Programming Interface)调用或操作系统(OS)命令打开地图应用程序。

本节是对生产过程中ML系统的一种宽泛概述。然而,这假设ML算法已经经过了适当训练和测试。相信我,那是容易的部分。在本书的最后,你将熟练地训练高度复杂的深度学习算法。但是,现在我们先学习通用的训练过程。