作者丨莓酊
编辑丨青暮
线性代数(linear algebra)是关于向量空间和线性映射的一个数学分支 。
现代线性代数的历史可以上溯到 19 世纪中期的英国 。1843 年 , 爱尔兰数学家哈密顿发现四元数 。1844 年 , 赫尔曼 · 格拉斯曼发表他的著作《线性外代数》(Die lineare Ausdehnungslehre) , 包括今日线性代数的一些主题 。1848 年 , 詹姆斯 · 西尔维斯特引入矩阵(matrix) 。阿瑟 · 凯莱在研究线性变换时引入矩阵乘法和转置的概念 。很重要的是 , 凯莱使用一个字母来代表一个矩阵 , 因此将矩阵当做了聚合对象 。他也意识到矩阵和行列式之间的联系 。
多少学子魂牵梦绕、夜不能寐的现代线性代数就是这样形成的 。
古语有云:线代虐我千百遍 , 我待线代如初恋 。搜索 ” 线代太难了 “ , 谷歌秒给我 726 , 000 个相关结果 。
一些同学忍不住吐槽 , 做线代题感觉自己像个傻子 ……(摸摸头)
无论是结构力学到人工智能 , 深究理工科研究之后会发现到处都是线性代数的身影 。线性代数的地位真的重要 , 这是科研人、技术人在实践中的最大感受 。许多算法都用到线性代数知识 , 比如非常热门的深度学习 , 它的底层实现方式用到好多线性代数方面的知识 。如果底层基础打不好 , 不明白其中的原理 , 算法实现方式真的很难理解 , 更不可能去创新了 。
12 月 3 日 , Facebook 人工智能研究院发布最新研究 , 可以用 Transformers 解决线性代数问题了!
论文地址:https://arxiv 。org/pdf/2112 。01898 。pdf
Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型 。Transformer 采用注意力机制( Self-Attention)来提高模型训练速度 , 它抛弃了传统的 CNN 和 RNN , 整个网络结构完全是由 Attention 机制组成 。主要由两部分组成:encoder 和 decoder 。
Transformer 最初为机器翻译设计 , 后被应用于各种问题 , 从文本生成到图像处理、语音识别等等 。在数学中 , Transformer 大多应用集中在符号计算上 , 它 ” 操作 ” 数学符号 , 就像 ” 操作 ” 自然语言中的单词一样 。
但数学≠ 符号处理:许多实际应用涉及数值计算 , 精确(如算术)或近似(如函数计算、方程数值解) 。使用 Transformer 数值计算的研究较少 , 而且多数早期算术实验结果差强人意 。
但有一个不可回避的问题:数学和科学中的大多数问题都涉及符号计算和数值计算 。如果我们希望 Transformer 端对端解决这些问题 , 它们就必须能进行高精度数值计算 。
作者 Fran ois Charton 训练 Transformer 计算线性代数问题的解 , 线性代数是许多科学问题的基本组成部分:矩阵的基本运算、矩阵求逆、特征值和奇异值分解 。
接下来我们将介绍四种将问题和解决方案表示为 Transformer 可处理的编码方案 , 在生成的随机矩阵数据集上训练小型 Transformer(最多 6 层 , 1000 到 5000 万个可训练参数) 。训练过的模型计算问题的近似解(到其 L1 范数的几个百分比) , 精确度超过 90%(大多数情况下为 99%) 。
【用Transformer做线代作业,真香!】同时 , 泛化训练过的模型 , 通过更多样化的数据集(特别是具有非独立和相同分布系数矩阵进行的训练) , 能够大大提高域外精度 。
作者相信这些结果为 Transformer 打开了全新世界的大门 , 为 Transformer 作为数学和科学问题的端对端解算器铺平了道路 。
1
问题建模
第一步 , 将矩阵编码为序列 。
因为问题的输入和输出是矩阵 , 要由 Transformer 处理 , 它们需要转换为 token 序列 。
首先对一个 m × n 矩阵进行编码 , 将其维度编码为两个符号标记(Vm 和 Vn) , 然后是其 mn 系数 , 编码为序列 。在本文中 , 使用了四种矩阵系数的编码方案:P10、P1000、B1999 和 FP15 。
在基数为 10 的位置编码 ( P10 ) 中 , 是五个标记的序列:一个符号标记(+ 或 -)、尾数的 3 位数字(从 0 到 9)和符号标记(来自 E-100 到 E+100 ) 的指数 。
例如 , 3 。14 将表示为 , 并编码为 。下图中展示了一些编码的示例 。
第二步 , 随机矩阵生成 。
大多数实验是在均匀分布的随机矩阵数据集上训练模型的 , [ A , A ] ( with A = 10 )。有时 , 也对具有相同标准偏差的高斯系数进行采样 。
在研究特征值问题的分布外泛化时 , 生成具有不同特征值分布的随机对称矩阵(对应于具有非 iid 系数的随机矩阵) 。为此 , 作者运用高斯系数随机采样对称矩阵 M , 并计算它们的特征值分解 P 是特征向量的正交矩阵 。然后 , 用从另一个分布采样的对角线 D’ 替换 M 的特征值的对角矩阵 D 。
最后重新计算 , 一个对称矩阵(因为 P 是正交的) , 特征值按选择分布 , 特征向量均匀分布在单位球面上 。
2
实验和结果
矩阵转置
学习转置矩阵相当于学习其元素的排列 。矩形矩阵的排列涉及更长的周期 。作者研究了两个公式:
1 。固定大小情况 , 数据集中所有矩阵都具有相同维度 , 只需要学习一个排列 。
2 。可变大小的情况 , 数据集包括不同维度的矩阵 , 尽可能多的排列学习 。
在编码器和解码器中使用四种编码方案 , 并数据集上训练1 层、256 个维度和 8 个注意力头的 Transformer 。模型学会在超过 99% 的测试用例准确预测解决方案(具有 0% 的容差) 。
矩阵加法
学习两个 m × n 矩阵的加法相当于学习输入和输出位置之间的对应关系(如在转置问题中) , 以及在 mn 对元素上执行浮点表示中两个数字相加的算法 。作者对此训练了 1 层或 2 层、8 个注意力头和 512 个维度的 Transformer 。
对于大小不超过 10 的固定大小矩阵的加法 , 包括 n=m 和 n ≠ m 两种情况 , 在 1% 的容差范围达到 99% 准确率(并且在 0 。5% 内超过 98%) 。FP15 模型在 15 × 15 矩阵的 0 。5% 容差内实现了 99 。5% 准确率 , 而 B1999 模型在 20 × 20 矩阵上实现了 89 。7% 准确率和 1% 的容差 。
维度高达 10 的可变大小矩阵由 2 层 Transformer 使用 B1999 编码预测 , 准确率超过 99 。5% , 容差为 1% 。编码器中有一层 , 解码器中有 6 层的模型在相同的数据集上实现了 77% 和 87% 的准确率 。下图总结了实验结果 。
矩阵乘法
维数为 m × n 的矩阵 M 与向量相当于计算 V 和 M 之间的 m 个点积 。
每次点积计算包含 n 个乘法和 n 1 个加法 , 涉及矩阵中的其中一行和向量中的所有系数 。模型必须了解这 2n 个元素在计算中的位置 , 以及两个运算(加法和乘法) 。
通过对 1 层或 2 层、超过 5 × 5 矩阵的模型进行实验 , 作者观察到 P10 和 P1000 编码的模型才能训练到高精度 。P1000 编码性能最好 , 两层和一层模型之间差别不大 。对于 5 × 5 和 10 × 10 平方矩阵 , 采用 P1000 编码的 2 层 Transformer 可实现 99 。9% 以上的精度 , 容差为 1% 。结果汇总在下图中 。
矩阵 M 和 P 的乘法是矩阵向量乘法的进阶版本 , 其对矩阵 P 中的每一列向量执行上述运算 。和以前一样 , 只有使用 P10 和 P1000 的编码模型才能训练高精度预测 。
超过 5 × 5 矩阵和类似大小的矩形矩阵 , 训练模型精度与向量乘法相同(在 1% 容差下超过 99%) , 但需要更深的解码器(4 到 6 层) 。
特征值
我们把注意力转向由迭代算法解决的非线性问题 。
作者在编码器或解码器中训练 4 层或 6 层的模型 , 用以预测对称矩阵的特征值 。
对于 5 × 5 随机矩阵的样本 , 在 5% 的容差下达到 100% 的准确率 , 在所有四种编码下达到 98 。5% 的 1% 。对于 8 × 8 矩阵 , 在 5% 和 1% 的容差下实现了 100% 和 85% 的准确率 。
但也遇到了瓶颈 , 对于大规模问题 , 模型难以学习:在 10 × 10 矩阵上 , 3 。6 亿个示例可达 25% 的准确率和 5% 的容差 。相比之下 , 对于 5 × 5 矩阵 , 模型在大约 4000 万个样本中训练到最高准确率 , 对于 8 × 8 矩阵 , 模型在大约 6000 万个样本中训练到最高准确率 。
这个限制通过在可变大小的数据集上训练模型能够克服 。在维度为 5-10、5-15 和 5-20 的矩阵样本上 , 模型在 5% 的容差下达到 100% 的准确率 , 在 1% 容差下达到 88%、94% 和 45% 。使用 5-15 模型 , 10 × 10 矩阵的特征值可以在 2% 的容差下以 100% 的准确率进行预测 , 在 1% 容差时为 73% 。结果如下图所示 。
特征向量
除了特征值 , 作者还预测了特征向量的正交矩阵 。
在 5 × 5 矩阵上 , 使用 P10 和 P1000 编码的模型在 5% 容差的情况下 , 实现了 97 。0% 和 94 。0% 的准确率 。FP15 型号的性能较弱 , 准确率为 51 。6% , 但非对称型号 , 带有 6 层 FP15 编码器和 1 层 P1000 解码器 , 在 5% 容差下的准确率为 93 。5% , 在 1% 容差下的准确率为 67 。5% 。P1000 模型可以预测 6 × 6 矩阵的特征向量 , 预测准确率为 81 。5% 。
奇异值分解
虽然这项任务与特征分解有关 , 但事实证明它的学习难度更大:使用 P10 或 P1000 编码的多达 6 层 Transformer 可以预测 4 × 4 矩阵的奇异值分解 。单奇异值(容差为 5% 和 1%)的准确率较高 , 分别为 100% 和 86 。7% , 完全分解的准确率分别为 98 。9% 和 75 。3% 。
此外 , 域外泛化和再训练中 , 作者为了训练模型 , 生成独立同分布 ( iid ) 系数的随机 n × n 矩阵 , 从 [ A , A ] 上的均匀分布中采样 。
Transformer 如果想要解决线性代数问题 , 了解在 Wigner 矩阵上训练模型在不同特征值分布的矩阵上执行方法十分重要 。
研究人员创建了 10 , 000 个矩阵的测试集 , 其分布与训练集不同 。然后 , 生成不同特征值分布的矩阵的测试集:正特征值(特征值替换为其绝对值的 Wigner 矩阵) , 以及根据均匀、高斯或拉普拉斯定律的特征值分布 , 标准偏差为 和 。
为了提高分布外的准确性 , 作者在具有不同特征值分布的数据集上训练新模型 , 并在之前创建的测试集上评估它们 。
最终得到一个重要结果:常被视为随机矩阵默认模型的 Wigner 矩阵可能不是训练 Transformer 的最佳选择 。非分布泛化需要特别注意训练数据的生成 。
推荐阅读
GAIR 2021 大会首日:18 位 Fellow 的 40 年 AI 岁月 , 一场技术前沿的传承与激辩
2021-12-10
致敬传奇:中国并行处理四十年 , 他们从无人区探索走到计算的黄金时代 | GAIR 2021
2021-12-09
时间的力量—— 1991 人工智能大辩论 30 周年纪念:主义不再 , 共融互生|GAIR 2021
2021-12-12
论智三易 , 串联通讯 , 贯通边缘 , 演进认知 , 汇于机器:听五位 IEEE Fellow 畅谈 AI 未来 | GAIR 2021
2021-12-25
新一代 AI 人才从哪里来 , 该往哪里去?| GAIR 2021 院长论坛
2021-12-29
雷峰网雷峰网
推荐阅读
- 倩碧晶莹蜜粉适合什么肤质
- 工业品电商平台易买工品获数千万美元C轮融资
- ddr4 2400和2660性能区别
- 显示器23.8寸宽和高是多少
- 菜包饭的做法
- 文胸分哪几种
- 2022老公生日祝福语简短 给老公生日祝福语简短2020
- 时间过得快的句子最新 时间过得很快的名句
- 棉衣服上的油渍怎么去除小窍门