读《数学之美》有感
但是真正做好一件事沒有捷徑,需要一萬小時的專業(yè)訓練和努力。 ———— 《數(shù)學之美》
<1>關于搜索引擎
1.搜索引擎的組成
在《數(shù)學之美》中,吳軍博士把搜索引擎的關鍵提煉成了3個方面:
1.下載 ———— 通過網(wǎng)路爬蟲實現(xiàn) 。搜素引擎的網(wǎng)絡爬蟲問題應該定義成“如何在有限的時間內(nèi)最多地爬下最重要的網(wǎng)頁”。首先,各個網(wǎng)站中最重要的網(wǎng)頁肯定是首頁,所以在這個前提下,廣度搜索(BFS)明顯優(yōu)于深度搜索(DFS)。而實際的網(wǎng)絡爬蟲都是由成千上萬的服務器組成的,對于一個網(wǎng)站,需要一次性把這個網(wǎng)站的內(nèi)容都下載下來,而不是先下載5%,然后到第二輪再繼續(xù)下來,所以這個就有點類似于(DFS)。這個的原因和爬蟲的分布式結構以及網(wǎng)絡通信的握手成功成本有關。同時,爬蟲對網(wǎng)頁遍歷的次序不是簡單的BFS或者DFS,所以就需要一個相對復雜的下載優(yōu)先級排序的方法,這個管理優(yōu)先級的子系統(tǒng)一般成為調(diào)度系統(tǒng)。
2.索引 ———— 搜索引擎能在極短的時間內(nèi)找到成千上萬的搜索結果,是通過索引的方法來實現(xiàn)的。最簡單的索引 就是對于一個確定的關鍵字,用01來表示一篇文章或者一個網(wǎng)頁是否含有這個關鍵字,但是這樣有多少個網(wǎng)頁或者多少篇文章,這個二進制數(shù)就有多少位。雖然計算機處理二進制數(shù)的速度很快,但是由于這個索引十分龐大,這就需要把索引分成很多份,分別存儲在不同的服務器中。沒當接受一個查詢的時候,這個查詢就被分發(fā)到這些不同的服務器上,并行的處理請求,然后再把結果發(fā)送到主服務器中進行合并處理,最后返回給用戶。
3.排序 ————PageRank算法 。Google的PageRanke算法由佩奇和布林發(fā)明。這個算法的思想 在于民主表決,Y的網(wǎng)頁排名pagerank來源于指向這個網(wǎng)頁的所有網(wǎng)頁X1、X2...Xk的權重之和。其中佩奇認為,X1、X2...Xk的權重分別是多少,這個取決去這些網(wǎng)頁本身的排名。但是這就成為了一個先有雞,還是先有蛋的問題。而解決這個問題的是布林,他把這個問題變成了一個二維矩陣相乘的問題,并且用迭代的方法解決了這個問題。他們先假定所有網(wǎng)頁的排名都是一樣的,并且根據(jù)這個初始值進行不斷的迭代。從理論上證明,無論初始值如何選取,這種算法都保證了網(wǎng)頁排名的估計值能收斂到排名的真實值,而且這個排名是沒有任何人工干預的。在理論上,這個二維矩陣的元素有網(wǎng)頁數(shù)量的平方那么多,計算量是非常龐大的,而佩奇和布林利用稀疏矩陣計算的技巧,大大簡化了計算量,實現(xiàn)了這個網(wǎng)頁排名算法。計算量仍然十分龐大,所以Google的工程師發(fā)明了MapReduce這個并行計算工具,使得PageRank的并行計算完全自動化。
2.搜索技術——有限狀態(tài)機
在《數(shù)學之美》中還提到了本地搜索的最基本技術——有限狀態(tài)機。
舉一個例子就是要搜索一個地址,這就需要判斷一個地址的正確性,同時非常準確地提煉出相應的地理信息(省、市、街道等)。這就就需要一個有限狀態(tài)機來完成,有限狀態(tài)機是一個特殊的有向圖,有一個開始狀態(tài)和一個終止狀態(tài),就比如開始是“XX省”,然后一個箭頭既可以指向“XX市”,也可以指向“XX縣”,但是不能是從“XX市”指向“XX省”,這里面具體的實現(xiàn)算法書中也并沒有提到。
3.搜索中的最短路徑問題
在這之后還提到了一個就是全球導航和動態(tài)規(guī)劃(Dynamic Programming)的問題。就是要找出兩個點之間的最短距離問題。當然這個最短距離是帶有權重的,比如說花費的時間,消耗的金錢等等。
舉一個例子就是從北京到廣州的最短路徑,這時候可以把北京—>廣州的最短路徑拆成從北京—>石家莊和石家莊—>廣州這兩條路徑,當這兩條路徑都是最短的時候,整體的路徑就都是最短的。但是可能會有疑問就是北京—>廣州的路徑就一定經(jīng)過石家莊嗎?這個問題可以變成圖論中的最小割問題(吐槽圖論老師1萬字省略。。。),沒學過的可以想像一下,把你雙手的五個手指張開,并左右手按手指順序把手指尖碰在一起,這時從你左手臂到右手臂的這條路徑中,肯定都會經(jīng)過大拇指、食指、中指、無名指、小拇指之中的其中一個,都由這五個手指組成的點或者邊就是圖論里面的最小割集或者最小邊集(比喻不是很恰當)。這時候打個比方,北京到廣州的最短路徑,就肯定會經(jīng)過石家莊、天津、太原、鄭州和武漢這五個城市中的其中一個,然后繼續(xù)下去尋找局部的最短路徑,就可以大大降低最短路徑的計算復雜度。
<2>TF-IDF、聚類問題
1.TF-IDF是什么
在《數(shù)學之美》中提到了如何確定一個網(wǎng)頁和某個查詢的相關性,而這個搜索關鍵詞權重的科學衡量指標就是TF-IDF(Term-frequency/Inverse Document Frequency),即詞頻/逆文本頻率指數(shù)。
其中TF指的是關鍵詞的頻率,比如說一個“原子能”的詞在一個共有1000個詞的網(wǎng)頁上出現(xiàn)了2詞,那么“原子能”的詞頻就是0.002,所以是多個詞組成的關鍵詞,就是把這些關鍵詞的TF相加
其中IDF指的是就是關鍵詞的權重,比如“原子能的應用”中,“原子能”的權重要大于“的”和“應用”的權重,公式為log(D/Dw),其中D是全部網(wǎng)頁的個數(shù),如果“的”在所有網(wǎng)頁中都出現(xiàn)了的話,那么“的”的權重就是log(1)=0,這樣就能對于不同的關鍵詞有不同的權重。
2.新聞分類(聚類問題)和余弦相似度
除了搜索中評價網(wǎng)頁和某個查詢的相關性中用到TF-IDF,在新聞的分類,或者說聚類問題中,也用到了TF-IDF。把某一則新聞中所有的詞算出的TF-IDF,按它的在詞匯表中出現(xiàn)順序進行排列,就可以得到一個向量。比如說詞匯表共有64000個詞,那么沒有出現(xiàn)的詞的TF-IDF就是0,而這個向量就是這一則新聞的特征向量(Feature Vector)。這時候,就可以利用余弦定理來計算兩則新聞之間的夾角,而這個余弦的值就是兩則新聞的相關度,即余弦相似性。越小表示兩則新聞越相關,就越可以分在一類;如果算出來夾角是90度,那么就說明這兩則新聞完全不相關,余弦公式:
3.奇異值(SVD)分解
這樣就可以根據(jù)余弦相似性的值設定閾值來對新聞進行分類。然而在計算的過程中,由于計算量很大,這是需要借助矩陣論的知識對這些計算量進行優(yōu)化。在成千上萬的新聞和百萬的詞匯表的計算中(比如說矩陣的每一一行代表詞匯表中的每一個詞,矩陣的每一列代表一則新聞),要計算每一列新聞中兩兩之間的余弦相似度,就要進行奇異值分解(SVD分解),如果有N個詞和M篇文章,這就是一個MN的矩陣,此時M=1000000,N=500000,就是100萬50萬,總共5000億個元素。通過SVD分解,就能把這個大矩陣分解成一個100萬100的矩陣X,一個100100的矩陣B,和一個100*50萬的矩陣Y,這三個矩陣相乘的結果。這三個矩陣的元素共和為不超過1.5億,計算量和存儲量會大大減小。而這三個分解出來的矩陣也有非常清晰的物理含義,舉個例子:
—————————A矩陣——————————— X矩陣 ————— B矩陣 —————— Y矩陣
其中X矩陣的每一行表示一個詞,每一列表示一個語義相近的詞類
其中B矩陣表示詞的類和文章的類之間的相關性
其中Y矩陣是對文本的分類結果,每一行對應一個主題,每一列對應一個文本
4.相似哈希和信息指紋
當然余弦相似度還可以用于對比信息指紋的重復性,《數(shù)學之美》中還提到了相似哈希這個特殊的信息指紋,具體的計算方法可以去看《數(shù)學之美》P150頁。
相似哈希的特點就是,如果兩個網(wǎng)頁的相似哈希相差越小,這兩個網(wǎng)頁的相似性越高;如果兩個網(wǎng)頁相同,則相似哈希肯定相同;如果少數(shù)權重小的詞不同,其余的都相同,相似哈希也會幾乎相同。之所以看到相似哈希會有印象,也是由于上次參加的某個算法比賽中對作弊的代碼進行篩選的時候,主辦方就用的相似哈希這個評價標準,所以對于常見的跨語言作弊、替換變量名作弊的方法都能進行有效的識別。
5.K-mean算法
《數(shù)學之美》中提到聚類問題的時候,還提到了期望最大化算法,也就是K-means算法。
K-means算法是隨機地挑出出一些類的中心,然后來優(yōu)化這些中心,使得它們和真實的聚類中心盡可能一致。假設有N篇文章,我們想把它們分成K類,這時我們可以不知道K具體是多少,最終分成多少類就分成多少類。
K-means算法的步驟是:
1.隨機挑選K個點作為起始的中心;
2.計算所有點到這些聚類中心的距離(使用歐幾里德公式),將這些點歸到最近的一類中;
3.重新計算每一類的中心;
4.迭代,最終偏移非常小的時候得到收斂。
這一類算法的過程中,根據(jù)現(xiàn)有的模型,計算各個觀測數(shù)據(jù)輸入到模型中的計算結果,這個過程成為期望值計算過程,即E過程;接下來,重新計算模型參數(shù),以最大化期望值,這一過程稱為最大化的成果,即M過程。這一類算法都稱為EM算法。
<3>關于最大熵原理
最大熵原理指出,需要對一個隨機事件的概率分布進行預測的時候,我們的預測應當滿足全部已知的條件,而對未知的情況不要做任何的主觀假設。在這種情況下,概率分布最均勻,預測的風險最小。因為這時概率分布的信息熵最大,所以人們稱這種模型叫做“最大熵模型”。即“不要把所有的雞蛋放在一個籃子里”,因為當我們遇到不確定性的時候,就要保留各種可能性。
<4>關于機器學習和自然語言處理
1.圖靈和人工智能
機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或者實現(xiàn)人類的學習,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的學科。而最早提出機器智能設想的是計算機科學之父—————阿蘭·圖靈(Alan Turing)。他在1950年的《思想》雜志上發(fā)表了一篇題為“計算的機器和智能”的論文中,提出了一種驗證機器是否有智能的方法:讓人和機器進行交流,如果人無法判斷自己交流的對象是人還是機器的時候,就說明這個機器有了智能。后來這種方法被成為圖靈測試(Turning Test)。
2.自然語言處理的歷史
而在自然語言的機器處理(自然語言處理)的歷史中,可以分成兩個階段:
1.一個是20世紀50年代到70年代,也就是從大約1950-1970的這段時間,全世界的科學家對計算機處理自然語言的認識都被自己局限在人類學習語言的方式上,就是用計算機模擬人腦。后面吳軍博士提到了這段時間對自然語言處理的研究主要是基于規(guī)則的方式,想讓計算機完成翻譯或者語音識別這樣只有人類才能完成的事情,就必須先讓計算機理解自然語言,即讓計算機有類似人類這樣的智能。比如學習語言的過程中要學習語法規(guī)則,詞性和構詞法等等,而這些規(guī)則有很容易用算法來描述,所以在當時大家對基于規(guī)則的自然語言處理很有信心。但是實際上,當用算法來描述這些規(guī)則的時候,所形成的語法分析樹十分的復雜,而且規(guī)則的數(shù)量眾多,耗時且有時會互相矛盾。所以在20世紀70時代,基于規(guī)則的句法分析走到了盡頭,也使得這段時間的成果近乎為零。
2.另一個階段是20世紀70年代后,一些先驅認識到基于數(shù)學模型和統(tǒng)計的方法才是正確的道路,所以自然語言處理進入了第二個階段。這種方式的思想在于統(tǒng)計,即大多數(shù)樣本怎么做。
舉個例子就是:pen有兩個意思,一個意思是鋼筆,而另一個意思是圍欄。對于兩個句子“The pen is in the box.”和“The box is in the pen.”來說,正確的翻譯應該是“鋼筆在盒子里。”和“盒子在圍欄里。”,因為正常來說,盒子是不可能在鋼筆里的。
在20世紀70年代,給予統(tǒng)計的方法的核心模型是通信系統(tǒng)加隱含馬爾可夫模型。這個系統(tǒng)的輸入和輸出都是一維的符號序列,而且保持原有的次序。最高獲得成功的是語音識別是如此,后來第二個獲得成功的此詞性分析也是如此。而在句法分析中,輸入的是一維的句子,輸出的是二維的分析樹;在機器翻譯中,雖然輸出的依然是一維的句子,但是次序會有很大的變化,所以上述的方法就不太管用了。1988年,IBM的彼得·布朗(Peter Brown)等人提出了基于統(tǒng)計的機器翻譯方法,框架是正確的,但是由于缺乏足夠的統(tǒng)計數(shù)據(jù)和沒有足夠強大的模型來解決不同語言語序顛倒的問題,所以實際的效果很差,后來這些人去了文藝復興公司發(fā)財去了。而只有出現(xiàn)了基于有向圖的統(tǒng)計模型才能很好的解決復雜的句法分析這個問題。
<5>提到的計算機領域的科學家
1.阿蘭·圖靈(Alan Turing)————計算機科學之父
2.約翰·麥卡錫(John McCarthy)————圖靈獎獲得者,發(fā)明Lisp語言,斯坦福大學人工智能實驗室的主任
3.馬文·明斯基(Marvin Minsky)————圖靈獎獲得者,創(chuàng)建麻省理工學院(MIT)人工智能實驗室
4.納撒尼爾·羅切斯特(Nathaniel Rochester)————IBM的杰出計算機設計師
以上四人于1956年在達特茅斯學院舉辦的夏季人工智能研討會是計算機科學史上的一座里程碑,參加會議的包括下面兩位,總共10人。討論了當時計算機科學尚未解決的問題,包括人工智能、自然語言處理和神經(jīng)網(wǎng)絡等。
5.赫伯特·西蒙(Herbert Simon)————圖靈獎獲得者,同時還是美國管理學家和社會科學家,經(jīng)濟組織決策管理大師,第十屆諾貝爾經(jīng)濟學獎獲獎者
6.艾倫·紐維爾(Allen Newell)————圖靈獎獲得者
7.高德納·克努特(Donald Knuth)————圖靈獎獲得者,算法和程序設計技術的先驅者,計算機排版系統(tǒng)TEX和METAFONT的發(fā)明者,提出用計算復雜度來衡量算法的耗時
8.弗里德里克·賈里尼克(Frederick Jelinek)————領導IBM華生實驗室,提出采用統(tǒng)計的方法解決語音識別問題
9.米奇·馬庫斯(Mitch Marcus)————設立和領導了LDC項目,采集和整理全世界主要語言的語料(其中著名的是Penn Tree Bank),并培養(yǎng)了一批世界級的科學家
<6>統(tǒng)計語言模型
計算機處理自然預言,一個基本的問題就是為自然語言這種上下文相關的特性建立數(shù)學模型。這個數(shù)學模型就是在自然語言處理中常說的統(tǒng)計語言模型。
1.怎樣求一個句子S合理的可能性
賈里尼克的思想就是:認為一個句子是否合理,就是看它的可能性大小如何。
假定S表示某一個有意義的句子,由一連串特定順序排列的詞w1、w2...wn組成,這里n是句子的長度。其中S出現(xiàn)概率是:
2.一個句子S合理的可能性和句中每個詞都有關
利用條件概率公式:
得:
其中,P(w1)是第一個詞出現(xiàn)的概率,P(w2|w1)是在已知第一個詞的前提下,第二個詞出現(xiàn)的概率,到了第n個詞,這個詞出現(xiàn)的概率和前面所有的詞出現(xiàn)的概率都有關。
3.馬爾可夫假設:后一個出現(xiàn)的概率只和前一個詞有關(條件概率)
計算第一個詞出現(xiàn)的概率很簡單,即P(w1),第二個詞的條件概率P(w2|w1)很是可以計算的,但是越到后面,計算量就越來越大。到了19世紀至20世紀初的這段時間,俄羅斯有一個數(shù)學家——馬爾可夫(Andrey Markov)就提出了方法,就是遇到這種情況,就假設任意一個詞Wi出現(xiàn)的概率只和前面一個詞Wi-1有關。這種假設在數(shù)學上成為馬爾可夫假設。這下公式變成:
以上這個公式對應了統(tǒng)計語言模型中的二元模型(Bigram Model)。
4.如何計算條件概率——分別計算聯(lián)合概率和邊緣概率
接下來的問題變成了如何計算條件概率
當要計算聯(lián)合概率P(Wi-1,Wi)和邊緣概率P(Wi-1)的時候,需要大量的機讀文本,也就是語料庫。其中
是Wi-1,Wi這個二元詞組在整個語料庫中前后相鄰出現(xiàn)的次數(shù),而 是Wi-1這個詞在整個語料庫中出現(xiàn)的次數(shù),這兩個比值成為這個二元詞組或者詞的相對頻度。
根據(jù)大數(shù)定理,當統(tǒng)計量足夠充分的時候,相對頻度就等于概率,即
所以,要計算的條件概率就等于
5.高階模型的計算量
對于高階語言模型,是假定文本中的每個詞都和前面的N-1個詞有關,而和更前面的詞無關。對于N元模型的空間復雜度,幾乎是N的指數(shù)函數(shù)O(|V|^N),時間復雜度也是一個指數(shù)函數(shù),O(|V|^N-1).所以N的大小決定了空間復雜度和時間復雜度的大小。當N從1到2,從2再到3的時候,模型的效果上升的很明顯,但是從3到4的時候,效果的提升就不是很顯著了。
模型訓練中的問題:
零概率問題——假定要訓練一個漢語的語言模型,漢語的詞匯量大致是20萬這個量級,訓練一個3元模型就需要200000^3 = 8*10^15這么多的參數(shù),但是由于訓練數(shù)據(jù)量不可能達到這么多,所以如果用直接的比值計算概率,大部分的條件概率依然是零,這種模型我們稱之為“不平滑”。對于這種問題,圖靈提出了一種在統(tǒng)計中相信可靠的統(tǒng)計數(shù)據(jù),而對不可信的統(tǒng)計數(shù)據(jù)大折扣的一種概率估計方法,同時將折扣出來的那一小部分概率給予未看見的事件。這個重新估算概率的公式后來被稱為古德-圖靈估計。
<7>隱含馬爾可夫模型
1.已經(jīng)求出一個句子S出現(xiàn)的概率
當求出了一個句子S出現(xiàn)概率之后:
2.在已知一個英文句子O出現(xiàn)概率的情況下,求漢語句子S出現(xiàn)概率最大的那個S,即O最有可能被翻譯成S(機器翻譯)
對于一個觀測到的信號o1,o2,……,on來還原發(fā)送的信號s1,s2,……,sn,實際的例子可以是根據(jù)收到的英文,求原來漢語的意思,這就是機器翻譯的原理。寫成數(shù)學表達式就是求以下公式有最大值時候的那個s1,s2,s3……:
3.利用貝葉斯公式化簡
利用貝葉斯公式,可以把上述公式轉換成(把條件概率公式用了兩次):
其中P{s1,s2,s3,……|o1,o2,o3,……}表示信息s1,s2,s3,……在傳輸之后變成接收的信號o1,o2,o3,……的可能性;
而P{s1,s2,s3,……}表示s1,s2,s3,……本身是一個在接收端合乎情理的信號的可能性;最后而P{o1,o2,o3,……}表示在發(fā)送端產(chǎn)生信息o1,o2,o3,……的可能性(注意s和o在經(jīng)過了條件概率公式后交換了發(fā)送和接收的位置),這時由于P{o1,o2,o3,……}是一個可以忽略的常熟,所以上面公式等價于
4.再次利用馬爾可夫假設(轉移概率)
這時,可以用隱含馬爾可夫模型來解決這個問題:隱含馬爾可夫模型其實并不是19世紀俄羅斯數(shù)學家馬爾可夫發(fā)明的,而是美國數(shù)學家鮑姆等人在20世紀六七十年代發(fā)表的一系列論文中提出的,隱含馬爾可夫模型的訓練方法(鮑姆-韋爾奇算法)也是以他的名字命名的。隱含馬爾可夫模型之所以是隱含的,是因為它每一個時刻的狀態(tài)是不可見的。而對于馬爾可夫鏈來說,對于一個隨機時間序列S1,S1,S3,……St中的每一個狀態(tài)的概率,不只其本身是隨機的,也就是說它可以是馬爾可夫鏈中的任何一個狀態(tài),而且它還和前一個狀態(tài)有關,這兩點說明了St的概率有兩個維度的不確定性。在任一時刻t的狀態(tài)St是不可見的且是不確定的,因為這時候只知道輸出的序列Ot,所以觀察者不能通過觀察到s1,s1,s3,……sr來推測轉移概率等參數(shù)。但是可以通過Ot來推測這些參數(shù)。
此時根據(jù)上節(jié)馬爾可夫提出的只和前一個有關的假設:
所以,可得
其中P{s1,s2,s3,……}就是上一節(jié)求出的每一個句子是否合理的可能性,也就是從收到的英文{O1,O2,O3,……}求原來的漢語{S1,S2,S3,……}的過程中,這個漢語句子{s1,s2,s3,……}存在的合理性。可以理解為“The box is in the pen”被翻譯成“盒子在鋼筆中”和“盒子在圍欄中”這兩個句子哪個更合理。
而P{s1,s2,s3,……|o1,o2,o3,……}根據(jù)應用的不同而有不同的名稱,在語音識別中被成為“聲學模型”,在機器翻譯中是“翻譯模型”,而在拼寫校正中是“糾錯模型”。
5.如何求轉移概率和生成概率
此時,問題變成了求轉移概率和生成概率乘積的最大值的問題
1.轉移概率
其中N(St-1)就是在有了足夠多的人工標記的數(shù)據(jù)后,經(jīng)過狀態(tài)St-1的次數(shù)(可以理解為在語料庫中某個詞St-1出現(xiàn)的次數(shù)),而N(St-1,St)是在經(jīng)過St-1這個狀態(tài)后轉移到St這個狀態(tài)的次數(shù)(可以理解為在語料庫中詞St-1后出現(xiàn)詞St的次數(shù)),而這兩個數(shù)的比值就是轉移概率P(St|St-1)的值
同理
2.生成概率
其中N(St)就是在有了足夠多的人工標記的數(shù)據(jù)后,經(jīng)過狀態(tài)St的次數(shù)(可以理解為在語料庫中某個詞St出現(xiàn)的次數(shù)),而N(Ot,St)是在經(jīng)過Ot這個狀態(tài)后轉移到St這個狀態(tài)的次數(shù)(可以理解為在語料庫中英文單詞Ot被翻譯成漢語詞語St的次數(shù)),而這兩個數(shù)的比值就是生成概率P(Ot|St)的值
6.如何求轉移概率和生成概率乘積的最大值
當求出轉移概率和生成概率之后,就能求出一個已知的英文句子{O1,O2,O3,……}被翻譯成{S1,S2,S3,……}的所有可能性的大小,然后下一步就是要求這所有的可能性中最大的時候的那個{S1,S2,S2,……},這需要用到維特比算法。維特比算法是一個動態(tài)規(guī)劃算法,在求所以可能性中最大的值的時候,也相當于求一個求概率最大的路徑(或者最短路徑)的問題。在已知輸出的英文{O1,O2,O3,……}的情況下,可能有很多種不同的路徑能從而得到不同的中文{S1,S2,S3,……},這些路徑組成了一個成為籬笆網(wǎng)絡(Lattice)的圖,其中我們要求的是最可能的,也就是概率最大的那個中文{S1,S2,S3,……}。
舉個例子就是Bush可以翻譯成布什,也可以翻譯成灌木叢,但是當Bush的前一個詞是總統(tǒng)的時候,Bush翻譯成布什的概率最大。這時就可以參考從北京到廣州的最短路徑的問題,使用維特比算法對計算量進行化簡。
有監(jiān)督的訓練需要大量人工標記的數(shù)據(jù),實際上很多應用不可能做到,就翻譯模型的訓練來說,這需要大量的中英文對照的語料,還要把中英文詞語一一對應起來。所以在實際的訓練中常常使用的是無監(jiān)督的訓練算法,即鮑姆-韋爾奇算法。鮑姆-韋爾奇算法的思想是首先尋找一組能夠產(chǎn)生輸出序列O的模型參數(shù),這個模型是一定存在的,因為當轉移概率P和輸出概率Q為均勻分布的時候,模型可以產(chǎn)生任何輸出。然后在這個模型的基礎上算出這個模型產(chǎn)生輸出序列O的概率,并根據(jù)這個模型可以找到一個更好的模型,這個新的模型輸出序列O的概率大于原來的模型。經(jīng)過了不斷的迭代從而不斷的估計新的模型參數(shù),使得輸出序列O的概率最大化。這個過程被稱為期望最大化(Expectation-Maximization),簡稱EM過程。
具體的方法和公式《數(shù)學之美》中并沒有細說,具體的過程就沒能理解了。
結束,理解有錯誤的話望指出
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
- 上一篇: ubuntu编译qemu报错:‘ERRO
- 下一篇: Python学习总结18:函数 参