日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DNN结构:CNN、LSTM/RNN中的Attention结构

發布時間:2023/12/31 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DNN结构:CNN、LSTM/RNN中的Attention结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

? ? ? ?attention作為一種機制,有其認知神經或者生物學原理: 注意力的認知神經機制是什么?

? ? ? ?如何從生物學的角度來定義注意力?

? ? ? ?大多數attention (gating) 技巧都可以直接加入現有的網絡架構,通過合理設計初始化和訓練步驟也可以利用現有網絡的預訓練參數。這大大擴展了這些技巧的適用范圍。

? ? ? ?參考此文:Recurrent Visual Attention源碼解讀

????? 代碼地址:戳這里下載訓練代碼,戳這里下載測試代碼。

Mnih, Volodymyr, Nicolas Heess, and Alex Graves. “Recurrent models of visual attention.” Advances in Neural Information Processing Systems. 2014 . https://arxiv.org/abs/1406.6247

這篇文章處理的任務非常簡單:MNIST手寫數字分類。但使用了聚焦機制(Visual Attention),不是一次看一張大圖進行估計,而是分多次觀察小部分圖像,根據每次查看結果移動觀察位置,最后估計結果。使用 Attention 機制之后會增加計算量,但是性能水平能夠得到提升。

Yoshua Bengio的高徒,先后供職于LISA和Element Research的Nicolas Leonard用Torch實現了這篇文章的算法。Torch官方cheetsheet的demo中,就包含這篇源碼,作者自己的講解也刊登在Torch的博客中,足見其重要性。

通過這篇源碼,我們可以
- 理解聚焦機制中較簡單的hard attention
- 了解增強學習的基本流程
- 復習Torch和擴展包dp的相關語法

?

一、Attention機制應用于NLP

Attention機制的基本思想是,打破了傳統編碼器-解碼器結構在編解碼時都依賴于內部一個固定長度向量的限制

Attention機制的實現是通過保留LSTM編碼器對輸入序列的中間輸出結果,然后訓練一個模型來對這些輸入進行選擇性的學習并且在模型輸出時將輸出序列與之進行關聯

換一個角度而言,輸出序列中的每一項的生成概率取決于在輸入序列中選擇了哪些項。

“在文本翻譯任務上,使用attention機制的模型每生成一個詞時都會在輸入序列中找出一個與之最相關的詞集合。之后模型根據當前的上下文向量 (context vectors) 和所有之前生成出的詞來預測下一個目標詞。

… 它將輸入序列轉化為一堆向量的序列并自適應地從中選擇一個子集來解碼出目標翻譯文本。這感覺上像是用于文本翻譯的神經網絡模型需要“壓縮”輸入文本中的所有信息為一個固定長度的向量,不論輸入文本的長短。”

— Dzmitry Bahdanau, et al.,?Neural machine translation by jointly learning to align and translate, 2015

雖然模型使用attention機制之后會增加計算量,但是性能水平能夠得到提升。另外,使用attention機制便于理解在模型輸出過程中輸入序列中的信息是如何影響最后生成序列的。這有助于我們更好地理解模型的內部運作機制以及對一些特定的輸入-輸出進行debug。

“論文提出的方法能夠直觀地觀察到生成序列中的每個詞與輸入序列中一些詞的對齊關系,這可以通過對標注 (annotations) 權重參數可視化來實現…每個圖中矩陣的每一行表示與標注相關聯的權重。由此我們可以看出在生成目標詞時,源句子中的位置信息會被認為更重要。”

— Dzmitry Bahdanau, et al.,?Neural machine translation by jointly learning to align and translate, 2015

數學解釋請查看原文...

?

二、聚焦機制(Visual Attention)??????

使用Visual Attention詳解..

  • 聚焦機制(Attention):每次只看輸入的一小部分,諸次移動觀察范圍。
  • 循環神經網絡(Recurrent NN):在每一次移動和輸出之間建立記憶
  • 增強學習(Reinforcement learning):在訓練過程中,根據不可導的反饋,從當前位置產生探索性的采樣。

NLP系統中,我們可以認為基于注意力機制的系統有三個組件

? ? ? ? 1.讀取器讀取原始數據(例如源語句中的源詞)并將轉換為分布式表示,其中一個特征向量與每個詞的位置相關聯;

