讀書筆記——數學之美

讀完數學之美,收穫不少,在這裏我對個人收穫進行簡要的總結,這些總結中不包括對具體算法和模型的詳解,詳解請參考其餘資料,這裏只進行簡要的總結。算法

1 文字和語言 vs 數字和信息

文字、數字、語言和數學是自然的內在的聯繫。咱們的祖先過去在處理問題、設計語言的時候遵循的法則和咱們今天探求的研究方法背後有着共同的東西,那就是數學規律。網絡

通訊模型:

信息 —— 編碼 ——> 信道 —— 解碼 ——> 信息函數

2 天然語言處理 - 從規則到統計

任何一種語言都是一種編碼方式,語言的語法規則就是編解碼算法。學習

1 機器智能

  • 由圖靈提出, 若是讓一我的和機器進行交流,這我的沒法分清與他交流的對象是人仍是機器,那這個機器就具備智能。
  • 當時的科學家認爲要作好天然語言理解,要作好兩件事: 分析語義和獲取語義
  • 學習語法規則、詞性和構詞法等。
  • 分析句子採用的文法規則一般稱爲重寫規則

2 從規則到統計

基於規則的句法分析很快走到了盡頭:優化

  • 多義詞很難用規則來描述,是嚴重依賴上下文,甚至是‘世界知識’或者常識。
  • 句法分析更加複雜,語法成分對另外一個語法成分的修飾關係不必定相鄰,而是中間隔了不少不少短語。

只有基於有向圖的統計模型才能很好的解決複雜的句法分析。
基於統計方法的核心模型:
通訊系統 + 隱馬爾科夫模型網站

3 統計語言模型

如何衡量一個句子s在文本中出現的可能性- s在文本中出現的機率p(s)搜索引擎

s = w1 w2 w3 ... wm  
p(s) = p(w1 w2 w3 ... wm) 
     = p(w1)*p(w2|w1)*p(w3)*p(w3|w1,w2)*...*p(wm|w1,w2,...,wm-1)

p(w1) 表示詞w1出現的機率  
p(w2|w1) 表示w2出如今w1以後的機率

p(w1)好統計, p(w2|w1) 也還好統計,可是p(wm|w1,w2,...,wm-1)沒法統計!google

馬爾科夫提出了馬爾科夫假設:編碼

假設任意一個詞wi出現的機率只與他前面的詞wi-1有關

則有雲計算

s = w1 w2 w3 ... wm  
p(s) = p(w1 w2 w3 ... wm) 
     = p(w1)*p(w2|w1)*p(w3)*p(w3|w2)*...*p(wm|wm--1)

對應的統計模型是二元模型 bi-gram
假設一個詞的機率又他前面n-1個詞共同決定,則成他爲n元模型 n-gram

4 分詞

不少亞洲語言、中日韓泰等,還有手寫的英語,須要一些手段將詞分開。

  • 詞是表達語義的最小單位
  • 西方拼音語言有明顯的分詞符
  • 亞洲語言詞之間沒有明顯的分界符號
  • 首先用要對句子進行分詞,而後才能作進一步的天然語言處理

分詞方法的演變

  • 早期使用查字典的方式進行分詞,這種方法能解決七八成的分詞問題
  • 後來使用基於統計的方法進行分詞

    衡量分詞結果

  • 人和人分詞的結果都不必定同樣
  • 清華二年級本科生30人,進行人工分詞,結果他們的一致性只有85% ~ 90%
  • 多個統計模型分詞器分詞結果的差別要小於不一樣人之間分詞結果的差別。
  • 分詞準確性很難衡量,不能說這個達到95%準確率的分詞器就好於另外一個90%準確率的分詞器。只能說它與人工分詞的吻合度稍微高一些而已。

詞的粒度和層次

  • 分詞的結果不一樣各有各的道理,最主要的是分詞的粒度不一樣
  • 清華大學, 能夠分紅 清華大學兩個詞 也能夠當成一個詞來看待,都有道理。
  • 通常索引擎當中,小粒度分詞效果更好
  • 機器翻譯、問答系統等通常大粒度分詞效果更好

5 隱含馬爾科夫模型

通訊模型

信息 —— 編碼 ——> 信道 —— 解碼 ——> 信息

  • 語音識別:聽者去猜想說話者要表達的意思。接收端根據收到的信號來還原、理解說話者的意思。說話的時候,大腦是信源,聲帶、空氣就是信道。耳朵就是接收器。
  • 漢英翻譯:說話者講的是漢語,信道傳送的編碼方式是英語,根據接收到的英語,推測說話者要表達的意思,就是機器翻譯。
  • 幾乎全部的天然語言處理問題均可以表達爲編解碼問題。
  • 利用貝葉斯條件機率公式,從收到的消息中,還原信源的真實信息。

    隱含馬爾科夫模型

    模型的具體詳情,這裏不作講述,須要參考其餘資料。
    一個系統,內部有不少個狀態,這些狀態咱們不知道,可是咱們能看到不一樣的觀察序列。狀態之間的轉移有機率,每一個狀態發出哪一個觀察值也有機率。這樣一個模型爲隱含馬爾科夫模型。

    用途:

  • 語音識別 —— 聲學模型
  • 機器翻譯 —— 翻譯模型
  • 拼寫矯正 —— 糾錯模型
  • ...

使用:

  • 給定一個模型,計算輸出特定序列的機率 —— forward-backward算法
  • 給定一個模型和輸出序列,找到機率最大的狀態序列 —— viterbi算法
  • (訓練)有足夠多的觀測數據,估計模型內部參數 —— 有監督:統計; 無監督:EM算法

6 信息的度量和做用

信息熵

信息和不肯定性有直接關係。若是要搞清楚一件很是不肯定的事情,須要大量的信息。若是對事情瞭解比較多,則不須要太多的信息就能把他搞清楚。信息量就等於不肯定性的多少。
香濃提出信息熵的概念,用來衡量信息量的多少。
信息熵的具體數學原理在這很少說,還需參考其餘資料。

信息的做用

  • 獲取相關的信息,可以減小事件的不肯定性,信息量越大,不肯定性越小
  • 不相關的信息不論獲取多少信息,事件的不肯定性是不會有減小的。

互信息

衡量事件的相關性。
在天然語言處理中,用來衡量語義的相關性。

相對熵、交叉熵

用來衡量兩個取值爲整數的函數的類似性。

7 賈裏克尼和現代語言處理

一個傳奇科學家的一輩子的故事。向老師致敬!

8 布爾代數和搜搜引擎

布爾代數

  • 兩個值: 真和假 也是 0 和1
  • 三種運算: 與 或 非

    搜索引擎的索引:

    就像擦字典同樣, 須要先去查到這個字的頁碼,在去這個頁看這個字的解釋。
    就像圖書館找書同樣,須要先查到這本書在哪一個貨架哪一個位置,再去這個位置找到這本書。
    相似,關鍵詞、網頁之間創建起了索引,這種快速拿關鍵詞去查找網頁的技術運用了布爾代數來實現。

9 圖論和網絡爬蟲

圖論

  • 深度優先遍歷
  • 廣度優先遍歷

    網絡爬蟲

    搜索引擎其實是一個大圖,每一個網頁都是一個結點,網頁之間的超連接就是結點之間的弧。
    經過爬蟲,在網頁的鏈接之間來回搜索網頁,也就是對圖進行儘可能徹底的遍歷,來實現了搜索引擎的數據。
    在這裏,若是快速、不重複又完整的遍歷全部網頁是技術關鍵。

10 PageRange-google網頁排名

