小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

機器學(xué)習(xí)中的目標(biāo)函數(shù)總結(jié)

 taotao_2016 2018-09-18

廣而告之

SIGAI歷時半年精心打磨的《機器學(xué)習(xí)》課程上線啦--全面、系統(tǒng)、深入地掌握機器學(xué)習(xí)的難得機會。最好的課程,最豐富的實踐項目,最優(yōu)質(zhì)的技術(shù)文章,只為獻給立志于從事人工智能事業(yè)的你!

限時特惠:699元原價1399元)

本周三(9月19日)晚八點半,SIGAI免費技術(shù)直播《為什么需要深度學(xué)習(xí)》,將就以下內(nèi)容進行梳理與講解,敬請期待(公眾號后臺回復(fù)“直播”查看詳情。)

1.特征工程與機器學(xué)習(xí)算法面臨的挑戰(zhàn)

2.神經(jīng)網(wǎng)絡(luò)的探索歷史

3.深度學(xué)習(xí)的誕生歷程

4.為什么歷史選擇了深度神經(jīng)網(wǎng)絡(luò)

5.深度強化學(xué)習(xí)的發(fā)展歷程




幾乎所有的機器學(xué)習(xí)算法最后都歸結(jié)為求解最優(yōu)化問題,以達到我們想讓算法達到的目標(biāo)。為了完成某一目標(biāo),需要構(gòu)造出一個“目標(biāo)函數(shù)”來,然后讓該函數(shù)取極大值或極小值,從而得到機器學(xué)習(xí)算法的模型參數(shù)。如何構(gòu)造出一個合理的目標(biāo)函數(shù),是建立機器學(xué)習(xí)算法的關(guān)鍵,一旦目標(biāo)函數(shù)確定,接下來就是求解最優(yōu)化問題,這在數(shù)學(xué)上一般有現(xiàn)成的方案。如果你對最優(yōu)化算法感興趣,可以閱讀SIGAI之前的公眾號文章“理解梯度下降法”,“理解牛頓法”,“理解凸優(yōu)化”,“機器學(xué)習(xí)中的最優(yōu)化算法總結(jié),”。本文的側(cè)重點是對目標(biāo)函數(shù)的構(gòu)造進行總結(jié)。


下面我們將介紹機器學(xué)習(xí)中一些典型的目標(biāo)函數(shù)的構(gòu)造思路,并對各種算法的目標(biāo)函數(shù)做一個總結(jié)。按照用途和要解決的問題,機器學(xué)習(xí)算法可以分為有監(jiān)督學(xué)習(xí),無監(jiān)督學(xué)習(xí),強化學(xué)習(xí)3種類型。其中,有監(jiān)督學(xué)習(xí)又進一步細分為分類問題與回歸問題,無監(jiān)督學(xué)習(xí)算法分為聚類問題和數(shù)據(jù)降維問題。概括起來,各類算法要解決的核心問題是:

分類算法    是什么

回歸算法    是多少

聚類算法    怎么分

數(shù)據(jù)降維    怎么壓

強化學(xué)習(xí)    怎么做

對于有監(jiān)督學(xué)習(xí)中的分類問題與回歸問題,機器學(xué)習(xí)算法尋找一個映射函數(shù):

為輸入的樣本數(shù)據(jù)預(yù)測出一個實數(shù)值或類別標(biāo)簽。不同的是,分類問題要確定樣本的類別,即回答“是什么”的問題;回歸問題要預(yù)測出一個實數(shù)值,即回答“是多少”的問題。例如,如果要確定一張圖像是貓還是狗,則為分類問題,算法的輸入為圖像,輸出為類別編號。如果我們要根據(jù)一個人的年齡、學(xué)歷、行業(yè)等信息預(yù)測他/她的收入,則屬于回歸問題。二者都是要確定上面這種形式的函數(shù)。


對于無監(jiān)督學(xué)習(xí)的聚類問題,機器學(xué)習(xí)算法要尋找一個集合的劃分,將樣本集D劃分成多個不相交的子集:

