[{"data":1,"prerenderedAt":458},["ShallowReactive",2],{"article:column:/column/math-beauty/matrices-as-transformations":3},{"id":4,"title":5,"body":6,"description":12,"extension":447,"meta":448,"navigation":453,"path":454,"seo":455,"stem":456,"__hash__":457},"column/column/math-beauty/matrices-as-transformations.md","矩阵：把许多关系写成一次变换",{"type":7,"value":8,"toc":434},"minimark",[9,13,16,19,23,26,47,56,65,85,94,103,109,117,126,133,136,139,142,145,159,162,170,173,176,179,182,185,193,208,211,225,228,231,234,237,240,243,246,253,260,263,269,272,278,288,291,294,297,300,303,309,315,318,327,330,336,339,342,345,351,354,357,360,366,369,372,378,381,387,390,403,414,425,428,431],[10,11,12],"p",{},"先修：12 数据与预测线；13 向量、数乘与张成；14 点积与正交",[10,14,15],{},"拧动一个旋钮，整组预测按一种模式改变；再拧另一个旋钮，预测又按另一种模式变化。第13章把这两种调整方向写成向量，第14章教我们用点积比较方向。现在的问题是：能否把整套调整规则收起来，让“输入两个参数，输出三个预测”成为一次清楚的操作？",[10,17,18],{},"矩阵就是这样的表达工具。它保留了每个数的位置，也规定这些数怎样共同作用。只看见一张数字表，还没有看见矩阵在做什么；看见它怎样把输入变成输出，才抓住了这一章的主线。",[20,21,22],"h2",{"id":22},"把两个调整方向并排放好",[10,24,25],{},"沿用虚构玩具的读数：滑杆位置依次为0、1、2厘米，观测读数依次为1、2、2厘米。模型仍为ŷ＝ax＋b，a是斜率，b是截距，ŷ是预测读数。约定使用厘米作长度单位，下面的运算先针对按这一单位记录的数值。",[10,27,28,29,33,34,37,38,40,41,43,44,46],{},"沿用前章的记号，把三个输入数排成向量",[30,31,32],"strong",{},"x","＝(0,1,2)，再记",[30,35,36],{},"u","＝(1,1,1)。粗体",[30,39,32],{},"表示整组输入，单点模型中的x仍表示一个输入数值。调整a，相当于沿",[30,42,32],{},"改变预测；调整b，相当于沿",[30,45,36],{},"改变预测。因此预测向量始终是",[10,48,49,50,52,53,55],{},"ŷ＝a",[30,51,32],{},"＋b",[30,54,36],{},"＝(b,a＋b,2a＋b)。",[10,57,58,59,61,62,64],{},"这里的ŷ表示成组预测，而不是某一个位置的单独读数；三个分量保持观测的原有顺序。把",[30,60,32],{},"、",[30,63,36],{},"竖着写，再并排装进同一个长方形，就得到矩阵X：",[10,66,67,68,76,77,80,81,84],{},"X＝",[69,70,71,73,74],"span",{},[30,72,32],{}," ",[30,75,36],{},"＝[[0,1],",[69,78,79],{},"1,1",",",[69,82,83],{},"2,1","]。",[10,86,87,88,90,91,93],{},"双层方括号中的每一组内层方括号是一行；三行依次是(0,1)、(1,1)、(2,1)。从上往下读，第一列是",[30,89,32],{},"，第二列是",[30,92,36],{},"。我们没有添加新的数据，只把已有的两个方向按固定顺序排好。",[10,95,96,97,99,100,102],{},"这时很容易犯一个小错：把参数先后次序看成无关紧要。若只把θ改成(b,a)，却不交换X的两列，得到的就是b",[30,98,32],{},"＋a",[30,101,36],{},"，已经换了一套规则。矩阵中的位置承担意义：列与输入分量一一对应，行与输出位置一一对应。重排可以，但关联的标签与数值必须一起调整。",[10,104,105,106],{},"将参数写成θ＝(a,b)，θ读作“西塔”。约定本文参与矩阵运算的向量都竖写成列，正文中的圆括号只是节省版面的列向量简写。矩阵与向量相乘记作Xθ，它的意思就是：用θ的第一个数乘X的第一列，用第二个数乘第二列，再相加。",[69,107,108],{},"1",[10,110,111,112,52,114,116],{},"所以Xθ＝a",[30,113,32],{},[30,115,36],{},"。取a＝1/2、b＝1，就有Xθ＝(0,1/2,1)＋(1,1,1)＝(1,3/2,2)。这是第12章的候选B，包装换了，预测没有变。",[10,118,119,120,122,123,125],{},"还可以反过来认出每一列：输入(1,0)，只启用第一个参数，输出就是",[30,121,32],{},"；输入(0,1)，只启用第二个参数，输出就是",[30,124,36],{},"。两列分别记录这两次单独试探的结果，任意参数的输出则由它们按比例叠加。因此，矩阵不是把关系藏进表格，而是把每个输入分量的作用明确摆出来。",[10,127,128],{},[129,130],"img",{"alt":131,"src":132},"矩阵X的两列分别装入方向x与u；乘参数向量时按列组合，按行点积得到同一组三个预测","/collections-assets/math-beauty/ch15/01-columns-and-rows.png",[10,134,135],{},"图1：第一列对应a，第二列对应b；沿列看是两个方向怎样合成，沿行看是每条观测怎样计算。",[20,137,138],{"id":138},"同一次乘法的两种读法",[10,140,141],{},"沿行计算，第一行给出(0,1)·(a,b)＝b；第二行给出(1,1)·(a,b)＝a＋b；第三行给出(2,1)·(a,b)＝2a＋b。符号“·”是上章的点积：对应分量相乘后求和。于是又得到",[10,143,144],{},"Xθ＝(b,a＋b,2a＋b)。",[10,146,147,148,52,150,152,153,155,156,158],{},"按列看，我们在问“两个参数各自影响哪些输出”；按行看，我们在问“某一个输出怎样受到两个参数影响”。这两种读法必然一致：a",[30,149,32],{},[30,151,36],{},"的第i个分量就是a乘",[30,154,32],{},"的第i个分量，加上b乘",[30,157,36],{},"的第i个分量，恰好是第i行与θ的点积。i只是位置编号，这里依次为1、2、3。",[10,160,161],{},"矩阵的尺寸写作“行数×列数”，所以X是3×2矩阵。它接收两个数，产生三个数，写作X：ℝ²→ℝ³；ℝ²是所有实数对组成的集合，ℝ³是所有实数三元组组成的集合，箭头表示从前者输入、在后者输出。",[10,163,164,165,61,167,169],{},"输出有三个分量，不意味着它们可以任意独立调整。我们仍只有",[30,166,32],{},[30,168,36],{},"两个调整方向，全部预测仍在它们的张成集合中。矩阵记法没有取消第13章发现的限制。",[10,171,172],{},"一般说，一个m×n矩阵有m行、n列，乘一个n分量的列向量后，输出有m个分量。m、n是正整数，分别数行和列。先检查尺寸，是比急着算乘法更可靠的习惯。例如X不能直接乘观测向量y＝(1,2,2)：它等着两个输入，y却给了三个。",[10,174,175],{},"也要注意，观测值y并没有写进X。X来自输入位置与所选模型的形式；在相同位置重新测量，即使读数改变，只要仍用这个直线模型，X就不变。变化的是我们希望预测接近的目标。把计算规则与待比较的数据分开，才不会误以为换一种记法已经完成了拟合。",[20,177,178],{"id":178},"为什么这是一种线性变换",[10,180,181],{},"这里的“线性”有可检验的含义：先把输入相加再变换，与先分别变换再相加相同；先把输入乘一个数再变换，与先变换再乘这个数相同。",[10,183,184],{},"令v＝(v₁,v₂)、w＝(w₁,w₂)是任意两个参数数值向量，下标1、2标出它们的两个分量。按列组合的定义，",[10,186,187,188,190,191],{},"X(v＋w)＝(v₁＋w₁)",[30,189,32],{},"＋(v₂＋w₂)",[30,192,36],{},[10,194,195,196,198,199,201,202,204,205,207],{},"＝(v₁",[30,197,32],{},"＋v₂",[30,200,36],{},")＋(w₁",[30,203,32],{},"＋w₂",[30,206,36],{},")＝Xv＋Xw。",[10,209,210],{},"中间那一步只用了数乘的分配律和向量加法的交换、结合规则。再令c为任意实数，就有",[10,212,213,214,216,217,219,220,198,222,224],{},"X(cv)＝(cv₁)",[30,215,32],{},"＋(cv₂)",[30,218,36],{},"＝c(v₁",[30,221,32],{},[30,223,36],{},")＝cXv。",[10,226,227],{},"两条等式对所有v、w、c都成立，这才证明X所表示的变换是线性的。我们并没有靠“矩阵看起来像表格”来证明，也没有只检验一组数字就宣布普遍成立。换成更多列，同样逐列分配，理由仍然成立。",[10,229,230],{},"一个立即可见的结果是X(0,0)＝(0,0,0)：零输入产生零输出。另一个结果更实用：参数从θ改成θ＋δ时，预测从Xθ改成Xθ＋Xδ。δ读作“德尔塔”，表示参数的改变量。只要X保持不变，一次调整造成的预测变化，可以单独算出再加回去。",[10,232,233],{},"不过要分清“谁在变化”。此处固定了三条记录的输入位置，变化的是(a,b)，所以从参数到预测是线性映射。若固定a、b，让x变化，函数f(x)＝ax＋b在b≠0时有f(0)＝b≠0，不满足线性映射必须把零送到零的要求。它是线性部分ax加上平移b，通常称为仿射函数。日常说“直线模型”，不能省略这里的数学区别。例如f(x)＝2x＋1时，f(1)＋f(1)＝6，而f(1＋1)＝5：图形虽然是直线，加法保持性质却已经失败。",[10,235,236],{},"单位也不能省略。a描述“输出厘米/输入厘米”，b描述输出厘米；两种分量的物理角色不同。θ在约定单位下可以作为一对数运算，却不能不加说明地把√(a²＋b²)叫作一段物理距离。换单位、重新设定参数尺度，都会改变这种数值长度；矩阵运算本身没有替我们选择参数空间的距离标准。",[10,238,239],{},"这与在预测空间里比较残差不同。三个预测分量都表示同一种读数，也都用厘米记录；而参数的两个分量分别控制变化率和起点。把不同角色的数排在一起，是为了方便描述联动，并没有宣称它们能用同一把物理尺子测量。",[20,241,242],{"id":242},"两次变换怎样合成一次",[10,244,245],{},"先暂离玩具，在普通平面上看两个操作。设z＝(s,t)表示横、纵坐标，S把横坐标放大两倍、纵坐标不变；R把平面绕原点逆时针旋转90度。因此",[10,247,248,249,252],{},"S＝[[2,0],",[69,250,251],{},"0,1","]，Sz＝(2s,t)；",[10,254,255,256,259],{},"R＝[[0,−1],",[69,257,258],{},"1,0","]，Rz＝(−t,s)。",[10,261,262],{},"从z＝(1,1)出发，先S后R得到(1,1)→(2,1)→(−1,2)。反过来，先R后S得到(1,1)→(−1,1)→(−2,1)。两条路线的终点不同，因为横向拉伸始终沿固定的横轴进行，旋转改变了向量相对于这条轴的方向。",[10,264,265],{},[129,266],{"alt":267,"src":268},"同一个向量先横向放大再旋转得到负一二，先旋转再横向放大得到负二一；两幅坐标图使用相同刻度","/collections-assets/math-beauty/ch15/02-composition-order.png",[10,270,271],{},"图2：实心圆是共同起点(1,1)，空心圆是中间结果，方块是终点；两个操作都绕固定原点、沿固定坐标轴定义。",[10,273,274,275],{},"矩阵乘法把这样的先后操作合成一个矩阵。RS表示先做右边的S，再做左边的R，满足(RS)z＝R(Sz)。怎样求RS？把S的每一列分别交给R，得到的输出依次成为RS的列。",[69,276,277],{},"2",[10,279,280,281,284,285,287],{},"S的第一列(2,0)经R变成(0,2)，第二列(0,1)经R变成(−1,0)，所以RS＝[[0,−1],",[69,282,283],{},"2,0","]。同理SR＝[[0,−2],",[69,286,258],{},"]，两者确实不同。矩阵乘法一般不能交换顺序，并不是每一对矩阵都一定不能交换；这一组反例否定的是“总能交换”。",[10,289,290],{},"为什么逐列处理能代表整个复合？若B有两列B₁、B₂，输入w＝(w₁,w₂)，先得到Bw＝w₁B₁＋w₂B₂。再施加线性变换A，分配律给出A(Bw)＝w₁AB₁＋w₂AB₂。所以只要把AB₁、AB₂收成新矩阵的列，就能应对每一个w；这正是AB的定义。",[10,292,293],{},"因此，若A有m行、n列，B有n行、k列，AB就有m行、k列，k也表示一个正整数。中间的n必须相同，才能把B输出的n个数交给A；若反过来，尺寸可能根本不允许相乘。矩阵乘法的规则是为变换的衔接服务的，不是任意制定的算术口诀。",[10,295,296],{},"还可以从行的角度算同一个乘积：AB中某一位置的数，等于A对应的行与B对应的列做点积。例如RS第一行第二列为(0,−1)·(0,1)＝−1。每个新系数累计了输入经过中间各分量到达该输出的贡献；把这个数放回相应的位置，整条计算路径才没有弄乱。",[20,298,299],{"id":299},"转置把列变成行",[10,301,302],{},"回到玩具矩阵X。将每一列原样改写成一行，得到它的转置，记作Xᵀ，上标T表示转置：",[10,304,305,306,84],{},"Xᵀ＝[[0,1,2],",[69,307,308],{},"1,1,1",[10,310,311,312],{},"X有三行两列，Xᵀ便有两行三列。一般地，转置把原矩阵第i行、第j列的数放到新矩阵第j行、第i列，i、j是行列编号。",[69,313,314],{},"3",[10,316,317],{},"现在Xᵀ可以乘三个分量的观测向量y＝(1,2,2)。按行点积，",[10,319,320,321,323,324,326],{},"Xᵀy＝(",[30,322,32],{},"·y,",[30,325,36],{},"·y)＝(0×1＋1×2＋2×2,1＋2＋2)＝(6,5)。",[10,328,329],{},"它一次收集了y与X各列的点积。6和5是按约定单位得到的数值汇总，不是拟合出的斜率和截距，也不是已经除以方向长度的投影系数。",[10,331,332],{},[129,333],{"alt":334,"src":335},"矩阵X的两列在转置后成为两行，分别与观测向量(1,2,2)做点积，得到六和五","/collections-assets/math-beauty/ch15/03-transpose-dot-products.png",[10,337,338],{},"图3：颜色追踪同一组数字，转置改变排列方式；点积才产生右侧的两个汇总值。",[10,340,341],{},"转置与求逆是两件事。求逆想找到能撤销原变换的操作，转置只规定行列互换，不能自动理解为“撤销原来的变换”。例如先把θ＝(1,1)变成Xθ＝(1,2,3)，再乘Xᵀ会得到(8,6)，并没有回到(1,1)。撤销变换需要另外的条件与概念，行列互换本身并不提供这个保证。第17章会用转置集中表达残差与各调整方向的关系，此处先学会它确切做了什么。",[20,343,344],{"id":344},"从三个预测到成批计算",[10,346,347,348,350],{},"若把候选A、B的参数并排作为矩阵Θ的两列，Θ＝[[1,1/2],",[69,349,79],{},"]，那么XΘ的第一列就是A的三个预测，第二列就是B的三个预测。这是矩阵乘法按列定义的直接应用：同一套规则可以同时施加到多个输入上。",[10,352,353],{},"人工智能中的线性层也使用这种加权求和。权重矩阵W的每一行规定一个输出怎样组合输入向量h的分量，Wh一次形成全部输出；许多输入并排放好，就可以组织成批运算。如果再加固定偏置向量d，得到Wh＋d，严格说整体通常是仿射变换。把数字组织得整齐，并不自动说明权重从何而来，也不保证预测可靠。",[10,355,356],{},"这一章收起的是一套关系：列描述各输入怎样影响整体，行描述每个输出怎样算出，乘法衔接前后操作，转置重新组织点积。下一章再问：哪些输出能够到达，不同输入会不会产生相同输出？",[20,358,359],{"id":359},"顺手试一下",[10,361,362,365],{},[30,363,364],{},"题目1："," 用本章的X与θ＝(1/2,1)，分别按列组合、按行点积计算Xθ。再令δ＝(1/2,−1/2)，求Xδ，并用它求出X(θ＋δ)。说明为什么能这样相加。",[10,367,368],{},"**提示：**δ的第一项改变斜率，第二项改变截距；检验直接计算与线性性质是否一致。",[10,370,371],{},"**参考答案：**按列，Xθ＝(0,1/2,1)＋(1,1,1)＝(1,3/2,2)。按行，三个点积依次为1、1/2＋1、2×1/2＋1，结果相同。Xδ＝(−1/2,0,1/2)，所以Xθ＋Xδ＝(1/2,3/2,5/2)。直接用θ＋δ＝(1,1/2)计算也得到同一结果。因为X固定且满足加法保持性质，X(θ＋δ)＝Xθ＋Xδ；这不是所有带平移的变换都自动具备的性质。",[10,373,374,377],{},[30,375,376],{},"题目2："," 仍使用本章的S与R，但输入改为z＝(2,−1)。分别求RSz和SRz，再写出Sᵀ并计算Sᵀ(Sz)。它是否回到了原输入？这对“转置总能撤销原变换”的说法意味着什么？",[10,379,380],{},"**提示：**先算最右边的操作。Sᵀ由行列互换得到，仍可用行点积计算。",[10,382,383,384,386],{},"**参考答案：**Sz＝(4,−1)，所以RSz＝(1,4)；Rz＝(1,2)，所以SRz＝(2,2)。Sᵀ＝[[2,0],",[69,385,251],{},"]，与S相同，于是Sᵀ(Sz)＝Sᵀ(4,−1)＝(8,−1)，没有回到(2,−1)。这个反例足以否定“转置总能撤销原变换”：这里行列互换之后仍是横向放大，连续施加两次就放大了四倍。",[20,388,389],{"id":389},"参考与延伸",[10,391,392,394,395,402],{},[69,393,108],{}," 佐治亚理工学院，Dan Margalit、Joseph Rabinoff，《Interactive Linear Algebra》，",[396,397,401],"a",{"href":398,"rel":399},"https://textbooks.math.gatech.edu/ila/matrix-equations.html",[400],"nofollow","2.3 Matrix Equations","。核对矩阵乘向量的列组合、行列乘法与尺寸规则。",[10,404,405,407,408,413],{},[69,406,277],{}," 同书，",[396,409,412],{"href":410,"rel":411},"https://textbooks.math.gatech.edu/ila/matrix-multiplication.html",[400],"3.4 Matrix Multiplication","。核对矩阵乘法与变换复合、从右向左的作用顺序及一般不交换的性质。",[10,415,416,418,419,424],{},[69,417,314],{}," 麻省理工学院开放课程，Gilbert Strang，18.06SC，",[396,420,423],{"href":421,"rel":422},"https://ocw.mit.edu/courses/18-06sc-linear-algebra-fall-2011/e8776251d7b3c71d9fc1dc8f66a1b048_JibVXBElKL0.pdf",[400],"第5讲转置、置换与向量空间讲稿","，第4—5页。核对转置的行列互换定义；本文不展开讲稿中的消元、置换与对称矩阵内容。",[10,426,427],{},"本文玩具读数沿用第12章的虚构教学数据，推导、练习与图解围绕这组数据独立编排；以上资料用于核对概念。",[429,430],"hr",{},[10,432,433],{},"作者：Jiancheng Wang · 数学之美（独立原创）",{"title":435,"searchDepth":436,"depth":436,"links":437},"",3,[438,440,441,442,443,444,445,446],{"id":22,"depth":439,"text":22},2,{"id":138,"depth":439,"text":138},{"id":178,"depth":439,"text":178},{"id":242,"depth":439,"text":242},{"id":299,"depth":439,"text":299},{"id":344,"depth":439,"text":344},{"id":359,"depth":439,"text":359},{"id":389,"depth":439,"text":389},"md",{"collection":449,"order":450,"slug":451,"author":452},"数学之美",15,"matrices-as-transformations","Jiancheng Wang",true,"/column/math-beauty/matrices-as-transformations",{"title":5,"description":12},"column/math-beauty/matrices-as-transformations","lQqwNeH_P3cjur52RIh2Vl31Pay8uuT1d3sRpnTOLHA",1791935829133]