C語言中文網 目錄
TensorFlow
1 TensorFlow是什么
2 TensorFlow安裝和下載
3 第一個TensorFlow程序
4 TensorFlow程序結構
5 TensorFlow常量、變量和占位符
6 TensorFlow矩陣基本操作
7 TensorFlow TensorBoard數據流圖可視化
8 TensorFlow代碼自動升級為1.0版本
9 TensorFlow XLA
10 TensorFlow指定CPU和GPU設備
11 TensorFlow與深度學習
12 TensorFlow常用Python擴展包
13 回歸算法有哪些
14 TensorFlow損失函數
15 TensorFlow優化器
16 TensorFlow csv文件讀取數據
17 TensorFlow實現簡單線性回歸
18 TensorFlow實現多元線性回歸
19 TensorFlow邏輯回歸處理MNIST數據集
20 感知機與神經網絡
21 TensorFlow常用激活函數(6種)
22 TensorFlow實現單層感知機
23 TensorFlow實現反向傳播算法
24 TensorFlow多層感知機實現MINIST分類
25 TensorFlow多層感知機函數逼近
26 TensorFlow超參數
27 TensorFlow Keras
28 CNN卷積神經網絡
29 三維卷積神經網絡預測MNIST數字
30 卷積神經網絡分類圖片
31 遷移學習
32 DeepDream網絡
33 TensorFlow實現文本情感分析
34 VGG網絡濾波器
35 VGGNet、ResNet、Inception和Xception
36 預建深度學習提取特征及實現
37 TensorFlow實現InceptionV3
38 TensorFlow WaveNet聲音合成
39 TensorFlow視頻分類(6種方法)
40 RNN循環神經網絡
41 神經機器翻譯(seq2seq RNN)
42 注意力機制(基于seq2seq RNN)
43 RNN訓練模型并生成文本
44 RNN循環神經網絡實現預測比特幣價格
45 主成分分析法(PCA)
46 k均值聚類算法
47 SOM自組織映射法
48 受限玻爾茲曼機訓練
49 推薦系統的實現(基于RBM)
50 基于DBN實現情緒檢測
51 自編碼器
52 標準自編碼器
53 稀疏自編碼器
54 去燥自編碼器
55 卷積自編碼器
56 堆疊自編碼器
57 強化學習
58 OpenAI Gym安裝和使用
59 全連接神經網絡實現玩Pac-Man游戲
60 Q learning實現Cart-Pole平衡游戲
61 DQN算法(深度Q網絡)
62 David Silver策略梯度算法
63 深度學習在移動端的應用
64 Android移動端部署TensorFlow mobile
65 iPhone移動端部署TensorFlow mobile
66 移動端優化TensorFlow代碼
67 GAN生成式對抗網絡
68 GAN生成式對抗網絡虛構MNIST圖像
69 DCGAN虛構MNIST圖像
70 DCGAN虛構名人面孔和其他數據集
71 VAE變分自編碼器
72 CapsNet膠囊網絡
73 TensorFlow分布式
74 TensorFlow GPU的安裝和使用
75 TensorFlow分布式
76 TensorFlow分布式訓練MNIST分類器
77 TensorFlow Serving運行Docker容器
78 TensorFlow分布式在谷歌云平臺運行
79 TensorFlow分布式在谷歌CloudML運行
80 TensorFlow分布式在Microsoft Azure上運行
81 TensorFlow分布式在Amazon AWS上運行
首頁 > TensorFlow 閱讀:135

注意力機制(基于seq2seq RNN)詳解

本節提出了注意力(Attention)機制,這是神經網絡翻譯的最新解決方案。

注意力的思想是 2015 年在論文“Neural Machine Translation by Jointly Learning to Align and Translate”(Dzmitry Bahdanau,Kyunghyun Cho和Yoshua Bengio,ICLR,2015)中提出的,它需要在編碼器和解碼器 RNN 之間增加額外的連接。事實上,僅將解碼器與編碼器的最新層連接會存在信息瓶頸,而且不一定能夠傳遞先前編碼器層的信息。

下圖說明了采用注意力機制的方法:
引入注意力模型的NMT示例
圖 1 引入注意力模型的NMT示例

需要考慮以下三個方面:
  1. 將當前目標隱藏狀態與所有先前的源狀態一起使用,以導出注意力權重,用于給先前序列中的信息分配不同的注意力大小。
  2. 總結注意力權重的結果創建上下文向量。
  3. 將上下文向量與當前目標隱藏狀態相結合以獲得注意力向量。

具體做法

  1. 通過使用庫 tf.contrib.seq2seq.LuongAttention 來定義注意力機制,該庫實現了文獻“Effective Approaches to Attention-based Neural Machine Translation”(Minh-Thang Luong,Hieu Pham和Christopher D.Manning,2015)中定義的注意力模型:


     
  2. 通過一個注意力包裝器,使用所定義的注意力機制作為解碼器單元進行封裝:


     
  3. 運行代碼查看結果??梢粤⒓醋⒁獾阶⒁饬C制在 BLEU 評分方面產生了顯著的改善:

解讀分析

注意力機制是使用編碼器 RNN 內部狀態獲得的信息,并將該信息與解碼器的最終狀態進行組合的機制,關鍵思想是可以對源序列中的信息分配不同的注意力。下圖的 BLEU 得分顯示了應用注意力機制后的優勢。

使用注意力機制的BLEU指標示例
圖 2 使用注意力機制的BLEU指標示例(點此查看高清大圖

注意到,之前所給出的同樣的圖中,沒有使用注意力機制。


值得注意的是,seq2seq 不僅僅可以用于機器翻譯,來看一些例子:
  • Lukasz Kaiser 在論文“Grammar as a Foreign Language”中使用 seq2seq 模型構建語法成分解析器,成分解析樹將文本分成子句。樹中的非終端是短語類型,終端是句子中的單詞,邊緣未標記。
  • seq2seq 的另一個應用是 SyntaxNet,又名 Parsey McParserFace(一個句法分析器,https://research.googleblog.com/2016/05/announcing-syntaxnet-worlds-most.html),這是許多 NLU 系統上的一個關鍵組件。在這個系統中輸入一個句子,它會自動給句子中的每一個單詞打上 POS(Part-of-Speech)標簽,用來描述這些詞的句法功能,并在依存句法樹中呈現。這些句法關系直接涉及句子的潛在含義。

    下圖給出了這個概念的思想:
    SyntaxNet示例
    圖 3 SyntaxNet示例

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo