The applications of eigenvectors and eigenvalues | That thing you heard in Endgame has other uses

The applications of eigenvectors and eigenvalues | That thing you heard in Endgame has other uses

SUBTITLE'S INFO:

Language: Chinese

Type: Robot

Number of phrases: 461

Number of words: 536

Number of symbols: 5759

DOWNLOAD SUBTITLES:

DOWNLOAD AUDIO AND VIDEO:

SUBTITLES:

Subtitles generated by robot
00:00
此视频由CuriosityStream赞助播出 在上期视频中 我简单介绍了特征向量和特征值的基本思想 这里快速回顾一下 此处有一个2×2的矩阵 右乘一个向量(1,0) 可以这样写 你将获得一个新的向量 在这里是(-1,-2) 接下来我不再用箭头来表示向量 只用箭头末端的点来代替 因为这样演示会更方便 还是一对输入输出向量 你会发现矩阵变换导致向量缩放 并且旋转 这是一般情况 输入随便一个向量 输出向量的长度和角度一般都会变化 事实上,如果我在屏幕上打出一大堆随机输入向量 用向量末端的点代表 并对它们全部一起做矩阵乘法 这就是新的输出向量 它们中的绝大多数 都是输入向量的比例缩放和旋转
01:10
但是如果倒放再来一遍 你会发现这两条线上的所有向量都没有被旋转 这些线上的向量只被缩放了 矩阵对某些线上的向量只缩放 这些就是矩阵的“特征向量” 放大系数,或者说向量被缩放的倍数 就是“特征值” 注意到有个特征值是1 因为变换过程中 那些向量的长度没有改变 如果你再倒带一次 你会发现另外一个特征向量上的点都被放大3倍 如果我们把2×2矩阵换成这个 称为“旋转矩阵” 则所有输入将旋转90° 那么问题来了 这个新矩阵(旋转矩阵)的特征向量是什么 顺便一提,(0,0)不能算的 考虑到特征向量是指那些不会被矩阵旋转的向量 我们可以说这里没有特征向量 因为除了(0,0)之外的所有向量都被旋转了 尽管如此,如果你去分析的话 你还是能算出特征值和特征向量
02:25
不过,它们是虚数的 虽然没办法直观地看到它们 我们关心的是这样一个简单的事实 如果特征值/特征向量是虚数 或者只是有虚部 那么,对于所有的非零向量输入 都会因矩阵乘法而旋转 它们可能被缩放,也可能没有 但是被旋转是肯定的 您即将看到的第一个特征值/特征向量的应用 就是 斐波那契数列 你知道的,这个序列从0和1开始 把它们二者相加就获得下一项 然后是这二者相加,云云 数学表示为,每项为前两者相加 现在已知这个数字在序列中,要求下一项 有一个很好的可视化的方式来求解 而不必回到序列本身 可视化的理由在于 我们可以把等式用矩阵乘法表示 根据矩阵乘法法则,请看第一个点乘 F[n-1] 加上 F[n-2] 等于 F[n]
03:34
跟上式相同 第二个点乘没有意义 F[N-1] 加 0 等于它本身 我们把它弄进来只是为了获得一个方阵 如果我们输入任意两个相邻数字 比如 8 和 5 输出应就等于序列中的下一项(13) 还有我们输入的F[N-1](8) 输出只是这个方框滑过一格 每次矩阵乘法都让方框再移一格 从图像上看,这相当于我输入向量 (8,5) 矩阵乘法将转移它至 (13,8) 让我多对几个斐波那契数列的相邻项 所组成的坐标点(向量)进行相同的矩阵乘法运算 如果我保留了输入 我们将看到输出落在了数列的下一项 我们非常关心的是 所有的点似乎都落在这条线附近了 因为它就是矩阵的特征向量 靠近这条线的点 只是往上移动了
04:44
而几乎没有旋转 它所对应的特征值正是“黄金比例” 也就是 (1+√5) / 2 这也是每次乘法运算后点远离了原点多少 粗略数字,因为实际点不完全落在线上 尽管粗糙,这也使得预测下一项变得简单 序列越往后算坐标会越靠近这条线 因为特征向量让它们不会旋出这条线 所以我只要取出一个点并乘以黄金比例 就能得到下一项的大概值 就算是很前面的项,这个误差也不大 但如果我扩展一下,让项数趋近无穷大 误差将趋近于0 点也开始无限接近特征向量 这意味着,如果我给你数列更后面的项 并要求下一项 你只需乘上黄金比例 就能获得一个相当精确的值 同样令我着迷的问题是 如果我将这个乘法 用在一些随机点上会怎样
05:53
想象这些都代表了“新斐波那契数列”的前面两个数字 他们算法相同,只是初值不同 如果我们做相同的矩阵乘法,将得到这个 代表了数列中的第二对数字 然后再变换成这个点集 再继续下去,点集会越来越接近特征向量 意味着它们都将开始按黄金比例放大 这儿我放大一些,让你们看清四次运算后的结果 数值上这意味着,无论我们的初始值是 0和1 或者 3和17 或者 其它随便什么正数 只要我们用了相同的公式 将前两项相加得到下一项 数列就会逐渐变成黄金比例乘以上一项 这个比例根植于这个算式 根植于这个矩阵和它的特征向量 而非初始值 对于那些渴望了解现实应用的 请看下一个例子 因为它结合了 微积分 和 复数 和 特征的东西
07:03
我们先回答几个问题 我现在随便在XY平面上放个粒子点 并告诉你它会随时间变化 第一个问题是 当 dx/dt 和 dy/dt 是多少的时候 它会向右移动? 好吧,如果你觉得微积分很简单 dx/dt 必须为正,dy/dt 必须是0 它将导致X正向移动 而不改变Y 正是我们想要的 如果我想要让粒子点向上 你能轻松得出 dy/dt 为正,并且 dx/dt 等于 0 但有个更难的问题 如果我要它靠近或者远离原点呢? 在这种情况下 dy/dt 需要是 dx/dt 的一半 我们可以把这两个速度看作一个坐标 因为 dy/dt 是 dx/dt 的一半 当且仅当这个坐标落在这条线上时 这条线正好穿过原点和粒子点本身 它的方程是 y=1/2x 只是为了展示视觉效果 如果dx/dt=1, dy/dt=0.5,如图所示 则向量之和指向此处
08:12
它指向远离原点的方向 也正是粒子的运动方向 这些值都会带来同样的效果 然而速度为负则导致运动趋向原点 好了,接下来是实际应用 假定有一些狐狸,种群数量记为F 兔子的种群数量记为R 这个变量代表了每种动物在任意时刻的数量 假定狐狸数量的变化速率 等于它当前的种群数量 某种意义上,这代表了狐狸数量越多 它们繁衍地越快 但我们假设它们将长生不老 也没有什么数量上限 因为是简化的 如果解微分方程,将得出模型是指数增长的 现在假定兔子的繁衍速率是当前种群数量的三倍 远高于狐狸的繁衍速率 然而它们会死去或者被吃掉 取决于当前有多少狐狸 这些让问题变得更困难了 但总之,问题是要求出随时间变化会发生什么事情 如果我们对各种群的数量的初始值都赋予随机值 在图像上,我们视x轴为兔子的种群数量
09:26
y轴为狐狸的 如果假定初始值为10只兔子和10只狐狸 则这代表了点 (10,10) 如果我们将这个点代入方程 将解得微分项 这说明,兔子此时的增长速率是狐狸的两倍 就像之前那样 所以我们将 dR/dt 和 dF/dt 的集合放到这个点 基本上就是速度了 矢量和告诉我们 在这一刻,这个点将向右上方移动 这意味着两者的数量都在增长 因为就算兔子会被吃掉 它们也繁衍得足够快,以保证数量增长 不要考虑向量的长度,只考虑方向 现在将兔子的初始数量改成2 将数字代入方程 发现兔子的数量将会减少 种群数量逐渐不足 种群消亡的速度快于再生速度 标记出该向量的点 告诉我们在这个示例中 点将向左上方移动 看起来兔子数量将归零
10:33
如果我们对每个点都做这件事 我们有点像在画梯度场 但它实际上是微分方程系统的相平面 如果我们从 (10,10) 开始 我们跟踪箭头移动 观察种群数量随时间变化 从 (2,10) 开始我们确实会看到兔子数量趋近0 然后这也有一大堆其他情况 取决于你从哪开始 你所看到的是不同初始条件下的微分方程的解法 但一个一个点地把相平面画出来太繁琐了 所以我们换个方式 我将系数取出来作为一个矩阵 它们将乘以两个变量 R 和 F 将这个导数记为 R' F' 经过矩阵乘法你会发现 它们是等价的 现在我们可以对之前的例子用矩阵乘法 但这次注意输入是兔子和狐狸的种群数量 也就是你看到的点 然而,应用矩阵乘法 输出的是速度,或者说种群变化速率 而不是新的点 这儿,我将 (10,10) 标记为其他颜色
11:43
并进行乘法运算同时保留 (10,10) 的副本 这是输出,但再强调一遍 这些代表的是输入点的瞬时变化速率 当输入 (10,10) 我们获得 R'=20,且 F'=10 如果我按比例缩小它 并将它置于输入点上方 它所展示的正如我们之前所见 如果你放10只兔子和10只狐狸进入我们的仿真环境 并按“开始” 在那一刻,两个种群数量都会增加 但兔子的种群数量增长要快2倍 但你是否意识到了特征向量? 如果我回放,你会发现整条线上的所有点 还有x轴上的,都没有旋转 这意味着这些线上的输入 得到的输出也在这些线上 回忆下刚才举过的例子 运动沿着这条线 这意味着如果我们有9只兔子,0只狐狸 或者3只兔子,6只狐狸 只要它在特征向量上 并让仿真启动 则种群数量将永远落在这两条线上
12:59
底部的特征向量是显而易见的 一开始你只有兔子 那么过了一段时间后你就有了更多的兔子 但是上面这条线好像就有点意思 如果我们有2倍于兔子数量的狐狸 则随着时间推移,数量比例不会改变 有足够多的狐狸,使兔子的数量不会成绝大多数 但也不会太多,不至于导致兔子完全灭绝 一切都保持着比例 它们的特征值都为正数 因此点都远离原点而不是趋近于它 但仅有这些特征向量,还不足以让我们估计 整个系统在任意初值下的变化情况 由于其余任意初值的流动 都有点跟随着特征向量 所以相平面看起来就像这样 另外,上面这个特征向量分割出了一块特殊区域 任何在它之上的种群数量 都会导致兔子最终消亡 所有的箭头都指向了y轴 这便是狐狸“胜利”的区域 它们以比兔子再生速度更快的速度杀死了兔子们
14:08
但在这个特征向量之下而在另一者之上 则是兔子们的“胜利” 它意味着兔子将狐狸的数量甩得越来越远 它们仍被吃掉了一些 但它们的繁衍速度更快 但在特征向量上,这甜蜜的区域,一切都按比例增长 这就是为什么我们之前看到有些路径流向了右边 有些流向了左边 这都取决于我们从特征向量的哪一侧开始操作 为了多一点变化,我们让这个数字增大一些 导致兔子繁衍速度加快 则特征向量往上移动 扩大了兔子“胜利”的区域 如果我让狐狸繁衍地更快,则它向下移动 扩大了狐狸“胜利”的区域 然而这个的最知名应用 是弹簧上的重物 不同于绘制动物种群数量的点 我们将打出“位置”和“速度”点 如果我将重物推到左边 且无速度初值 对应了图像上的这个点 如果我释放它,并假定无阻尼 它将永远振荡运动 在相平面上,这代表了永远绕原点运动
15:22
从x位移而无速度 到最大速度而无位移,循环往复 如今代表它的方程变成了 Ma 或者 Mv' = - kx - bv 其中,k是弹性系数,而b是阻尼系数 当前,质量(m)和弹性系数(k)是 1,而 b=0 因此这是实际的等式 而你可能已经知道了,位移的导数就是速度 为什么我要这样写呢 因为你看,我们有两个微分项 一些系数 同名而没有那“一撇”的变量,跟以前一样 问题跟之前一样,就是怎么找到“特征”一类的东西 然而,在这个问题中特征值是虚数的 特征向量也是如此 记得我之前说过的吗 虚数的特征值代表了旋转 再一次,这就是直观的体验 对于这一类只有虚数特征值的微分方程系统 代表了(相平面上)纯粹的旋转 既不衰减到平衡点,也不会发散 现在如果我增加弹性系数,使弹簧刚性更大
16:32
可以猜到仍然不会有衰减 但一些时候的速度理应更大 这就是我增加(弹性系数)后发生的事情 如今我们获得了椭圆图像 表示最大速度增加了 但是最大位移没有,因为还是从原来那个点开始的 尽管如此,特征值仍然是虚数 代表只振荡而不衰减 如果我们加入一些轻阻尼 例如把物块放入某种液体 预计物块仍会振荡,但是会衰减至平衡 因此,请先观察当我改变阻尼系数时相平面的变化 如你所见,现在它盘旋着落入原点,也就是平衡点 这里既无速度,也无位移 这正印证了我们所预计的,来自阻尼的衰减 从特征值的角度,我们能获得更直观的解答 因为虚部之上对应着旋转的分量 我们可以看到负实部对应着衰减 因此系统是稳定的,且会逐渐趋近平衡 如果将阻尼系数继续增大 我们可以看到相平面上的衰减更快了 符合预期的是,实部更加为负
17:55
如果我们有一个正的阻尼系数 让我改一下 它将带来一个正实部 对应着放大或者说不稳定 这意味着相平面将螺旋着远离平衡点 到现在,我们已经感受到了特征值和特征向量 所带来的真实视觉体验 对于一个系统或者数列 经历了长时间或多次迭代之后 虽然并非总是如此 但在很多情况下,特征值和特征向量展示了长期行为 这就是为什么它们这么有用 在讲矩阵的那期视频中 我展示了这样一个僵尸场景 在某个隔离区内,每经过一个小时 一部分人类就会变成僵尸 但是也有种治疗方法使得部分僵尸变回人类 既然每小时的人类和僵尸的数量 能够通过线性方程计算得出 我们把它换成矩阵形式 以便看出长此以往会发生什么 如果我们用坐标图来代替 我们将发现,对于一些起始点 代表了人类和僵尸的人口数量
19:06
特征向量代表了系统的平衡 由于特征值是 1 一旦人口数量点落在这上面 数字将永远不变 然而其他的点,每小时都会向它移动 经过多次迭代之后,系统将收敛到一个点 在此处僵尸的数量是人类的两倍 再次强调特征向量展示了长期行为 现在让我们假定,我们有数个单向连接的节点 如果你总是随机的在这个网络上游走 并想知道你在每个节点上消耗的平均时长 它又变成了一个矩阵问题 因为一切都是随机的,所以我们可以写出概率 例如你在A,那么你百分百会去到B 然后你会有50%的概率去到C或D 对每条连线都这样做 如果我们把这些概率值放入一个矩阵 在这你可以看出从A到B是100% 但B到C是50% 结果这个矩阵的特征向量 展示了你在每个节点所花费的时间 如果我们将这些节点看作各个网站
20:13
将这些连线看作它们之间的链接 这就是谷歌页面排序算法的基本原理 是的,从一开始,谷歌页面排序的算法 就是判断你会在哪些网站停留更长的时间 假设你整天在网上随机点击链接 而排名矩阵只不过是它的特征向量 但它也并非总是代表了长期行为 例如,在之前的视频中,我从未提起过 约会应用的社交网络例子 当有3位男士,记为1~3 和3位女士,记为4~6 在约会网站上匹配,如图所示 而且这里没有同性匹配 这产生了一个二分图 “二分”意指网络可被分割为两个不同的子集 使得每个子集内部无连接 现在,如果我们把它画成邻接矩阵 例如这里,1号人士和4号人士相连 将第1列第4行的值记为1 第4列第1行也是如此 然后,如果二者未相连则记为0 最终得出这个 而我没有提到的是,这正是特征向量 当图是二分的
21:17
则该矩阵的特征值 将会呈现出正负对 如果我们允许同性匹配,则这不再是有向图 特征值也不再是正负对 因此,如果我给你这样一张图 你很难一眼看出它是否是二分图 但如果我标记了节点,并基于所有连接作出邻接矩阵 我发现特征值全都是正负对 然后我们就知道了:是的!这是二分图 如果我重新排列一下就会更明显 想要知道图如何做聚类 同样需要用到特征值 且它能揭示极其混乱的图中的隐藏模式 请参考谱聚类算法以了解更多 特征值也出现在频率分析中 如果你需要找到一个系统的自然频率 这在电路中非常有用,因为和这很像(分析频率) 还有弹簧上的重物 特征值能帮助我们了解疾病在人群中的传播速度 用于数据压缩和人脸识别 大量的物理应用 当然还有许多,我无法在视频中一一介绍
22:24
但仍希望本视频能让你直观感受到它背后的力量 我相信很多人在学校学到这个时都没什么概念 - 以下内容为赞助商信息 -

DOWNLOAD SUBTITLES: