大資料之道 HMM系列<二>(成長)

來源:互聯網
上載者:User

標籤:hmm   隱馬爾科夫模型   

一:HMM解碼問題

(1)編程深處無非就是演算法和結構,以及各種架構和版本的管理(如Git管理),因此作為程式員演算法這一關是繞不過去的;

(2)關於演算法,個人比較崇尚的一本書是《演算法導論》和ACM實戰系類的演算法培訓;

(3)對於自然語言處理領域或者部分機械學習領域的演算法,HMM模型是非常經典的演算法之一,非常適合初學者學習和研究;

(4)HMM模型μ=(A,B,π),的狀態是不可見的,我們看到的僅僅是狀態表現出來的觀察值和狀態機率函數。

二:HMM簡介(u = {N,M,A,B,pai} ---> u ={A,B,pai} )

(1)模型中的狀態數N

(2)每一個狀態可以輸出的觀測值M

(3)狀態轉移矩陣A={aij},其中aij滿足aij = P(qt=sj|qt-1=si) , 並且 關於j的aij求和為1

(4)發射矩陣 B = {bj(k)},即從狀態sj觀測到符號vk的機率分布矩陣

(5)初始狀態機率分布pai

三:HMM的三個基本問題

(1)評估問題:給定一個觀察序列O=O1O2...OT,和模型μ=(A,B,π),如何計算觀察到的序列O=O1O2...OT的機率,即P(O|u) 

---------> 前向後向演算法 ForWard-BackWard Algorithm(前向向量和後向向量,一個從前算,一個從後算)

(2)解碼問題:給定一個觀察序列O=O1O2...OT,和模型μ=(A,B,π),如何快速有效地選擇在一定意義下“最優”的狀態序列Q=q1q2...qT,使該狀態最好地解釋觀察序列。

---------> 維特比演算法 Viterbi Algorithm

請看 大資料之道 HMM系列<一>

(3)學習問題:給定一個觀察序列O=O1O2...OT,如何調參數μ=(A,B,π),使得P(O|M)最大

---------> 前向後向演算法 ForWard-BackWard Algorithm(前向向量和後向向量,一個從前算,一個從後算)

四:知識補充(部分轉載的)

(1)作為一個優秀的程式員,需要掌握一個文字編輯器/ IDE,然後堅持不懈地掌握這個工具。如果你選擇的是 VIM,那就要成為它的主人,讓它往東就往東

(2)使用版本控制系統,我建議使用 Git。下面是我喜歡的資源:Pro git——免費的線上電子書,詳細講解了 git 的各個方面。

(3)將重構養成習慣,隨著你不斷添加更多的功能,程式碼程式庫也會越來越複雜。為了保持程式碼程式庫的可管理化,你需要重構。如果你不重構的話,你很快就會進入兩難境地——即使是做很小的改動都很困難、bug 沒法避免、沒有人願意處理這個淩亂的程式碼程式庫。重構能讓你的工作更加輕鬆。至於怎麼重構代碼,我之前的一篇部落格:3000行代碼可以重構成15行,下面這本好書能教你該怎麼做: 《Refactoring: Improving the Design of Existing Code》by Martin Fowler

(4)學習軟體架構,根據你上面選擇的堆棧,再學習相關的架構。我推薦 Martin Fowler 寫的《Patterns of Enterprise Application Architecture》一書

五:心靈雞湯(部分轉載的)

(1)淺析理科生思維和文科生思維 所想到的 ------>

(2)一元思維模式:美就是美,醜就是醜,這兩者具有原則性的區別,就好像判斷好人和壞人一樣,一定是有標準的。他們喜歡制定各種“客觀標準”,也相信有一個最好的解決問題的方式,如果自己不知道,就在別人那裡。而且,這種思維模式的人喜歡追求“至高”“至美”“至大”的“境界”,會在一個方向上不斷追求,直到無法繼續為止。
(3)二元思維模式:美和醜是相對立而存在的,互相可以轉化。就如同好人和壞人一樣,相對立而存在,並在一定條件下相互轉化。這種人生活,和性格都將變得比較和諧,容易理解別人一些。這種人更容易成為管理者。
(4)多元思維模式:世間本無美醜善惡,一切取決於人心的思維和判斷角度,這種思維模式出神入化,具有極高的靈活性;這就是你們在[老子]

(5)數理邏輯思維是有缺陷的:它只是一種一元思維模式,缺乏靈活性。而且一元思維模式容易走極端,所謂的“鑽牛角尖”,“一條道走到黑”的,就是這種人;“立場堅定,觀點鮮明”。好處在於專註,專心一志。所以很多工程技術人員都顯得比較呆板,生活了無情趣。中國一些退休的優秀工程技術人員,業餘生活可以說很悲慘,很多人與子女家庭的關係都不好,非常孤獨。但最優秀的科學家如愛因斯坦等不會這樣,因為他們的思維方式已經跳出一元,進入多元世界。

只有文科能夠提供多元思維方式的教育。如果接受過良好的文科教育,多數人有機會學會二元思維方式,就是所謂的“一分為二”,達到這個境界的人就不會偏激了。 

總之,作為工科出身的我們,我們整天對著machine的程式猿們:建議多讀文章,要讀好的文章,而不是言情方面的書,多讀一些帶有邏輯性的文章,會有所協助的;而且在讀故事的文章過程中盡量推測一下下面文章的內容,這對揣摩事物很有協助.還有就是在讀文章時不要急於讀懂,好的一篇文章往往是讀的邊數多理解的就越明白.還有就是多寫文章,也有一定的協助.我一般就是這麼學習文學的.所以一般考試答分析和辯論等類型的題往往比別人高的多.文科是屬於積累性學習不能急於求成.要慢慢培養.尤其在思考問題這方面.看的多就想的多,想的多了回答的就自然多了.


大資料之道 HMM系列<二>(成長)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.