- 相關(guān)推薦
機器學(xué)結(jié)
機器學(xué)習(xí),討論的是如何讓計算機程序進(jìn)行學(xué)習(xí)。因為現(xiàn)實世界中有很多問題,不能通過直接編程解決,如手寫數(shù)字識別,自動駕駛等。人們希望計算機程序也能像人一樣,從已有的經(jīng)驗中進(jìn)行學(xué)習(xí),來提高它的性能。
那什么是機器學(xué)習(xí)了?首先來看什么是學(xué)習(xí)。學(xué)習(xí)的一般說法是,在經(jīng)驗的作用下,行為的改變。學(xué)習(xí)有一個要素,那就是經(jīng)驗,學(xué)習(xí)的結(jié)果是行為的改變。如果人經(jīng)過學(xué)習(xí)后,并沒有改變其行為,則不能稱其學(xué)習(xí)了。
機器學(xué)習(xí)的概念略有不同,因為學(xué)習(xí)的主體從人變成了計算機程序。機器學(xué)習(xí)的最早的一個非正式描述是1959年,由arthur samuel給出:field of study that gives computers the ability to learn without being explicitly programmed(機器學(xué)習(xí)是一種學(xué)習(xí)的領(lǐng)域,它給計算機學(xué)習(xí)的能力,而沒有經(jīng)過顯式編碼)。這個顯式編碼應(yīng)該是針對學(xué)習(xí)的結(jié)果來說的,即計算機學(xué)到的東西并不是人寫到程序里的,比如arthur samuel寫了一個下棋的程序,經(jīng)過與程序本身對奕很多盤后,能輕易把arthur samuel擊敗,這就證明學(xué)習(xí)的結(jié)果不是顯示編碼的。機器學(xué)習(xí)的更現(xiàn)代的定義是1998年由卡內(nèi)基梅隆大學(xué)的tom mitchell提出:a computer program is said to learn from experience e, with respect to some task t, and some performance measure p, if its performance on t, as measured by p, improves with experience e(計算機程序從經(jīng)驗中學(xué)習(xí)了,是說它對于某個任務(wù)的性能提高了,這個性能是通過p來度量的)。
使用機器學(xué)習(xí)方法來解決某個任務(wù),首先需要對這個任務(wù)選取合適的原型,如線性回歸,logistic 回歸,樸素貝葉斯,svm(支持向量機)等,然后通過經(jīng)驗來優(yōu)化性能度量p。這里先來說說性能度量p,原型選擇好以后,我們需要根據(jù)一定的方法來調(diào)整原型的參數(shù),從而達(dá)到優(yōu)化性能度量p的目的。機器學(xué)習(xí)的理論很大程度上都是在講優(yōu)化,如最小訓(xùn)練誤差,最小均方差,最大似然率,凸集優(yōu)化等。機器學(xué)習(xí)的過程,就是利用經(jīng)驗,來對性能度量p最優(yōu)化的過程。在實際中,我們并不知道最優(yōu)是個什么樣子,機器學(xué)習(xí)的結(jié)果是對最優(yōu)值的一個估計,這個估計以大概率收斂于最優(yōu)值。
根據(jù)經(jīng)驗的不同,機器學(xué)習(xí)可以分做以下三類:監(jiān)督學(xué)習(xí)(supervised learning),無監(jiān)督學(xué)習(xí)(unsupervised learning)以及增強學(xué)習(xí)(reinforcement learning)。監(jiān)督學(xué)習(xí)是指在訓(xùn)練經(jīng)驗中明確告訴了正確結(jié)果,這就和教小孩認(rèn)水果一樣,期望他在學(xué)習(xí)后能正確認(rèn)出水果的種類。先給他一個蘋果,告訴他,這是蘋果。再給他一個蘋果,告訴他,這是蘋果。如此幾次之后,再給他一個蘋果,問他,這是什么?如果小孩悟性還好的話,就會說,”這是蘋果“。給他一個梨,再問他,如果說”這不是蘋果“。這就表示學(xué)會了,用機器學(xué)習(xí)的術(shù)語,就叫收斂。如果答的不對,那么說明還需要繼續(xù)訓(xùn)練。監(jiān)督學(xué)習(xí)算法的輸出如果是連續(xù)的,稱為回歸(regression),如果是離散的,稱為分類(classification)。大部分的機器學(xué)習(xí)任務(wù)都是監(jiān)督學(xué)習(xí)。無監(jiān)督學(xué)習(xí)的只有訓(xùn)練樣本并沒有正確結(jié)果,繼續(xù)上面那個例子,這次給小孩一堆蘋果,梨和桔子,我們不告訴他這都是些什么,只讓他把這些水果按它們的品種分開。待他分開這些 水果后,再給他一個桔子,我們期望他能把這個放到桔子那一堆。非監(jiān)督學(xué)習(xí)的常用方法是聚類。最后一類是增強學(xué)習(xí),這在機器人領(lǐng)域應(yīng)用廣泛。比如小孩如果乖乖的坐在那吃飯,我們就說乖寶寶,如果他到處亂動,把飯吃得桌子上比碗里還多,多半就要被說好好吃飯,壞寶寶之類的。多次以后,寶寶就會發(fā)現(xiàn),如果他表現(xiàn)聽話些,大家都會夸他,喜歡和他玩,拍拍他頭之類的,如果不聽話,就會得不到這些。寶寶就會盡量往聽話的方面表現(xiàn),以得到大家的贊揚和好感,特別是做了壞事以后......這就是增強學(xué)習(xí),我們只對程序的行為做出評價,程序就會做出更有可能得到正面評價的行為。
機器學(xué)習(xí)需要用到線性代數(shù),概率與統(tǒng)計,以及一些最優(yōu)化方法,如梯度(一階偏導(dǎo)數(shù)),拉格朗日條件極值,凸優(yōu)化(convex optimizition)等。
機器學(xué)結(jié) [篇2]
智能:
智能這個詞可以用很多方法去定義。這里我們把它定義為能夠根據(jù)某些情況做出正確的決定。做出好的決策需要知識,并且這種知識必須是一種可操作的,例如解釋傳感器數(shù)據(jù)并且使用它去做決策。
人工智能:
感謝那些人類曾經(jīng)寫過的程序,允許這些程序去做一些我們認(rèn)為有用的事情。在這種情況下,計算機已經(jīng)獲得了某種程度的智能。在21世紀(jì)的開始的時候了,仍然有很多任務(wù),人和動物可以很簡單做到,而計算機卻無法企及。許多這些任務(wù)落到人工智能的標(biāo)簽下,包括許多感知器和控制任務(wù)。為什么我們不可能寫程序去干這些事情?我相信這是因為我們自己本身并不是真正的知道如何去做這些任務(wù)的,即使我們的大腦能夠做到。做這些事情涉及的目前隱式的知識,但是我們通過數(shù)據(jù)和樣本獲得這些信息,例如觀察在某種輸入下,人類是如何做的。我們?nèi)绾巫寵C器去獲得那種只能?使用數(shù)據(jù)和樣本去建立可操作的知識就是機器學(xué)習(xí)。
機器學(xué)習(xí):
機器學(xué)習(xí)有很長的歷史了,并且有很多教科書講了很多有用的道理。這里我們專注到幾個最相關(guān)的課題。
學(xué)習(xí)的形式化:
首先,讓我們把最一般的機器學(xué)習(xí)框架形式化一下。我們給定如下樣本:
d={z1,z2,...,zn}
zi是從一個未知的過程 p(z)的樣本。我們給定一個損失函數(shù)l,它有兩個參數(shù),一個是決策函數(shù)f,一個是樣本z,它返回一個實數(shù)。我們想去找到l(f,z)的最小值。
有監(jiān)督學(xué)習(xí):
在有監(jiān)督學(xué)習(xí),每個樣本z=(x,y) 函數(shù)f的入?yún)⑹莤,這里最常用的例子包括:
-回歸: y 是一個實數(shù)或者是向量,f的輸出和y是一個集合,我們經(jīng)常把損失函數(shù)作為均方差:
l(f,(x,y))=||f(x)-y||^2
-分類:y 是一個和分類序號對應(yīng)的有限正整數(shù),我們經(jīng)常把這個損失函數(shù)作為一個對數(shù)函數(shù),并且fi(x)=p(y=i|x),也就是說給定x, y=i的概率。
l(f,(x,y))=-log(fy(x)) 這里的約束是 fy(x)>=0, sum(fi(x))=1
無監(jiān)督學(xué)習(xí):
在無監(jiān)督學(xué)習(xí)
無監(jiān)督學(xué)習(xí)中,我們學(xué)習(xí)到一個函數(shù)f,它幫助去描述一個未知概率分布p(z).某些函數(shù)直接估計p(z)自身(這個叫做密度估計)。在其他例子中,f是一個嘗試描述密度主要集中在哪里。聚類算法將輸入空間分割成區(qū)域(經(jīng)常是一個樣本為中心)。其他聚類算法創(chuàng)建了一個硬分區(qū)(比如k-means),而另一個則構(gòu)建了軟分區(qū)(例如gaussian mixture模型),這個軟分區(qū)給出z屬于每一個分類的概率。其他非監(jiān)督學(xué)習(xí)算法是那些構(gòu)建了新的z的表達(dá)。許多深度學(xué)習(xí)算法屬于此類,pca也算是這個。
直接泛化:
大多數(shù)泛化學(xué)習(xí)算法推薦了一個單一原則,直接泛化。它假設(shè)如果樣本a如果和樣本b接近,則對應(yīng)的輸出f(a)和輸出f(b)應(yīng)該接近。這是直接泛化插值的基本原則。這個原則是非常厲害,但是它有局限性,如果我們有多個函數(shù)怎么辦?如果目標(biāo)函數(shù)比訓(xùn)練的樣本有多個輸出?這樣的話,直接泛化將不成立了,因為我們需要至少和目標(biāo)函數(shù)一樣多的樣本,才能夠覆蓋多個函數(shù),才能夠通過這樣的原則來泛化。換句話說,給定知識 d,人類大腦不一定只學(xué)習(xí)了一個函數(shù)就不做了,而是學(xué)會了很多函數(shù),你這時候直接泛化就不成立了。
由于下面的原因這個問題和所謂維數(shù)詛咒深深的聯(lián)系在了一起。
當(dāng)輸入空間是高緯度的,且指數(shù)級增長的時候,是很可能有多個函數(shù)需要學(xué)習(xí)的。舉個例子,我們想去區(qū)別給定輸入的10個不同的輸出,并且,我們關(guān)心所有n個變量的10的n次方個配置。單單使用直接泛化,我們需要至少一個樣本去泛化10的n次方個樣本才能達(dá)到所有的泛化。
分布式表達(dá) vs 本地表達(dá) 和間接泛化
整數(shù)n的一個簡單的二進(jìn)制直接表達(dá)是一個b位的序列,且 n<b, 所有的位是0,除了第n位,整數(shù)n的簡單的二進(jìn)制分布式表達(dá)是一個log2b位的序列,伴隨著一個通常的n的二進(jìn)制編碼。在這個例子,我們看到,分布式表達(dá)可以是比本地的表達(dá)成指數(shù)級的高效。在相同的自由參數(shù)個數(shù)下,相比直接表達(dá),分布式表達(dá)能夠達(dá)到指數(shù)級別的能力。它們因此提供了更好泛化能力的潛力,因為學(xué)習(xí)理論表明樣本的數(shù)目o(b)調(diào)優(yōu)。
另一個區(qū)別是,聚類和主成分分析,或者限制伯瓷慢機。前面的是本地的,后面的是分布式的。
用k-means聚類,我們?yōu)槊恳粋原型維護(hù)一個參數(shù)向量。例如,每個區(qū)域一個。在pca,我們通過記錄它的目標(biāo)可能性的主方向來表達(dá)它的分布。現(xiàn)在想象一個簡單的主成分解釋器,在每一個的方向上,不管在那個方向上的投影是高于或者低于一個閥值,在d個方向上,我們能夠區(qū)分2的第d次方個區(qū)域。rbms是類似的,它定義了d個超平面,并且關(guān)聯(lián)了一個位來標(biāo)識在那個面的那一邊。一個rbm然后關(guān)聯(lián)了一個輸入?yún)^(qū)間到每一個i表達(dá)位的配置。(這些位就是隱藏單元,在神經(jīng)網(wǎng)絡(luò)里的術(shù)語。)
rbm的參數(shù)的個數(shù)大約等于隱藏單元的個數(shù)和輸入維數(shù)。 我們可以看到rbm的區(qū)域數(shù)目或者pca的區(qū)域數(shù)目可以隨著輸入?yún)?shù)的個數(shù)指數(shù)級的增長,但是k-means的傳統(tǒng)聚類區(qū)間表達(dá)的區(qū)域數(shù)量僅僅線性的和隨著參數(shù)的數(shù)目增長。換句話說,意識到一個rbm可以泛化到一個和隱藏單元對應(yīng)的配置的新的區(qū)域,這個樣本卻是沒有被看到的,也就是說聚類算法不可能做到的。
【機器學(xué)結(jié)】相關(guān)文章:
學(xué)結(jié)自我評價08-06
輪崗實習(xí)學(xué)結(jié)08-04
好老師的學(xué)結(jié)07-07
財政培訓(xùn)學(xué)結(jié)(通用10篇)07-10
學(xué)編中國結(jié)作文【熱】08-04