搜索引擎把什麼搜索結果排在前面?什麼排在後面?
通常來講,一個權威專家說, xxx 和xxx 是該領域的專家, 那麼絕大多數人都會覺着必定是這樣。
若是一個偷雞摸狗的不良少年說xxx是一個專家,可能你們都會笑笑就過去了,並不會信覺得真。
google rank 把全部網頁(結點)和網頁之間的連接(邊)創建起聯繫。 不一樣的邊有不一樣的權重,是對結點優先級的貢獻程度。 權威一點的網站指向來的路徑權重會稍大一些。 經過這樣的數學模型,把網頁的排序搞定了。

簡而言之如上所述,可是實際上要複雜得多。 具體的數學模型這裏不作敘述。

11 網頁查詢的相關性

做者在這個章節講了 TF-IDF做爲一種度量,來衡量查詢的關鍵詞和檢索出網頁的語義相關性。

  • TF: 詞頻, 一個詞在一個網頁中出現的頻率。 該詞出現次數 / 該網頁總詞數
    它反映出一個詞在該網頁中的重要程度。 可是一個實詞每每不及 這些虛詞來的頻率高,而這些虛詞沒什麼實際意義。
  • IDF: 逆文本頻率, log(出現該詞的文檔數/總文檔數) , 衡量了一個詞在是否在全部文檔中都出現,這個詞在一個文檔中是否對核心思想 關鍵詞有貢獻。

12 有限狀態機-地圖和本地搜索

有限狀態機

是一張圖, 有開始狀態和結束狀態還有中間狀態,全部狀態都是結點,狀態之間能轉移,就有通路。這樣一個圖模型,爲有限狀態機。總能通過有限次狀態轉換從起始狀態到終點狀態。

  • 能夠用於文本的地址分析,xx省xx市xx市xx區xx縣xx街道xx號,這種狀態轉移

    圖論中的動態規劃-導航

    城市之間的道路能夠構建一個圖結構,道路的距離能夠定義成圖的邊權。在這種狀況下,導航兩個地點的最短路徑的時候,使用動態規劃算法進行最短路徑搜索。

13 阿米特 辛格 博士

向偉大的老師致敬。這是一位前輩科學家的故事。主要講述他設計和實現的算法又簡單又好用。

14 餘弦定理和新聞分類

新聞的特徵向量

對於一篇新聞中全部的實詞,計算他們的tf-idf,把這些值按照對應的實詞詞彙表的位置依次排序,獲得一個向量。

好比:
詞表總有5個詞: a b c d e
文章x中全部實詞是: a d, 計算a d在文章x中的tf-idf 爲 0.1 0.3
則 x的特徵向量:    [0.1, 0, 0, 0.3, 0]

詞向量間的度量

做者在這裏提出餘弦類似度,用來衡量兩篇文章的中心思想的類似程度
對於兩篇文章的向量 a和b

cos<a,b> = <a, b> / |a| * |b|

分子是兩個向量的內積,分母是兩個向量模長的乘積。

算兩個向量的餘弦的大小,也就是兩個向量夾角的大小。雖然兩篇文章使用的關鍵詞的數量不必定同樣,但若是用詞比例接近,那麼向量方向就幾乎相同。
若是兩個向量同向共線,那麼他們語義徹底相同
若是兩個向量正交,那麼語義無關
若是兩個向量反向共線,那麼語義徹底相反

餘弦類似度進行聚類

可使用餘弦類似度對文本進行聚類或者分類,把新聞分紅不一樣類別。
當類別太多的時候,分類任務很難,可使用自動聚類,把文檔從多到少最後聚類成一個類別,認爲決定哪一個中間結果是最好的聚類結果。

計算餘弦的小技巧

  • 去掉虛詞:能夠在構件文本向量的時候,去掉全文本中全部的虛詞,由於這些詞在全部文章都出現不少次,對文章主題基本沒什麼貢獻。
  • 位置加權:標題、總結部分的實詞明顯對中心思想有貢獻,能夠提高權重。

15 矩陣運算和文本處理

文本和詞彙矩陣

用一個大矩陣來表示詞和文章的關聯性。
假若有N個詞,M篇文章,能夠獲得一個M*N的矩陣:

A = (a_i,_j)_m*_n

其中aij表示第i行第j列元素,也表示第i篇文章在字典中第j個詞的加權詞頻(能夠用tf-idf或其餘的)

對A 進行奇異值分解,爲

Am*n = X_m*_x    B_x*_x   Y_x*_n
  • X 是對詞進行分類的結果。一行表明一個詞,一列表明一個相近的詞類, Xij表示第i個詞和第j個類別的相關程度
  • Y是對文本分類的結果。 每一列對應一個文本,每一行對應一個主題。 Yij表示第j個文本和第i個主題的相關程度。
  • B是詞類和文章類別的相關狀況。Bij表示第i個詞類和第j個文本類別的相關程度。

16 信息指紋

信息指紋

是一種技術手段,在大量文檔中,給每一個文檔一個指紋,全部文檔的指紋長度相同,每一個文檔有惟一的指紋,而且不一樣文檔的指紋相同的機率很是小。
生成指紋的方法:

  • SHA-1
  • MD5
  • ...

信息指紋的用途

  • 集合相同的斷定: 將兩個集合的元素指紋相加,判斷兩個集合的指紋是否相同
  • 斷定集合基本相同: 挑選兩個集合中元素尾數相同的元素的指紋來比較,能夠斷定集合中元素80%~90%的重複
  • 反盜版: 圖像、視頻等賦予指紋,指紋相同的文件,則後產生的文件爲盜版。用在了youtube上傳視頻當中的自動化監測。

指紋的重複性和類似哈西

  • 指紋是可能重複的,根據設計不一樣,重複的機率也不一樣,但能夠把這種重複機率控制在極小
  • 類似哈西:一種特殊的信息指紋

17 密碼學

密碼學的自發時代

  • 古老的密碼學主要是創建一個表,來查明文和暗紋
  • 截獲一些情報,統計一下字母頻率,能夠破解出這種密碼。
  • 好的編碼方法,破譯這應該沒法從密碼中統計出明碼的規律

信息時代的密碼學

介紹了一些算法,在信息論的指導下,加密算法在解密上的難度大大增長。

18 搜索引擎反做弊和搜索結果的權威性

搜索引擎反做弊

做弊:利用不正當手段提升本身網頁的排名
  • 重複關鍵詞
  • 建立多個網頁引用
  • ...
反做弊
  • 對網站的外鏈接創建向量,計算餘弦類似度,發現大量網站餘弦幾乎方向相同,則這些網站都是專門連接別人網站的做弊網站。
  • ...

搜索結果的權威性

  1. 對網頁文本進行句法分析
    • 找到主題短語
    • 找到信息倆元
  2. 利用互信息,找到短語和信息源的相關性
  3. 對主題短語進行聚合
  4. 對網站中網頁進行聚合
    這樣針對不一樣主題和信息源,可以獲得獲得全維度相關矩陣。具體方法請參考原書。

19 數學模型的重要

例舉了古代先哲研究航天問題的一些故事,道出了數學模型的重要性。

  • 一個正確的數學模型在形式上應當很簡單。
  • 一個正確的模型一開始可能不如一個精雕細琢的模型來的準確。
  • 大量準確的數據對研發很重要
  • 正確的模型可能會受到噪聲干擾,顯得不許確,不該該用一種湊合的模型來修補,應該找到噪聲的根源,此時有可能會有重大發現。

20 最大熵模型

最大熵原理

對一個隨機事件機率分佈進行預測的時候,咱們的預測應當知足所有已知條件,而對未知狀況不要作任何主觀的假設。在這種狀況下,機率分佈最均勻,預測的風險也最小。由於這時候機率分佈的信息熵最大,因此叫作最大熵模型。

模型算法具體內容不敘述,請參考其餘資料。

