1. 程式人生 > >基於支援向量機的影象分類(上篇)

基於支援向量機的影象分類(上篇)

摘要:本文通過圖文詳細介紹如何利用支援向量機對影象進行分類。這篇文章從什麼是影象分類任務開始一步步詳細介紹支援向量機原理,以及如何用它解決影象多分類任務。將這部分內容分為上下兩篇:上篇重點詳細介紹實現原理,下篇銜接上篇進行程式設計實現並對程式進行解釋,本篇為上篇。本文將主要介紹以下幾個方面:

  • 影象分類任務
  • 收集訓練集與測試集
  • 支援向量機分類基本原理
  • 特徵選擇與提取
  • SVM 進行影象分類
  • 分類結果評價

1. 影象分類任務

影象分類是模式分類(Pattern C1assification)在影象處理中的應用,它完成將影象資料從二維灰度空間轉換到目標模式空間的工作。分類的結果是將影象根據不同屬性劃分為多個不同類別的子區域。一般地,分類後不同的影象區域之問性質差異應儘可能的大,而區域內部性質應保證平穩特性。

應用SVM進行分類的步驟如下:首先收集各個類的訓練集和測試集,接著選擇合適的用來分類的影象特徵,從訓練集中提取特徵,然後用SVM分類器訓練從而得到分類模板,最後通過模板對待分類影象進行分類。

2. 收集訓練集與測試集

在進行影象分類前,從待處理的資料中取出相當數量的具有代表性的資料作為訓練樣本。另外,取出一定數量的樣本作為測試樣本。這個工作很重要,在演算法上沒有改進的空間時,通常通過建立好的訓練集來提高分類效果。訓練集要滿足以下的條件:(1)訓練集要有代表性。(2)訓練集中不能有錯誤的樣本。(3)訓練集要儘量完備

cifar10影象集是常用的影象分類資料集,由多倫多大學的Geoffrey Hinton教授等人收集整理,包含了60000張大小為32*32的彩色影象,其中50000張作為訓練資料,10000張用於測試資料。50000張訓練圖片分為5個子集,分別命名為data_batch_1~5。每個子集都包含正好10000張圖片,cifar10包含的圖片類別如下圖所示


3. 支援向量機分類基本原理

SVM是以最優化理論為基礎來處理機器學習的新方式。它的提出主要是用來解決兩類分類的問題,在兩類中尋找一個最優超分平面將兩類分開,來提高分類的正確率。

分類問題主要包括兩方面:一個是線性可分,一個是非線性可分。能使兩類正確分開且使兩類之間的距離最大的分類平面稱為最優超平面,其方程記為:

wxb=0對其進行歸一化,使得樣本(xi,yi),i=1,...,n,xϵRd,yϵ{+1,1}滿足yi[(w,xi)b]1
0,i=1,...,n
是表示的是最優分類超平面,圖中m1為分類超平面,m2、m3分別為與超分平面平行且是過兩類中離分類超平面最近的樣本,他們間的距離稱作分類間隔,間距為2/w

3.1 線性可分情況

設線性可分樣本集為(x1,y1),,(xl,yl)xiRn,yi=1,1,i=1,,l,則超平面ωTx+b=0,使得訓練樣本中的正類輸入和負類輸入分別位於該超平面的兩側。即存在引數對(ω,b),使得yi=sgn(ωTx+b),i=1,,lZ,即最優分類平面應使兩類之間的間隔最大,則求取最優平面問題轉化為了下面的優化問題:min:J(w,b,a)=12wTwi=1Nai[yi(wTxi+b)1] yi(ωiTxi+b)+1
其中,ai為約束的拉格朗日乘子,因為都是不等式約束,所以這些乘子都是非負的。對式(1)求偏導得: