第7章:坐标与箭头——向量的几何直觉
上一章我们聊了函数——输入变成输出的规则。但AI处理的数据到底长什么样子一张图片怎么输入给函数一段文字又怎么输入答案是一个词向量。在AI内部所有的数据——不管是一张猫的照片、一句中文、还是一段音频——最终都会被打包成一种统一的格式一串数字。这串数字就叫向量。你可能在高中数学里听说过向量。那时候它可能被画成一条有方向的线段让你算夹角、算模长。听起来跟AI没什么关系对吧但如果你愿意把那根箭头从纸上拿起来放进高维空间里看一看你会发现它不仅仅是AI的数据格式——它是整个机器学习世界最基本的材料。导航里的向量我们还是从最日常的东西开始。你站在一个十字路口有人告诉你“向东走3个街区再向北走4个街区。”这个指令天然包含了两条信息方向向东、向北和距离3、4。这两个东西合在一起就是向量。你可以把它写成一个数对(3, 4)。3代表向东的分量4代表向北的分量。这个数对就是向量的一种写法——用坐标表示。至于向东向北这只是在二维平面里。如果再加一个向上走2层就是三维向量 (3, 4, 2)。如果再加时间、温度、价格就是更高维度的向量。你看不见高维空间——没人能看见十维空间——但你完全可以用同样的方式去理解它一个向量就是一组有序的数字每一维代表一个方向上的分量。AI里的向量维度往往高得离谱。一张256×256的灰度图片如果按像素展开就是一个65536维的向量。一段512个词的中文句子如果用某种方式转成数字也可能是几百维甚至上千维。但你不需要看见它你只需要知道它是一串数字的集合每个数字刻画了这个数据在某个维度上的特征。向量加法两段路程合成一段向量是可以相加的。还是回到导航的例子。你从A点出发先走向量 v (3, 4) 到达B点再走向量 w (2, -1) 到达C点。那么从A到C的净位移是多少就是把两个向量的对应分量相加v w (32, 4-1) (5, 3)。这个运算的意义特别简单如果把两个变化依次施加它们合在一起的总效果是什么。在AI里向量加法随处可见。比如你在训练一个神经网络的时候每一层都在做类似的事情——把上一层的输出一个向量和当前层的权重另一个向量作用之后再加上一个偏置项又一个向量。这就是在叠加变化。你会慢慢发现AI里的很多运算本质上就是把一堆向量加起来然后做一次非线性变换。别担心这个细节我们后面专门讲神经网络的时候会拆得非常细。现在你只需要知道向量加法不是抽象符号游戏它是在叠加效果。数乘拉长或缩短一个向量除了两个向量相加还有一个基本运算叫数乘——把一个向量乘以一个普通的数数学上叫标量。比如 v (3, 4)2v (6, 8)。结果是什么方向没变长度变成了原来的两倍。数乘就是缩放把箭头拉长乘大于1的数或缩短乘小于1的数。如果乘的是负数呢方向会掉转180度。比如 -v (-3, -4)指向了完全相反的方向。在AI里数乘最典型的使用场景是加权。我们给向量的每一维分配一个权重这个权重就是一个标量。如果权重很大说明这一维对结果的影响很大如果权重很小说明它几乎不产生影响。后面你会看到神经网络的训练本质上就是在反复调整这成千上万个权重——也就是在做大量的数乘运算。数乘是对一个向量做缩放而接下来的点积是两个向量之间的对话——它们在方向上有多一致点积两个箭头有多默契接下来是向量运算里最重要的一个——点积。这个名字听起来有点吓人但它的几何含义其实特别朴素。点积的定义是两个向量对应分量相乘再全部加起来。比如 v (3, 4) 和 w (2, 1)点积就是 3×2 4×1 6 4 10。这个计算方式你记住了。但更重要的是它的几何含义点积衡量的是两个向量在方向上的一致性。如果两个向量指向同一个方向点积就很大如果方向相反点积就是负数如果恰好垂直点积就是零。这个方向一致性在AI里太关键了。想象一下你的神经网络有一个权重向量 w它代表了什么样的输入是我感兴趣的。当一个输入向量 x 进来的时候w 和 x 的点积就衡量了这个输入跟我感兴趣的模式有多匹配。如果点积很大说明输入向量和权重向量指向同一个方向输入踩中了网络关心的特征——网络就会做出强烈响应。如果点积接近零或者负数网络就无动于衷。这就是所有神经网络最基本的运算单元把输入向量和权重向量做点积得到一个分数然后根据这个分数决定要不要激活点火。这个点积激活的结构就是单个神经元在做的事情。高维向量的直觉你看不见但能感受这时候你可能会说“二维、三维我还能画出来几百维的向量我怎么想象”答案是你不必看见它。你只需要在逻辑上理解它。高维向量在数学上的处理方式跟二维、三维没有任何区别。加法还是逐分量相加数乘还是每个分量都乘以同一个数点积还是对应分量相乘再求和。你可以完全信任这些运算规则——它们在高维下同样成立同样有意义。至于那些你看不见的高维几何有一个很有用的替身可以帮助你建立直觉把高维空间想象成一栋有几百层的大楼每一层是一个维度。一个向量就是在这栋大楼里标出了一个精确的坐标——第1层偏东3米第2层偏北4米第3层偏高2米……你不需要同时看见所有楼层你只需要知道每一层上的偏移量就能精确定位一个数据点。这个比喻不完美但它能帮你绕过看不见的障碍。等你习惯了在高维空间里操作向量——虽然操作本身只是算术运算——你就会发现维度高低只是数字多少的问题逻辑并没有变。向量是AI的通用语言我们把前两章串起来看。上一章我们说了AI的核心任务是找一个函数把输入变成正确的输出。第6章我们写的 f(x) 2x 1 里的 x 是一个数。但在AI里输入 x 是一个向量函数 f 是一个把向量变成向量的复杂规则。AI的函数是在向量世界里运作的函数。这一章我们补充了另一面输入和输出本质上都是向量。一张图片是一个高维向量。一段文字也是一个高维向量。一段音频还是一个高维向量。它们被AI处理的时候都被统一成了一串数字这种格式——然后就在这个统一的向量空间里被加来加去、乘来乘去、比来比去。之所以能做到这一点是因为向量这种表达方式在数学上极其通用。任何东西——只要你能把它拆解成一组可测量的数值——就能变成一个向量。图片拆成像素值文字拆成词向量音频拆成声谱图。拆完之后它们的底层格式就完全一样了。这就是向量在AI里扮演的角色它是所有数据的通用货币。不管是图片、文字、语音还是结构化表格进了AI系统的大门第一件事就是被兑换成向量。然后所有的计算——点积、加法、数乘、矩阵乘法——都在这个统一的货币系统里进行。最后再兑换回人类可读的形式输出出来。下一章我们把向量组织起来放进一个容器里。那个容器的名字叫矩阵。参考文献3Blue1Brown. (2016). “Vectors | Chapter 1, Essence of Linear Algebra”. YouTube.推荐理由这期视频是线性代数可视化教学的天花板——从头到尾都在用动画演示向量的几何含义包括向量加法、数乘、点积的直观可视化。如果你觉得刚才的文字描述还差点意思花10分钟看完这期视频一切都会变得极其清晰。Strang, G. (2016).Introduction to Linear Algebra(5th ed.). Wellesley-Cambridge Press. 第1章Vectors and Linear Combinations。推荐理由Strang可能是世界上把线性代数讲得最清楚的人。他的教材第1章用向量的线性组合作为起点——跟本篇文章的逻辑完全一致。适合在读完本篇后翻开这一章看看教科书版本是如何从箭头走向代数的。Goodfellow, I., Bengio, Y., Courville, A. (2016).Deep Learning. MIT Press. 第2章Linear Algebra。推荐理由深度学习教材里线性代数部分的标准参考。这一章开篇就说深度学习系统的数据单位是向量运算的核心是矩阵乘法。你会发现整个深度学习的数学基础就是从这几节线性代数铺开的。