導航:首頁 > 源碼編譯 > blda演算法

blda演算法

發布時間:2024-09-07 04:35:38

『壹』 詞向量,LDA,word2vec三者的關系是什麼

詞向量,有時候翻譯為詞嵌入(word embeddings),又可以稱作distributed word representation[1], 最初起源是神經網路語言模型(Neural Networks Language Models),word2vec是一種常見的word embeddings,另外一種著名word embeddings是GloVe

LDA(Latent Dirichlet Allocation)是主題模型(Topic Models)的一種計算方法,和詞向量並無直接關系,不過如果扯上另外一種topic model, LSA(Latent Semantic Allocation),那就有一些關系了:LSA的核心技術是SVD,一種矩陣分解,而SVD一般在NLP中的使用並非是使用它分解的三個矩陣,而是合並右邊兩個矩陣。那麼合並之後,左邊的矩陣就可以視為word embeddings,而右邊的矩陣可以視為當它是context時候的embeddings。當然,一般的矩陣分解,比如NMF,也可以得到word embeddings。而word2vec一再被人證明,從結果看,是一個全局PPMI矩陣的分解。某種意義講,word embeddings可以理解是傳統矩陣分解的一個加速版本。LDA和word embeddings還是可以有點聯系,比如加入LDA的結果作為word embeddings的輸入,來增強文章分類效果。Latent Dirichlet Allocation(LDA)和word2vec從模型上看幾乎沒有顯著聯系。詞向量則是所有對詞進行表示的方法的統稱。關於聯系你可以這樣看:LDA的作用之一是通過對doc-word矩陣進行建模抽出doc-topic和topic-word兩個分布。而word2vec其實是分解了word-context矩陣。其實都是對一個"A"-"B"矩陣進行建模。那麼LDA自然也可以用於對word-context矩陣進行建模,而word2vec也可以對doc-word矩陣做分解。以上算是LDA和word2vec之間的的一點聯系吧。不過他們之間的區別也是非常顯著的。

『貳』 請問,線性判別分析LDA和偏最小二乘判別分析PLSDA有什麼區別

把4維的x向量X=(x1,x2,x3,x4),拓展成14維的向量(x1,x2,x3,x4,x1*x1,x1*x2,x1*x3,x1*x4,x2*x2,x2*x3,x2*x4,x3*x3,x3*x4,x4*x4),可以把原問題化簡為老師提示的問題,從而進行求解. 樓主學過模式識別(Pattern Recognition)里的LDA(Linear Discriminant Analysis)演算法嗎?中文叫線性判別分析.LDA演算法基本就是求解這么個問題: minimize t subject to Ax=-1 (數值) LDA演算法是模式識別里的經典演算法,它有很成熟的解析解,你隨便網上搜搜,就能得到很詳細的解答. 樓主本身的這個問題,算是QDA演算法(Quadratic Discriminant Analysis),中文叫二次項判別分析.因為QDA帶了二次項,因此比LDA本身要復雜一些. 但是QDA問題可以簡化成LDA演算法,具體方法就是把4維向量X=(x1,x2,x3,x4),擴展成如下的14維向量Y=(x1,x2,x3,x4,x1*x1,x1*x2,x1*x3,x1*x4,x2*x2,x2*x3,x2*x4,x3*x3,x3*x4,x4*x4). 這樣XT*A*X+bT*X+c,就可以化為dT*Y+c的形式了(這個14維向量d和A,b的關系很容易算),然後套用下現成的LDA演算法求出d,然後反推出A和b,基本就搞定了.

『叄』 pattern recognition and machine learning這本書怎麼看

作者:Richardmore
這本書可以說是機器學習的經典學習之作。以前在上機器學習這么課的時候,很多細節還沒聯繫到,結果在讀論文中就顯得捉襟見肘。本文打算理清楚這本書的脈絡,也順便為學習機器學習的人打下一個學習路線圖。

1. 排除兩塊內容

現排除第五章的內容神經網路,之所以把神經網路先單列出來,原因一是一個比較獨立的研究脈絡,二是因為這部分因為深度學習的原因太熱了,所以我認為在學習機器學習中把神經網路單列出來學習,在交大的研究生課程安排中,神經網路是機器學習的後續課程。
對於第6,7章,也不在下面的學習路線中,因為這部分是關於核技巧方面的,主要是就是高斯過程回歸,高斯過程分類以及SVM等內容。
2. 一個概率圖框架為中心視角

排除了上面幾章的內容,PRML書中可以用下面的學習路線圖覆蓋,通過這個圖可以理清楚了各個內容的不同角色。
<img src="https://pic3.mg.com/_b.png" data-rawwidth="1888" data-rawheight="412" class="origin_image zh-lightbox-thumb" width="1888" data-original="https://pic3.mg.com/_r.png">

