引子
系統(tǒng)的學(xué)習機器學(xué)習課程讓我覺得受益匪淺苍蔬,有些基礎(chǔ)問題的認識我覺得是非常有必要的,比如機器學(xué)習算法的類別稀并。
為什么這么說呢仅颇?我承認,作為初學(xué)者碘举,可能無法在初期對一個學(xué)習的對象有全面而清晰的理解和審視忘瓦,但是,對一些關(guān)鍵概念有一個初步并且較為清晰的認識引颈,有助于讓我們把握對問題的認識層次耕皮,說白了,就是幫助我們有目的的去學(xué)習新的知識蝙场,帶著問題去學(xué)習凌停,充滿對解決問題的動力去實驗,我覺得這種方式是有益并且良性的售滤。
之前罚拟,我遇到過很多這方面的問題,可能出于對問題分析不夠完箩,在尋找解決的問題的方法或者模型的時候赐俗,有可能不知所措。造成這種情況的原因可能有兩點:1弊知、基礎(chǔ)不深厚阻逮,不了解最常用的算法模型;2秩彤、學(xué)習過程中叔扼,缺乏對模型適用的實際問題的了解,缺乏將模型應(yīng)用于實際問題的經(jīng)驗呐舔。
所以币励,在學(xué)習過程中,要特別注意的不光是深入研究算法的精髓珊拼,還要知道該算法的應(yīng)用場合食呻、適用條件和局限性。如果只是去探究原理,而不懂實際應(yīng)用仅胞,只能是書呆子每辟,只會紙上談兵;如果只想拿來用干旧,不去深究算法精髓渠欺,又只能游離在核心技術(shù)的邊界,無法真正的領(lǐng)悟椎眯。只有結(jié)合理論和實踐挠将,才可以達到學(xué)習效果的最大化。從這條路徑出發(fā)编整,一定要堅持不懈舔稀。
輸入空間、特征空間和輸出空間
輸入空間和輸出空間其實就是輸入和輸出所有可能取值的集合掌测。輸入和輸出空間可以是有限元素的集合内贮,也可以是整個歐式空間。輸入空間和輸出空間可以是一個空間汞斧,也可以是不同的空間夜郁;通常情況下,輸出空間要遠遠小于輸入空間粘勒。
特征空間是所有特征向量存在的空間舱痘。特征空間的每一維對應(yīng)于一個特征通孽。有時假設(shè)輸入空間與特征空間為相同的空間偿凭,對它們不予區(qū)分杠巡;有時假設(shè)輸入空間與特征空間為不同的空間,將實例從輸入空間映射到特征空間埃撵。模型實際上都是定義在特征空間上的赵颅。
這就為機器學(xué)習算法的分類提供了很好的依據(jù),可以根據(jù)輸入空間暂刘、特征空間和輸出空間的具體情況的不同饺谬,對算法限定的具體條件進行分類。
各種學(xué)習型算法的分類
首先聲明一下谣拣,下面的分類是我在學(xué)習相關(guān)課程和自己學(xué)習過程中進行的歸納募寨,不盡完善,但是可以概括一定的問題森缠,希望在此能總結(jié)一下拔鹰,以備以后能理清思路并完善。
接下來介紹的算法的分類是根據(jù)初學(xué)者學(xué)習的內(nèi)容的普遍角度展開的贵涵,分類角度從常用的分類方式到相對陌生的分類方式列肢。
以輸出空間的不同作為分類依據(jù)
- 二類分類(binary classification),俗稱是非問題(say YES/NO)恰画。其輸出空間Y={-1,+1}
- 多類別分類(multiclass classification)瓷马,輸出空間Y={1,2拴还,...,K}
- 回歸問題(regression),輸出空間Y=R欧聘,即實數(shù)范圍片林,輸出是無限種可能
- 結(jié)構(gòu)學(xué)習(structured learning),Y=structures怀骤,該學(xué)習模型也可以看做是多類別學(xué)習的一種费封,這里可能涉及到數(shù)量很大的類別
舉例:
二類分類應(yīng)用非常廣泛,比如判斷是否為垃圾郵件晒喷、廣告投資是否能盈利孝偎、學(xué)習系統(tǒng)上在下一題答題是否正確。二類分類在機器學(xué)習中地位非常重要凉敲,是其他算法的基礎(chǔ)。
多類別分類的應(yīng)用寺旺,比如根據(jù)一張圖片爷抓,得出圖片中是蘋果、橘子還是草莓等阻塑;還有像Google郵箱蓝撇,將郵件自動分成垃圾郵件、重要郵件陈莽、社交郵件渤昌、促銷郵件等。多類別分類在視覺或聽覺的辨識中應(yīng)用很廣泛走搁。
回歸分析在股票價格預(yù)測和天氣氣溫的預(yù)測上被廣泛應(yīng)用独柑。
結(jié)構(gòu)學(xué)習(Structured Learning)
在自然語言處理中,自動的詞性標注是很典型的結(jié)構(gòu)學(xué)習的例子私植。比如給定機器一個句子忌栅,由于詞語在不同的句子當中可能會有不同的詞性,所以該方法是用來對句子的結(jié)構(gòu)特性的理解曲稼。這種學(xué)習方法可以被看做是多類別分類索绪,但與多類別分類不同的是,其目標的結(jié)構(gòu)種類可能規(guī)模很大贫悄,其類別是隱藏在句子的背后的瑞驱。
這種結(jié)構(gòu)學(xué)習的例子還有例如說,生物中蛋白質(zhì)3D立體結(jié)構(gòu)窄坦,自然語言處理方面唤反。
結(jié)構(gòu)學(xué)習在有些地方被描述成標注(tagging)問題晰筛,標注問題的輸入是一個觀測序列,輸出是一個標記序列或狀態(tài)序列拴袭。標注問題的目標在于學(xué)習一個模型读第,使它能夠?qū)τ^測序列給出標記序列作為預(yù)測。
以數(shù)據(jù)標簽的不同作為分類依據(jù)
按照這種分類方法拥刻,最常見的類別就是監(jiān)督學(xué)習(supervised learning)怜瞒、無監(jiān)督學(xué)習(unsupervised learning)和半監(jiān)督學(xué)習(semi-supervised learning)。在上面討論的以輸出空間的不同作為分類依據(jù)中般哼,介紹的基本都是監(jiān)督學(xué)習吴汪,下面我們來具體看看另外兩個。
無監(jiān)督學(xué)習(unsupervised learning)
- 聚類(clustering)蒸眠,{x[n]} => cluster(x) , 這里數(shù)據(jù)的類別是不知道的漾橙,根據(jù)某種規(guī)則得到不同的分類。
它可以近似看做無監(jiān)督的多類別分類楞卡。- 密度估計(density estimation)霜运,{x[n]} => density(x) ,這里的density(x) 可以是一個概率密度函數(shù)或者概率函數(shù)。
它可以近似看做無監(jiān)督的有界回歸問題蒋腮。- 異常檢測(outlier detection)淘捡, {x[n]} => unusual(x) 。
它可以看做近似的無監(jiān)督二類分類問題池摧。
聚類的例子像是將網(wǎng)絡(luò)上各式各樣的文章分成不同的主題焦除,商業(yè)公司根據(jù)不同的顧客的資料,將顧客分成不同的族群作彤,進而采取不同的促銷策略膘魄。
密度估計的典型例子是根據(jù)位置的交通情況報告,預(yù)測事故危險多發(fā)的區(qū)域竭讳。
異常檢測的例子是创葡,根據(jù)網(wǎng)絡(luò)的日志的情況,檢測是否有異常入侵行為代咸,這是一個極端的“是非題”蹈丸,可以用非監(jiān)督的方法來得出。
半監(jiān)督學(xué)習(Semi-supervised learning)
半監(jiān)督學(xué)習(Semi-supervised Learning)是監(jiān)督學(xué)習與無監(jiān)督學(xué)習相結(jié)合的一種學(xué)習方法呐芥。它主要考慮如何利用少量的標注樣本和大量的未標注樣本進行訓(xùn)練和分類的問題逻杖。半監(jiān)督學(xué)習是利用未標記的大量數(shù)據(jù)提升機器學(xué)習算法的表現(xiàn)效果。
半監(jiān)督學(xué)習的主要算法有五類:基于概率的算法思瘟;在現(xiàn)有監(jiān)督算法基礎(chǔ)上作修改的方法荸百;直接依賴于聚類假設(shè)的方法;基于多試圖的方法滨攻;基于圖的方法够话。
半監(jiān)督學(xué)習的例子蓝翰,比如Facebook上有關(guān)人臉照片的識別,可能只有一小部分人臉是被標記的女嘲,大部分是沒有被標記的畜份。
增強學(xué)習(Reinforce learning)
強化學(xué)習是一種以環(huán)境反饋作為輸入的、特殊的欣尼、適應(yīng)環(huán)境的機器學(xué)習方法爆雹。所謂強化學(xué)習是指從環(huán)境狀態(tài)到行為映射的學(xué)習,以使系統(tǒng)行為從環(huán)境中獲得的累積獎賞值最大愕鼓。該方法不同與監(jiān)督學(xué)習技術(shù)那樣通過正例钙态、反例來告知采取何種行為,而是通過試錯(trial-and-error)的方法來發(fā)現(xiàn)最優(yōu)行為策略菇晃。
這里的輸出并不一定是你真正想要得到的輸出册倒,而是用過獎勵或者懲罰的方式來告訴這個系統(tǒng)做的好還是不好。
比如一個線上廣告系統(tǒng)磺送,可以看做是顧客在訓(xùn)練這個廣告系統(tǒng)驻子。這個系統(tǒng)給顧客投放一個廣告,即可能的輸出册着,而顧客有沒有點或者有沒有因為這個廣告賺錢拴孤,這評定了這個廣告投放的好壞。這就讓該廣告系統(tǒng)學(xué)習到怎么樣去放更適合的廣告甲捏。
以與機器溝通方式的不同作為分類依據(jù)
- 批量學(xué)習(batch learning),一次性批量輸入給學(xué)習算法鞭执,可以被形象的稱為填鴨式學(xué)習司顿。
- 線上學(xué)習(online learning),按照順序兄纺,循序的學(xué)習大溜,不斷的去修正模型,進行優(yōu)化估脆。
hypothesis 'improves' through receiving data instances sequentially
前兩種學(xué)習算法分類可以被看做是被動的學(xué)習算法钦奋。- 主動學(xué)習(active learning),可以被看做是機器有問問題的能力疙赠,指定輸入x[n]付材,詢問其輸出y[n]
improve hypothesis with fewer labels (hopefully) by asking questions strategically
當label的獲取成本非常昂貴時,會利用此法
很多機器學(xué)習大都是批量學(xué)習的情況圃阳。
線上學(xué)習的例子有像是垃圾郵件過濾器中厌衔,郵件并不是一下子全部拿來訓(xùn)練并且辨識的,而是呈序列形式捍岳,一封一封的到來富寿,這樣子循序?qū)W習的方式不斷更新睬隶。
主動學(xué)習的一個簡單例子是,像QQ空間中页徐,有好友照片的標注苏潜,即機器向人提問問題。
以輸入空間的不同作為分類依據(jù)
- 具體特征(concrete features)变勇,輸入X的每一維特征都被人類進行的整理和分析恤左,這種分析常常是與專業(yè)領(lǐng)域關(guān)聯(lián)的
- 原始特征(raw features),需要人或者機器進行轉(zhuǎn)化贰锁,將原始特征轉(zhuǎn)化成為具體的特征赃梧,在機器視覺和聲音信號的辨識都是屬于該類
- 抽象特征(abstract features),
抽象特征的例子豌熄,比如在一個在線教學(xué)系統(tǒng)中學(xué)生的編號信息授嘀,還有廣告系統(tǒng)中廣告的編號ID。使用它們都需要更多特征抽取的動作锣险。
原始特征的補充
這里要補充一下raw features中有關(guān)時興的深度學(xué)習(deep learning)的有關(guān)知識蹄皱。
深度學(xué)習是通過機器自動的進行特征提取的。它需要有大量的資料或者非監(jiān)督式學(xué)習的方式去學(xué)習如何從中抽取出非常具體的特征芯肤。
深度學(xué)習通過組合低層特征形成更加抽象的高層表示屬性類別或特征巷折,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
小結(jié)
以上是我在初學(xué)階段針對學(xué)習型算法的類別簡述崖咨,可能有失準確的地方锻拘,還需要讀者自行分析判斷。最后击蹲,我還想對自己說一下署拟,我在學(xué)習的過程中,不必追求將記錄的內(nèi)容表述的盡可能的細致全面歌豺,而是要在記錄書寫文字的過程中真正能加深對問題的理解推穷,不斷的進行自我思考。畢竟类咧,我寫這些內(nèi)容不是為了出書馒铃,而是要靈活的積累學(xué)習中的關(guān)鍵內(nèi)容,進行更好的知識管理痕惋。當然区宇,如果能幫助到讀者就更好了。
轉(zhuǎn)載請注明作者Jason Ding及其出處
Github主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.reibang.com/users/2bd9b48f6ea8/latest_articles)