最大熵模型的訓練:

採用通用的迭代算法GIS算法:

  • 假定初始爲均勻分佈
  • 用第n次迭代的模型來估算每一種信息特徵的分佈,若是超過實際,就把參數調小,不然調大。
  • 重複上一步驟直到收斂

後來有科學家提出了改進的gis算法爲 IIS 算法,加快了模型的訓練。

21 拼音輸入法的數學原理

輸入法與編碼

對漢字的編碼氛圍兩部分:

  • 對拼音的編碼 —— 找到對應按鍵的速度
  • 消除歧義性的編碼 —— 找到正確詞的速度
    兩部分都進行優化才能達到快速輸入

拼音轉漢字的算法

  • 有限狀態機
  • 最短路徑搜索
    每當按下一個新拼音字母的時候,計算 對應漢字的最大機率的狀態轉移路徑。

個性化語言建模

  • 不一樣學歷、不一樣地區、層次的人習慣用語都不同
  • 不一樣主題的寫做過程當中主要用語也不同
  • 既要對個體進行語言建模,也要總和通用模型才能達到好的效果
  • 最好的辦法是採用最大熵模型總和兩種模型
  • 用簡單的線性組合能夠簡化最大熵模型的參數,且能達到還不錯的效果。

22 天然語言處理教父馬庫斯

向偉大的前輩致敬。講了這位老前輩在管理和教學上的優秀成果。

23 布隆過濾器

一個快速從集合中查找是否已經存在某元素的算法。

  • 對不一樣元素進行特定編碼放入一個很長的向量中
  • 檢查一個新元素,編碼後得知在向量哪一個位置,進行波爾代數運算就能知道是否在集合中。
  • 布隆過濾器有錯誤識別的可能性。
    算法詳細過程不進行介紹,還請參考其餘資料。

24 馬爾科夫鏈擴展——貝葉斯網絡

  • 馬爾科夫鏈是貝葉斯網的特例,貝葉斯網是馬爾科夫鏈的推廣。
  • 馬爾科夫鏈:描述了一個狀態序列,每一個狀態取決於他前面有限個狀態。
  • 貝葉斯網:每一個狀態只跟與其直接相連的(一個或多個)狀態有關,與他間接相連的狀態沒有直接關係
  • 每一個節點的機率能夠又貝葉斯公式計算
  • 貝葉斯網絡也稱做信念網絡

貝葉斯網絡的具體算法不進行介紹,還請參考其餘材料

貝葉斯網絡在詞分類中的應用

  • 主題模型:
    基於統計的模型分析文本,抽取概念,分析主題。
    概念:取得文本關鍵詞矩陣,轉置90度,進行奇異值分解,或者對每一個詞以文本做爲維度,創建向量,進行聚類,獲得對詞的分類,每一個類叫作概念。
    一個詞能夠屬於多個概念,一個概念能夠屬於多個文檔,這樣創建一個貝葉斯網。

貝葉斯網的訓練

  • EM算法

25 條件隨機場

條件隨機場是聯合機率分佈的有效模型。

文法分析

  • 文法分析指根據根據文法對一個句子進行分析,創建這個句子的文法樹。
  • 有時候也指對一個句子各個成分的語義進行分析,獲得這個句子的語義樹。
  • 之前一直採用基於規則的方法,不斷使用規則向上合併,一旦某一步走岔路了,就要回溯不少步驟。所以這種方法計算複雜度大的不得了。
  • 後有科學家統計出文法規則的機率,在選擇文法規則時,堅持讓被分析的句子的語法樹機率達到最大。一降低低了不少複雜度,準確率也大大提升。
  • 上世紀90年代,科學家們採用條件隨機場大大提升了淺層分析的正確性達到95%,使得文法分析得以應用到不少產品如機器翻譯上。

條件隨機場