說明:
(1)一般模型中都會有隱變數因此,,因此對於P(X)的採用MLE學習的另一個技巧,便是第九章 EM演算法。條件是在M步時,Q要可以被analytically computed。
(2)至於為什麼近似,Exact Inference is hard we resort to approximation
3. 隱變數技巧

下面我們看看另外一個視角:隱變數技巧。隱變數不僅可以使得模型的表達能力豐富起來,而且通常對於隱變數往往富有一定的實際意義。

<img src="https://pic1.mg.com/_b.png" data-rawwidth="1764" data-rawheight="422" class="origin_image zh-lightbox-thumb" width="1764" data-original="https://pic1.mg.com/_r.png">

說明:
(1)這里所謂的結合模型中,在PRML中最後一章僅僅提到了以加法的方式進行模型集合,也就是mixture of experts,在論文Hinton G E. Training procts of experts by minimizing contrastive divergence[J]. Neural computation, 2002, 14(8): 1771-1800. 提出了proct of experts 模型,也就是以乘法的方式進行結合,RBM就是一種特殊的proct of experts 模型,而高斯混合模型便是加法模型的代表。
(2)隱變數的技巧是機器學習中一種重要的技巧,隱變數的加入不僅僅增加了模型的表達能力,而且,隱變數還可以被賦予某種特殊的意義,比如RBM模型中隱變數h被當成顯變數v的特徵抽象。這當然歸根結底是因為隱變數模型確實是現實世界真實存在的情況,unobserved but important variables do exist! 當然隱變數的引入也為模型的推斷帶來了新的挑戰,有很多比較好的隱變數模型往往找不到很高效的方法,而被限制著。
4. 例子說明

下面分別從上面兩個視角來分析RBM模型,貝葉斯線性回歸和序列模型。
4.1 RBM模型
RBM模型是一個無向2層對稱的圖模型,從隱變數的視角來看,它是一個以乘法方式結合的distributed models。當然隱變數的引入增加了模型的復雜性和表達能力,但是也為學習,推斷帶來了問題。對於RBM的參數學習,因為是無向圖,所以採用MLE最大化P(X),但是由於此時P(X,Z)難以評估,所以
<img src="https://pic2.mg.com/v2-_b.png" data-rawwidth="834" data-rawheight="94" class="origin_image zh-lightbox-thumb" width="834" data-original="https://pic2.mg.com/v2-_r.png">
很難計算,沒有在RBM的學習中不能像高斯混合模型那樣可以採取EM演算法。因此只能採取最為標準的做法,求取P(X)的梯度,結果梯度公式如下:
<img src="https://pic2.mg.com/v2-_b.png" data-rawwidth="800" data-rawheight="90" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic2.mg.com/v2-_r.png">

然而對於計算後面的model部分的積分需要知道模型的概率分布,評估模型的概率分布需要計算一個標准化的分母,難以計算。因此就需要依賴近似,由於p(v|h),p(h|v)都是可以分析公式表達,因此採用Gibbs sampler來數值逼近積分。當然後來Hinton G E. Training procts of experts by minimizing contrastive divergence[J].發現對於這一部分,Gibbs sampler 不需要多部的迭代,一次迭代就可以了,從而使的訓練RBM的時間代價大大降低了,後來(A fast learning algorithm for deep belief nets,2006)提出了貪婪式的訓練多層DBN(stacked RBM),每層都是訓練RBM,從而使的深度學習煥發新的活力(Recing the dimensionality of data with neural networks,2006)。

4.2 貝葉斯線性回歸Bayesian Linear Regression BLR

這個模型是最為基礎的,這個模型在PRML中,利用直接推斷,變分法推斷,MCMC采樣都是可以做的;因此便於比較不同演算法得到的結果。之前,本來打算在這里以LDA主題模型來舉例,雖然LDA的EM演算法, 變分法,以及Gibbs sampling 都是可以做的,但是模型太復雜,所以果斷放棄了,以BLR模型作為例子說明。
BLR是一個有向圖模型,是一個典型的貝葉斯網路(雖然簡單一點)。如果以一個貝葉斯的視角來看,其中的隱變數便是線性參數w,以及各種超參數α,β.....,在貝葉斯的處理視角之下,這些都會賦予一個先驗分布。當然,有些模型書中也提到,有不同層次上的貝葉斯網路。有的是僅僅對參數w賦予一個先驗分布,而對於其他的參數(hyperparameter)僅僅是作為模型參數,就是假設是一個渡固定的數值,然後再通過learn evidence function,其實說白了就是MLE,來尋找最佳的超參數α,β....。相比於把線性參數w,以及各種超參數α,β.....全部作為放入到貝葉斯網路中,這樣的做法顯然簡化了模型,降低了貝葉斯網路的復雜性。這個技巧也在多處的論文中出現。
從隱變數的角度來看,由於BLR模型相對簡單,其中並沒有隨機隱變數,僅僅是一些參數w,以及各種超參數α,β..的環境隱變數。
4.3 序列模型:隱馬爾可夫鏈HMM與條件隨機CRF

