国科大prml14-独立于算法的机器学习(boosting/
生活随笔
收集整理的這篇文章主要介紹了
国科大prml14-独立于算法的机器学习(boosting/
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1.哲學定理
- 2. 重采樣resampling
- 2.1 bagging
- 2.2 boosting
- 2.3 adaboost
- 2.3.2訓練誤差
- 2.4 active learning
- 3. 估計和比較分類器--交叉檢驗
- 3.1 交叉驗證
- 5.adaboost在人臉檢測上的應用
- 5.1膚色模型
- 5.2基于AdaBoost的快速人臉檢測
- 如何選擇好的模型和評價模型?
- 獨立于算法的機器學習:如何結合多個分類器
1.哲學定理
- 來自https://blog.csdn.net/qq_28739605/article/details/80607330
- 來自https://blog.csdn.net/qq_28739605/article/details/80607330
- 沒有免費的午餐therom
- 前提:對于所有機器學習問題,且所有問題同等重要
- 沒有一種機器學習算法是適用于所有情況的
- 更一般地說,對于所有機器學習問題,任何一種算法(包括瞎猜)的期望效果都是一樣的
- 有得必有失–沒有最好的算法、學習期
- Occam’s razor:簡單的就是最好的
- 丑小鴨定理:
- 丑小鴨與白天鵝之間的區別和兩只白天鵝之間的區別一樣大
- 世界上不存在分類的客觀標準,一切分類的標準都是主觀的
- (有假設的)
- 沒有最優的特征
- MDL principle:致力于找到一個最簡單、不可約的表達-描述越短越好
- 方差偏差dilemma:模型復雜度增大,方差增加,偏差減小
- 方差:偏離測試集的程度
- 偏差:偏離訓練集的程度
2. 重采樣resampling
- 重采樣:從原數據集(也可能子集)中采樣
- bootstrap:從訓練集中隨機選擇n個點,重新設計每個點的權重
- why重采樣:
- 改進分類器
- 對統計信息進行更準確的估計
- arcing methods(自適應調整和組合)
- bagging:獨立采樣
- boosting:不獨立的采樣
- adaboost
| bagging | 數據集分n個(獨立采樣出來的),每個子集單獨訓練一個分類器,最后多個分類器取平均(加權) | 獨立的重采樣 | 子集間有交集,子集內有重復 | 可并行; 提高不穩定分類器的識別能力(因為對多個取平均 | 每個分類器可以使NN,SVM,tree,ann,…) | 加權多數投票 |
| boosting | 多個弱分類器(比隨機猜好一點就行)結合成一個強分類器;最后結果取加權和(后面的分類器判別前面分錯的) | 不獨立 | D1從X采樣來的;D2一半是D1分對的,一半是他分錯的;D3是D1、D2分的不同的結果 | 不可并行;泛化能力強;不會過擬合 | 任意可用 | 加權多數投票 |
| adaboost | 弱分類器集成,權重依賴于正確率H(x)=sign(Σt=1Tαtht(x))H(x)=sign(\Sigma_{t=1}^T\alpha_th_t(x))H(x)=sign(Σt=1T?αt?ht?(x));學習一系列分類器,在這個序列中每一個分類器對它前一個分類器導致的錯誤分類樣例給予更大的重視 | 不獨立 | Dt+1(i)=Dt(i)Ztexp(?αtyiht(xi))D1(i)=1/m?t=Pi?Dt(ht(xi)≠yi)αt=12ln1??t?tD_{t+1}(i)=\frac{D_t(i)}{Z_t}exp(-\alpha_ty_ih_t(x_i))\\D_1(i)=1/m\\\epsilon_t=P_{i-D_t}(h_t(x_i)\neq y_i)\\\alpha_t=\frac{1}{2}ln\frac{1-\epsilon_t}{\epsilon_t}Dt+1?(i)=Zt?Dt?(i)?exp(?αt?yi?ht?(xi?))D1?(i)=1/m?t?=Pi?Dt??(ht?(xi?)?=yi?)αt?=21?ln?t?1??t?? | 不會過擬合;快,簡單,好編程;參數少;弱分類器的先驗少;通用性強 ;易受到均勻噪聲影響;依賴于弱分類器(弱而不能太弱)和數據 | 任意組件 | H(x)=sign(Σt=1Tαtht(x))H(x)=sign(\Sigma_{t=1}^T\alpha_th_t(x))H(x)=sign(Σt=1T?αt?ht?(x)) |
2.1 bagging
2.2 boosting
- 將多個弱的“基礎”學習者組合在一起,形成一個比任何基礎分類器表現都要好的分類器
2.3 adaboost
- ht(x)弱分類器h_t(x)弱分類器ht?(x)弱分類器
- Dt+1(i)=Dt(i)Ztexp(?αtyiht(xi))D1(i)=1/m?t=Pi?Dt(ht(xi)≠yi)αt=12ln1??t?tD_{t+1}(i)=\frac{D_t(i)}{Z_t}exp(-\alpha_ty_ih_t(x_i))\\D_1(i)=1/m\\\epsilon_t=P_{i-D_t}(h_t(x_i)\neq y_i)\\\alpha_t=\frac{1}{2}ln\frac{1-\epsilon_t}{\epsilon_t}Dt+1?(i)=Zt?Dt?(i)?exp(?αt?yi?ht?(xi?))D1?(i)=1/m?t?=Pi?Dt??(ht?(xi?)?=yi?)αt?=21?ln?t?1??t??
- 推測正確:yiht(xi)>0==>0<exp(?αtyiht(xi))<1;分對了的樣本權重小分錯了的樣本權重推測正確:y_ih_t(x_i)>0==>0<exp(-\alpha_ty_ih_t(x_i))<1;分對了的樣本權重小\\分錯了的樣本權重推測正確:yi?ht?(xi?)>0==>0<exp(?αt?yi?ht?(xi?))<1;分對了的樣本權重小分錯了的樣本權重
- H(x)=sign(Σt=1Tαtht(x))H(x)=sign(\Sigma_{t=1}^T\alpha_th_t(x))H(x)=sign(Σt=1T?αt?ht?(x))
2.3.2訓練誤差
- 何時停止?
- 防止過擬合
- adaboost不會過擬合
- 類似svm,margin:趨向于增大margin–>減小泛化誤差
- margin theory即使在訓練誤差達到零的情況下,仍然可以增加集合的邊界。
- 訓練時,不光考慮是否分對,還考慮置信度
- 要求
- 弱分類器對訓練集來說不復雜
- 弱分類器有很大的邊(margin)
- –不滿足可能會overfiting
2.4 active learning
- 人在循環中
- 機器會向人主動要標簽
3. 估計和比較分類器–交叉檢驗
- 方法
- Jackknife (leave-one-out)
- 交叉檢驗
3.1 交叉驗證
- 不應該在測試集上調參,在訓練集上驗證
- 交叉檢驗:將有標簽的訓練數據分成訓練集和驗證集(少于0.5)
- m-折交叉驗證:1個做驗證集,m-1個做訓練集(輪流重復)(如果m=n則為Jackknife)
5.adaboost在人臉檢測上的應用
- ? 基于規則/知識方法
- – 人臉模式的變化滿足一定的規律,所以可以歸納描述人臉特征的規 則,如灰度分布、比例關系、紋理信息等
- ? 基于模板的方法
- – 固定模板法,可變形模板法
- ? 基于不變特征的方法,如彩色信息
- – 人臉的膚色在彩色空間中的分布相對比較集中,所以可用來檢測和 跟蹤人臉。
- ? 基于表觀分類器學習的方法
- – 將人臉檢測視為區分“非人臉樣本”與“人臉樣本”的PR問題,通過對人臉樣本集和非人臉樣本集的學習產生分類器
5.1膚色模型
- – 最簡單的方法是用Cr, Cb值定義膚色區域,選定閾值[Cr1,Cr2]和[Cb1,Cb2]
- – 一個像素點被歸為膚色點,如果它的(Cr, Cb)值落入下面的范圍:
- Cr1≤Cr≤Cr2 and Cb1≤Cb≤Cb2
- ? 訓練膚色模型
- – 手工標注部分人臉(膚色區域)人臉圖像
- – 統計方法得到 ?,?
- – 設置合適的閾值截斷
- ? 測試階段
- – 逐像素判斷其是否在設定的膚色特征范圍內
- ? 對檢測到的膚色區域進行分析
- – 接近橢圓形
- – 有部分非膚色區域(五官、頭發)
- ? 膚色模型難以適應各種環境光照變化
- – 對于背景和前景的光照變化,膚色通常不穩定
- – 單純的膚色信息對于人臉檢測通常是不充分的
- ? 如何適應在不同光照下的人臉跟蹤
- – 如果環境光照有變化,原有的膚色模型可能不再適用,如何建立一個自適應的膚色模型需要進一步的研究
5.2基于AdaBoost的快速人臉檢測
- 在2001年的ICCV上,當時在Compaq的研究員Paul Viola和Michael J. Jones發表的文章介紹了一個實時人臉檢測系統
- – 圖像大小為384x288時,其速度是平均每秒15幀
- – 第一個準實時的(準正面)人臉檢測系統
- – 可以較容易的擴展到多姿態人臉檢測
- ? 系統在技術上的三個貢獻:
- – 1.用簡單的Haar-like矩形特征作弱特征,可快速計算
- – 2.基于AdaBoost的分類器設計(弱特征?弱分類器)
- – 3.采用了Cascade(分級分類器)技術提高檢測速度
- 人臉表示方法
- 矩形特征(Haar-like特征)
- – 矩形特征
- ? 所有白色矩形中像素的亮度值的和,減去所有灰色矩形中點的亮度值的和,所得到的差即為Haar-like特征
- – 有4種類型的矩形特征
- 具體特征可以用一個五元組表示
- r(x,y,w,h,style)
- – 比如:r(2,2,4,2,A)表示下面的特征
- ? 特征值即為白色四個像素與黑色四個像素的差值
- ? 如何快速計算任意矩形內
- 所有像素的亮度之和?
- 請大家設計一個算法
- – 要求計算量盡可能的小
- 積分圖為什么快?沒有乘法,只有加減
- AdaBoost分類器
- – Adaboost學習算法是用來提高簡單分類算法的性能的 – 通過對一些弱分類器的組合來形成一個強分類器
- ? 功能–
- 將分類性能不好的弱分類器提升為分類性能好的強分類器的學習算法
- ? 思想–
- 學習一系列分類器,在這個序列中每一個分類器對它前一個分類器導致的錯誤分類樣例給予更大的重視
- 學習一系列分類器,在這個序列中每一個分類器對它前一個分類器導致的錯誤分類樣例給予更大的重視
- ? 輸入
- – 1.訓練用人臉和非臉樣本
- – 2.指定要挑選出來的弱分類器的數目T
- ? 這也是程序循環的次數
- – 3.利用先驗知識初始化權值向量
- ? 一般可以平均設置
- ? 一般可以平均設置
- 檢測系統的構建
- 遍歷所有位置
- 人臉有大有小
- 還有旋轉
- 如何加速?
- 方法1 – 只用一個篩子,網眼非常小,所有的都要過這個篩子
- ? 方法2 – 用一系列篩子,網眼從大到小 – 非常容易被截住的巨石首先被排除,然后是大石頭,再是小石頭,沙 礫,粗沙,最后是細沙
- 基于分級分類器的加速策略
- – 大量候選窗口可以利用非常少量的特征(簡單快速的分類器)就可以排除是人臉的可能性!
- – 只有極少數需要大量的特征(更復雜的更慢的分類器來判別是否人臉)
- ? 采用由粗到細的思想(coarse to fine)
- – 將少量區分性好的特征構成的簡單分類器置于前面若干層
- ? 效果:
- 放過檢測絕大多數人臉的同時,排除大量非臉
- – 后面層包含更多次重要的特征對非臉進行進一步排除
- 檢測率要高,誤檢率隨意(比猜測好點就行)
- ? 訓練方法關鍵思路
- – 每層訓練用非臉樣本使用前面層分類器誤判為人臉的那些樣本
- – 每層訓練用非臉樣本使用前面層分類器誤判為人臉的那些樣本
總結
以上是生活随笔為你收集整理的国科大prml14-独立于算法的机器学习(boosting/的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Yann LeCun最新访谈:能量模型是
- 下一篇: Keras-保存和恢复模型