以下节选至《人工智能中的数学之美》
对应的英文版本为:
Foundations of Machine Learning,second edition (Mehryar Mohri,Afshin Rostamizadehetc.),这本书中也有类似的阐述说明。
点积结果等于向量b的x分量,即向量b在沿单位向量方向上的投影。这为我们提供了一个重要的几何直观:当点积中的一个向量为单位长度时,点积的值即为另一个向量在该单位向量方向上的投影。在当前情况下,单位向量沿着x轴,因此,向量b在x轴上的投影即其x分量,数值为3。
关于点积,有一个重要的几何性质值得注意:即便单位向量并不与坐标轴重合,这一几何关系仍然适用。设向量a为,其模长为1,因此a是单位向量,但它与x轴形成45度夹角。假设向量b为(1,3)。根据点积定义,a·b=|a|×|b|×cosθ,其中θ是向量a与b之间的夹角,这等价于向量b在沿向量a延伸的直线方向上的投影长度(见下图)。
点积具有一个重要的几何性质,即它揭示了两个向量之间的正交性。具体而言,如果两个向量彼此正交(即夹角为90度),则它们的点积为零,因为夹角的余弦值为零。因此,点积为零的两个向量必定是正交的。反之,如果两个向量的点积为零,那么这两个向量就是正交的,无论它们的长度如何。
如果我们使用向量的分量表示方法,而不知道两个向量之间的夹角,我们如何计算点积呢?设向量a为a1i+a2j,向量b为b1i+b2j。那么点积可以表示为:
请注意,在方程中,第二项和第三项的值均为零。这是因为向量i和j是正交的,因此i·j和j·i的值为零。此外,i·i和j·j的值均为1。最终,我们只剩下一个标量量值:
a·b=a1b1+a2b2
机器与向量
如果这些概念看起来似乎与机器学习、感知器或深度神经网络相距甚远,请放心,事实并非如此。这些内容恰恰是整个情节的核心所在。我们正以迅速的步伐迈进,但每一步都谨慎踏在牢固的基础上。
现在是时候重新审视感知器,并从向量的角度思考它。我们的目标是通过几何方式理解数据点和感知器权重如何表示为向量,并了解当感知器试图找到一个将数据点划分为两类的线性分离超平面时发生了什么。其中大部分涉及利用向量的点积来计算数据点与超平面的相对距离,正如我们即将看到的那样。
回顾一下感知器的通用方程,该方程表明:如果输入的加权和加上某个偏置项b大于0,则感知器输出为1;否则,输出为-1。
在此,我们引入了向量的符号表示,使得感知器的函数形式变得更加严谨。在先前的讨论中,由于尚未涉及向量的概念,我们使用了标量形式的g(x),而现在则用向量形式g(x)来表示。在二维空间中,数据点可以用(x1,x2)表示,而感知器的权重向量则为(w1,w2)。感知器的第一个计算步骤是对输入进行加权求和,公式为:
w1x1+w2x2
如果这个加权和大于某个阈值(称为-b),那么感知器的输出y为1;否则,输出为-1。因此,可以表示为:
该公式可重新表述为:
让我们从向量的角度来看问题。权重集(w1,w2)其实就是一个向量w。那么,w究竟代表什么呢?
如上图所示,权重向量w=(2.5,1.5)与一个同方向的单位向量u被标注出来。虚线指示了这两个向量所在的方向。我们可以绘制一条与向量w和u垂直的实线,该实线明确分割了坐标空间中的阴影区域与其余部分。因此,若要在平面上找到一条清晰划分出两个区域(即阴影区域与非阴影区域)的分界线,只需指定向量w或其对应的单位向量u即可。若上图中的实线即为分离超平面,则向量w与该超平面正交,并由此刻画超平面的特性。当我们在二维空间中划分时,分界是直线;在三维空间中则是平面;而在高维空间中则为超平面。
我们此前对感知器学习算法的分析表明,其核心在于寻找一个能够将坐标空间分割为两个区域的超平面。感知器通过学习获得一组适当的权重,这些权重形成了向量w,而该向量与超平面正交。随着感知器权重的调整,向量w的方向也会发生变化,进而影响超平面的方位,该超平面始终保持与向量w垂直。与此类似,位于同一方向的单位向量u也具有相同的特性。因此,可以将感知器的工作机制表述为找到向量w,从而确定与之正交的超平面。
现在来考虑那些位于或不位于阴影区域的数据点。每个数据点可以用(x1,x2)表示,并且我们也可以将其视为一个向量。加权和w1x1+w2x2实际上就是表示数据点的向量与权重向量的点积。需要注意的是,如果数据点位于超平面上(在二维情况下,超平面就是一条直线),那么向量(x1,x2)与权重向量w将会正交,使得点积等于零。接下来,我们将以图形方式展示数据点与权重向量的点积。为简便起见,我们采用一个单位长度的权重向量进行计算,这不会改变概念,但可以简化数学处理。我们从向量a开始,设数据点为(3,1)。
由于w是单位向量,因此它与a的点积等于在虚线上的投影。a投影在与超平面垂直的直线上所落下的点,实际上是数据点(3,1)到超平面的距离的度量。
接下来,让我们分析这一复杂但至关重要的图示,它展示了权重向量与四个不同数据点(或向量)的点积关系。这四个数据点分别为:向量a(3,1)、向量b(2,-1)、向量c (-2,1)和向量d(-1,-3)。
可以清晰地看出,每个向量与权重向量w的点积揭示了该向量的重要几何信息:不仅表明了该向量与超平面的距离,还指示了其相对于超平面的具体位置(正值表示位于超平面的一侧,负值表示位于另一侧)。在此情境下,向量a和b被线性分隔在向量c和d之外。灰色阴影区域内的点表示输出y=1,而未阴影区域或位于分隔线上的点则表示输出y=-1。
假设感知器在初次尝试中找到了如图所示的权重向量和超平面。然而,假设根据标注的训练数据,数据点a、b和c应位于超平面的同一侧,且仅有数据点d位于另一侧。以此为例,假设a、b和c代表对惊悚片感兴趣的个体,而d代表不感兴趣的个体。这表明感知器尚未找到正确的分类超平面——其中一个对惊悚片感兴趣的个体被错误分类为不感兴趣的类别。在此情况下,偏置项(Bias Term)发挥了关键作用。将偏置项添加到方程中相当于在不改变超平面方向的前提下,将其位置从原点平移。例如,通过对训练数据的多次迭代,感知器可能最终找到如图所示的超平面。
通过上述分析,可以明确指出,当数据能够线性分离成两个簇时,会存在大量的分离超平面,这些超平面由不同的偏置项和权重向量w的方向决定。举例而言,在c和d之间的空间中,可以绘制多少条直线,从理论上讲,这个数量是无限的。感知器只能保证找到一个分离超平面,但并不一定是最优的超平面。我们将在后续讨论中详细探讨“最优”的定义,这与模型的预测能力息息相关。感知器的目标是通过学习权重和偏置项,以便对尚未见过的数据点进行准确分类。例如,当我们使用两个特征来将某个人分类为惊悚片爱好者或反感者时,感知器应确定该人位于超平面的哪一侧。一个理想的超平面将能够最小化未来预测的误差(定义并最小化“未来”预测误差是一个复杂且具有挑战性的问题)。
这些图示旨在帮助我们直观地理解感知器学习过程的内在机制。如果我们要编写一个计算机程序来模拟感知器的行为,我们不会依赖图表,而是通过数值计算来实现。幸运的是,迄今为止,我们所见的向量的数值表示已经足够有效地展示了这些抽象概念的核心。在二维空间中,数据点(x1,x2)只是由两个元素构成的数值数组,而权重向量也是类似的由两个数值构成的数组。计算点积的过程实际上是对这些数组进行数学操作。
更为一般地,这些数组被称为矩阵(Matrix),它们由行和列的数字组成。例如,一个具有m行和n列的矩阵被称为m×n矩阵(读作“m乘n矩阵”)。向量可以被视为矩阵的一种特殊形式,其具有单行或单列,即m=1或n=1。虽然我们之前也处理过这些向量,只是当时没有使用“矩阵”这一术语。然而,从本质上讲,向量就是只有一列或一行的矩阵。以下示例展示了如何将两个一列矩阵相加得到第三个一列矩阵。
将一个单列矩阵进行转置,便会得到一个单行矩阵,如下所示:
[4 3]
在正式的数学符号中,一个包含两个元素的单列矩阵可表示为:
在这种符号表示法中,列矩阵具有两行(分别用索引1和2标识),且每行包含一个元素(索引为1)。当矩阵被旋转为行矩阵时,索引的排列会发生变化(此时,行索引为1,而列索引则为1和2)。
[a11 a12]
这一操作称为矩阵的“转置”(Transpose)。对于列矩阵而言,转置操作看似简单,但在高阶矩阵中,转置的复杂性会显著增加,相关内容将在后续章节中详细探讨。转置操作在计算两个列矩阵的点积时至关重要。在矩阵的表示中,我们通常使用粗体大写字母来表示矩阵。
设矩阵A为:
设矩阵B为:
两个列矩阵之间不能直接进行点积运算。这是因为进行点积运算的前提是第一个矩阵的列数必须等于第二个矩阵的行数。因此,在我们的例子中,需要对其中一个矩阵进行转置操作。矩阵A的转置表示为AT。点积A B⋅可以表示为ATB或BTA(在这种情况下,两者是等价的)。
请注意,这正是当你用单位向量i和j表示这些向量时所得到的结果。如果向量a表示为a11i+a12j,向量b表示为b11i+b21j,则有:
使用矩阵而非箭头来表示向量有一个很棒的优势:你只需要处理数值,就可以直接得到点积的标量值,而无须考虑它们之间夹角的余弦值。这意味着,如果你有一组数据点,每个数据点都由一个向量表示,并且你想要找出它们相对于由权重向量w定义的超平面的相对距离,那么你只需计算每个数据点与w的点积,就能获得所需的信息。
如果某个数据点位于超平面上,则其与权重向量的点积为零,这表明该数据点与权重向量正交,并且其与超平面的距离为零。