1. 程式人生 > >計算機視覺之訓練分類器

計算機視覺之訓練分類器

訓練策略:
無參模型:KNN
生成模型:naive bayes
判別模型:線性模型和SVM

KNN(k的選擇和距離公式選擇很重要):
將測試樣本與訓練集中的樣本做距離運算,找到最近的k個樣本,記錄最多的標註結果。
實際的問題來了,如果把測試樣本與所有訓練集樣本做距離運算,計算量太大了,能不能找到一種方法減少計算量?

解決方案1:Locality Sensitive Hashing
通過構建hash table 可以使得原本距離很近的樣本分在同一個bucket,這樣在找k個相近的樣本時,就只要考慮同一個bucket中的樣本,無需測試所有樣本。
隨機選擇多個投影向量,與資料向量做點積得到部分索引值,所有索引號相同的資料項在一個bucket中。由於所選的投影向量是隨機的,可能實際相鄰的樣本hash之後不在同一個bucket中,沒有關係,重新選擇投影向量相鄰資料項就有可能在同一個bucket中。
在這裡插入圖片描述


解決方案2:K-D 樹

樸素貝葉斯:
p(y=1|x)=p(x|y=1)p(y=1)/p(x)
假設特徵無關,根據訓練集中相應特徵出現的概率乘積來訓練分類器。

linear 分類器、SVM思想找到一個判別平面來分離不同型別的資料。

多分類問題:
one vs one:訓練集中每兩個類生成一個分類器
one vs all :訓練集中以一個類為正樣本,其餘所有樣本作為負樣本

分類器效能指標:
ROC和AOC