回覆列表
  • 1 # 北航秦曾昌

    一、影象分類的任務

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

    二、SVM分類原理

    下圖是SVM透過超平面進行影象分類的原理示意圖。SVM透過平面將空間中的例項劃分到不同的類別,從而實現分類。在圖中的每一個平面都將整個高維空間劃分為兩個部分,兩個不同的部分即是將影象進行分類的結果。例如藍色平面一側為飛機類別,另一側是非飛機類別。

    每一個類別都對應一個平面,這些平面互相之間不存在關聯,利用SVM模型進行分類的目的就是確定這樣一組平面,使得同一類儘可能劃分在該類對應的平面的一側,其他類儘可能在另一側,而且兩種類別離平面的距離越大越好(平面儘可能把兩類分的更開),這是SVM模型的思路。

    所有這些類別對應的平面透過下面的矩陣唯一確定:

    其中改變W可以使平面旋轉,而改變b使平面平移。如果b為0,此時W*0=0,那麼平面會經過原點。

    三、SVM進行影象分類的直觀解釋

    SVM模型用於影象分類可以看做給每一種影象的類別生成一個影象模板,然後拿待分類的影象和這個影象模板做內積,計算他們的相似度,相似度最高的類別就是分類類別。根據這個思想,生成的權重向量視覺化如下:

    可以看出,這些影象模板比較能夠代表某種類別的共性,比如car類別是一輛紅色的車的形象,而horse型別是左右兩匹馬的形象,這些是集合了所有訓練樣本得出的模板。從這個角度,SVM可以看做KNN模型的一種簡化,KNN模型對一張圖片分類時需要和所有訓練樣本做比較,而SVM只需要和抽象出來的每個類別下的一個影象模板做比較即可,顯然更高效。

    四、SVM多分類問題

    SVM是用來處理二分類問題的,但現實中碰到的大都是多分類問題,因此SVM採用不同方式來達到多類分類的目的。目前支援向量機多分類方法主要分為兩個方向:一個是一次求解法,即透過一個最佳化的公式來最佳化所有類別的引數;還有一種透過組合多個SVM分類來解決多類分類問題。

    具體的SVM多分類演算法可參見:https://blog.csdn.net/xfchen2/article/details/79621396

    五、具體實現

    利用SVM進行影象分類還有一些其他細節需要注意,比如損失函式的確定、影象的預處理和影象資料訓練的方法等。斯坦福CS231n課程中詳細的對相關的原理細節進行了講解,並給出了實現程式碼。在他們的例項中:模型採用的總的損失函式=摺頁損失+L2正則化損失。例項對影象進行了中心化和歸一化處理,梯度更新採用了小批次資料梯度下降的方法。

    具體的程式碼參見:https://github.com/452896915/cs231n_course_homework。

    需要指出的是在這個例項中SVM模型分類效果還是比較差的,透過更復雜的神經網路,或者CNN等模型可以將分類的準確率達到95%以上。

  • 2 # 你看我獨角獸嗎

    支援向量機方法背後的直覺是,如果分類器擅長最具挑戰性的比較(圖2中B和A中的點彼此最接近),那麼分類器在簡單比較時會更好(比較B和A中彼此相距很遠的點)。

    感知器和其他分類器的區別

    透過一次取一個點並相應地調整分界線來構建感知器。一旦所有點分離,感知器演算法就會停止。但它可以在任何地方停止。圖1顯示有許多不同的分界線分隔資料。感知器的停止標準很簡單:“當你獲得100%的分離時,將點分開並停止改善線路”。沒有明確告知感知器找到最佳分離線。邏輯迴歸和線性判別模型與感知器類似地構建。

    最佳分界線最大化最接近A的B點與最接近B的A點之間的距離。沒有必要檢視所有這些點。實際上,如果選中全部的點,可能會使線條過度擬合,如下圖所示。

    支援向量機:

    與其他分類器不同,支援向量機明確告知找到最佳分離線。怎麼樣?支援向量機搜尋最近的點(圖2),它稱之為“支援向量”(名稱“支援向量機”是由於點類似於向量並且最佳線“依賴於”或被“最近點支援”。

    一旦找到最近的點,SVM就會繪製一條連線它們的線(參見圖2中標有“w”的線)。它透過向量減法繪製此連線線(點A - 點B)。然後,支援向量機將最佳分離線宣告為與連線線平分並且垂直的線。

    支援向量機更好,因為當你得到一個新的樣本(新點)時,你已經建立了一條線,使B和A儘可能遠離彼此,因此它不太可能存在其他分類的區域,當然可能存在異常點情況。

  • 3 # 鎂客網

    SVM(support vector machine)作為傳統機器學習的一個非常重要的分類演算法,已經廣泛應用於各個行業。

    SVM簡單來說是一個分類器,舉個簡單的例子,桌子上有幾個玻璃球,球有兩種顏色,一種是紅色,一種是藍色, 然後可以透過一條線將這些球分開。

    為了使這條線對紅色球和藍色球之間的距離最大化,也就是這條線在正中間,需要尋找一條最恰當的線。這條最最佳化的線在兩個平行的細線之間。

    假如這些玻璃球並不是在桌子上,而是在空間中呢,那麼可以畫出一個曲面,這個曲面正好分割所有的紅玻璃球和藍玻璃球。

    大多數情況下,這條線或者面並不是平直的,也就是說是彎曲的,術語叫“線性不可分”。這時其實是可以把這個非線性提升到更高維上進行線性劃分的(具體方法感興趣的可以查閱詳細資料,當把問題轉化為線性問題後,其實解決問題就簡單了。

    假設有一張影象,影象裡有一隻貓,高維的線性劃分庫裡面有7個動物模版,分別是:1狗、2貓、3老鼠、4雞、5鴨子、6鵝、7兔子、8黃鼠狼。對需要預測的影象與我們庫裡的模版做運算,最後所得的結果落在哪個區域就說明這張圖更像什麼。

    因為SVM是用訓練好的模版直接對影象進行運算,因此可想而知,SVM很快,效率特別高,根據SVM的原理,其解決二分類問題(也就是非此即彼類問題)非常高效。

    以上就是如何用SVM對影象進行分類的講解。

  • 4 # 碼科智慧

    svm,俗稱支援向量機,最簡單可用於二分類器,舉個例子:桌子上放著一堆蘋果和梨,現在要尋找一條線(支援向量)來分開蘋果和梨,從而完成分類任務。所以目的就是尋找最優的支援向量。

  • 5 # 北航秦曾昌

    一、影象分類的任務

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

    二、SVM分類原理

    下圖是SVM透過超平面進行影象分類的原理示意圖。SVM透過平面將空間中的例項劃分到不同的類別,從而實現分類。在圖中的每一個平面都將整個高維空間劃分為兩個部分,兩個不同的部分即是將影象進行分類的結果。例如藍色平面一側為飛機類別,另一側是非飛機類別。

    每一個類別都對應一個平面,這些平面互相之間不存在關聯,利用SVM模型進行分類的目的就是確定這樣一組平面,使得同一類儘可能劃分在該類對應的平面的一側,其他類儘可能在另一側,而且兩種類別離平面的距離越大越好(平面儘可能把兩類分的更開),這是SVM模型的思路。

    所有這些類別對應的平面透過下面的矩陣唯一確定:

    其中改變W可以使平面旋轉,而改變b使平面平移。如果b為0,此時W*0=0,那麼平面會經過原點。

    三、SVM進行影象分類的直觀解釋

    SVM模型用於影象分類可以看做給每一種影象的類別生成一個影象模板,然後拿待分類的影象和這個影象模板做內積,計算他們的相似度,相似度最高的類別就是分類類別。根據這個思想,生成的權重向量視覺化如下:

    可以看出,這些影象模板比較能夠代表某種類別的共性,比如car類別是一輛紅色的車的形象,而horse型別是左右兩匹馬的形象,這些是集合了所有訓練樣本得出的模板。從這個角度,SVM可以看做KNN模型的一種簡化,KNN模型對一張圖片分類時需要和所有訓練樣本做比較,而SVM只需要和抽象出來的每個類別下的一個影象模板做比較即可,顯然更高效。

    四、SVM多分類問題

    SVM是用來處理二分類問題的,但現實中碰到的大都是多分類問題,因此SVM採用不同方式來達到多類分類的目的。目前支援向量機多分類方法主要分為兩個方向:一個是一次求解法,即透過一個最佳化的公式來最佳化所有類別的引數;還有一種透過組合多個SVM分類來解決多類分類問題。

    具體的SVM多分類演算法可參見:https://blog.csdn.net/xfchen2/article/details/79621396

    五、具體實現

    利用SVM進行影象分類還有一些其他細節需要注意,比如損失函式的確定、影象的預處理和影象資料訓練的方法等。斯坦福CS231n課程中詳細的對相關的原理細節進行了講解,並給出了實現程式碼。在他們的例項中:模型採用的總的損失函式=摺頁損失+L2正則化損失。例項對影象進行了中心化和歸一化處理,梯度更新採用了小批次資料梯度下降的方法。

    具體的程式碼參見:https://github.com/452896915/cs231n_course_homework。

    需要指出的是在這個例項中SVM模型分類效果還是比較差的,透過更復雜的神經網路,或者CNN等模型可以將分類的準確率達到95%以上。

  • 6 # 你看我獨角獸嗎

    支援向量機方法背後的直覺是,如果分類器擅長最具挑戰性的比較(圖2中B和A中的點彼此最接近),那麼分類器在簡單比較時會更好(比較B和A中彼此相距很遠的點)。

    感知器和其他分類器的區別

    透過一次取一個點並相應地調整分界線來構建感知器。一旦所有點分離,感知器演算法就會停止。但它可以在任何地方停止。圖1顯示有許多不同的分界線分隔資料。感知器的停止標準很簡單:“當你獲得100%的分離時,將點分開並停止改善線路”。沒有明確告知感知器找到最佳分離線。邏輯迴歸和線性判別模型與感知器類似地構建。

    最佳分界線最大化最接近A的B點與最接近B的A點之間的距離。沒有必要檢視所有這些點。實際上,如果選中全部的點,可能會使線條過度擬合,如下圖所示。

    支援向量機:

    與其他分類器不同,支援向量機明確告知找到最佳分離線。怎麼樣?支援向量機搜尋最近的點(圖2),它稱之為“支援向量”(名稱“支援向量機”是由於點類似於向量並且最佳線“依賴於”或被“最近點支援”。

    一旦找到最近的點,SVM就會繪製一條連線它們的線(參見圖2中標有“w”的線)。它透過向量減法繪製此連線線(點A - 點B)。然後,支援向量機將最佳分離線宣告為與連線線平分並且垂直的線。

    支援向量機更好,因為當你得到一個新的樣本(新點)時,你已經建立了一條線,使B和A儘可能遠離彼此,因此它不太可能存在其他分類的區域,當然可能存在異常點情況。

  • 7 # 鎂客網

    SVM(support vector machine)作為傳統機器學習的一個非常重要的分類演算法,已經廣泛應用於各個行業。

    SVM簡單來說是一個分類器,舉個簡單的例子,桌子上有幾個玻璃球,球有兩種顏色,一種是紅色,一種是藍色, 然後可以透過一條線將這些球分開。

    為了使這條線對紅色球和藍色球之間的距離最大化,也就是這條線在正中間,需要尋找一條最恰當的線。這條最最佳化的線在兩個平行的細線之間。

    假如這些玻璃球並不是在桌子上,而是在空間中呢,那麼可以畫出一個曲面,這個曲面正好分割所有的紅玻璃球和藍玻璃球。

    大多數情況下,這條線或者面並不是平直的,也就是說是彎曲的,術語叫“線性不可分”。這時其實是可以把這個非線性提升到更高維上進行線性劃分的(具體方法感興趣的可以查閱詳細資料,當把問題轉化為線性問題後,其實解決問題就簡單了。

    假設有一張影象,影象裡有一隻貓,高維的線性劃分庫裡面有7個動物模版,分別是:1狗、2貓、3老鼠、4雞、5鴨子、6鵝、7兔子、8黃鼠狼。對需要預測的影象與我們庫裡的模版做運算,最後所得的結果落在哪個區域就說明這張圖更像什麼。

    因為SVM是用訓練好的模版直接對影象進行運算,因此可想而知,SVM很快,效率特別高,根據SVM的原理,其解決二分類問題(也就是非此即彼類問題)非常高效。

    以上就是如何用SVM對影象進行分類的講解。

  • 8 # 碼科智慧

    svm,俗稱支援向量機,最簡單可用於二分類器,舉個例子:桌子上放著一堆蘋果和梨,現在要尋找一條線(支援向量)來分開蘋果和梨,從而完成分類任務。所以目的就是尋找最優的支援向量。

  • 中秋節和大豐收的關聯?
  • 羅斯福與斯大林可以成為朋友,川普有沒有可能與久加諾夫成為朋友?為什麼?