每個樣本屬于這些子集中的一個,因此可以概括為解決“怎么分的問題”,與分類問題不同的是,這里沒有人工事先定義好的類別,因此也沒有訓(xùn)練過程。例如,如果要將一批新聞劃分為不同類型的,就屬于聚類問題,這里沒有實現(xiàn)定義好的類,算法自己完成劃分,這些類可能是政治、體育、娛樂、經(jīng)濟、軍事等。


對于數(shù)據(jù)降維問題,機器學(xué)習(xí)算法要尋找一個映射函數(shù),將一個高維向量映射成一個低維向量:

但要盡可能的保留之前向量的一些重要信息。


對于強化學(xué)習(xí),機器學(xué)習(xí)算法要為每種狀態(tài)s下確定一個動作a來執(zhí)行,即確定策略函數(shù),使得執(zhí)行這些動作之后得到我們預(yù)期的結(jié)果:

執(zhí)行動作后會得到獎勵,這個預(yù)期的結(jié)果是讓獎勵最大化。例如,用強化學(xué)習(xí)來實現(xiàn)自動駕駛,要根據(jù)當(dāng)前的路況來決定怎么開車,這里的路況就是狀態(tài),開車就是動作,通過控制汽車去我們想去的目的地,這就是目標(biāo)。


上面這些算法要完成的目標(biāo)是一個抽象的概念,具體實現(xiàn)時,要通過一個“目標(biāo)函數(shù)”來體現(xiàn),算法要通過讓目標(biāo)函數(shù)取極大值或極小值來確定模型的參數(shù)。

 

有監(jiān)督學(xué)習(xí)

首先來看有監(jiān)督學(xué)習(xí),要確定一個映射函數(shù),這個函數(shù)帶有參數(shù),而參數(shù)則通過訓(xùn)練樣學(xué)習(xí)得到。假設(shè)映射函數(shù)為:

其中θ是模型的參數(shù),如何確定它的值,是訓(xùn)練算法的核心。一般來說,我們稱有監(jiān)督學(xué)習(xí)的目標(biāo)函數(shù)為“損失函數(shù)”,它通過模型對每個訓(xùn)練樣本x的預(yù)測值與訓(xùn)練樣本的真正標(biāo)簽值y來構(gòu)造。其含義是,如果算法預(yù)測錯了,則有損失,因此該函數(shù)反映了映射函數(shù)的預(yù)測值與樣本真實標(biāo)簽值之間的誤差。讓誤差最小化,就是讓損失函數(shù)最小化:

其中l(wèi)為訓(xùn)練樣本數(shù),(xi,yi),i=1,...,l為訓(xùn)練樣本。樣本的特征向量以及標(biāo)簽值此時是已知的,目標(biāo)函數(shù)的未知數(shù)是模型的參數(shù)θ。

 

某些有監(jiān)督的機器學(xué)習(xí)算法擬合的是概率密度函數(shù)或者某一概率分布,此時需要根據(jù)樣本來確定概率分布的參數(shù)。在學(xué)習(xí)概率論與數(shù)理統(tǒng)計時我們知道,確定一個概率分布的參數(shù)最常用的是最大似然估計,它求解如下的似然函數(shù)最大化問題:

求解函數(shù)極值時需要對參數(shù)求導(dǎo),這種連乘形式的函數(shù)求導(dǎo)不方便,因此對似然函數(shù)取對數(shù),得到對數(shù)似然函數(shù):

這類問題的核心是根據(jù)一組樣本來估計概率分布的參數(shù),使得在參數(shù)θ取最優(yōu)值的時候,這組樣本出現(xiàn)的概率最大。下面針對分類問題和回歸問題,分別總結(jié)常用的目標(biāo)函數(shù)。

 

分類問題