隱馬爾可夫鏈HMM這個模型是一個有向圖模型,典型的貝葉斯網路,只不過這個網路是一個線性鏈(linear chains),因此可以進行分析上推斷,要知道對於一般網路,並不存在通用的實用的inference演算法。因為HMM是一個有向圖模型。但是(1)在PRML書中,以及李航《統計學習》中並沒有把其當作一個貝葉斯網路來進行處理,對所有的參數比如發射概率,轉移矩陣概率都是模型的參數,而不是通過賦予一個先驗分布,從而納入到貝葉斯網路框架之中。因此對於模型而言,關鍵的便是通過MLE最大化P(X)來學習模型的參數,因為這里的有隱變數,因此在PRML,以及《統計學習》中都是通過EM演算法做的。(2)其實,HMM是一個典型的線性鏈式的貝葉斯網路,因此對於通過對其參數賦予先驗分布,進而從貝葉斯的角度,來對模型進行推斷是一個非常自然的想法。我在論文Sharon Goldwater, Thomas L Griffiths 論文 A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging,中作者採用了Bayesian HMM 重新做了POS任務。作者在文中還詳細羅列了Bayesian HMM 相比普通的HMM的優點:(a)可以使用先驗知識,例如在POS中語言的認知可以加入到先驗分布之中,而且(b)貝葉斯的推斷,是通過一個後驗分布推斷參數,相比MLE點估計,會更加准確。對於貝葉斯的推斷,作者在文中使用了Gibbs sample抽樣實現了數值采樣推斷模型。最後作者比較了Gibbs sample+Bayesian HMM和普通的HMM +EM,在POS任務效果更加好。另外,對於本論文的作者Thomas L Griffiths,第一次接觸這個學者,是在讀Gibbs sample in LDA這篇文章,作者推導了LDA的各種的條件分布,然後基於Gibbs sample 進行采樣,記得Github上有Java版的實現代碼,其推導十分嚴謹,並且有代碼輔助,是學習LDA的一個捷徑。在近似推斷方面可以看出Thomas L Griffiths是一個堅定的數值采樣學派,而LDA的開山之作《Latent Dirichlet Allocation 》的作者David M. Blei,看了作者部分文章以後,發現這個人是在近似推斷方面是一個變分法的堅定學派,在《Latent Dirichlet Allocation 》之中,便是通過變分法進行推斷了,David M. Blei還寫了一個關於變分法的入門講義pdf,網上可以搜到。所以回看我們概率圖視角,做機器學習推斷是不可避免的,有的是變分法近似,有的是數值采樣近似,也有的是EM演算法試一試。至於選擇哪一種,就看你的問題哪一個比較簡單了。但是好像有的人對這些方面各有偏愛。
再說一下條件隨機場CRF,相比與HMM,這也是一個序列模型,在很多的NLP任務中,CRF都是state of art 的演算法,畢竟人家可以方便的特徵工程嘛。但是這種日子被深度學習取代了,在NLP方面,RNN(遞歸神經網路)要比CRF表現更好,見我之前博文基於RNN做語義理解和詞向量。先不說這么遠,CRF的模型架構上是一個典型的無向的鏈式概率圖模型,因此,(回看我們概率圖的視角),CRF的關鍵問題便是如何進行學習了P(X),好在求其該模型直接求其梯度並沒有太大的困難,具體可以參見李航的《統計學習》。
5 結束語

這篇文章,從概率圖,隱變數兩個視角對PRML中各個章節進行了串聯,並以RBM,BLR,序列模型(HMM&CRF)具體說明這種串聯。

閱讀全文

與blda演算法相關的資料

熱點內容
安卓路由表怎麼看 瀏覽:74
10個小孩分糖果python 瀏覽:823
安卓app小紅點怎麼取消 瀏覽:286
馬哥linux面授 瀏覽:768
2345程序員 瀏覽:371
怎麼開啟網速顯示安卓 瀏覽:204
索尼950app怎麼樣 瀏覽:391
計算機畢設論文源碼 瀏覽:148
小米手機怎麼下載易媒體App 瀏覽:191
還原系統設計可以怎樣清理文件夾 瀏覽:670
北京時間校準伺服器雲伺服器 瀏覽:844
pythonexcel數據計算 瀏覽:49
內醫附院黨建APP怎麼下載 瀏覽:356
榮耀v20刷加密門禁卡 瀏覽:329
app緩沖視頻怎麼保存在手機 瀏覽:433
廣度優先演算法c語言 瀏覽:680
提高程序員競爭力 瀏覽:108
nfc可以開加密門卡嗎 瀏覽:675
如何知道網頁使用的伺服器是什麼 瀏覽:224
單片機接反電源會燒嗎 瀏覽:287