作者:譚東
一般根據(jù)我們的數(shù)據(jù)類型的不同,對相應問題的建模也有不同的方式。在機器學習或者人工智能領(lǐng)域,人們首先會考慮算法的學習方式。在機器學習領(lǐng)域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據(jù)輸入數(shù)據(jù)來選擇最合適的算法來獲得最好的結(jié)果。
主要分為:監(jiān)督學習,非監(jiān)督學習,半監(jiān)督學習和強化學習。監(jiān)督學習主要用于回歸和分類;半監(jiān)督學習主要用于分類,回歸,半監(jiān)督聚類;無監(jiān)督學習主要用于聚類。
那我們先看下這幾種學習方式的特點和差別:
1)監(jiān)督學習(Supervised learning)
監(jiān)督學習是指利用一組已知類別的樣本調(diào)整分類器的參數(shù),使其達到所要求性能的過程,也稱為監(jiān)督訓練或有教師學習。是從標記的訓練數(shù)據(jù)來推斷一個功能的機器學習任務,也就是樣本標簽打好了。訓練數(shù)據(jù)包括一套訓練示例。在監(jiān)督學習中,每個實例都是由一個輸入對象(通常為矢量)和一個期望的輸出值(也稱為監(jiān)督信號)組成。監(jiān)督學習算法是分析該訓練數(shù)據(jù),并產(chǎn)生一個推斷的功能,其可以用于映射出新的實例。一個最佳的方案將允許該算法來正確地決定那些看不見的實例的類標簽。這就要求學習算法是在一種“合理”的方式從一種從訓練數(shù)據(jù)到看不見的情況下形成。
舉個例子:監(jiān)督學習就像我們在學習時候旁邊有老師指點一樣,老師知道你輸入的數(shù)據(jù)是正確還是錯誤,他可以利用他所知道的數(shù)據(jù)幫你進行正確和錯誤分類和指導。監(jiān)督學習就是人們常說的分類,我們根據(jù)已有的訓練樣本,也就是數(shù)據(jù)進行了標記,輸入和輸出是對應的。那么我們就可以根據(jù)這個已經(jīng)訓練好的模型去判斷和映射其他輸入的數(shù)據(jù)的對應的輸出,也就實現(xiàn)了對未知數(shù)據(jù)的分類。類似仿生學,我們從小并不知道什么是手機、電視、鳥、豬,那么這些東西就是輸入數(shù)據(jù),而家長會根據(jù)他的經(jīng)驗指點告訴我們哪些是手機、電視、鳥、豬。這就是通過模型判斷分類。當我們掌握了這些數(shù)據(jù)分類模型,我們就可以對這些數(shù)據(jù)進行自己的判斷和分類了。
在監(jiān)督式學習下,輸入數(shù)據(jù)被稱為“訓練數(shù)據(jù)”,每組訓練數(shù)據(jù)有一個明確的標識或結(jié)果,如對防垃圾郵件系統(tǒng)中“垃圾郵件”“非垃圾郵件”,對手寫數(shù)字識別中的“1“,”2“,”3“,”4“等。在建立預測模型的時候,監(jiān)督式學習建立一個學習過程,將預測結(jié)果與“訓練數(shù)據(jù)”的實際結(jié)果進行比較,不斷的調(diào)整預測模型,直到模型的預測結(jié)果達到一個預期的準確率。監(jiān)督式學習的常見應用場景如分類問題和回歸問題。常見監(jiān)督式學習算法有決策樹(ID3,C4.5算法等),樸素貝葉斯分類器,最小二乘法,邏輯回歸(Logistic Regression),支持向量機(SVM),K最近鄰算法(KNN,K-NearestNeighbor),線性回歸(LR,Linear Regreesion),人工神經(jīng)網(wǎng)絡(ANN,Artificial Neural Network),集成學習以及反向傳遞神經(jīng)網(wǎng)絡(Back Propagation Neural Network)等等。下圖是幾種監(jiān)督式學習算法的比較:
2)非監(jiān)督學習(Unsupervised learing)
非監(jiān)督學習是另一種研究的比較多的學習方法,它與監(jiān)督學習的不同之處,在于我們事先沒有任何訓練樣本,而需要直接對數(shù)據(jù)進行建模。是否有監(jiān)督(Supervised),就看輸入數(shù)據(jù)是否有標簽(Label)。輸入數(shù)據(jù)有標簽(即數(shù)據(jù)有標識分類),則為有監(jiān)督學習,沒標簽則為無監(jiān)督學習。這聽起來似乎有點不可思議,但是在我們自身認識世界的過程中很多處都用到了無監(jiān)督學習。比如我們?nèi)⒂^一個畫展,我們完全對藝術(shù)一無所知,但是欣賞完多幅作品之后,我們也能把它們分成不同的派別(比如哪些更朦朧一點,哪些更寫實一些,即使我們不知道什么叫做朦朧派,什么叫做寫實派,但是至少我們能把他們分為兩個類)。無監(jiān)督學習里典型的例子就是聚類了。聚類的目的在于把相似的東西聚在一起,而我們并不關(guān)心這一類是什么。因此,一個聚類算法通常只需要知道如何計算相似度就可以開始工作了。 在非監(jiān)督式學習中,數(shù)據(jù)并不被特別標識,學習模型是為了推斷出數(shù)據(jù)的一些內(nèi)在結(jié)構(gòu)。
非監(jiān)督學習在聚類上同監(jiān)督學習分類效果相比無法做到同樣的完美,那么我們?yōu)槭裁催€要使用非監(jiān)督學習聚類?因為在很多實際應用中,并沒有大量的標識數(shù)據(jù)進行使用,并且標識數(shù)據(jù)需要大量的人工工作量,非常困難。那么我們就需要非監(jiān)督學習根據(jù)數(shù)據(jù)的相似度,特征及相關(guān)聯(lián)系進行模糊判斷分類。
常見的應用場景包括關(guān)聯(lián)規(guī)則的學習以及聚類等。常見非監(jiān)督學習算法包括聚類算法、奇異值分解、主成分分析(PCA)、SVD矩陣分解、獨立成分分析(ICA)、Apriori算法以及K-均值算法(K-Means)、稀疏自編碼(sparse auto-encoder)等等。
3)半監(jiān)督學習(Semi-supervised Learning)
半監(jiān)督學習(Semi-Supervised Learning,SSL)是模式識別和機器學習領(lǐng)域研究的重點問題,是監(jiān)督學習與無監(jiān)督學習相結(jié)合的一種學習方法。半監(jiān)督學習使用大量的未標記數(shù)據(jù),以及同時使用標記數(shù)據(jù),來進行模式識別工作。當使用半監(jiān)督學習時,將會要求盡量少的人員來從事工作,同時,又能夠帶來比較高的準確性,因此,半監(jiān)督學習目前正越來越受到人們的重視。
在此學習方式下,輸入數(shù)據(jù)部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習數(shù)據(jù)的內(nèi)在結(jié)構(gòu)以便合理的組織數(shù)據(jù)來進行預測。
半監(jiān)督學習有兩個樣本集,一個有標記,一個沒有標記。分別記作Lable={(xi,yi)},Unlabled={(xi)},并且數(shù)量,L<<U。
1、單獨使用有標記樣本,我們能夠生成有監(jiān)督分類算法
2、單獨使用無標記樣本,我們能夠生成無監(jiān)督聚類算法
3、兩者都使用,我們希望在1中加入無標記樣本,增強有監(jiān)督分類的效果;同樣的,我們希望在2中加入有標記樣本,增強無監(jiān)督聚類的效果
一般而言,半監(jiān)督學習側(cè)重于在有監(jiān)督的分類算法中加入無標記樣本來實現(xiàn)半監(jiān)督分類,也就是在1中加入無標記樣本,增強分類效果[1]。應用場景包括分類和回歸,算法包括一些對常用監(jiān)督式學習算法的延伸,這些算法首先試圖對未標識數(shù)據(jù)進行建模,在此基礎上再對標識的數(shù)據(jù)進行預測。如自訓練算法(self-training)、多視角算法(Multi-View)、生成模型(Enerative Models)、圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM)等。
(圖片來自百度百科)
4)強化學習(Reinforcement learning)
又稱再勵學習、評價學習,是一種重要的機器學習方法,在智能控制機器人及分析預測等領(lǐng)域有許多應用。但在傳統(tǒng)的機器學習分類中沒有提到過強化學習,而在連接主義學習中,把學習算法分為三種類型,即非監(jiān)督學習(unsupervised learning)、監(jiān)督學習(supervised leaning)和強化學習。
在這種學習模式下,輸入數(shù)據(jù)作為對模型的反饋,不像監(jiān)督模型那樣,輸入數(shù)據(jù)僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數(shù)據(jù)直接反饋到模型,模型必須對此立刻作出調(diào)整。常見的應用場景包括動態(tài)系統(tǒng)以及機器人控制等。常見算法包括Q-Learning以及時間差學習(Temporal difference learning)。在企業(yè)數(shù)據(jù)應用的場景下, 人們最常用的可能就是監(jiān)督式學習和非監(jiān)督式學習的模型。 在圖像識別等領(lǐng)域,由于存在大量的非標識的數(shù)據(jù)和少量的可標識數(shù)據(jù), 目前半監(jiān)督式學習是一個很熱的話題。 而強化學習更多的應用在機器人控制及其他需要進行系統(tǒng)控制的領(lǐng)域。
強化學習靈感來源于心理學中的行為主義理論,即有機體如何在環(huán)境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產(chǎn)生能獲得最大利益的習慣性行為。這個方法具有普適性,因此在其他許多領(lǐng)域都有研究,例如博弈論、控制論、運籌學、信息論、模擬優(yōu)化方法、多主體系統(tǒng)學習、群體智能、統(tǒng)計學以及遺傳算法。 它的本質(zhì)就是解決“決策(decision making)”問題,即學會自動進行決策。它在沒有任何label告訴算法應該怎么做的情況下,通過先嘗試做出一些行為——然后得到一個結(jié)果,通過判斷這個結(jié)果是對還是錯來對之前的行為進行反饋。由這個反饋來調(diào)整之前的行為,通過不斷的調(diào)整算法能夠?qū)W習到在什么樣的情況下選擇什么樣的行為可以得到最好的結(jié)果。
重點:強化學習其實就是自動進行決策,并且可以做連續(xù)決策。強化學習有很多應用,比如自動直升機,機器人控制,手機網(wǎng)絡路由,市場決策,工業(yè)控制,高效網(wǎng)頁索引,無人駕駛,AlphaGo,玩游戲,還在制造業(yè)、庫存處理、電商、廣告、推薦、金融、醫(yī)療等與我們生活息息相關(guān)的領(lǐng)域也有應用。像強化學習里的Q-Learning可以很好的處理動態(tài)定價問題。在電商中,也可以用強化學習算法來學習和分析顧客行為,定制產(chǎn)品和服務以滿足客戶的個性化需求。如雙 11 推薦場景中,阿里巴巴使用了深度強化學習與自適應在線學習,通過持續(xù)機器學習和模型優(yōu)化建立決策引擎,對海量用戶行為以及百億級商品特征進行實時分析,幫助每一個用戶迅速發(fā)現(xiàn)寶貝,提高人和商品的配對效率。還有,利用強化學習將手機用戶點擊率提升了 10-20%。例如一家日本公司 Fanuc,工廠機器人在拿起一個物體時,會捕捉這個過程的視頻,記住它每次操作的行動,操作成功還是失敗了,積累經(jīng)驗,下一次可以更快更準地采取行動。
舉個例子:以小孩學習走路為例,走路時候小孩需要知道先進行決定先邁那條腿,如果第一步作對了,那么就會得到獎勵,錯了,那么記錄下來,再進行第二次走路時候進行學習更正。例如在向用戶推薦新聞文章的任務中,非監(jiān)督式會找到用戶先前已經(jīng)閱讀過類似的文章并向他們推薦其一,而強化學習將通過向用戶先推薦少量的新聞,并不斷獲得來自用戶的反饋,最后構(gòu)建用戶可能會喜歡的文章的“知識圖”。
強化學習常用算法:TD算法(時間差分學習,Temporal Difference)、SARSA算法、Q-Learning算法等。我們當然也需要了解馬爾可夫決策過程(MDP,Markov Decision Processes),這樣更利于我們對強化學習的理解。
后面講給大家一一列舉相關(guān)的常用算法。
參考文獻:
[1]機器學習.Tom M.Mitchell
[2]http://www.asimovinstitute.org/neural-network-zoo/
更多建議: