姓名:張坤? ? 學(xué)號(hào):1700030080
轉(zhuǎn)載自:http://www.cnblogs.com/sciencefans/p/4394861.html,有刪節(jié)
【嵌牛導(dǎo)讀】:介紹人臉識(shí)別的四大塊:Face detection, alignment, verification and identification(recognization)榜跌,本別代表從一張圖中識(shí)別出人臉位置厚者,把人臉上的特征點(diǎn)定位,人臉校驗(yàn)和人臉識(shí)別萧落。(后兩者的區(qū)別在于,人臉校驗(yàn)是要給你兩張臉問你是不是同一個(gè)人,人臉識(shí)別是給你一張臉和一個(gè)庫問你這張臉是庫里的誰暑认。
【嵌牛鼻子】:人臉檢測 人臉校準(zhǔn) 特征點(diǎn)定位 決策樹 隨機(jī)森林 CART RandForest RandFern Boosting Realboost
【嵌牛提問】:人臉識(shí)別是什么,有哪些識(shí)別技術(shù)揪垄?
【嵌牛正文】:
人臉檢測(detection)在opencv中早就有直接能拿來用的haar分類器穷吮,基于Viola-Jones算法。但是畢竟是老掉牙的技術(shù)饥努,Precision/Recall曲線渣到不行捡鱼,在實(shí)際工程中根本沒法給boss看,作為MSRA腦殘粉酷愧,這里介紹一種MSRA在14年的最新技術(shù):Joint Cascade Face Detection and Alignment(ECCV14)驾诈。這篇文章直接在30ms的時(shí)間里把detection和alignment都給做了,PR曲線彪到很高溶浴,時(shí)效性高乍迄,內(nèi)存占用卻非常低,在一些庫上虐了Face++和Google Picasa士败,正好契合這篇想講的東西闯两。可以作為本節(jié)的主線谅将。
人臉校準(zhǔn)(alignment)是給你一張臉漾狼,你給我找出我需要的特征點(diǎn)的位置,比如鼻子左側(cè)饥臂,鼻孔下側(cè)逊躁,瞳孔位置,上嘴唇下側(cè)等等點(diǎn)的位置隅熙。如果覺得還是不明白稽煤,看下圖:
圖中紅色框框就是在做detection,白色點(diǎn)點(diǎn)就是在做alignment囚戚。
如果知道了點(diǎn)的位置做一下位置驅(qū)動(dòng)的變形酵熙,臉就成正的了,如何驅(qū)動(dòng)變形不是本節(jié)的重點(diǎn)弯淘,在此省略绿店。
首先介紹一下下面正文要寫的東西,由于干貨非常多所以可能會(huì)看著看著就亂了,所以給出框架圖:
=================================
廢話說了這么多假勿,正文開始~
detection
作者建立了一個(gè)叫post classifier的分類器借嗽,方法如下:
1.樣本準(zhǔn)備:首先作者調(diào)用opencv的Viola-Jones分類器,將recal閥值設(shè)到99%转培,這樣能夠盡可能地檢測出所有的臉恶导,但是同時(shí)也會(huì)有非常多的不是臉的東東被檢測出來。于是浸须,檢測出來的框框們被分成了兩類:是臉和不是臉惨寿。這些圖片被resize到96*96。
2.特征提壬局稀:接下來是特征提取裂垦,怎么提取呢?作者采用了三種方法:
第一種:把window劃分成6*6個(gè)小windows肌索,分別提取SIFT特征蕉拢,然后連接著36個(gè)sift特征向量成為圖像的特征。
第二種:先求出一個(gè)固定的臉的平均shape(27個(gè)特征點(diǎn)的位置诚亚,比如眼睛左邊晕换,嘴唇右邊等等),然后以這27個(gè)特征點(diǎn)為中心提取sift特征站宗,然后連接后作為特征闸准。
第三種:用他們組去年的另一個(gè)成果Face Alignment at 3000 FPS via Regressing Local Binary Features (CVPR14),也就是圖中的3000FPS方法梢灭,回歸出每張臉的shape夷家,然后再以每張臉自己的27個(gè)shape points為中心做sift,然后連接得到特征敏释。
3.分類:將上述的三種特征分別扔到線性SVM中做分類瘾英,訓(xùn)練出一個(gè)能分辨一張圖是不是臉的SVM模型。
緊接著作者將以上三種方法做出的分類器和初始分類器進(jìn)行比對(duì)颂暇,畫了一個(gè)樣本分布的圖:
這個(gè)圖從左到右依次是原始級(jí)聯(lián)分類器得到的樣本分類分布和第一種到第三種方法提取的特征得到的樣本分類分布〉蹋可見做一下shape alignment可以得到一個(gè)更好的分類效果耳鸯。但是問題來了:如果把所有的windows都做一下alignment,即使是3000 faces per second的速度一張圖可能也要處理上1秒膀曾,這無法滿足一般一秒30幀的實(shí)時(shí)需求县爬。作者也說,用opencv分類器添谊,參數(shù)設(shè)成99%的recall率將會(huì)帶來很嚴(yán)重的效率災(zāi)難——一張圖能找出來3000個(gè)框财喳,處理一張圖都要好幾秒。
這么渣的效率可咋辦呢?以上內(nèi)容已經(jīng)證明了alignment確實(shí)對(duì)detection的preciseness有幫助耳高,這就夠啦扎瓶,對(duì)下面的工作也是個(gè)啟發(fā)——能不能在做detection的同時(shí)把a(bǔ)lignment做了呢?alignment的中間結(jié)果是否能給detection帶來一些幫助呢泌枪?后面慢慢講概荷。先說兩個(gè)通用的面部檢測和矯正的模型:
1.級(jí)聯(lián)檢測分類器(bagging):不失一般性,一個(gè)簡單的級(jí)聯(lián)分類器是這樣的:
圖中的Ci代表的是第i個(gè)弱分類器碌燕。x代表的是特征向量误证,f代表分類得分。每個(gè)Ci會(huì)根據(jù)自己的分類方法對(duì)x輸出一個(gè)分類結(jié)果修壕,比如是一張臉或者不是一張臉愈捅,而fn(n=1~N)都會(huì)對(duì)應(yīng)一個(gè)thresholdΘi,讓任意一個(gè)fn小于對(duì)應(yīng)的Θi的時(shí)候慈鸠,樣本就會(huì)被拒絕蓝谨。通常不是一張臉的圖片在經(jīng)過前幾個(gè)弱分類器的判斷后就會(huì)被拒絕,根本不用做后面的判斷林束,所以速度很快像棘。
2.級(jí)聯(lián)回歸校準(zhǔn)(我這翻譯…+_+):這里介紹的是另一個(gè)人在10年發(fā)的文章:Cascaded Pose Regression? (CVPR10),給圖像一個(gè)初始shape(通常采用平均shape)壶冒,然后通過一次一次的回歸把shape回歸到正確的地方缕题。算法結(jié)構(gòu)很簡單,但是效果確實(shí)非常好:
回歸過程如下:首先提取特征胖腾,原作者采用的是Pose-Indexed point features烟零,然后根據(jù)特征訓(xùn)練回歸函數(shù)(可以用線性回歸,CART咸作,隨機(jī)森林等等)锨阿,原作者采用了一個(gè)叫Random Fern Regressor的東西,這里翻譯成隨機(jī)蕨好了(這名字…)记罚,回歸出這一階段的偏移量墅诡,然后shape加上這個(gè)偏移量,反復(fù)這一過程桐智,直到迭代上限或者shape錯(cuò)誤率不再下降末早。隨機(jī)蕨的算法過程和隨機(jī)森林類似,他是一個(gè)半樸素貝葉斯模型说庭。首先選取M組每組K個(gè)特征建立M個(gè)蕨(弱分類器)然磷,然后假設(shè)蕨內(nèi)特征是相關(guān)的,蕨間特征是獨(dú)立的刊驴,這樣從統(tǒng)計(jì)學(xué)上隨機(jī)蕨是一個(gè)完整的把樸素貝葉斯分類器姿搜,讓計(jì)算變得簡單:
式中C代表分類寡润,ci代表第I類,M代表蕨數(shù)量舅柜。
綜上梭纹,這樣回歸的過程可以總結(jié)成如下形式:
S代表shape,St代表在回歸第t階段的shape业踢,他等于上一階段的shape加上一個(gè)偏置栗柒,這個(gè)偏置就是上述回歸方法之一搞定的。比如隨機(jī)森林或者隨機(jī)蕨知举,或者線性回歸瞬沦。
現(xiàn)在再說說怎么訓(xùn)練得到這個(gè)回歸Rt。
有兩種思路:一種是像剛才隨機(jī)蕨那樣雇锡,每個(gè)每個(gè)蕨的葉子節(jié)點(diǎn)存儲(chǔ)一個(gè)偏移量逛钻,計(jì)算訓(xùn)練的時(shí)候落入這個(gè)葉子節(jié)點(diǎn)的樣本偏移之平均,然后作為最終的葉子節(jié)點(diǎn)偏移量锰提。其實(shí)就是在優(yōu)化一個(gè)如下目標(biāo)函數(shù):
然而MSRA組在3000fps中采用的是另一種方法曙痘,形狀的偏移量ΔδS為:
目標(biāo)函數(shù)是:
其實(shí)也是同樣的思路,Φ代表特征提取函數(shù)立肘,論文中稱Φ的輸出為局部二值特征(LBF)边坤,W為線性回歸參數(shù)矩陣,其實(shí)就是把提取出來的特征映射到一個(gè)二維的偏移量上谅年,是一個(gè)2*lenth(特征空間維數(shù))的變換矩陣茧痒。
首先講Φ是怎么訓(xùn)練的:Φ其實(shí)就是一個(gè)隨機(jī)森林。輸入像素差特征(pixel-difference features)融蹂,輸出一個(gè)offest旺订。訓(xùn)練的時(shí)候隨機(jī)給每個(gè)根節(jié)點(diǎn)像素差特征中的一部分。非葉節(jié)點(diǎn)的分裂依據(jù)是從輸入的pixel-difference features中找出能夠做到最大的方差衰減的feature超燃。在最后的葉子節(jié)點(diǎn)上寫上落在葉子節(jié)點(diǎn)上的樣本偏移量区拳,這個(gè)偏移量在之前說到的fern里有用,但是在這里沒啥用意乓,因?yàn)樽髡咦詈蟛皇怯眠@個(gè)做回歸的而是用LBF樱调,詳細(xì)的得往下看。如果有多個(gè)樣本都落在這里届良,則求平均本涕。這樣訓(xùn)練出來的東西就是下面這個(gè)公式所表達(dá)的東西:
可能有讀者看到這就會(huì)不懂了,不用管這個(gè)公式伙窃,等下面的看完了就會(huì)懂了。
但是我只想要其中的Φ样漆,于是這里給出了LBF(local binary feature)的定義为障,直接簡單粗暴地統(tǒng)計(jì)所有樹葉節(jié)點(diǎn)是否被該樣本落入,如果落入了就記為1否則記為0,然后把所有的01串連起來就是LBF了鳍怨。還是看圖說話:
先看b呻右,隨機(jī)森林的三棵樹,樣本經(jīng)過三棵樹后分別落在了第1,2,3個(gè)葉子節(jié)點(diǎn)上鞋喇,于是三棵樹的LBF就是1000,0100,0010.連接起來就是100001000010.然后看a声滥,把27個(gè)特征點(diǎn)的lbf都連接起來形成總的LBF就是Φ了。
接下來是訓(xùn)練w:之前已經(jīng)得到了wΦ(I,S)以及Φ(I,S),現(xiàn)在想求w侦香,這還不容易嗎落塑,直接算呀。不過作者又調(diào)皮了罐韩,他說他不想求w憾赁,而是想求一個(gè)總的大W=[w1,w2,w3,…,w27].怎么求呢?得做二次回歸散吵。至于為什么要這么做下面會(huì)介紹龙考。目標(biāo)函數(shù):
后面加了個(gè)L2項(xiàng),因?yàn)閃是炒雞sparse的矾睦,防止過擬合晦款。做線性回歸即可得到W。
現(xiàn)在解釋一下為啥不直接用w1w2w3…而是要再回歸出來一個(gè)W:原因有兩個(gè):
1. 再次回歸W可以去除原先小wi葉子節(jié)點(diǎn)上的噪聲枚冗,因?yàn)殡S機(jī)森林里的決策樹都是弱分類器嘛噪聲多多滴缓溅;
2.大W是全局回歸(之前的一個(gè)一個(gè)小w也就是一個(gè)一個(gè)特征點(diǎn)單獨(dú)的回歸是local回歸),全局回歸可以有效地實(shí)施一個(gè)全局形狀約束以減少局部誤差以及模糊不清的局部表現(xiàn)官紫。
這樣一來肛宋,測試的時(shí)候每輸入一張圖片I,先用隨機(jī)森林Φ求出它的LBF束世,然后在用W乘一下就得到了下一個(gè)stage的shape酝陈,然后迭代幾次就得到了最終的shape。所以效率十分的快毁涉。
好了沉帮,兜了一大圈該回來了,剛才講的是兩個(gè)uniform的model來做detection和shape regression的贫堰。接下來該講作者是怎么邊detection邊regression shape的了穆壕!
作者建立了一個(gè)分類回歸樹,就叫CRT好了其屏。這個(gè)CRT在距離根節(jié)點(diǎn)比較近的幾層偏重于分類喇勋,在接近葉子節(jié)點(diǎn)的幾層偏重于回歸,具體實(shí)現(xiàn)上偎行,每個(gè)節(jié)點(diǎn)究竟用于回歸還是分類呢川背?用一個(gè)概率p表示用于分類的概率贰拿,自然回歸就是1-p了。而這個(gè)p隨著深數(shù)的深度減小熄云,作者采用了一個(gè)經(jīng)驗(yàn)公式:
知道了CRT怎么建立膨更,那就直接就看算法細(xì)節(jié)吧!邊測試是不是臉邊做特征點(diǎn)回歸的算法如下:
這個(gè)模型的訓(xùn)練方法如下:
這樣就算完了嗎缴允?不荚守,既然要實(shí)現(xiàn),就要細(xì)看一下以上用到的各類算法細(xì)節(jié):
部分摘自其他博客练般,詳見參考文獻(xiàn)矗漾。
1.CART(Classification And Regression Tree)
思想:遞歸地將輸入空間分割成矩形
優(yōu)點(diǎn):可以進(jìn)行變量選擇,可以克服missing data踢俄,可以處理混合預(yù)測
缺點(diǎn):不穩(wěn)定
分類訓(xùn)練過程:
就這樣不斷分割之后可以建立如下這樣的決策樹:
2.Bagging (Breiman1996): 也稱bootstrap aggregation
Bagging的策略:
- 從樣本集中用Bootstrap采樣選出n個(gè)樣本
- 在所有屬性上缩功,對(duì)這n個(gè)樣本建立分類器(CART or SVM or ...)
- 重復(fù)以上兩步m次,i.e.build m個(gè)分類器(CART or SVM or ...)
- 將數(shù)據(jù)放在這m個(gè)分類器上跑都办,最后vote看到底分到哪一類
Fit many large trees to bootstrap resampled versions of the training data, and classify by majority vote.
下圖是Bagging的選擇策略嫡锌,每次從N個(gè)數(shù)據(jù)中采樣n次得到n個(gè)數(shù)據(jù)的一個(gè)bag,總共選擇B次得到B個(gè)bags琳钉,也就是B個(gè)bootstrap samples.
流程圖如下:
3.隨機(jī)森林:
隨機(jī)森林势木,指的是利用多棵樹對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測的一種分類器。該分類器最早由Leo Breiman和Adele Cutler提出歌懒,并被注冊成了商標(biāo)啦桌。簡單來說,隨機(jī)森林就是由多棵CART(Classification And Regression Tree)構(gòu)成的及皂。對(duì)于每棵樹甫男,它們使用的訓(xùn)練集是從總的訓(xùn)練集中有放回采樣出來的,這意味著验烧,總的訓(xùn)練集中的有些樣本可能多次出現(xiàn)在一棵樹的訓(xùn)練集中板驳,也可能從未出現(xiàn)在一棵樹的訓(xùn)練集中。在訓(xùn)練每棵樹的節(jié)點(diǎn)時(shí)碍拆,使用的特征是從所有特征中按照一定比例隨機(jī)地?zé)o放回的抽取的若治,根據(jù)Leo Breiman的建議,假設(shè)總的特征數(shù)量為M感混,這個(gè)比例可以是sqrt(M),1/2sqrt(M),2sqrt(M)端幼。
因此,隨機(jī)森林的訓(xùn)練過程可以總結(jié)如下:
(1)給定訓(xùn)練集S弧满,測試集T婆跑,特征維數(shù)F。確定參數(shù):使用到的CART的數(shù)量t庭呜,每棵樹的深度d滑进,每個(gè)節(jié)點(diǎn)使用到的特征數(shù)量f摹迷,終止條件:節(jié)點(diǎn)上最少樣本數(shù)s,節(jié)點(diǎn)上最少的信息增益m
對(duì)于第1-t棵樹郊供,i=1-t:
(2)從S中有放回的抽取大小和S一樣的訓(xùn)練集S(i),作為根節(jié)點(diǎn)的樣本近哟,從根節(jié)點(diǎn)開始訓(xùn)練
(3)如果當(dāng)前節(jié)點(diǎn)上達(dá)到終止條件驮审,則設(shè)置當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),如果是分類問題吉执,該葉子節(jié)點(diǎn)的預(yù)測輸出為當(dāng)前節(jié)點(diǎn)樣本集合中數(shù)量最多的那一類c(j)疯淫,概率p為c(j)占當(dāng)前樣本集的比例;如果是回歸問題戳玫,預(yù)測輸出為當(dāng)前節(jié)點(diǎn)樣本集各個(gè)樣本值的平均值熙掺。然后繼續(xù)訓(xùn)練其他節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)沒有達(dá)到終止條件咕宿,則從F維特征中無放回的隨機(jī)選取f維特征币绩。利用這f維特征,尋找分類效果最好的一維特征k及其閾值th府阀,當(dāng)前節(jié)點(diǎn)上樣本第k維特征小于th的樣本被劃分到左節(jié)點(diǎn)缆镣,其余的被劃分到右節(jié)點(diǎn)。繼續(xù)訓(xùn)練其他節(jié)點(diǎn)试浙。有關(guān)分類效果的評(píng)判標(biāo)準(zhǔn)在后面會(huì)講董瞻。
(4)重復(fù)(2)(3)直到所有節(jié)點(diǎn)都訓(xùn)練過了或者被標(biāo)記為葉子節(jié)點(diǎn)。
(5)重復(fù)(2),(3),(4)直到所有CART都被訓(xùn)練過田巴。
利用隨機(jī)森林的預(yù)測過程如下:
對(duì)于第1-t棵樹钠糊,i=1-t:
(2)重復(fù)執(zhí)行(1)直到所有t棵樹都輸出了預(yù)測值。如果是分類問題壹哺,則輸出為所有樹中預(yù)測概率總和最大的那一個(gè)類抄伍,即對(duì)每個(gè)c(j)的p進(jìn)行累計(jì);如果是回歸問題斗躏,則輸出為所有樹的輸出的平均值逝慧。
注:有關(guān)分類效果的評(píng)判標(biāo)準(zhǔn),因?yàn)槭褂玫氖荂ART啄糙,因此使用的也是CART的平板標(biāo)準(zhǔn)笛臣,和C3.0,C4.5都不相同。
對(duì)于分類問題(將某個(gè)樣本劃分到某一類)隧饼,也就是離散變量問題沈堡,CART使用Gini值作為評(píng)判標(biāo)準(zhǔn)。定義為Gini=1-∑(P(i)*P(i)),P(i)為當(dāng)前節(jié)點(diǎn)上數(shù)據(jù)集中第i類樣本的比例燕雁。例如:分為2類诞丽,當(dāng)前節(jié)點(diǎn)上有100個(gè)樣本鲸拥,屬于第一類的樣本有70個(gè),屬于第二類的樣本有30個(gè)僧免,則Gini=1-0.7×07-0.3×03=0.42刑赶,可以看出,類別分布越平均懂衩,Gini值越大撞叨,類分布越不均勻,Gini值越小浊洞。在尋找最佳的分類特征和閾值時(shí)牵敷,評(píng)判標(biāo)準(zhǔn)為:argmax(Gini-GiniLeft-GiniRight),即尋找最佳的特征f和閾值th法希,使得當(dāng)前節(jié)點(diǎn)的Gini值減去左子節(jié)點(diǎn)的Gini和右子節(jié)點(diǎn)的Gini值最大枷餐。
對(duì)于回歸問題,相對(duì)更加簡單苫亦,直接使用argmax(Var-VarLeft-VarRight)作為評(píng)判標(biāo)準(zhǔn)毛肋,即當(dāng)前節(jié)點(diǎn)訓(xùn)練集的方差Var減去減去左子節(jié)點(diǎn)的方差VarLeft和右子節(jié)點(diǎn)的方差VarRight值最大。
Random Forest與Bagging的區(qū)別在于:Bagging每次生成決策樹的時(shí)候從全部的屬性Attributes里面選擇著觉,而Random Forest是隨機(jī)從全部Attributes的集合里面生成一個(gè)大小固定的子集村生,相對(duì)而言需要的計(jì)算量更小一些。
4.Boosting(Freund & Schapire 1996):
boosting在選擇hyperspace的時(shí)候給樣本加了一個(gè)權(quán)值饼丘,使得loss function盡量考慮那些分錯(cuò)類的樣本(i.e.分錯(cuò)類的樣本weight大)趁桃。
怎么做的呢?
- boosting重采樣的不是樣本肄鸽,而是樣本的分布卫病,對(duì)于分類正確的樣本權(quán)值低,分類錯(cuò)誤的樣本權(quán)值高(通常是邊界附近的樣本)典徘,最后的分類器是很多弱分類器的線性疊加(加權(quán)組合)蟀苛,分類器相當(dāng)簡單。
結(jié)構(gòu)如圖:
AdaBoost和RealBoost是Boosting的兩種實(shí)現(xiàn)方法逮诲。general的說帜平,Adaboost較好用,RealBoost較準(zhǔn)確梅鹦。由于Boosting算法在解決實(shí)際問題時(shí)有一個(gè)重大的缺陷,即他們都要求事先知道弱分類算法分類正確率的下限,這在實(shí)際問題中很難做到裆甩。后來 Freund 和 Schapire提出了 AdaBoost 算法,該算法的效率與 Freund 方法的效率幾乎一樣,卻可以非常容易地應(yīng)用到實(shí)際問題中。AdaBoost 是Boosting 算法家族中代表算法,AdaBoost 主要是在整個(gè)訓(xùn)練集上維護(hù)一個(gè)分布權(quán)值向量 D( x) t ,用賦予權(quán)重的訓(xùn)練集通過弱分類算法產(chǎn)生分類假設(shè) Ht ( x) ,即基分類器,然后計(jì)算他的錯(cuò)誤率,用得到的錯(cuò)誤率去更新分布權(quán)值向量 D( x) t ,對(duì)錯(cuò)誤分類的樣本分配更大的權(quán)值,正確分類的樣本賦予更小的權(quán)值齐唆。每次更新后用相同的弱分類算法產(chǎn)生新的分類假設(shè),這些分類假設(shè)的序列構(gòu)成多分類器嗤栓。對(duì)這些多分類器用加權(quán)的方法進(jìn)行聯(lián)合,最后得到?jīng)Q策結(jié)果。這種方法不要求產(chǎn)生的單個(gè)分類器有高的識(shí)別率,即不要求尋找識(shí)別率很高的基分類算法,只要產(chǎn)生的基分類器的識(shí)別率大于 015 ,就可作為該多分類器序列中的一員。
尋找多個(gè)識(shí)別率不是很高的弱分類算法比尋找一個(gè)識(shí)別率很高的強(qiáng)分類算法要容易得多,AdaBoost 算法的任務(wù)就是完成將容易找到的識(shí)別率不高的弱分類算法提升為識(shí)別率很高的強(qiáng)分類算法,這也是 AdaBoost 算法的核心指導(dǎo)思想所在,如果算法完成了這個(gè)任務(wù),那么在分類時(shí),只要找到一個(gè)比隨機(jī)猜測略好的弱分類算法,就可以將其提升為強(qiáng)分類算法,而不必直接去找通常情況下很難獲得的強(qiáng)分類算法茉帅。通過產(chǎn)生多分類器最后聯(lián)合的方法提升弱分類算法,讓他變?yōu)閺?qiáng)的分類算法,也就是給定一個(gè)弱的學(xué)習(xí)算法和訓(xùn)練集,在訓(xùn)練集的不同子集上,多次調(diào)用弱學(xué)習(xí)算法,最終按加權(quán)方式聯(lián)合多次弱學(xué)習(xí)算法的預(yù)測結(jié)果得到最終學(xué)習(xí)結(jié)果叨叙。包含以下2點(diǎn):
AdaBoost 通過對(duì)樣本集的操作來訓(xùn)練產(chǎn)生不同的分類器,他是通過更新分布權(quán)值向量來改變樣本權(quán)重的,也 就是提高分錯(cuò)樣本的權(quán)重,重點(diǎn)對(duì)分錯(cuò)樣本進(jìn)行訓(xùn)練。
(1) 沒有先驗(yàn)知識(shí)的情況下,初始的分布應(yīng)為等概分布,也就是訓(xùn)練集如果有 n個(gè)樣本,每個(gè)樣本的分布概率為1/ n堪澎。(2) 每次循環(huán)后提高錯(cuò)誤樣本的分布概率,分錯(cuò)的樣本在訓(xùn)練集中所占權(quán)重增大,使得下一次循環(huán)的基分類器能夠集中力量對(duì)這些錯(cuò)誤樣本進(jìn)行判斷擂错。
最后的強(qiáng)分類器是通過多個(gè)基分類器聯(lián)合得到的,因此在最后聯(lián)合時(shí)各個(gè)基分類器所起的作用對(duì)聯(lián)合結(jié)果有很大的影響,因?yàn)椴煌诸惼鞯淖R(shí)別率不同,他的作用就應(yīng)該不同,這里通過權(quán)值體現(xiàn)他的作用,因此識(shí)別率越高的基分類器權(quán)重越高,識(shí)別率越低的基分類器權(quán)重越低。權(quán)值計(jì)算如下: 基分類器的錯(cuò)誤率: e = ∑( ht ( x i) ≠yi) Di (1) 基分類器的權(quán)重:W t = F( e) ,由基分類器的錯(cuò)誤率計(jì)算他的權(quán)重樱蛤。2.3 算法流程及偽碼描述 算法流程描述 算法流程可用結(jié)構(gòu)圖 1 描述,如圖 1 所示 AdaBoost重復(fù)調(diào)用弱學(xué)習(xí)算法(多輪調(diào)用產(chǎn)生多個(gè)分類器) ,首輪調(diào)用弱學(xué)習(xí)算法時(shí),按均勻分布從樣本集中選取子集作為該次訓(xùn)練集,以后每輪對(duì)前一輪訓(xùn)練失敗的樣本,賦予較大的分布權(quán)值( Di 為第i 輪各個(gè)樣本在樣本集中參與訓(xùn)練的概率) ,使其在這一輪訓(xùn)練出現(xiàn)的概率增加,即在后面的訓(xùn)練學(xué)習(xí)中集中對(duì)比較難訓(xùn)練的樣本進(jìn)行學(xué)習(xí),從而得到 T個(gè)弱的基分類器, h1 , h2 , …, ht ,其中 ht 有相應(yīng)的權(quán)值 w t ,并且其權(quán)值大小根據(jù)該分類器的效果而定马昙。最后的分類器由生成的多個(gè)分類器加權(quán)聯(lián)合產(chǎn)生。
==================================
參考文章:
[1]Joint Cascade Face Detection and Alignment(ECCV14)
?[2]Face Alignment at 3000 FPS via Regressing Local Binary Features (CVPR14)
[3]Cascaded Pose Regression? (CVPR10)
[4]Fast Keypoint Recognition in Ten Lines of Code
[5]女神的博文:http://blog.csdn.net/abcjennifer/article/details/8164315
http://blog.sina.com.cn/s/blog_605f5b4f01013r72.html
==================================