論文筆記之:Deep Attention Recurrent Q-Network

  

Deep Attention Recurrent Q-Network

5vision groups?

?

  ?摘要:本文將 DQN 引入了 Attention 機制,使得學習更具有方向性和指導性。(前段時間做一個工作打算就這么干,誰想到,這么快就被這幾個孩子給實現了,自愧不如啊( ⊙ o ⊙ ))

  ??引言:我們知道 DQN 是將連續 4幀的視頻信息輸入到 CNN 當中,那么,這么做雖然取得了不錯的效果,但是,仍然只是能記住這 4 幀的信息,之前的就會遺忘。所以就有研究者提出了 Deep Recurrent Q-Network (DRQN),一個結合 LSTM 和 DQN 的工作:

  1. the fully connected layer in the latter is replaced for a LSTM one ,?

  2. only the last visual frame at each time step is used as DQN's input.?

  作者指出雖然只是使用了一幀的信息,但是 DRQN 仍然抓住了幀間的相關信息。盡管如此,仍然沒有看到在 Atari game上有系統的提升。

?

   另一個缺點是:長時間的訓練時間。據說,在單個 GPU 上訓練時間達到 12-14天。于是,有人就提出了并行版本的算法來提升訓練速度。作者認為并行計算并不是唯一的,最有效的方法來解決這個問題。 

  

   最近 visual attention models 在各個任務上都取得了驚人的效果。利用這個機制的優勢在于:僅僅需要選擇然后注意一個較小的圖像區域,可以幫助降低參數的個數,從而幫助加速訓練和測試。對比 DRQN,本文的 LSTM 機制存儲的數據不僅用于下一個 actions 的選擇,也用于 選擇下一個 Attention 區域。此外,除了計算速度上的改進之外,Attention-based models 也可以增加 Deep Q-Learning 的可讀性,提供給研究者一個機會去觀察 agent 的集中區域在哪里以及是什么,(where and what)。

?

?


  

  Deep Attention Recurrent Q-Network:

?

?

   ?如上圖所示,DARQN 結構主要由 三種類型的網絡構成:convolutional (CNN), attention, and recurrent . 在每一個時間步驟 t,CNN 收到當前游戲狀態 $s_t$ 的一個表示,根據這個狀態產生一組 D feature maps,每一個的維度是 m * m。Attention network 將這些 maps 轉換成一組向量 $v_t = \{ v_t^1, ... , v_t^L \}$,L = m*m,然后輸出其線性組合 $z_t$,稱為 a context vector. 這個 recurrent network,在我們這里是 LSTM,將 context vector 作為輸入,以及 之前的 hidden state $h_{t-1}$,memory state $c_{t-1}$,產生 hidden state $h_t$ 用于:

  1. a linear layer for evaluating Q-value of each action $a_t$ that the agent can take being in state $s_t$ ;?

  2. the attention network for generating a context vector at the next time step t+1.?

?


?

  Soft attention?:?

  這一小節提到的 "soft" Attention mechanism 假設 the context vector $z_t$ 可以表示為 所有向量 $v_t^i$ 的加權和,每一個對應了從圖像不同區域提取出來的 CNN 特征。權重 和 這個 vector 的重要程度成正比例,并且是通過 Attention network g 衡量的。g network 包含兩個 fc layer 后面是一個 softmax layer。其輸出可以表示為:

  其中,Z是一個normalizing constant。W 是權重矩陣,Linear(x) = Ax + b 是一個放射變換,權重矩陣是A,偏差是 b。我們一旦定義出了每一個位置向量的重要性,我們可以計算出 context vector 為:

  另一個網絡在第三小節進行詳細的介紹。整個 DARQN model 是通過最小化序列損失函數完成訓練:

  其中,$Y_t$ 是一個近似的 target value,為了優化這個損失函數,我們利用標準的 Q-learning 更新規則:

  DARQN 中的 functions 都是可微分的,所以每一個參數都有梯度,整個模型可以 end-to-end 的進行訓練。本文的算法也借鑒了 target network 和 experience replay 的技術。

?


?

  Hard Attention

  此處的 hard attention mechanism 采樣的時候要求僅僅從圖像中采樣一個圖像 patch。

  假設 $s_t$ 從環境中采樣的時候,受到了 attention policy 的影響,attention network g 的softmax layer 給出了帶參數的類別分布(categorical distribution)。然后,在策略梯度方法,策略參數的更新可以表示為:

  其中 $R_t$ 是將來的折扣的損失。為了估計這個值,另一個網絡 $G_t = Linear(h_t)$ 才引入進來。這個網絡通過朝向 期望值 $Y_t$ 進行網絡訓練。Attention network 參數最終的更新采用如下的方式進行:

   ?其中 $G_t - Y_t$ 是advantage function estimation。

  

  作者提供了源代碼:https://github.com/5vision/DARQN ?

  

  實驗部分

  

?

?

?

?


?

  總結:  ?

?

?

  

?

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457847.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Codeforces Round #354 (Div. 2)

貪心 A Nicholas and Permutation #include <bits/stdc.h>typedef long long ll; const int N 1e5 5; int a[105]; int pos[105];int main() {int n;scanf ("%d", &n);for (int i1; i<n; i) {scanf ("%d", ai);pos[a[i]] i;}int ans abs …

linux c程序中內核態與用戶態內存存儲問題

Unix/Linux的體系架構 如上圖所示&#xff0c;從宏觀上來看&#xff0c;Linux操作系統的體系架構分為用戶態和內核態&#xff08;或者用戶空間和內核&#xff09;。內核從本質上看是一種軟件——控制計算機的硬件資源&#xff0c;并提供上層應用程序運行的環境。用戶態即上層應…

線程自動退出_C++基礎 多線程筆記(一)

join & detachjoin和detach為最基本的用法&#xff0c;join可以使主線程&#xff08;main函數&#xff09;等待子線程&#xff08;自定義的function_1函數&#xff09;完成后再退出程序&#xff0c;而detach可以使子線程與主線程毫無關聯的獨立運行&#xff0c;當主線程執行…

WEB在線預覽PDF

這是我在博客園發表的第一篇文章。以后會陸續把在線預覽其他格式文檔的解決方案發表出來。 解決思路&#xff1a;把pdf轉換成html顯示。 在線預覽pdf我暫時了解3種解決方案&#xff0c;歡迎大家補充。 方案一&#xff1a; 利用pdf2html軟件將PDF轉換成HTML。 用法: PDF2HTML [選…

[算法]判斷一個數是不是2的N次方

如果一個數是2^n&#xff0c;說明這個二進制里面只有一個1。除了1. a (10000)b a-1 (01111)b a&(a-1) 0。 如果一個數不是2^n&#xff0c; 說明它的二進制里含有多一個1。 a (1xxx100)b a-1(1xxx011)b 那么 a&(a-1)就是 (1xxx000)b&#xff0c; 而不會為0。 所以可…

VMware Ubuntu 全屏問題解決

在終端中輸入&#xff1a; sudo apt install open-vm* 回車 自動解決

數組拼接時中間怎么加入空格_【題解二維數組】1123:圖像相似度

1123&#xff1a;圖像相似度時間限制: 1000 ms 內存限制: 65536 KB【題目描述】給出兩幅相同大小的黑白圖像(用0-1矩陣)表示&#xff0c;求它們的相似度。說明&#xff1a;若兩幅圖像在相同位置上的像素點顏色相同&#xff0c;則稱它們在該位置具有相同的像素點。兩幅圖像的…

(舊)子數涵數·C語言——條件語句

首先&#xff0c;我們講一下理論知識&#xff0c;在編程中有三種結構&#xff0c;分別是順序結構、條件結構、循環結構&#xff0c;如果用流程圖來表示的話就是&#xff1a; 那么在C語言中&#xff0c;如何靈活運用這三種結構呢&#xff1f;這就需要用到控制語句了。 而條件語句…

apache.commons.lang.StringUtils 使用心得

apache.commons.lang.StringUtils 使用心得 轉載于:https://www.cnblogs.com/qinglizlp/p/5549687.html

