在機器學習領域,主要有三類不一樣的學習方法:算法
監督學習:經過已有的一部分輸入數據與輸出數據之間的對應關係,生成一個函數,將輸入映射到合適的輸出,例如分類。網絡
非監督學習:直接對輸入數據集進行建模,例如聚類。數據結構
半監督學習:綜合利用有類標的數據和沒有類標的數據,來生成合適的分類函數。框架
是否有監督(supervised),就看輸入數據是否有標籤(label)。輸入數據有標籤,則爲有監督學習,沒標籤則爲無監督學習。機器學習
標籤,簡而言之,就是樣本的分類標籤,是不重合的,好比男/女,價值/非價值。函數
舉個例子,判斷一支股票是價值型仍是非價值型。咱們有三隻股票:性能
如今要作一個分類系統,很顯然,那就是若是PE-Ratio(市盈率)大於3,就是價值型股票。學習
分類系統作好了,如今新來一支股票,PE-Ratio是4,系統判斷4>3,那就是價值股票。測試
監督學習最多見的是分類問題,由於目標每每是讓計算機去學習已經建立好的分類系統,例如數字識別。更通常地說,對於那些有用的、容易判斷的分類系統,分類學習都適用。在某些狀況下,若是Agent能自行計算分類的話,Agent可能不須要事先給出分類。這將在後面成爲無監督學習上下文分類的一個例子。人工智能
監督學習是訓練神經網絡和決策樹的最多見技術。這兩種技術(神經網絡和決策樹)高度依賴於事先肯定的分類系統給出的信息。對於神經網絡來講,分類系統用於判斷網絡的錯誤,而後調整網絡適應它;對於決策樹,分類系統用來判斷哪些屬性提供了最多的信息,如此一來能夠用它解決分類系統的問題。咱們將會看到這二者(神經網絡和決策樹)更多的細節,但在目前,它們用預先肯定分類方法的形式來「監督」就足夠了。
使用隱馬爾科夫模型和貝斯網絡的語音識別系統也依賴於某些監督的要素,那一般是爲了調節系統的參數以便於最小化給定輸入中的錯誤。
請注意這裏提到的一個問題:在分類問題中,學習算法的目標是把給定輸入中的錯誤最小化。這些輸入一般被稱做「訓練集」(原文爲training set,譯者注),它們是Agent嘗試學習的樣本。可是,學習訓練集表現良好並不必定是件好事。例如,若是我試圖教你學習exclusive-or(及邏輯或,譯者注),但僅僅給出由一個真和一個假構成的組合,而不把同時爲真或爲假的組合告訴你,那麼根據你學到的規則,你可能對任何問題回答都爲真。一樣,對於機器學習算法,一個一般的問題是過適合(原文爲over-fitting,譯者注)數據,以及主要記憶訓練集,而不是學習過多的通常分類技術。
你能夠這樣設想,並非全部的訓練集的輸入都分類正確。若是使用的算法有足夠強的記憶力,但這顯然是「特例」,不適合通常的原則,所以會出現問題。這一點也可能致使過適合。不但要在學習複雜函數時足夠強大,並且能產生可歸納的結論,尋找這樣的算法的確是一個挑戰。
訓練資料是由輸入物件(一般是向量)和預期輸出所組成。函數的輸出能夠是一個連續的值(稱爲迴歸分析),或是預測一個分類標籤(稱做分類)。
一個監督式學習者的任務在觀察完一些訓練範例(輸入和預期輸出)後,去預測這個函數對任何可能出現的輸入的值的輸出。
要達到此目的,學習者必須以"合理"(見概括偏向)的方式從現有的資料中通常化到非觀察到的狀況。在人類和動物感知中,則一般被稱爲概念學習(concept learning)。
監督式學習有兩種形態的模型。最通常的,監督式學習產生一個全域模型,會將輸入物件對應到預期輸出。而另外一種,則是將這種對應實做在一個區域模型。(如案例推論及最近鄰居法)。
爲了解決一個給定的監督式學習的問題(手寫辨識),必須考慮如下步驟:
另外對於監督式學習所使用的詞彙則是分類。如今有各類各樣的分類器,各自都有強項或弱項。分類器的表現很大程度上地跟要被分類的數據特徵有關。並不存在一個適用於全部問題的分類器。決定適合某一問題的分類器仍舊是一項藝術,而非科學。
目前最普遍被使用的分類器有人工神經網絡、支持向量機、最近鄰居法、高斯混合模型、樸素貝葉斯方法、決策樹和徑向基函數分類。
非監督學習看起來很是困難:目標是咱們不告訴計算機怎麼作,而是讓它(計算機)本身去學習怎樣作一些事情。非監督學習通常有兩種思路。第一種思路是在指導Agent時不爲其指定明確的分類,而是在成功時採用某種形式的激勵制度。須要注意的是,這類訓練一般會置於決策問題的框架裏,由於它的目標不是產生一個分類系統,而是作出最大回報的決定。這種思路很好的歸納了現實世界,Agent能夠對那些正確的行爲作出激勵,並對其餘的行爲進行處罰。
強化學習的一些形式經常能夠被用於非監督學習,因爲沒有必然的途徑學習影響世界的那些行爲的所有信息,所以Agent把它的行爲創建在前一次獎懲的基礎上。在某種意義上,全部的這些信息都是沒必要要的,由於經過學習激勵函數,Agent不須要任何處理就能夠清楚地知道要作什麼,由於它(Agent)知道本身採起的每一個動做確切的預期收益。對於防止爲了計算每一種可能性而進行的大量計算,以及爲此消耗的大量時間(即便全部世界狀態的變遷機率都已知),這樣的作法是很是有益的。另外一方面,在嘗試出錯上,這也是一種很是耗費時間的學習。
不過這一類學習可能會很是強大,由於它假定沒有事先分類的樣本。在某些狀況下,例如,咱們的分類方法可能並不是最佳選擇。在這方面一個突出的例子是Backgammon(西洋雙陸棋)遊戲,有一系列計算機程序(例如neuro-gammon和TD-gammon)經過非監督學習本身一遍又一遍的玩這個遊戲,變得比最強的人類棋手還要出色。這些程序發現的一些原則甚至令雙陸棋專家都感到驚訝,而且它們比那些使用預分類樣本訓練的雙陸棋程序工做得更出色。
一種次要的非監督學習類型稱之爲聚合(原文爲clustering,譯者注)。這類學習類型的目標不是讓效用函數最大化,而是找到訓練數據中的近似點。聚合經常能發現那些與假設匹配的至關好的直觀分類。例如,基於人口統計的聚合個體可能會在一個羣體中造成一個富有的聚合,以及其餘的貧窮的聚合。
無監督式學習(Unsupervised Learning )是人工智能網絡的一種算法(algorithm),其目的是去對原始資料進行分類,以便了解資料內部結構。有別於監督式學習網絡,無監督式學習網絡在學習時並不知道其分類結果是否正確,亦即沒有受到監督式加強(告訴它何種學習是正確的)。其特色是僅對此種網絡提供輸入範例,而它會自動從這些範例中找出其潛在類別規則。當學習完畢並經測試後,也能夠將之應用到新的案例上。
無監督學習裏典型的例子就是聚類了。聚類的目的在於把類似的東西聚在一塊兒,而咱們並不關心這一類是什麼。所以,一個聚類算法一般只須要知道如何計算類似度就能夠開始工做了。
半監督學習的基本思想是利用數據分佈上的模型假設, 創建學習器對未標籤樣本進行標籤。
形式化描述爲:
給定一個來自某未知分佈的樣本集S=L∪U, 其中L 是已標籤樣本集L={(x1,y1),(x2,y2), … ,(x |L|,y|L|)}, U是一個未標籤樣本集U={x’1,x’2,…,x’|U|},但願獲得函數f:X → Y能夠準確地對樣本x預測其標籤y,這個函數多是參數的,如最大似然法;多是非參數的,如最鄰近法、神經網絡法、支持向量機法等;也多是非數值的,如決策樹分類。其中, x與x’ 均爲d 維向量, yi∈Y 爲樣本x i 的標籤, |L| 和|U| 分別爲L 和U 的大小, 即所包含的樣本數。半監督學習就是在樣本集S 上尋找最優的學習器。如何綜合利用已標籤樣例和未標籤樣例,是半監督學習須要解決的問題。
半監督學習問題從樣本的角度而言是利用少許標註樣本和大量未標註樣本進行機器學習,從機率學習角度可理解爲研究如何利用訓練樣本的輸入邊緣機率 P( x )和條件輸出機率P ( y | x )的聯繫設計具備良好性能的分類器。這種聯繫的存在是創建在某些假設的基礎上的,即聚類假設(cluster assumption)和流形假設(maniford assumption)。
非監督學習已經得到了巨大的成功,例如西洋雙陸棋程序world-champion calibre以及自動駕駛技術。當有一種爲行爲賦予權值的簡單方法時,它能夠成爲一項強大的技術。當有足夠的數據構成聚類(儘管有時這很是困難),聚合可能會很是有用,特別是一個聚類中關於成員的附加數據因爲這些附加的數據能夠用於產生更多的結果。
若是有恰當的分類系統(例如疾病處理程序,它通常會在實施自動診斷以後直接決定設計),分類學習也會很是強大,或者當分類是一件很是簡單的事情,此時咱們很是樂於讓計算機爲咱們進行識別。若是經過算法做出的決定須要輸入別的地方,這時分類學習是必要的。不然,對於須要輸入的一方來講,計算它的含義將會很是困難。
這兩種技術都很是有價值,你須要根據當時的狀況決定須要選用哪種技術——要解決什麼類型的問題,解決它須要多少時間(一般來講,監督學習和聚合要比強化學習更快),以及是否監督學習更有可能解決這個問題。