矩阵的决定式 声明:关于术语翻译 因为写博客的目的是为了总结知识,方便笔者自己理解,所以我故意不使用中文教科书上一些常见的、而我觉得翻译得词不达意的术语翻译。如行列式、齐次、秩等概念,一概改成了使用方便理解的、自创的译法。 同时我无意误导别人,所以如果你不喜欢,那就请直接忽略这篇文章。 首先让我们复习一下什么是逆矩阵。一个矩阵 $A$ 的逆矩阵 $A^{-1}$,就是满足 $$ A^{-1}A = I $$ 的一个矩阵。 大多数矩阵都是有逆矩阵的,而没有逆矩阵的那些矩阵,因为比较稀少,所以我们称之为 $\text{singular}$(奇异的、非凡的)。 一个矩阵是否有逆矩阵,或者反过来问它是否为 $\text{singular}$,可以通过计算一个特别的式子的值,看看它是否为 0 来判定。这个式子就叫做矩阵的 $\text{determinant}$,我愿意将它叫做决定式(教科书上约定俗成的垃圾翻译名词叫做行列式)。 $A$ 的决定式记作 $\det(A)$。 如果决定式的值为 $0$,则矩阵是 $\text{singular}$ 的;反之不是。 如何计算决定式 这里书上介绍的方法比较通用,我们可以用来计算任意 n x n 矩阵的决定式。 首先,对于矩阵 $A = (a_{ij})$,假设我们选择一个元素 $a_{ij}$,我们从 $A$ 中删除 $a_{ij}$ 所在的行和列,就得到了一个形状为 $(n-1) \times (n-1)$ 的矩阵 $M_{ij}$,我们称之为 $a_{ij}$ 的 minor。 基于 minor 的定义,进一步定义 $a_{ij}$ 的 cofactor $A_{ij}$ 如下: $$ A_{ij} = (-1)^{i+j} \det(M_{ij}) $$ 有了这个定义,我们就很容易得到决定式的计算方法。 具体来说,就是任选一行、或者一列,然后逐个元素计算这个元素的值和其 cofactor 的乘积,加起来即可。 ...
线性代数学习笔记(持续更新中)
Linear Systems Revisited 声明:关于术语翻译 因为写博客的目的是为了总结知识,方便笔者自己理解,所以我故意不使用中文教科书上一些常见的、而我觉得翻译得词不达意的术语翻译。如行列式、齐次、秩等概念,一概改成了使用方便理解的、自创的译法。 同时我无意误导别人,所以如果你不喜欢,那就请直接忽略这篇文章。 $Ax = 0$ 叫做一个均质系统 (homogeneous system) 而 $Ax = b$ 是一个非均质系统 (nonhomogeneous system). 如果 $Ax = b$ 是 consistent 的(自洽的,即有解的),并且,$x_0$ 是一个解的话,那么: $y = x_0 + z$ 一定也是它的另一个解。这里 $z$ 是 $A$ 的 null space $N(A)$ 的一个元素。 教材 P131 图的理解: 以一个 m x 3 的 matrix A 为例,因为其作用的向量是 3 维的,所以可以在 3 维空间中表示。 此时,Ax = 0 这个 homogeneous system 的解空间,对应于过原点的一个平面。原因是,考虑 trivial case, (0, 0, 0) 很明显是 Ax = 0 的一个解。换句话说,这个过原点的平面就是 A 的 null space. ...
线性代数学习笔记(持续更新中)
Linear Systems Revisited 声明:关于术语翻译 因为写博客的目的是为了总结知识,方便笔者自己理解,所以我故意不使用中文教科书上一些常见的、而我觉得翻译得词不达意的术语翻译。如行列式、齐次、秩等概念,一概改成了使用方便理解的、自创的译法。 同时我无意误导别人,所以如果你不喜欢,那就请直接忽略这篇文章。 $Ax = 0$ 叫做一个均质系统 (homogeneous system) 而 $Ax = b$ 是一个非均质系统 (nonhomogeneous system). 如果 $Ax = b$ 是 consistent 的(自洽的,即有解的),并且,$x_0$ 是一个解的话,那么: $y = x_0 + z$ 一定也是它的另一个解。这里 $z$ 是 $A$ 的 null space $N(A)$ 的一个元素。 教材 P131 图的理解: 以一个 m x 3 的 matrix A 为例,因为其作用的向量是 3 维的,所以可以在 3 维空间中表示。 此时,Ax = 0 这个 homogeneous system 的解空间,对应于过原点的一个平面。原因是,考虑 trivial case, (0, 0, 0) 很明显是 Ax = 0 的一个解。换句话说,这个过原点的平面就是 A 的 null space. ...
无法言传,以及可执行的知识
维特根斯坦的《语言游戏说》指出,语言本身没有精确的含义,语言在于运用。 听起来,语言的边界,就是人类思想以及智能的边界。 LLM 通过超大量语料的训练涌现出智能,其可以达到的极限,可能是基于语言的智能上限了吧? 智能是否全部可以用语言表达?LLM 所掌握的智能,对于人来说是否可解释? 有一些知识,是无法言传的。 比如围棋中 AlphaZero 左右互搏的棋谱中所展现出来的超长距离的战略布局,布局开端的一手棋,在几十甚至上百手之后,才起到决定胜负的作用。恐怕用 “味道“、”借用“ 这些词已经很难解释清楚其作用了吧? 既然无法解释,那么对于人类来说,就是不可理解、不可学习的。 世界上大多数事情是很难解释因果关系(causality) 的, 退而求其次的,在有能力搜集到数据的情况下,我们最多可以分析事件之间的相关性(correlation). 相关性是一个介于 0 到 1 之间的概率数字。 同理,LLM 所掌握到的智能,由于它学习到的任何一个 pattern, 一个作用,一个逻辑,其背后都可能会连接到很多个神经元,与之对应的会有很多连接权重(weight) 数字。因此,LLM 的逻辑归因不是简单的因果关系,而是复杂的多个因子(神经元)经过复杂作用的相关性的组合。 人类学习知识的方式,是基于不断的简化和归纳。首先要从大量观察到的事件中,总结出某种 pattern, 提炼出 concept. 以及它们之间作用的规律,然后才可以内化成自己可以掌握的知识。 比如学围棋,也需要从基本的概念学起,然后逐步掌握很多人类总结出来的棋理,并在实战中逐步学会应用。 然而,任何围棋学习到一定程度的人都知道,棋理不是绝对的。在实战中,很多时候不同的棋理甚至是互相矛盾的,该用哪一条棋理呢? 中国古时候就有人总结出了《围棋十决》的棋理: “不得贪胜,入界宜缓,攻彼顾我,弃子争先,舍小就大,逢危须弃,慎勿轻速,动须相应,彼强自保,势孤取和。” 听着非常有智慧是不是?确实这套棋理也确实在过去指导了无数人的棋力成长。 然而,在近年来竞技围棋愈演愈烈,尤其是在2016年人机大战的冲击下,又有好事者发明了与之完全相反的《新围棋十决》: “坚决要胜、入界宜深、攻彼忘我、弃子另杀、大小都要、逢危就战、爽在轻速、棋都不应、彼强硬搞、势孤玉碎。” 这套理论虽然略带幽默,但还是很有道理的。其底层逻辑就是:高手怎么下都是对的,棋理在实战中能不能奏效,必须建立在力量的基础之上。 人下围棋为什么赢不了 AI? 本质上,实际上是因为 AI 通过训练,已经掌握了更高级的,建立在长距离 context 之上的战略。而这种战略,对于人类来说,是无法言说,无法理解的。这是一种无法言说的复杂智能(或者说知识)。 LLM 也是一样,姑且不论除了语言之外有没有别的智能的形式,实际上 LLM 通过语言,已经习得了人类无法理解的更复杂的智能。这种智能是基于对于更宏观的事实的了解之上的,建立在更大的 context 之上的。是不可言说的。 或者说,LLM 这样一种机器脑,已经掌握了很多不可言说的,但是可以执行的知识。 对于人类来说,其实也有很多感受是难以描述,但是可以体会的。比如职业围棋手经过长期刻苦训练所形成的那种敏锐的 “棋感”,对棋形 “味道” 的嗅觉;或者是从事科研、工程等领域长期研究之后,突然得到的“顿悟”,即所谓的 ah-ha moment. 跟这都有点像。再比如,音乐也是一种适合去直观感受,而不必追求深度理解的东西。甚至有可能,音乐正是用于缓解人类求知痛苦的一种解药。
神经网络的本质原理
(最近我在学习 deep learning, 这里只是一些个人的心得记录。如果你觉得内容过于简单,没什么价值,请忽略) 神经网络为什么具备非常强的学习能力? 一个关键点是 backward propagation 时,依赖于函数求偏导数的 chain rule 这样一个根本的原理, 决定了在 output layer measure 到的 error 可以反向推导到前面每一层的连接权重 weight 以及 bias 值的正确的变化率,从而做到合适的修正。 每多一个样本,这个样本的 error 通过 back propagation 就计算出了其对应的网络中所有 weight 和 bias 的贡献值(亦即偏差)。这实际上是一个 “归因” 的过程,当然这里不是指单一的原因,而是所有参数应该承担的责任。通过不断的归因和修正,神经网络就可以不断的拟合到这些样本,从而具有了一定的预测能力。 这些推导能够成立的前提,有这样一些: 首先所有层与层的连接都是基于 y = wX + b 这样的形式,后一层的每一个 neuron 的值,是前一层所有 neurons 的线性组合,它是一个连续的函数。同时 activation function 也都是连续函数,所以它们才可导。 假设神经网络理论上可以 learn 到问题数据集里想要学习的结构 pattern. 也许有限制,某些特征可能学习不到。即使是深度神经网络也学习不到?这个理论依据在哪里,我还没有学到。后续知道了可能会修正这一点。 为了方便起见,暂不讨论 learning rate 大小的影响,以及 overfitting 的情况。