計算機視覺 self attention機制

2021-10-03 12:31:09 字數 1518 閱讀 2834

先來看乙個翻譯的例子「i arrived at the bank after crossing the river」 這裡面的bank指的是銀行還是河岸呢,這就需要我們聯絡上下文,當我們看到river之後就應該知道這裡bank很大概率指的是河岸。在rnn中我們就需要一步步的順序處理從bank到river的所有詞語,而當它們相距較遠時rnn的效果常常較差,且由於其順序性處理效率也較低。self-attention則利用了attention機制,計算每個單詞與其他所有單詞之間的關聯,在這句話裡,當翻譯bank一詞時,river一詞就有較高的attention score。

其基本結構如下

顯然,當前單詞與其自身的attention score一般最大,其他單詞根據與當前單詞重要程度有相應的score。然後我們在用這些attention score與value vector相乘,得到加權的向量。

如果將輸入的所有向量合併為矩陣形式,則所有query, key, value向量也可以合併為矩陣形式表示

我們可以發現卷積本身就有attention的效果,比如,在分類網路中高層的feature map所啟用的pixel恰好集中在與分類任務相關的區域。

然而cnn中的 convolution單元每次只關注鄰域 kernel size 的區域,就算後期感受野越來越大,終究還是區域性區域的運算,這樣就忽略了全域性其他片區(比如很遠的畫素)對當前區域的貢獻。

由此在cv領域,一篇關於attention研究非常重要的文章《non-local neural networks》在捕捉長距離特徵之間依賴關係的基礎上提出了一種非區域性資訊統計的注意力機制——self attention。

參考:

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...

計算機視覺

主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...

計算機視覺

眾所周知,計算機不認識影象,只認識數字。為了使計算機能夠 理解 影象,從而具有真正意義上的 視覺 本章我們將研究如何從影象中提取有用的資料或資訊,得到影象的 非影象 的表示或描述,如數值 向量和符號等。這一過程就是特徵提取,而提取出來的這些 非影象 的表示或描述就是特徵。有了這些數值或向量形式的特徵...