一、關於此書
記得幾年前看完了《浪潮之巔》之后,便知道了吳軍老師還有另外一本非常出名的著作《數學之美》,但是一直沒有列入計划閱讀。直到2016年我看完了《硅谷之謎》以及《智能時代》之后,便自己上網買了一本第二版的《數學之美》。正如李開復博士所說:“在我認識的頂尖研究員和工程師里,吳軍博士是極少數具有強大敘事能力和對科技、信息領域的發展變化有很深的縱向洞察力,並能進行有效歸納總結的人之一。”,正是因為在前面幾本書中我看到了吳軍老師強大的“講故事”的能力,他能用通俗易懂,深入淺出的語言將技術原理講清楚,這就十分膩害了,在《數學之美》中他也再次展示了這一點。
最近除了閱讀《數學之美》,還訂閱了吳軍老師的《硅谷來信》,每天在早上洗漱時聽一封信,在睡覺前也會聽一封信,借吳軍老師之眼去看世界,也可以讀到一流的科學家/工程師對於各種事件非常獨特的見解,以豐富自己的眼界。在此,感謝之前Sobey公司的我的前老板劉總的推薦,我也將《硅谷來信》推薦給你們。
二、看數學之美
Part 1 簡單即是美的方法
這本書一共29章,主要介紹了這些數學方法:統計方法、統計語言模型、中文信息處理、隱含馬爾科夫模型、布爾代數、圖論、網頁排名技術、信息論、動態規划、余弦定理、矩陣運算、信息指紋、密碼學、搜索技術、數學模型、最大熵模型、拼音輸入法、貝葉斯網絡、句法分析、維特比算法、各個擊破算法等。
例如,在統計語言模型一章中,我們會發現原來使用簡單的數學模型就可以解決復雜的語音識別、機器翻譯等問題,但是使用很復雜的文法規則和人工智能卻做不到,而這些僅僅需要我們了解概率論和統計學的知識就可以應用到工程中。(當然,最先提出將統計學方法應用到計算機應用工程問題的先驅們是真的值得我們為其鼓掌的!)此外,簡單的布爾代數就是支撐搜索引擎索引的數學基礎,一個漂亮的pagerank矩陣乘法迭代加上一個TF-IDF公式,就可以大程度地改善搜索結果的質量,無一不體現出簡單即是美的特點,而數學模型剛好符合這個要求。
又如,在信息的度量和作用一章,我們再次回顧了信息熵的重要性,這也是吳軍老師一直在重復提及的信息論(吳軍老師喜歡站在信息論的高度看問題,而不只是看到片面的表象)。一個事物內部會存在隨機性,也就是不確定性,而從外部消除這個不確定唯一的辦法是引入信息,而需要引入的信息量取決於這個不確定的大小。就像我們在追一個女生的時候,很多時候往往不是一拍即合,一見鍾情的,只有互相表達的信息(即引入信息)足夠了,才會消除各自對於對方的顧慮。等到引入的信息量消除了處在兩個人之間的屏障,那么我們就可以跟對方告白宣告在一起了。
本書中介紹的所有的這些方法在吳軍老師的筆下都只為了突出一句話:數學的精彩之處就在於簡單的模型可以干大事。
PS:對於書中提到的大部分的數學模型都有其開源的代碼實現,而我們這些工程人員只需要使用這些開源工具到自己的實際項目中即可,么么噠!
Part 2 傳道授業的專家們
這本書除了在高層講述數學方法在計算機應用(主要是語音識別等互聯網應用領域)的基本原理(吳軍老師稱其為“道”)外,還穿插了一些傳道的專家們的故事,包括:賈里尼克、辛格、馬庫斯以及維特比等。
比如,吳軍老師的博士生導師賈里尼克教授。賈里尼克教授少年坎坷,也並非開始就投身到自然語言方面的研究,關鍵是他的思想和他的道。賈里克尼教授治學嚴謹、用心對待自己的學生,對於學生的教導,教授告訴你最多的是“什么方法不好”。這讓我回想起當年看李開復博士的《世界因你而不同》一書中聽到的一句話(李開復博士的導師羅迪教授給李開復講的一句話)“我不贊同你,但我支持你”,於是也就有了李開復在語音識別領域的一鳴驚人的成就。賈里尼克的一生富於傳奇色彩,先在哈佛大學、康奈爾大學教書,接着在IBM任職,之后又去約翰-霍普金斯大學教書。他的貢獻主要有如下幾個:第一,提出了統計語言識別的框架結構;第二,共同提出了BCJR算法;第三,領導建立了世界著名的CLSP實驗室。
又如,辛格博士現任主管Google搜索的高級副總裁,並被學術界公認是當今最權威的網絡搜索專家。他奉行簡單的哲學,並一直堅持尋找簡單有效的解決方案。令我印象最深刻的就在於,吳軍博士在設計分類器時,依照吳軍力求完美的態度,應該還會花很多時間去盡善盡美,但是被辛格博士止住了,“在工程上簡單實用的方法最好”。這種做事情的哲學其實非常值得我們借鑒,即先幫助用戶解決80%的問題,再慢慢解決剩下的20%的問題,是在工業界成功地秘訣之一。許多失敗並不是因為人不優秀,而是做事情的方法不對,一開始追求大而全的解決方案,之后長時間不能完成,最后不了了之。在我們的日常工作中也是一樣,在項目開發設計中,很多人不管業務場景和技術要求,一上來就這種架構那種模式,往往不考慮到底這種設計是不是大牛拉小車,最后雖然解決了問題但是交付時間被延后,既讓用戶不滿意也讓部門不滿意。
三、悟技術之道
吳軍老師在《數學之美》中提到:“這本書的目的是講道而不是講術。很多具體的搜索技術很快會從獨門絕技到普及,再到落伍,追求術的人一輩子工作很辛苦。只有掌握了搜索的本質和精髓才能永遠游刃有余”。回到我們日常的開發工作中,作為IT工程師,程序員,要跟上技術的大潮流,需要學習的技術太多太多,如果一味地只為去追技術的腳步,那么我們也會很累很累,而且可能會是花了80%的時間卻只得到了20%的效果,更別談期望值最大化了,或許根本就達不到你期望值的60%。相反,比如cnblogs(博客園)在招聘工程師一直提到的“3大原理,2個協議,1種結構”(計算機原理、操作系統原理、編譯原理、TCP/IP協議、HTTP協議、數據結構)卻是沒有怎么變化的(甚至是短時間不會變化的),而這些東西恰好是在這個浮躁的社會,我們這些所謂的計算機系的畢業生,所謂的科班畢業生所缺乏的(因為大部分人都沒有在大學期間將這些東西真正地學好,而只是為了所謂的幾個學分去圖書館奮戰一兩個周末而已)。站在高處向下看,也許我們一直看不到底,但是站在底處卻是可以看見底的,這也是我為什么在畢業之后還要去重新溫故操作系統原理和數據結構等科目的原因。
願我們能夠在底層站的更穩后,能夠以一種更加全局的視角去看待上層建築,感悟技術之道!