對于分類問題,預(yù)測函數(shù)的輸出值是離散化的類別標(biāo)簽。給定一組訓(xùn)練樣本,在訓(xùn)練時的目標(biāo)是讓這組訓(xùn)練樣本盡量被正確的分類,這對應(yīng)于經(jīng)驗風(fēng)險最小化的思想。

 

感知器算法的是最簡單的線性分類器,它的目標(biāo)是讓所有樣本盡可能分類。對于二分類問題,線性分類器的判別函數(shù)為:

樣本的標(biāo)簽值為+1或-1,分別對應(yīng)正樣本和負樣本。如果線性函數(shù)預(yù)測出來的值和樣本的真實標(biāo)簽值不同號,則預(yù)測錯誤;如果同號,則預(yù)測正確。要將預(yù)測錯誤最小化,只需求解如下最優(yōu)化問題即可:

對于每個訓(xùn)練樣本,如果預(yù)測正確,則損失函數(shù)為負,否則為正。這樣我們就構(gòu)造出了一個容易求解的損失函數(shù)。

 

對于二分類或多分類問題,都可以用歐氏距離作為分類的損失函數(shù)。對于多分類問題,一般不直接用類別編號作為預(yù)測值,而是為類別進行向量化編碼,如one-hot編碼。此時損失函數(shù)定義為:

在人工神經(jīng)網(wǎng)絡(luò)發(fā)展的早期,這種函數(shù)被廣泛使用,但后來對于多分類問題,更多的采用交叉熵損失函數(shù)。在后面我們會介紹此函數(shù),至于原因,在SIGAI之前的公眾號文章“【群話題精華】五月集錦——機器學(xué)習(xí)和深度學(xué)習(xí)中一些值得思考的問題”中曾經(jīng)做過說明,感興趣的讀者可以閱讀這篇文章。

 

線性判別分析(LDA)是一種有監(jiān)督的數(shù)據(jù)降維算法,它的目標(biāo)是最大化類間差異,最小化類內(nèi)差異。數(shù)據(jù)經(jīng)過投影之后,在低維空間里,同類樣本聚集在一起,不同類的樣本相距盡可能遠。類內(nèi)差異用每個類的方差來衡量,類間差異用各個類的類中心之間的距離來衡量,二者的比值為我們要優(yōu)化的目標(biāo)。由此構(gòu)造出如下?lián)p失函數(shù):

求解這一問題最后歸結(jié)為求解矩陣的特征值問題。

 

前面介紹的感知器算法的目標(biāo)函數(shù),歐氏距離損失,代表的都是經(jīng)驗風(fēng)險,即在訓(xùn)練樣本集上讓誤差最小化。這樣做的泛化性能不一定好,還有一種做法為結(jié)構(gòu)化風(fēng)險最小化,典型代表是支持向量機。


支持向量機不僅要讓所有訓(xùn)練樣本盡可能被正確分類,還要讓分類間隔最大化,根據(jù)解析幾何中點到超平面的距離公式,我們構(gòu)造出了它的優(yōu)化目標(biāo):

這個優(yōu)化問題還帶有不等式約束。SVM推導(dǎo)的細節(jié),SIGAI之前寫過一篇公眾號文章“用一張圖理解SVM的脈絡(luò)”,后面將做更詳細的講解,敬請期待。

 

我們可以從另一個角度解釋支持向量機的優(yōu)化目標(biāo)函數(shù),即合頁損失函數(shù)。合頁損失函數(shù)定義為:

其意義為當(dāng):

即當(dāng)樣本的間隔大于1時:

該樣本的損失是0;否則樣本的損失是1-yiwtxi。此時是一個正的損失。采用合頁損失函數(shù),SVM訓(xùn)練時優(yōu)化的目標(biāo)為:

這和前面一種表述是等價的。此時,目標(biāo)函數(shù)的前半部分充當(dāng)正則化項,后半部分充當(dāng)真正的損失函數(shù),用于對違反約束的樣本進行懲罰。

 

前面說過,對于輸出概率值的模型,可以采用最大似然估計來估計模型的參數(shù)。典型的代表是logistic回歸。對于二分類問題,如果樣本的類別標(biāo)簽值為1和0,則對數(shù)似然函數(shù)為:

將logistic回歸推廣到多分類問題,即softmax回歸,它輸出一個樣本屬于每個類的概率值。因此,訓(xùn)練樣本的標(biāo)簽值為一個向量,如果樣本屬于某一類,該分量為1,其他分量為0。損失函數(shù)根據(jù)標(biāo)簽向量與預(yù)測出的概率向量構(gòu)造,使用的是softmax交叉熵,定義為:

而交叉熵損失定義為:

它在深度神經(jīng)網(wǎng)絡(luò)中被廣泛使用。

 

AdaBoost算法訓(xùn)練時優(yōu)化的目標(biāo)函數(shù)為指數(shù)損失函數(shù),它根據(jù)強分類器的輸出值F(x)與樣本的標(biāo)簽值構(gòu)造:

在這里,樣本的標(biāo)簽值為-1或+1,對應(yīng)于負樣本和正樣本。強分類器通過加法模型構(gòu)造,求解時每次優(yōu)化一個弱分類器和它的權(quán)重,具體做法在之前的公眾號文章“理解AdaBoost算法”中已經(jīng)介紹,由此可以推導(dǎo)出AdaBoost的訓(xùn)練算法。

 

神經(jīng)網(wǎng)絡(luò)尤其是深度學(xué)習(xí)中使用的損失函數(shù)種類繁多,除了傳統(tǒng)的歐氏距離之外,還有近幾年流行的交叉熵,以及其他函數(shù),下表列出了常用的一些損失函數(shù)以及它們的導(dǎo)數(shù):

在這里,求導(dǎo)是對神經(jīng)網(wǎng)絡(luò)的預(yù)測數(shù)據(jù)進行的。損失層是神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的最后一層,它也只用于訓(xùn)練階段。在實現(xiàn)反向傳播算法時,它是梯度反向傳播的起點。


需要說明的是,對前面介紹的很多損失函數(shù),我們都可以加上正則化項,得到新的損失函數(shù),以減輕過擬合。

 

回歸問題

回歸問題直接預(yù)測出所需要的函數(shù)值。最常用的是歐氏距離損失,它直接反映預(yù)測值與真實值之間的誤差:

除此之外,還有其他的函數(shù)可以考慮,如接下來要介紹的L1光滑的損失函數(shù)。如果預(yù)測函數(shù)是線性函數(shù),則為線性回歸,這是最簡單的回歸算法,其損失函數(shù)為:

如果加上L1和L2正則化項,則分別得到LASSO回歸和嶺回歸。

 

多任務(wù)損失函數(shù)

在一些實際應(yīng)用中,機器學(xué)習(xí)算法要同時解決多個問題。例如對于目標(biāo)檢測問題,其目目標(biāo)是檢測出圖像中各種大小、各種位置、各種類寫的目標(biāo),即要同時判斷出每個目標(biāo)的類型(是人,是車,還是其他類型的東西)以及目標(biāo)所在的位置、大小:


目標(biāo)的位置和大小一般用一個矩形框來定義目標(biāo),即其外接矩形,用參數(shù)表示為(x, y, w, h),其中(x, y)是矩形左上角的坐標(biāo),w為寬度,h為高度。前者是一個分類問題,后者是一個回歸問題。為了同時完成這些目標(biāo),設(shè)計出了多任務(wù)損失函數(shù)。此函數(shù)由兩部分構(gòu)成,第一部分為分類損失,即要正確的判定每個目標(biāo)的類別;第二部分為定位損失,即要正確的的確定目標(biāo)所處的位置。以Fast R-CNN為例,它的損失函數(shù)為:

前半部分為分類損失,可以采用交叉熵完成多分類任務(wù)。后半部分為定位損失,確定矩形框的大小和位置,但并沒有使用歐氏距離,而是采用了L1光滑的損失函數(shù),定義為:

