在现实世界和人工智能领域中,“距离”都是一个非常重要的度量工具。在现实世界中,距离可以用来描述两点之间的相对位置;而在人工智能领域,距离则是衡量两个向量相似性的关键指标。在机器学习算法中,向量被视为一维数组,而两个向量之间的距离则反映了它们之间的相似程度。
向量本质上是一维数组,这与解决问题所需的维度不同。例如,一个包含10个输入通道的问题仍然可以表示为一个长度为10的向量。在机器学习中,向量通常用于存储实例的数据。
向量的概念在现实世界中也有体现。比如,一张纸上的一个点可以用两个坐标(x, y)表示,而三维空间中的一个点则需要用三个坐标(x, y, z)表示。因此,二维点可以用长度为2的向量表示,三维点则可以用长度为3的向量表示。
尽管我们的宇宙有三个可感知的维度,但“时间”有时被视为第四维度,但这更多是一种比喻,并不代表它是一个真实的维度。在人工智能算法中,经常需要用到高维度的向量空间,这使得理解和处理更高维度的空间变得复杂。
以鸢尾花数据集为例,该数据集包括花萼长度、花萼宽度、花瓣长度、花瓣宽度和鸢尾花种类五个特征。虽然可以将这些特征视为一个长度为5的向量,但“种类”这一特征与其他四个特征的处理方式不同,因为它不是一个数字量。因此,我们需要使用特殊的方法来编码这种非数字特征。
通过将鸢尾花的各种特征视为高维空间中的维度,可以将每个样本视为高维空间中的一个点。相邻的点通常具有相似的特征。例如,以下三行数据可以被编码为向量:
通过这些向量,我们可以计算两个数据点之间的距离。接下来将介绍几种计算向量距离的方法。
向量之间的距离反映了它们的相似程度。以下是几种计算向量距离的方法。
欧氏距离是一种基于两点间实际距离的度量方法,类似于直尺测量两点之间的距离。在二维空间中,两点之间的距离可以通过毕达哥拉斯定理计算。对于任意维度的向量,欧氏距离可以通过推广公式计算:
[ text{欧氏距离} = sqrt{sum{i=1}^{n} (xi - y_i)^2} ]
欧氏距离在机器学习中广泛应用,特别是在比较相同维度的向量时非常高效。例如,如果有三个向量a、b、c,a与b的欧氏距离为10,a与c的距离为20,那么a与b的匹配程度比a与c的匹配程度更高。
曼哈顿距离又称“城市街区距离”,形象地描述了在城市街区中从一点到另一点的距离。计算两点之间的曼哈顿距离只需要将各维度的相对距离相加即可:
[ text{曼哈顿距离} = sum{i=1}^{n} |xi - y_i| ]
欧氏距离和曼哈顿距离的主要区别在于前者对较大距离的响应更强烈。例如,在二维空间中,两个向量在两个维度上各相差1个单位的欧氏距离为 (sqrt{2}),而曼哈顿距离为2。
切比雪夫距离又称“棋盘距离”,描述了王从一点到另一点所需的步数。计算切比雪夫距离需要取各维度距离的最大值:
[ text{切比雪夫距离} = max(|xi - yi|) ]
切比雪夫距离在需要重点研究最大距离维度时非常有用,特别是在所有维度都被归一化或近似到同一区间时。
光学字符识别(OCR)是机器学习中的一个常见应用场景。OCR的基本原理是通过学习已知字符的特征来识别未知字符。欧氏距离可以用于实现基本的OCR功能。
在OCR中,首先需要采集并裁剪字符图像,然后进行降采样以减少像素数量。降采样后的图像被转换为向量,再通过比较新图像向量与已知字符向量的距离来识别字符。
例如,一个300像素×300像素的全彩图像包含270,000个像素点,如果每个像素点都作为一个输入通道,则需要270,000个输入通道。通过降采样可以减少输入通道的数量,从而简化计算。
向量在机器学习中扮演着重要角色。在机器学习算法中,输入和输出通常以向量形式表示,算法的记忆也被视为向量。向量可以被看作是n维空间中的坐标,通过计算两个坐标间的距离可以评估两个向量的相似度。
计算向量距离的方法有很多,最基本的包括欧氏距离、曼哈顿距离和切比雪夫距离。欧氏距离适用于一般情况,曼哈顿距离在某些特定情况下更适用,而切比雪夫距离在需要关注最大距离维度时非常有用。
通过简单距离计算,OCR可以识别字符。首先创建已知字符表及其对应的向量表,新图像经过裁剪和降采样后,通过比较新图像向量与已知字符向量的距离来识别字符。
随机数在机器学习中非常重要,通常用作初始形状,并在训练过程中不断调整。随机数还可以用于训练中的蒙特卡洛方法。下一章将重点讨论随机数。