读完吴军博士的《数学之美》,我了解到一个经验丰富的科学工作者是怎样通过数学公式和算法原理解决实际问题。他在每一章都先抛出问题,然后把问题抽象成一个算法模型,最后再提出解决方案并做出一些改进。
新的思想
- 就像制造飞机我们不能去模仿鸟一样,语音识别我们也不可能真正训练计算机能听懂我们的话,计算机只能用于计算,基于统计的方法让解决问题变成了实现算法;
- 计算机储存的数据是离散的,是一个个分离的,不是和上下文有关的文法;
- 正确的数学模型往往是简单的;
- 大量准确的数据在研发中很重要;
- 多学习像贾里尼克,辛格,维特比,马库斯这些大师的思维方法。
一些算法模型
- 通过二元模型我们可以算出一句话出现的概率,计算出每种分词法后句子出现的概率,最好的分词方法就是概率最大的那个,这就是一个分词器要做的事情。
- 通过隐含马尔可夫模型算出所有的源信息中最可能产生出观测信号的那一个信息,从而实现根据接收端的观测信号来推测发送的信号。
- 信息熵是对不确定性的衡量,信息的作用在于消除不确定性,互信息可以解决二义性问题。
- 一个搜索引擎:
下载 网络爬虫采用图论BFS和DFS的方法爬下整个网页;
索引 索引表是通过布尔代数用一个很长的二进制数表示一个关键字是否出现在每篇文献中;
排序
i. 网页的质量信息 PageRank算法,并行计算工具 MapReduce;
ii. 网页的相关性信息 TF-IDF相关性计算公式; - 智能手机的定位和导航功能
- 地址的识别- 有限状态机;
- 规划最短或最快路线- 动态规划法;
- 用余弦定理计算两个向量的夹角来判断主题的相似程度;
- 矩阵运算中的奇异阵分解可以解决当新闻的数量很大的时候矩阵的乘法运算;
- 信息指纹可以区分两段文字或图片;
我最喜欢的一章
PageRank Google的民主表决式网页排名技术
核心思想
1. 如果一个PageRank值高的网页链接到一个其他的网页,那被链接到网页的PageRank值也会提高。
2. 如果一个网页被很多网页链接说明这个网页比较重要,即PageRank值也会很高;
布林的巧妙解法:
首先,假设所有网页的排名都是1/N,设A是由amn组成的矩阵,amn代表第m个网页指向n个网页的链接数,假设Bi是第n次迭代的结果;
即向量B=(1/N,1/N,1/N……)
设Bi=A*Bi-1,可以得到证明Bi无限趋于B;
MapReduce 算法:
Map:将一个大任务拆分成小的子任务,并完成子任务的计算;
Reduce:将中间结果合并成最终结果。
可以实现用10倍数量的计算机将计算时间缩短10倍。
我的感悟
读完这本书有一种感觉很强烈:学习一个新东西发现正在学的一些理论知识得到了应用,比如线性代数(PageRank算法,奇异矩阵),离散数学(数理逻辑,集合论,图论),数学在计算机上的应用实在太多了,吴军博士的这本书教会我们用数学模型解决问题的视角。