? ? ? ? 2.存儲器存取 讀取器輸出的特征向量列表。這可以理解為包含事實序列的存儲器,而之后不必以相同的順序從中檢索,也不必訪問全部;

? ? ? ? 3.最后一個程序利用存儲器的內容 順序地 執行任務,每個時間 聚焦于 某個(或幾個,具有不同權重)存儲器元素的內容。

第三組件可以生成翻譯語句。《DeepLearning》中文版.p.399.

當用一種語言書寫的句子中的詞與另一種語言的翻譯語句中的相應詞對齊時,可以使對應的詞嵌入相關聯。早期的工作表明,我們可以學習將一種語言中的詞嵌入與另一種語言中的詞嵌入相關聯的翻譯矩陣(Ko?isky et al., 2014),與傳統的基于短語表中頻率計數的方法相比,可以產生較低的對齊錯誤率。甚至有更早的工作(Klementiev et al., 2012) 研究跨語言詞向量。這種方法的存在很多擴展。例如,允許在更大數據集上訓練的更高效的跨語言對齊(Gouws et al., 2014)。

?

增強學習過程

?????? 一個 recurrent neural network(RNN),按照時間順序處理輸入,一次在一張圖像中處理不同的位置,逐漸的將這些部分的信息結合起來,來建立一個該場景或者環境的動態間隔表示。并非馬上處理整張圖像甚至bbox,在每一個步驟中,模型基于過去的信息和任務的需要選擇下一個位置進行處理。這樣就可以控制模型的參數和計算量,使之擺脫輸入圖像的大小的約束。這里和CNN有明顯的不同。我們就是要描述這么一個端到端的優化序列,能夠直接訓練模型,最大化一個性能衡量,依賴于該模型在整個任務上所做的決策。利用反向傳播來訓練神經網絡的成分和策略梯度來解決 the non-differentiabilities due to the control problem。

?

RAM:The Recurrent Attention Model

  本文將 attention problem 看做是目標引導的序列決策過程,能夠和視覺環境交互。在每一個時間點,agent 只能根據有帶寬限制的感知器來觀察全局,即: it never senses the environment in full. 他只能在一個局部區域或者狹窄的頻域范圍進行信息的提取。The agent 可以自主的控制如何布置感知器的資源,即:選擇感知的位置區域。該agent也可以通過執行 actions 來影響環境的真實狀態。由于該環境只是部分可觀察,所以他需要額外的信息來輔助其進行決定如何行動和如何最有效的布置感知器。每一步,agent 都會收到獎勵或者懲罰,agent 的目標就是將獎勵最大化。

??????

?

三、LSTM的改進

??? ? CNN中的兩種Attention機制:Stochastic “Hard” Attention And Deterministic?“Soft” Attention

????? 通過attention機制計算出的?z^t被稱為 context vector,是捕捉了特定區域視覺信息的上下文向量。

?????? 首先需要明確,attention要實現的是在解碼的不同時刻可以關注不同的圖像區域,進而可以生成更合理的詞。那么,在attention中就有兩個比較關鍵的量,一個是和時刻 t 相關,對應于解碼時刻;另一個是輸入序列的區域 ai,對應圖像的一個區域。

????? 實現這種機制的方式就是在時刻 t ,為輸入序列的各個區域 i 計算出一個權重 αti。因為需要滿足輸入序列的各個區域的權重是加和為一的,使用Softmax來實現這一點。至于Softmax需要輸入的信息,則如上所講,需要包含兩個方面:一個是被計算的區域 ai ,另一個就是上一時刻 t-1 的信息 ht?1:

式中的 fatt是耦合計算區域 i 和時刻 t 這兩個信息的打分函數。文中使用多層感知機,也算是最常用的了,我覺得是因為內積太簡單,而雙線性的參數太多,索性用最簡單粗暴的 MLP 。但是我也看過一些paper里面用好幾次attention時用不一樣的打分函數。

現在,有了權重,就可以計算?z^t了:z^t=?({ai},{αti} )

這個函數??就代指文中提出的兩種attention機制,對應于將權重施加到圖像區域兩種不同的策略

?

總結

以上是生活随笔為你收集整理的DNN结构:CNN、LSTM/RNN中的Attention结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。