在之后的Faster R-CNN,YOLO,SSD等算法中,都采用了這種多任務(wù)損失函數(shù)的思路。


除此之外,在其他地方也有多任務(wù)損失函數(shù)的影子,例如人臉識別。卷積神經(jīng)網(wǎng)絡(luò)用于人臉識別任務(wù)時,主要的作用是為每個人提取出有區(qū)分度的特征。要確保對同一個人的不同表情、姿態(tài)、角度的人臉圖像所提取出的特征向量不要有太大的差異;但同時要確保提取的特征向量能區(qū)別不同的人。基于這一思路,DeepID2設(shè)計出了一種多任務(wù)的損失函數(shù):

損失函數(shù)的前半部分為softmax交叉熵,用于區(qū)分不同的人,即解決多分類問題。后半部分為人臉驗證損失,其目標(biāo)是同一個人的特征向量盡量接近,不同人的特征向量盡量距離得遠。


此后的各種人臉識別算法,大多采用了各種新設(shè)計的損失函數(shù),例如Center loss的目標(biāo)是讓不同人的特征向量能被正確的分類,而同一個人的特征向量離這個人所有特征向量的類中心盡可能接近。這樣就迫使神經(jīng)網(wǎng)絡(luò)提取出的特征向量能有效的區(qū)分不同人,而且同一個人的特性向量分布盡量緊密。下圖是用這一算法提取出的人臉特征向量通過PCA投影到2D平面后的結(jié)果:


從上圖可以看出,通過加大中心損失的系數(shù),同一個人的特征最后收縮在很小的一個范圍內(nèi),不同人的特征向量中間以一個很大的間距被分開,以此增加分類算法的泛化性能。

 

數(shù)據(jù)生成模型

數(shù)據(jù)生成模型生成符合某種分布的隨機數(shù),而這種隨機數(shù)服從何種概率分布,我們是不知道的,無法寫成概率密度函數(shù)的表達式來。生成對抗網(wǎng)絡(luò)是深度生成模型的典型代表。


生成對抗網(wǎng)絡(luò)由一個生成模型與一個判別模型構(gòu)成,前者先用樣本進行學(xué)習(xí),然后可以生成和真實樣本服從相同分布的樣本數(shù)據(jù)。后者對生成模型生成的樣本以及真實樣本進行判定,確定一個樣本是生成的,還是真實的。


訓(xùn)練的目標(biāo)是,生成模型要盡可能的欺騙判別模型,即讓判別模型把自己生成的樣本判定為真實樣本;判別模型的目標(biāo)是準(zhǔn)確的區(qū)分出真實樣本和生成的樣本,盡可能的把生成模型產(chǎn)生的模型鑒別處理,即判定為假。由此構(gòu)造出如下的目標(biāo)函數(shù):

目標(biāo)函數(shù)由兩部分構(gòu)成。后半部分只用于生成模型,要讓生成模型產(chǎn)生的樣本,被判別模型判定為真,即讓D(G(z))盡可能接近于1,即讓目標(biāo)函數(shù)取極小值。整個目標(biāo)函數(shù)都用于判別模型,前半部分要讓判別模型將真實樣本盡量判別為真,后半部分要讓判別模型將生成的樣本盡量判別為假,即讓目標(biāo)函數(shù)取極大值,這類似于而分類問題的交叉熵。

 

無監(jiān)督學(xué)習(xí)

無監(jiān)督學(xué)習(xí)分為聚類問題與數(shù)據(jù)降維問題兩種類型,它們優(yōu)化的目標(biāo)完全不同,我們分別進行介紹。

 

聚類

聚類算法將一組樣本劃分成多個類,確保同一類中的樣本差異盡可能小,而不同類的樣本之間盡量不同??梢曰谶@一思想構(gòu)造損失函數(shù):

其含義是每一類樣本距離它的類中心要近,可以理解為這類似于每個類的方差。所有類的方差之和要盡可能小。這就是k均值算法要優(yōu)化的目標(biāo)。

 

數(shù)據(jù)降維

數(shù)據(jù)降維算法要確保將向量投影到低維空間之后,仍然盡可能的保留之前的一些信息,至于這些信息是什么,有各種不同理解,由此誕生了各種不同的降維算法。


主成分分析的優(yōu)化目標(biāo)是最小化重構(gòu)誤差,即用投影到低維空間中的向量近似重構(gòu)原始向量,二者之間的誤差要盡可能的小。最小化重構(gòu)誤差的目標(biāo)為:

這里有附帶約束條件,即投影的基向量ej之間要相互正交。

 

類似的,自動編碼器也采用了這一思想。自動編碼器是一種特殊的神經(jīng)網(wǎng)絡(luò),由編碼器和解碼器兩部分構(gòu)成。前者對輸入數(shù)據(jù)進行映射,得到編碼后的向量;后者對編碼后的向量進行重構(gòu),恢復(fù)出原始向量。解碼器只在訓(xùn)練時使用,訓(xùn)練完成之后,只需要編碼器這一部分,用于對輸入數(shù)據(jù)進行降維或特征提取。其訓(xùn)練時的目標(biāo)函數(shù)為:

即神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的標(biāo)簽值和輸入向量值相同。這和PCA非常類似,不同的是神經(jīng)網(wǎng)絡(luò)的映射是非線性的。

 

某些非線性降維算法如流形學(xué)習(xí),采用了更復(fù)雜的目標(biāo)函數(shù)。以等距映射為例,它采用了測地距離來構(gòu)造損失函數(shù),投影到低維空間之后,要保持這種距離信息,由此得到優(yōu)化目標(biāo)函數(shù)為:

流形學(xué)習(xí)的原理在之前的SIGAI公眾號文章“流形學(xué)習(xí)概述”中已經(jīng)介紹,感興趣的讀者可以閱讀。

 

強化學(xué)習(xí)

最后來說強化學(xué)習(xí)。不同于有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí),強化學(xué)習(xí)的目的是尋找出一個策略函數(shù),使得在每種狀態(tài)下,按照該函數(shù)確定的動作執(zhí)行,最后得到的累計回報最大化。之所以要計算累計回報是因為執(zhí)行完一個動作之后要進入一個新的狀態(tài),在這個新的狀態(tài)下又要執(zhí)行動作。這里的累計回報用狀態(tài)價值函數(shù)或者動作價值函數(shù)來定義,這是遞歸的定義。


狀態(tài)價值函數(shù)的自變量為狀態(tài)以及策略函數(shù),定義為在一個狀態(tài)s下按照策略π

來確定動作執(zhí)行,最后得到的累計回報值:

如果使用狀態(tài)價值函數(shù),強化學(xué)習(xí)要求解所有狀態(tài)下的狀態(tài)價值函數(shù)最大化問題:

由于各個狀態(tài)之間存在關(guān)聯(lián),因此求解算法不同于其他機器學(xué)習(xí)算法。關(guān)于強化學(xué)習(xí)的原理,SIGAI將在后面的公眾號文章中詳細介紹。

 

這篇文章更詳細的講解已經(jīng)由SIGAI錄制成了視頻,本文作者親自講述,精心剪輯制作。如果你對文章的話題感興趣,可以登錄SIGAI的官網(wǎng):

www.sigai.cn

或者

SIGAI 登錄SIGAI小程序觀看技術(shù)解讀視頻 小程序

注冊賬號之后,即可觀看視頻并下載講解的PPT。由于要支付高昂的講師費、剪輯費,以及服務(wù)器研發(fā)、硬件與帶寬等開銷,因此我們向各位同學(xué)象征性的收取一部分成本費,本視頻的價格為19.9元,以維持SIGAI后續(xù)的內(nèi)容創(chuàng)作和研發(fā)。如果你喜歡我們的文章,希望能支持我們!SIGAI將持續(xù)輸出高質(zhì)量的內(nèi)容與產(chǎn)品。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多