有关机器学习的文章中往往有一些数学公式。不知道你看到这些公式是什么感觉?反正论智君看到这些公式时常常心烦意乱。好吧,论智君数学不好,不过,论智君觉得,这其中也有部分原因是数学公式的表示系统设计得不好。
著名教育家、UCL荣休教授Dylan Wiliam在《Embedded Formative Assessment》一书中就写道:
我经常让教师写下4x和4½。接着,我问他们4和x之间的数学运算是什么,大多数教师意识到是乘法。我又问4和½之间的数学运算是什么,当然是加法。然后,我询问这些教师之中是否有人以前曾注意到这种数学符号的不一致性——当数字相邻时,有时意味着乘,有时意味着加,有时则是完全不同的意义,比如43。大多数教师从来没有注意到这种不一致,这大概是他们在学校能够取得成功的原因。为此发愁并提问为什么的学生可能会被告知不要问愚蠢的问题,尽管这其实是一个相当聪明的问题,同时恰恰显示出一种对数学家来说可能很有帮助的好奇心——但他必须先过学校这一关!
这种不一致的例子在数学所用的符号系统中到处都是。比如,sin2(x)表示(sin x)2,可sin-1(x)并不表示(sin x)-1(即1/(sin x))!相反,sin-1(x)表示的是arcsin x。这种不一致的根源是,反函数f-1和幂运算混用了同一个符号。
然后,数学所用的符号系统大量采用一些“约定俗成”的记号,从而碰巧绕过了这个混用符号的问题。比如,上面的f-1会被解读为函数f的反函数,而不会被解读为某个数f的倒数,相反,x-1会被解读为某个数x的倒数,而不是函数x的反函数。这是因为数学符号系统约定俗成地用f表示函数。类似地,x约定俗成地用来表示函数的变量。而类似ax+b这样的式子,约定俗成x是函数的变量,a和b则是两个常数,尽管看上去a、b、x都可能是变量,也都可能是常数。
这又带来了另一个问题,扩展性差。因为不一致的设计和混用符号,导致数学的符号系统大量依赖约定俗成的记号来区分不同的语义,随着数学的发展,需要大量的符号。很快数学家就发现拉丁字母不够用了,所以就开始引入各种各样的字母,希腊字母,希伯来字母……还不够,又引入各种字体,斜体、粗体、花体、中空的字体……即使引入了这么多千奇百怪的字母,还是不够用。因此,同一符号在不同的数学分支下完全可能表示风马牛不相及的意思。这又进一步加剧了不一致性。
如果我们去看程序语言,就会发现,程序语言避免了很多数学符号系统的缺陷。比如,上文引用的Dylan Wiliam书中的例子,在通常认为设计优雅的Lisp类语言中写作:
(* 4 x)
(+ 4 (/ 1 2))
43
在使用通常的C类语法的程序语言中写作:
4 * x
4 + 1/2
43
区分都很明显,不会让人困惑。
另外,在靠谱的编辑器、IDE乃至web网站上,程序语言都有语法高亮,这样可读性就更好了。
数学的符号系统是在漫长的历史中自发地形成地,短期内要彻底变革不太现实。不过,程序语言的语法高亮,完全可以引入数学符号系统。
上周,Amazon bestseller《Math, Better Explained》的作者Kalid Azad就尝试将语法高亮引入了数学符号系统:
上图是贝叶斯定理的高亮版本。紫色的Pr代表要计算的条件概率,黄色的E代表证据,蓝色的H代表假说。绿色代表正例,红色代表反例。这样高亮了以后,是不是好理解很多?
Kalid Azad的灵感来源是多年前尝试解释傅里叶变换时在网上搜到的一个示意图
目前,Kalid Azad正在开发一个可视化工具用于高亮数学公式。Azad也发布了他所用的高亮数学公式的LaTex模板:
\newcommand{\growth}{\color{c1}}
\newcommand{\unitQuantity}{\color{c2}}
\newcommand{\unitInterest}{\color{c3}}
\newcommand{\unitTime}{\color{c4}}
\newcommand{\perfectly}{\color{c5}}
\newcommand{\compounded}{\color{c6}}
$$\growth e
\plain =
\perfectly \lim_{n\to\infty}
\plain \left(
\unitQuantity 1 + \unitInterest \frac{1}{\compounded n}
\plain \right)
\unitTime^{1 \cdot \compounded n}
$$
\growth The base for continuous growth
\plain is
\\
\unitQuantity the unit quantity
\unitInterest earning unit interest
\unitTime for unit time,
\\
\compounded compounded
\perfectly as fast as possible