在隱含馬爾科夫模型中,觀察值序列中某一個時刻都觀察值xi只與同時刻狀態有關yi,若是xi與該時刻先後的狀態yi-1 yi yi+1 都考慮有關,對應的模型就是條件隨機場。

  • 條件隨機場是對隱含馬爾科夫模型的一種擴展
  • 條件隨機場是一種特殊的機率圖模型
  • 頂點是一個個隨機變量好比x1 y1,邊表示他們的依賴關係,一般是一種機率分佈p(x1,y1)
  • 變量之間要遵循馬爾科夫假設,每一個狀態的轉移機率只取決於相鄰節點
  • 貝葉斯網絡是有向圖,條件隨機場是無向圖
  • 條件隨機場的節點爲狀態機和Y和觀察值集合X,兩個集合的聯合機率分佈P(X,Y)爲模型參數

條件隨機場應用在文法分析

x爲看到的東西,在淺層分析中,他是句子的詞、每一個詞的詞性等。
y爲要推導的東西,語法成分,好比 名詞短語、動詞短語、時間短語等。

條件隨機場其餘方面的應用

曾用於每一個城市犯罪的時間地點預測,去的至關不錯的成果。

26 維特比和維特比算法

講述了科學家維特比的故事。向偉大的科學家致敬。
維特比算法是一種圖中最短路徑的動態規劃搜索算法。
該算法主要用於隱馬爾科夫模型中。

27 指望最大化算法

在這本書中,我看到的EM算法,我感受就是k-means聚類算法,沒有感受到他和kmeans的不一樣。在學校的模式識別課上也學到了EM算法,當時覺着特別難理解,根本理解不上去。在這裏我就不胡亂給出看法了。還望大神多多指點。

  • em算法有可能根據不一樣的初始化值,沒有到達最優勢而收斂在次優勢
  • EM算法分紅E步和M步,兩個步驟迭代直到收斂
    E 計算指望值 —— 輸入數據計算指望
    M 最大化指望值 —— 計算新的模型參數

28 邏輯迴歸和廣告搜索

廣告搜索三階段

  • 第一階段——競價排名,誰給的錢多誰排在前面
    猜測:給得起錢的公司都是賣好東西的大公司。
    結果:不少給大錢的公司是賣殘次品得到高昂利潤的公司。

  • 第二階段——預測用戶點擊廣告的機率
  • 第三階段——進一步進行全局優化

廣告推薦這裏有不少數學問題,不能進行詳細說明。還請參閱其餘材料。

logistic 迴歸

logistic迴歸算法不作介紹,請參考其餘材料。
後來各個公司紛紛採用logistic模型來作本身的廣告點擊率預測模型。

29 google雲計算的基礎

分治算法思想,把大問題逐個分解成小問題,小問題的解合併成大問題的解。
google開發出mapreduce以後,實現了把超大問題放在多個不那麼強悍的計算機上進行分治求解,從而實現了雲計算的基礎。

30 google大腦和人工神經網絡

主要講了google利用神經網絡算法構建出了google大腦,神經網絡算法不進行詳細介紹請參考更多權威資料。

31 數據的重要性

這章中做者講了不少內容 頗有意思,頗有做者的我的觀點,卻也我感到十分認同。

數據的重要性

  • 人類的文明和進步是經過數據收集、處理和總結而達成的。
  • 爲啥有人相信算卦?由於算卦出結果以後,相信的人身邊有其餘真實狀況把算卦結果應驗了!因此這些人對算卦深信不疑。這就是數據
  • 天氣很差出征打仗不順利,這是一代又一代人總結出來的經驗,也是數據的總結。
  • 啥時候更低,啥時候豐收,都是口口相傳的經驗,是數據的提煉

其餘內容就不細說了,總之帶有了做者主觀色彩卻又讓人折服。

我的讀完數學之美的總結。但願對其餘人有幫助,也留給本身從此回來參考。
歡迎披露與指正

相關文章
相關標籤/搜索