數學之美
書評:本書講的是道而不是術,真正的術還要自己細緻的研究下去,目前看的第一遍總結的不是很好,後面再看會繼續完善。
目錄
第10章:pagerank—google的民主表決式網名,網頁排序算法思想
第13章:Google AK-47 的設計者——阿密特·辛格博士—尋求簡單的哲學
第1章:文字和語言VS數字和信息
1.文字和數字
講了一堆古代文字,其實就是爲了引出下面兩個概念用於翻譯
1.信息的冗餘是安全保障
2.古代語料的多樣性(一個句子或者詞多種寫法)對翻譯很有用
2.文字和語言背後的數學
1.古代人講話寬信道,而傳竹筒是窄信道,所以我們古時候就有壓縮這個思想啦
2.聖經有90-100W字,猶太人很認真,但是還是會錯誤,所以出現校驗碼的思想(每個字都是一個數字,每行內相加都是一個固定值,能查出改行是否出錯)
3.語言中的語法肯定會有人不精確,這個無法避免,最後實踐表明,我們要從語言出發,而不是語法,因爲語法我很難完全遵守
3.總結思考
1.通信原理
2.最短編碼(哈夫曼),編碼(文字和數字其實就是一種不同的編碼)
3.解碼規則、語法
4.聚類(相類的東西聚集在一起,類似K-means)
5.校驗 (檢測信息錯誤)
6.語義,語料,雙語對照,機器翻譯
7.利用上下句和多意性消除歧義
以上就是結合故事說明的與數學相關的規律啦
第2章:自然語言處理-規則到統計
回答了2個問題:計算機可以處理自然語言,且方法可以做到與人一樣,所以有研究下去的意義。
- 機器智能
1避免誤區:機器不可能做到人腦那樣學習語言,而是要通過數學模型和統計方法的實現的。
2.兩個路線:語法分析和語義分析,英文通常語法分析,而中文以前通常是語義分析
3.機器分析句子:
1)普通的,主謂賓直接分,很簡單
2)複雜的,可能主謂賓賓補,或者主語有同位語,普通機器根本沒法分析,因爲規則太多,就算規則都已經完備,但是目前計算機也計算不過來呀,所以完全語義規則分析不可行,需要過渡到結合下面的統計
4.規則到統計:語言機器很難用規則來翻譯而是依賴於上下文,甚至常識,漸漸的過度到利用統計翻譯機器語言(所以要打破常規,不要固執於一個思想,就像文章裏面的老科學家的固執,表現出作者想在意識清晰(固執)之前退休)。
2.總結:
自然語言的發展,從語法語義過度到現在的統計,不要墨守成規。
第3章:統計語言模型
1.最簡單的統計模型:
P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)
這樣的方式在計算上比較麻煩,而有了一個較爲偷懶的假設“馬爾科夫假設”,假設後一個詞的出現只與前一個詞相關,公式的形狀如下:
P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)
最終是 P(wi | wi-1) = P(wi-1,wi)/P(wi-1)
這種假設的侷限性在於:“在自然語言中,上下文之間的相關性跨度可能很大,甚至可以從一個段落跨到另一個段落。因此即便再怎麼提高模型的階數,對這種情況也無可奈何.”
2.解決跨度:
目前最高的是google的4元模型,上面是相鄰的兩個相關詞,跨度爲1,如果是跨度爲2,3時即爲3、4元模型,P(wi |w1,w2,········……… wi-1) = P(wi | wi-n+1,wi-n+2, ……….,wi-1)
3.訓練模型:0概率(非平滑)和平滑方法:
1.使用語言模型需要知道模型中所有的條件概率,我們稱之爲模型的參數。通過對語料的統計,得到這些參數的過程稱作模型的訓練。
2.一般來說P(wi | wi-1)是有可能出現0和1概率的,而且很多時候不合理,增加數據量(大數定理就完全能解決,但是不可能完全的大數)雖然可以避免大多數這些情況,但是還是會出現,所以需要解決。這裏使用了古德圖靈估計的方法,把未看見事件分配一個不爲0的概率從而使整體概率平。
第4章:談談中文分詞
1.中文分詞的演變:
一開始是以字典法進行分詞,但是二義性太大啦,漸漸的也由規則演變成基於統計的分詞方法,而且實踐中他也非常有效。(動態規劃和維特比算法),需要注意的是,在不同應用中需要用到不同的分詞器
2.分詞的一致性和粒度、層次問題:
不同的人分詞粒度是不同的,比如北京大學,有些人可能會分爲北京-大學,而有些人直接理解爲一整個詞,這就是分詞粒度,和一致性的問題,所以對於不同層次的次,我們需要挖掘出更多的複合詞,從而完善複合詞詞典。
第5章:隱含馬爾可夫模型
1.通信模型:
語言輸入(s1,s2,s3……sn)編碼―――》語言輸出(o1,o2,o3……on)解碼
2.馬爾可夫鏈:
天氣狀態可假設爲m1,m2,m3,m4之間的轉換
可以用概率來統計,比如有很多天的天氣預報,我們知道m2天爲j次,m3天爲k次,以此類推,最後他們的比值除以總數就是他們的狀態改變概率(其中每個狀態只和前面一個有關)。
3.隱含馬爾可夫模型:
是馬爾可夫的一個拓展,我們根據前面的語音輸入s1,s2,s3……sn――》輸出o1,o2,o3……on,其中s1,s2,s3……sn的概率值我們是能計算的出來的,而o1,o2,o3……on,我們沒法得知,他是一個不可見的狀態,但是我們大概知道一個每個時刻的st會輸出特定的ot,也就是說他們之間有一個特定的函數,從而我們可以推導出ot的大概輸出。
所以通信的解碼可以利用隱含馬爾可夫模型來解決,完全沒想到可以這樣做·······…太牛了!
4.總結:
需要2種算法:訓練算法(鮑姆-韋爾奇算法),解碼算法(維特比算法)之後才能使用隱含馬可夫模型這個工具
第6章:信息的度量和作用
1.信息熵
,也就是,單位爲比特。
2.信息的作用:
信息的作用是用於消除不確定性,自然語言處理的最大問題就是爲了找到相關信息,比如我們根據前面章節可知一元模型,直接找信息,二元模型是根據上下文來找信息,所以可以把1的公式改爲其中x在y的條件下得到的信息概率。
3.互信息:
書裏有個句子,就是bush到底是總統還是灌木叢,這種二義性的問題很難用語法和規則等方法解決,但是根據上下文,如出現美國,華盛頓等字樣就可以知道他是總統啦,如果是土壤,植物就可以證明他是灌木叢的意思,這就是互信息的作用,其中信息的條件熵差異爲:,X,Y完全相關時取值爲1,無關時爲0
4.相對熵:
第7章:賈里尼克和現代語言處理
1.作者和賈里尼克教育觀點:
學習不一定要學的早,晚點學也一樣,因爲錯過了成長的樂趣反而更加不好,作者舉例了一箇中學學500小時,大學只需要100小時就能學完的例子(這裏非常贊同)。
2.大師都只講哪裏不要做,而不是做什麼:
這裏跟第22章的布萊爾的想法很像,就是能根據已經有的經驗快速否定掉一種不太可能的方案,防止別人走進岔路。
3.一個老實人的奇蹟:
說了賈里尼克做了很多大事,同時主要講到他是個很嚴格的人,作者可能認爲他這樣會經常得罪人,然而事實並非如此,所以作者下結論他是個公正的人,儘管他很嚴厲。
第8章 簡單之美 布爾代數和搜索引擎
1搜索引擎三要素:
自動下載儘可能多的網頁;建立快速有效的索引;根據相關性對網頁進行公平準確的排序,其中主要講索引
2.布爾運算:
比如搜索一篇文章爲原子能而不要應用這個詞的文章,先第一次全網搜索有原子能的文章比如10101010111100000····,1爲出現,0爲未出現,這個二進制串非常長,然後在同樣找沒有應用關鍵字的文章如10101111110000000···,然後在把上面兩個進行布爾運算,最後就是結果啦。
3.索引:
根據上面的布爾,的前提就是要每個網頁都有關鍵字的索引,否則會非常慢,同時就算有每個網頁都有關鍵字索引,那這個索引表也會非常大,並且索引表的附加信息也會非常多,所以根據索引和布爾運算得到需要的結果就需要分佈式來運算解決。
第9章:圖論和網絡爬蟲
1.兩種圖遍歷方法:
DFS,BFS
2.網絡爬蟲:
其實就是根據上面的這兩種遍歷方法,遍歷網頁,並下載,但是這種下載量非常大,需要分佈式進行操作
3.歐拉定理:
如果一個圖從頂點出發,每條邊不重複的遍歷一遍回到這個頂點,那麼需要每個頂點的度一定爲偶數
4.網絡爬蟲搜索和下載方式:
網絡爬蟲一般BFS優於DFS,因爲我們一般首選需要各個網站的首頁,再要其其他頁面,所以先廣度搜索儘可能多的不同類型頁面,再把頁面進行廣度搜索,當然不是簡單的廣度搜索,其次是下載方式,因爲下載和搜索是分離的兩個服務器,爲了避免多次握手,所以先把一個下載完再下載另一個,而不是向電路交換一樣一部分一部分的下載,這時就需要一個調度系統管理下載的調度問題。
第10章:pagerank—google的民主表決式網名,網頁排序算法思想
1.pagerang的核心思想:
民主表決,其實就是如果一個網頁被其他很多網頁超鏈接,那麼他普遍被承認和信賴,所以他的排名就高。同時還要分權處理,來自排名高的網頁鏈接權重應該加大,但是這樣的話想知道權重又得知道他們的排名(相當於先有雞還是先有蛋問題),文章講到用了二維矩陣相乘的思想,一開始權重都相同,計算一輪後再迭代一輪,得出二次排名即爲可靠的,由於矩陣計算量非常大,他們使用了稀疏矩陣來解決,具體看書的延展閱讀。
第11章:如何確定網頁和查詢的相關性
1.詞頻率:
如搜索“原子能的應用”在某一個1000詞的網頁中出現2、35、5次,那麼詞頻率分別爲0.002、0.035、0.005,相加就是總的詞頻率
2.去除暫停詞:
一般來說,上面的“的”次出現次數高,且沒什麼意義,一般都不考慮這些詞,即他的詞權重爲0
3.詞權重作用:
上面的“原子能的應用”,我們看到原子能纔是他的中心詞,而應用這個詞很泛,所以應該給他不同的權重
4. 詞權重方法:
詞權重一般使用“逆文本頻率指數”即log(D/Dw),其中D爲所有網頁數,Dw爲命中網頁數,帶入公式後就是這個詞所佔的權重,然後詞頻率和權重交叉相乘後相加就能得到想要對應的TF-IDF值啦。
第12章:地圖和本地搜索的最基本技術—有限狀態機和動態規劃
1.有限狀態機:
從開始狀態到終止狀態,每個狀態的轉變都嚴格匹配,否則不匹配,
由於自然語言比較隨意,很難完全做到準確匹配,這時就要引入基於概率的有限狀態機了,就跟馬爾可夫模型一樣。
2.動態規劃:
1.劃分子問題2.確定動態規劃函數3.計算後填入表格4.重複操作
3.有限狀態傳感器:
WFST模型他就是在有限狀態機下加入不同的概率走勢,也就是說他跟我們之前學的二元模型是類似的,每一個二元模型都能用有限狀態傳感器描述。
第13章:Google AK-47 的設計者——阿密特·辛格博士—尋求簡單的哲學
1.簡單的哲學思想:
做事可以簡單解決就先解決,不一定完全的追尋效益問題,就比如文章所說的,作者寫了箇中文搜索算法,雖然速度快,但是消耗內存大,辛格博士他建議用擬合函數代替訓練模型,但是效率會降低很多,作者一開始不贊同,但是他還是這麼做了,最後證明出先簡單解決問題,提供給用戶使用,後面再繼續優化纔是最好的,而不應該一開始就急於求成,做到最好那種。
第14章:餘弦定理和新聞分類
1.新聞分類思想:
使用了前面的TF-IDF思想,確定新聞間的相關性,然後進行分類
2.具體步驟:
1)我們對於一個詞表比如有64000個詞,進行編號。
2)某一篇文章進行TF-IDF值計算(方法看第11章)
3)重複上面步奏,把其他文章進行運算計算其TF-IDF值,封裝成向量。
4)把上面的文章兩兩進行餘弦運算:
因爲我們知道每個文本的詞數量不一樣,可能有的10000詞,有的100詞,直接對比TF值是不合理的,因爲對應的向量長度不一,但是他們的方向是可能一致的,所以只需要計算其兩個向量的夾角就可以知道兩篇新聞是否相類似了。
5)分類,根據字典一樣把某一新聞歸類到某一處,直接餘弦相似度運算即可分類了
但是有一個問題,就是怎麼知道有多少個類別呢?
- 手動寫,麻煩,容易錯誤
- 自動生成:自底向上不斷合併
3.優化方法
1.可以先把每個文章的詞頻率計算好來封存,兩兩餘弦計算時直接提取即可
2.餘弦內積時,由於大量的元素爲0,所以我們只要計算非零元素。
3.刪除虛詞的計算,比如‘的’、‘地’,這些詞一般數量非0但是又是一種無用的干擾項, 同時還會影響權重,所以去除後計算會更合理更快
4.補充:位置加權,比如文章開頭和結尾的權重應該高一些,也就是文章開頭和結尾的詞權重可以提高後再計算,類似TF-IDF模型。
第15章:矩陣運算和文本處理中的兩個分類問題
1.本章解決一個問題:
如果使用第十四章中引入的向量距離的方法,對數以億計的網頁進行距離計算,計算量過於巨大,而引入了矩陣的運算來計算新聞之間的相似性,一次性把多個新聞的相似性計算出來。利用了矩陣運算中的奇異值分解。(有沒有聯想到《線性代數》中矩陣之間向量的線性相關的運算?)
這種方式,將多個新聞的向量組成的矩陣分解爲三個小矩陣相乘,使得計算存儲量和計算量小了三個數量級以上。
2.步驟:
1)有n個詞,M篇文章,形成M*N矩陣,其中aij代表第j個詞在第i篇文章(行詞列文章)出現的 加權詞頻(比如TF-IDF值)
2)奇異值分解,把上面的A大矩陣轉化爲3個小矩陣相乘
其中,比如X矩陣中每行代表一個詞(行)在詞類(列)(語義相近的詞類)的相關性
Y矩陣中每列對應一個文本,每行代表一個主題,即每一個主題(行)在文本(列)的相關性
B矩陣中即爲每個詞類(行)對應的主題(列)相關性。
3.效果:
只要對新聞關聯性矩陣進行一次奇異值分解,既可同時完成近義詞分類和文章的分類。
4.計算方法:
龐大的網頁量,使得計算量非常大,因此需要很多的計算機並行處理。
第16章:信息指紋及其應用
1.信息指紋:
能唯一代替某一網絡信息,比如之前的網頁hash表存網址太浪費內存啦,直接用僞隨機數代替該表中的地址能節省很多內存空間。同時網絡傳輸也需要加密,比如MD5不能逆向破解就是一個很好的加密方式。
2.判斷兩集合相同:
1)一一比較,O(N2),太慢
2)兩個集合先排序,再一一比較O(logN),相對慢
3)先把一個集合放到hash表,再一一比較O(N)快,但是消耗多了N個內存
4)直接用信息指紋,把每個集合內的元素都相加再比較即可(不需要排序就可以比較)
3.判斷兩集合基本相同:
1)比如用兩個賬號發送垃圾郵件,郵件大體相同,個別不同,所以我們可以抽取比如發送尾號爲24的郵件,然後再用信息指紋的第四種方法就好啦(基本能鑑別出來)。
2)網頁或者文章對比,可以先用IDF方法鑑別詞頻率(去除掉只出現一次或者少次的噪音詞),然後再抽取關鍵字進行信息指紋識別就好啦,如果是文章的話把文章切成一小段一小段的,然後一樣IDF方法選取特徵詞進行信息指紋鑑別即可。
4.Youtube反盜版:
他其實就是拿去視頻的關鍵幀進行信息指紋對比,從而判斷出哪些是盜版的,同時把廣告收益給商家,而盜版的沒收益,所以盜版的就少啦。
第17章:由電視劇《暗算》所想到的—密碼學
1.公開密鑰加密步驟:
1)隨便選一個密碼轉爲3位的ASCII碼數字
2)加密:
1.找2個很大的數P、Q然後計算N=P×Q M=(P-1)×(Q-1)
2..找一個和M互素的整數E,即M和E除了1沒有公約數
3.找一個整數D,使得(E×D)%M==1
加密成功後D就是私鑰(解密),E是公鑰(加密),N是公開的
2.總結:
信息論雖然能讓我們知道信息越多,就能消除更多的不確定性從而解密,但是密碼學就是讓我們無論知道多少信息,都無法消除不確定因素從而解密
第18章:閃光的不一定是金子 — 談談搜索引擎
1.網頁作弊:
就是根據搜索引擎的算法,得到更高的網站排名
2.兩種作弊方式:
作弊1:比如可以提高網站相關詞頻數,然後隱蔽,這樣就能得到較高的TF-IDF值啦,
解決1:對異常高的網頁做一下分析就可以,比較簡單
作弊2:出賣網站的出鏈接,由於我們前面章節知道網站被越多其他網站引用就會得到越高的排名
解決2:出鏈的網站到其他網站數目可以作爲一個向量,也是這個網站固有的特徵,既然是向量,就可以用餘弦定理計算相似度,有些網站出鏈量相似度幾乎爲1,此時就是可以知道這些是賣鏈接的網站啦。
3.總結:
提高網站質量纔是關鍵。
第19章:談談數學模型的重要性
- 一個正確的數學模型應當在形式上是簡單的。(托勒密的模型顯然太複雜。)
- 一個正確的模型在它開始的時候可能還不如一個精雕細琢過的錯誤的模型來的準確, 但是如果我們認定大方向是對的,就應該堅持下去。(日心說開始並沒有地心說準確。)
- 大量準確的數據對研發很重要。
- 正確的模型也可能受噪音干擾,而顯得不準確;這時我們不應該用一種湊合的修正方法來彌補它,而是要找到噪音的根源,這也許能通往重大發現
第20章:不要把雞蛋放到一個籃子裏—最大熵
1.最大熵原理:
說白了,就是要保留全部的不確定性,將風險降到最小。
“不要把雞蛋放在一個籃子裏,是最大熵原理的一種樸素說法。”
2.最大熵原理指出:
當我們需要對一個隨機事件的概率分佈進行預測時,我們的預測應當滿足全部已知的條件,而對未知的情況不要做任何主觀假設。(不做主觀假設這 點很重要。)
- 最大熵模型存在的【證明】:匈牙利著名數學家、信息論最高獎香農獎得主希薩(Csiszar)證明,對任何一組【不自相矛盾】的信息,這個最大熵模型不僅存在,而且是唯一的。而且它們都有同一個非常簡單的形式 -- 指數函數。
- 書提到的最大熵原理【應用】:
- 拼音和漢字的轉換:1.根據語言模型:wang-xiao-bo 可以轉換爲:王小波 和 王曉波兩種情況。2.根據主題,王小波是作家《黃金時代》的作者,而王曉波是研究兩岸關係的學者。根據這兩種信息創建一個最大熵模型
最大熵模型應用於信息處理優勢的第一次驗證:
應用最大熵原理,創建了當時世界上最好的詞性標識系統和句法分析器。其做法即爲使用最大熵模型成功的將上下文信息、詞性、名詞、動詞、形容詞等句子成分、主謂賓統一了起來。
-
- 2000年以後,句法分析、語言模型和機器翻譯,都開始使用最大熵模型。
- 對沖基金使用最大熵。
孿生兄弟的達拉皮垂他們在九十年代初賈里尼克離開 IBM 後,也退出了學術界,而到在金融界大顯身手。他們兩人和很多 IBM 語音識別的同事一同到了一家當時還不大,但現在是世界上最成功對沖基金(hedge fund)公司----文藝復興技術公司 (Renaissance Technologies)。我們知道,決定股票漲落的因素可能有幾十甚至上百種,而最大熵方法恰恰能找到一個同時滿足成千上萬種不同條件的模型。達拉皮 垂兄弟等科學家在那裏,用於最大熵模型和其他一些先進的數學工具對股票預測,獲得了巨大的成功。
來源: http://www.cnblogs.com/KevinYang/archive/2009/02/01/1381798.html
- 最大熵模型的【訓練】:
- 計算量龐大的【GIS】:GIS 最早是由 Darroch 和 Ratcliff 在七十年代提出的。
GIS 算法每次迭代的時間都很長,需要迭代很多次才能收斂,而且不太穩定,即使在 64 位計算機上都會出現溢出。因此,在實際應用中很少有人真正使用 GIS。大家只是通過它來了解最大熵模型的算法。
- 計算量龐大的【GIS】:GIS 最早是由 Darroch 和 Ratcliff 在七十年代提出的。
3.改進的迭代算法【IIS】:
八十年代,孿生兄弟的達拉皮垂(Della Pietra)在 IBM 對 GIS 算法進行了兩方面的改進,提出了改進迭代算法 IIS(improved iterative scaling)這使得最大熵模型的訓練時間縮短了一到兩個數量級。這樣最大熵模型纔有可能變得實用。即使如此,在當時也只有 IBM 有條件是用最大熵模型。
4.吳軍的改改進和他的論文:(鏈接在此)
發現一種數學變換,可以將大部分最大熵模型的訓練時間在 IIS 的基礎上減少兩個數量級
第21章:拼音輸入法的數學原理
1.漢字輸入法的的快慢:
由擊鍵次數乘以尋找這個鍵所需要的時間
2.編碼速度的快慢:
由拼音編碼和消除歧義性編碼(數字鍵盤)快慢決定
3.雙拼到全拼的轉變:
前面雙拼他雖然減少了擊鍵次數,但是別人消除歧義以及擊鍵的思考的時間都變長了,不利於學習以及速度總體慢,後來出現了全拼(也就是我們現在所用的拼音輸入),雖然擊鍵次數變多了,但是學習成本和思考成本降低,同時容錯率也提高了,所以速度很快
4.主要引入的數學原理是:
- 中文輸入法的擊鍵次數的數學原理
【香農第一定理】指出:對於一個信息,任何【編碼長度】都不小於它的【信息熵】。因此,上面的平均編碼長度的最小值就是漢字的信息熵,任何輸入法不能突破信息熵給定的極限。
【漢字信息熵的計算】在GB2312中一共有6700左右個常用漢字。
a. 假定每個漢字出現的相對頻率爲:
b. 編碼長度
c. 平均編碼長度:
d. 得出漢字的信息熵: 不考慮上下文的關係,信息熵的大小大約爲【10bit】
e. 單個字母代表的信息熵:假定輸入法只能要我26個字母來輸入,那麼每個字母可以代表log26 = 4.7 比特的信息,也就是說,一個漢字的輸入,平均需要10/4.7 約爲2.1 次擊鍵。
f.組成詞後信息熵減少: 如果把漢字組成詞組,再以詞爲單位統計信息熵,那麼每個漢字的平均信息熵就會減少。如果不考慮上下文關係,漢字的信息熵大約是8bit,以詞爲單位每個漢字平均只需要8/4.7 = 1.7次擊鍵
g. 考慮上下文信息信息熵進一步減少:如果考慮上下文關係對漢語建立一個基於詞的統計語言模型,可以將漢字的信息熵降低到6bit左右。此時平均需要的擊鍵次數約爲:6/4.7 1.3次擊鍵 。如果一種輸入法能夠做到這一點那麼漢字的輸入就比英文快多了。(我覺得手機的9宮格漢字輸入法挺給力的。)
【全拼輸入法的信息熵】漢語全拼平均長度爲2.98,只要基於上下文能徹底就解決一音多字的問題,平均每個漢字的輸入應該在3個鍵以內。可以實現漢字拼音輸入一部分後提示出相應的漢字。
如何利用上下文呢?
思考總結:現在的輸入法需要提升就是看誰能建立更好的語言模型以及轉成漢字的算法。
- 拼音轉漢字的動態規劃算法:
【輸入法做的事情】是:按照輸入的序列,查找該條件下的句子。
圖中 y 代表輸入的拼音字符串,w代表輸出候選漢字。每一個句子和途中的一條路徑對應。
拼音輸入法的問題,變成了一個尋找最優路徑的問題。
【最優路徑】 和計算城市間的最優路徑不同,其中的距離是實際上的一個點到另一個點的距離,而在拼音輸入法的路徑中,兩個候選詞之間的距離是w伸向下一級w的概率。
實際上輸入法作出的計算是這樣,輸入一串拼音字母字符,軟件通過模型計算出與詞拼音對應的出現概率最大的漢字候選結果。
3.訓練一個用戶特定模型:
大多數情況下M1,模型會比M0模型要好,但是如果輸入偏僻字的時候反而M0模型比較好,
根據最大熵定理,我們都要把各種情況綜合在一起纔是最好的,同時這個模型訓練時間也
比較長,所以下面引出了線性插入模型:
第22章:自然語言處理的教父馬庫斯
1.馬庫斯:
1)他第一個考慮到了語料庫的重要性,也第一個做出了很多LDC語料庫
2)他不限制學生方向,而是根據獨特的眼光給予支持
2.柯林斯:
數學之美一書都是講簡單爲主,但是柯林斯卻是個特例,他不是爲了一個理論而研究,而是爲了做到極致,比如他做的文法分析器。
3.布萊爾:
跟作者一樣,都是以簡單爲美,雖然不能立刻知道某事該怎麼做,但是能立刻否定掉一種不可能的方案,從而尋求簡單的方法。代表算法:基於變換規則的機器學習算法:
第23章:布隆過濾器
1.提出前提:
之前我們講過垃圾郵件的識別,從一一對應到hash,這兩種都不是很好,所以後來作者推薦用了信息指紋這個東西,也就是一個僞隨機數,其中這個隨機數是否出現過就需要用到布隆過濾器啦
2.步驟:
先建立一個16E位的二進制數組,全部置爲0,對每一個郵件用隨機數生成器(F1,F2,F3```F8)生成8位不同的信息指紋(f1,f2,·······…f8),然後把這8位隨機數全部置爲1後映射到剛纔的16E位數去,當第二次又有同一個郵件時以同樣的方式映射會發現映射的位置都置爲1了,此時就可以判斷該郵件出現過啦
但是該模型有一定的缺陷,雖然很小的概率會識別錯誤,但是還是有可能識別錯誤的,此時可以建立一個白名單來解決
第24章:馬爾可夫鏈的擴展 — 貝葉斯網絡
1.貝葉斯網絡:
假定馬爾可夫鏈成立,也就是說每個狀態和和他直接相連的狀態有關,和間接狀態沒有關係,那麼他就是貝葉斯網絡,同時圖中的弧可以有權重,其中A到C可能不是直接相關,但是不代表他沒沒有關係,他們可能可以由一個間接狀態來關聯,比如B
具體內容他就是利用貝葉斯公式計算出每一個狀態到另外一個狀態轉移的概率,具體可以看書本有個例子,不過需要一點概率基礎,貝葉斯網絡其實就是馬爾可夫鏈的一個拓展,看似簡單,但是實現起來非常複雜。
第25章:條件隨機場和句法分析
1.條件隨機場:
他其實是一個隱含馬爾可夫的拓展,我們假定x1、x2、x3爲觀測值,y1、y2、y3表示隱含的序列,其中x2的狀態由y2的狀態決定,和y1、y3無關,但是實際中他們很有可能是有關的,如果把y1、y2、y3都考慮進來,那麼他就是一個條件隨機場啦,其中條件隨機場還是遵循隱含馬爾可夫鏈的原則的,比如y1、y2、y3還是一個馬爾可夫鏈,x1和y1之間的關係是一個概率關係,跟前面一樣。其中他與貝葉斯網絡的區別是條件隨機場是一個無向圖,而貝葉斯是個有向圖
2.條件隨機場的語句淺層分析:
這裏看的不是太懂,後續看懂了再更新
第26章:維特比和他的維特比算法
1.維特比算法的提出:
我們知道最短路徑是由動態規劃解決的,而籬笆網絡有向圖的最短路徑則是由維特比算法來解決的,所以隱含馬爾可夫算法裏面的解碼都可以用它來解決。
2.維特比算法詳解:
這個算法的好處就在於把運算的複雜度從10^16降到了O(N*D²)(D寬度(列),N網長度(行))10^3,降低了非常多。
第27章:再談文本自動分類問題 — 期望最大化
1.文本自動收斂分類:
假如有N個文本對應N個向量V1、V2……Vn,希望把他分到K個類中,這K個類的中心是C1、C2………Ck,分類步驟如下:
這樣重複下去就可以自動分類啦。
2.期望最大化和收斂必然性:
如果距離函數設計的好,那麼d(各個文本向量到類中心平均距離)更小,而D(各個類中心的距離)更大,即從而多次迭代後得到最優分類。
在機器學習中,這D和d可以分爲2個過程:
其中根據現有模型計算結果爲期望(E),通過模型多次計算(多次訓練)最大化期望(M),所以叫做EM算法。
第28章:邏輯迴歸和搜索廣告
1.網站廣告問題:
百度和雅虎就不說了,誰出錢多就誰的廣告在前面,這裏說google的廣告競爭問題,一開始作者提出可以由用戶搜索數,和廣告點擊數的比率來看該廣告是否合理:
但實際上並不那麼簡單,1,新廣告沒數據,不合理2,很有可能數據不足,比如只有各廣告只被查詢過一次,不能說點擊過3就比2次的廣告好。3,放在第一位的廣告明顯比第二位的好,排名自然高。
2.邏輯迴歸模型:
其中裏面的
Xi爲影響變量,比如廣告展現位置,展現時間等等
Βi爲爲一個特殊的參數由人工神經網絡訓練未來的參數
第29章:各個擊破算法和google 雲計算的基礎
1.分治法:
把一個大問題分解成若干個小問題,解決各個小問題,合併各小問題的解
2.從分治法到MapReduce:
文章先引入了歸併排序的思想,其實就是分治法的思想,把一個待排序的數組進行分割後排序,然後排序後再合併就完成了,然後開始講解一個大矩陣的相乘,比如:
,如果A和B非常大時,一個計算機是計算不下來的,所以引出了雲計算(分治法,MapReduce)的思想,先把A按行分割成N/10份,把B按列分成N/10份,然後兩兩相乘
最後兩兩相乘就能得到各自的解,然後合併解即可,這就是把一個把問題分解到多個服務器上計算,從而節省了很多時間的方法。