1. 程式人生 > >詞袋模型(Bag of Features,BOF)

詞袋模型(Bag of Features,BOF)

Bag of Features(BOF)

  對於程式而言這個人就是一堆畫素嘛,讓它直接找的話它只能一個個畫素的去比較然後返回最接近的了(近鄰演算法)。但是現實中物體的形狀顏色會發生變化,如果手頭又只有這一張照片,直接去找的速度和正確率實在太低。
  有研究者想到,可以把這個人的照片拆成許多小塊,然後一塊一塊的比較(方法叫Bag of Features)。最後哪一塊區域相似的塊數最多就把那片區域標出來。這種做法的好處在於即使識別一個小塊出了問題,還有其他的小塊能作為識別的依據,發生錯誤的風險比之前大大降低了。
  這裡寫圖片描述
  這種做法最大的缺點就是它還是把一個小塊看成一坨畫素然後按照畫素的數值去比較,之前提到的改變光照改變形狀導致物體無法被識別的問題根本上並沒有得到解決。
  用卷積神經網路做的物體識別器其實原理和bag of features差不了太多,只是把有用的特徵(feature)都裝到了神經網路裡了。

詞袋模型

  詞袋模型最初產生於自然語言處理領域,通過建模文件中單詞出現的頻率來對文件進行描述與表達。04年首次將詞袋的概念引入計算機視覺領域,由此大量的研究工作集中開始於詞袋模型的研究,並逐漸形成了由特徵提取、特徵聚類、特徵編碼、特徵匯聚和分類器分類4部分組成的標準目標分類框架.詞袋模型中大量的工作集中在特徵編碼和特徵匯聚方面。

BOF與DL

  詞袋模型在較小資料集上有一定優勢,深度學習模型在較大資料庫上取得更好的效果。
  發現兩者其實是極為相似的.在詞袋模型中,對底層特徵進行特徵編碼的過程,實際上近似等價於卷積神經網路中的卷積層,而匯聚層所進行的操作也與詞袋模型中的匯聚操作一樣。不同之處在於,詞袋模型實際上相當於只包含了一個卷積層和一個匯聚層,且模型採用無監督方式進行特徵表達學習,而卷積神經網路則包含了更多層的簡單、複雜細胞,可以進行更為複雜的特徵變換,並且其學習過程有監督過程。