python哪個版本支持xp_windows支持哪個版本的python

Windows操作系統支持Python的Python2版本和Python3版本&#xff0c;下載安裝時要根據windows的操作系統來選擇對應的Python安裝包&#xff0c;否則將不能安裝成功。 Python是跨平臺的&#xff0c;免費開源的一門計算機編程語言。是一種面向對象的動態類型語言&#xff0c;最初被…

Ubuntu 鍵盤錯位解決 更改鍵盤布局

原因是鍵盤布局不能適應鍵盤 解絕方法&#xff1a;更改鍵盤布局 一般改為標準104鍵盤就行 在終端輸入 sudo dpkg-reconfigure keyboard-configuration 選擇 標準104鍵盤 然后一直回車就行

【No.1 Ionic】基礎環境配置

Node 安裝git clone https://github.com/nodejs/node cd node ./configure make sudo make install node -v npm -vnpm設置淘寶鏡像npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/distIOS Simulatorsudo npm instal…

識別操作系統

使用p0f進行操作系統探測 p0f是一款被動探測工具&#xff0c;通過分析網絡數據包來判斷操作系統類型。目前最新版本為3.06b。同時p0f在網絡分析方面功能強大&#xff0c;可以用它來分析NAT、負載均衡、應用代理等。 p0f的命令參數很簡單&#xff0c;基本說明如下&#xff1a; l…

常用RGB顏色表

轉載于:https://www.cnblogs.com/Itwonderful/p/5550800.html

python中seek函數的用法_在Python中操作文件之seek()方法的使用教程

seek()方法在偏移設定該文件的當前位置。參數是可選的&#xff0c;默認為0&#xff0c;這意味著絕對的文件定位&#xff0c;它的值如果是1&#xff0c;這意味著尋求相對于當前位置&#xff0c;2表示相對于文件的末尾。 沒有返回值。需要注意的是&#xff0c;如果該文件被打開或…

WPF中Grid實現網格,表格樣式通用類(轉)

/// <summary> /// 給Grid添加邊框線 /// </summary> /// <param name"grid"></param> public static void InsertFrameForGrid(Grid grid) { var rowcon grid.RowDefinitions.Count; var clcon grid.ColumnDefinitions.Count; for (var i…

VS2017 安裝 QT5.9

VS2017專業版使用最新版Qt5.9.2教程&#xff08;最新教材&#xff09; 目錄 VS2017專業版使用最新版Qt5.9.2教程&#xff08;最新教材&#xff09; 運行環境&#xff1a; 1.安裝Qt5.9.2 2.安裝Qt5.9與VS2017之間的插件: 3.配置Qt VS Tool的環境. 4.設置創建的Qt的項目的屬…

異步與并行~ReaderWriterLockSlim實現的共享鎖和互斥鎖

返回目錄 在System.Threading.Tasks命名空間下&#xff0c;使用ReaderWriterLockSlim對象來實現多線程并發時的鎖管理&#xff0c;它比lock來說&#xff0c;性能更好&#xff0c;也并合理&#xff0c;我們都知道lock可以對代碼塊進行鎖定&#xff0c;當多線程共同訪問代碼時&am…

linux ssh yum升級_Linux 運維必備的 13 款實用工具,拿好了

作者丨Erstickthttp://blog.51cto.com/13740508/2114819本文介紹幾款 Linux 運維比較實用的工具&#xff0c;希望對 Linux 運維人員有所幫助。1. 查看進程占用帶寬情況 - NethogsNethogs 是一個終端下的網絡流量監控工具可以直觀的顯示每個進程占用的帶寬。下載&#xff1a;htt…

iOS應用如何支持IPV6

本文轉自 http://www.code4app.com/forum.php?modviewthread&tid8427&highlightipv6 果然是蘋果打個哈欠&#xff0c;iOS行業內就得起一次風暴呀。自從5月初Apple明文規定所有開發者在6月1號以后提交新版本需要支持IPV6-Only的網絡&#xff0c;大家便開始熱火朝天的研…