《数学之美》——数学中的哲学
简单是一种哲学。吴军是我见过少数能够掌握化繁为简的艺术的人。很抱歉,通俗化的技术描述最终让我整理成了复杂的读书笔记,心中有愧,遂将读书笔记的细节放在文末。
文字(象形文字、楔形文字)、数字的本质都是信息的载体,其本身并不重要,重要的是其承载的信息(类似货币的作用)。信息的冗余对于信息的安全非常重要,语料,尤其是双语或多余的对照语料对翻译至关重要,它是从事机器翻译的基础。语言学研究争论至今的终极问题是:到底是承载信息的语言本身重要还是语言的编码方式重要。前者,是基于语料的统计规律去解码;后者,是基于规则的组织规律去解码。
决策最难的地方在于不确定性,而消除不确定性的正确方法是引入和不确定性相关的信息。将所有的不确定性变成确定性的方式是引入信息(准确说是和未知情况相关的互信息),当引入的信息量i大于不去定性u的时候,不确定性问题就会得到解决。在处理不确定性的过程中,不能够引入人为假设来减少所需的信息量,因为这和“蒙”没有区别。
如何给人合理的意见?以个人的经验告诉别人“不要做什么”是负责任的表现,不能告诉别人应该去做什么。因为个人的成长经历会局限他人的天赋。对于接受建议的人来说,约束自己不做自己想做的事情要远比逼迫自己去做不想做的事情难。这是自我管理的痛点所在。所以,要建立深度自律的能力,方有可能接受别人的建议并改变自己的行为。从该角度将,对于他人不能接受自己的建议,也就能更豁达了。
典型的学生思维方式在工作上追求大而全的解决方案而忽视实效性和适用性。学术上往往强调完美,而工程上以实用为主。不能开始就追求大而全的解决方案,长期完成不了最终就会不了了之。正确的做事方法是,先解决80%的主要问题,而后再去完善剩余的20%的问题。
数学的哲学是简单哲学。正确的数学模型应该在形式上是简单的,一开始不见得比精雕细琢的错误模型准确,但技术的更迭是不以人的目的为转移的,正确的模型也会受到干扰并显得不准确。此时的正确做法是找到噪音的根源,而不应该以固守不变的心态对模型修正和弥补。但无论是简单哲学还是繁琐哲学,都有其存在的道理,前者务于精纯,追求极致;后者观其大略,讲求实用。

NLP简史
20世纪70年代以前是基于规则的NLP技术;1970年被称为基于统计的NLP元年,IBM统计方法是HMM模型,能够解决分词、词性问题,同一时代RNN模型诞生,关于统计无法解决句法和语法分析问题持续争论了15年;20世纪90年代,LSTM模型出现,统计学模型可以解决句法和语法问题,此时诞生的典型的统计模型包括CRM模型、MEMM模型;2005年,谷歌推出了基于统计的翻译系统,规则学派从此悄无声息;2014年,基于神经网络的GRU模型提出;2017年,谷歌提出Transformer模型;2018年,谷歌提出BERT模型,认为NLP领域进入转折点。这里不得不强调的一个人物是马库斯,他在NLP领域的地位就如同李菲菲在图像领域的地位,他制作了基于《华尔街日报》的LDC语料库。
规则和统计
人工智能的本质不是让机器拥有人类一样的智能,而是拥有机器智能,机器智能的本质是基于数学或统计的强关联的大数据思维,而不是人类基于规则和经验的因果机械思维。基于规则方法的局限在于:十个字的句子,后者所需的计算是前者的一万倍,几十个字组成的句子分析,如今的算力也需要1~2分钟时间。基于统计的NLP模型的参数本质是条件概率或联合概率,调参的过程就是获取参数的过程。模型是否有效,取决于语料库的构建是否合理,背后的假设是大数定理。
基于逻辑的规则运算的本质是布尔操作,而神经网络的实现在计算内部也是基于布尔运算的。所以,从原理上讲,可以采用神经网络搭建所有的规则算法。只是计算上可能是低效的,这是由于二者解决问题的思维或方法论不同。前者是基于机械思维和因果关系;后者是基于大数据思维和强关联关系。
NLP的问题
统计语言模型的零概率问题:一般对于出现次数超过某个阈值的词,频率不下调;支队出现次数低于这个阈值的次,频率才下调,下调得到的频率总和给未出现的词。语料库的选取必须要和实际场景相联系(例如腾讯根据人民日报训练的模型在搜索过程中并不好用),在语料库数据不足的情况下,片面追求高阶模型没有意义。
分词的核心问题是消除歧义性。最好结果是分完次以后整个句子出现的概率最大。中文分词被认为基本解决,目前机器翻译的目的是尽可能构建完备的复合词表,颗粒度越细,翻译越准确。而基本词表的问题已经被解决,目前不一致的地方在于错误和颗粒度差异。
数学模型宝宝们
隐马尔科夫模型是基于马尔科夫假设和独立输出假设的语言模型,模型的本质是求解条件概率最大化的问题。基于隐马尔科夫模型的问题有三类:求解输出概率,求解状态序列,求解模型参数。其中,求解状态序列的解码算法是维特比算法;求解模型参数的训练方法有有监督方法和无监督方法。后者由常用鲍姆——韦尔奇算法。该算法的核心思想是期望值最大化(EM算法),当目标函数是凸函数时,具有全局最优解。最大熵模型即是具有唯一全局最优解的函数。
最大熵模型本身是期望值最大模型(EM模型),虽然形式简单,但参数众多,训练耗时长,工程中的应用拒绝于其实用性。最大熵模型的优势是凸函数,求解模型参数的过程中,可以获得全局最优解。EM算法的原理是最大化不同类别距离的同时,减小相同该类别的距离,该过程实际给出的是局部最优解。
贝叶斯网络:网络中每个元素只与其直接连接的元素有关,而与其间接连接的元素无关的网络称为贝叶斯网络。贝叶斯网络的训练分为结构训练和参数训练,前者基于规则,后者基于数据。贝叶斯网络是带权重的有向图,是马尔科夫链的扩展。
条件随机场:CRF模型是无向图(没有规则),其解决所有与联合概率或转换形式后的条件概率相关的问题。条件随机场与最大熵模型相同,形式简单,但训练复杂,参数众多。
知识点
神经网络模型在解决分类问题是,适合采用有监督的学习方式;在解决聚类问题时,可以采用无监督的学习方式,让机器自动学习特征。
信息熵用来衡量信息量的大小,信息量的本质是二分法,即采用二思想解决问题时所有情况的总数,每一种情况用一个bit存储。事件的总数即为信息的总量。所以,一篇文章重复的越多,信息量越少。
搜索引擎本身就是一个系统,所有的网页都要遵守其规则。其本质是加入噪声,反作弊的方法则是去除噪声的过程。目前搜索引擎的进步在于反作弊的基础上保证网页的权威性。
假阳性:把不在集合中的元素错判成在集合中的元素的过程称为假阳性。
谷歌在其服务器上采用的思想是批处理思想。MapReduce将复杂的任务分拆成独立的小块同时计算,解决的实际是数据并行的问题,而ONEFLOW解决的是模型并行以及流式执行的问题。谷歌大脑的训练原理:1)模型的并行分治原理;2)数据存储和参数调用相互分离;3)采用随机梯度下降法和收敛更快速的L-BFGS的方法训练梯度。