Upload
shin-asakawa
View
1.673
Download
0
Embed Size (px)
Citation preview
2 /23
本日の内容1. 古典的注意
2. Bahdanau(2015)の注意
3. TensorFlowでの注意wrapper
3 /23
謝辞KUNO 佐藤傑様
C8 lab 新村拓也様
Google 佐藤一憲様
4/23
自己紹介浅川伸一 東京女子大学 情報処理センター勤務。早稲田大
学在学時はピアジェの発生論的認識論に心酔する。卒業後
エルマンネットの考案者ジェフ・エルマンに師事,薫陶を受け
る。以来人間の高次認知機能をシミュレートすることを目指
している。知的情報処理機械を作ることを通して知的情報処
理とは何かを考えたいと思っている。著書に「Pythonで実践する深層学
習」( 2016) コロナ社. 「ディープラーニング,ビッグデータ,機械学習 --- あるいはその心理学」
(2015) 新曜社。「ニューラルネットワークの数理的基礎」「脳損傷とニューラルネットワークモデ
ル,神経心理学への適用例」いずれも守一雄他編 コネクショニストモデルと心理学(2001) 北
大路書房などがある
5/23
師匠ジェフ・エルマンとUCSDキャンパス内 2002年ころ
6 /23
←2016年
2015年→
7 /23
古典的注意
1. スペリー,ガザニガの脳梁切断患者の実験
2. ブロードベンド,トリーズマンの両耳分離聴実験
1981年ノーベル医学生理学賞,1/2, ヒューベル1/4, ウィーゼル 1/4
2002年ノーベル経済学賞
8 /23
9 /23
分離脳患者の実験状況
左視野(右脳)に
提示された物品
分離脳患者は
呼称できない左手で探り当てる
ことはできる
10 /23
11 /23
Bahdanau(2015)の注意 arXiv:1409.0473v6
下のカルパシィ図式で言えば,入力言語は
many to one でエンコードし,最後の中間層状
態をコンテキストとして表象する。その表象を用
いて one to many のデコーダを用いて翻訳する
モデル
Cho+2014の翻訳モデル
太田さんのご説明のzがc
12 /23
エンコーダ,デコーダモデルの成績
横軸は文の長さ
長文では翻訳成績が
低下する
13 /23
改良モデル
目標言語を生成し,その生成した単語
から入力言語を制約
入力言語から生成されるコンテキストc
を一時刻前に表出した目標言語の単語
によってバイアスをかける
14 /23
改良モデル2
時刻 t の中間層
エンコーダ側
コンテキスト
fとqにLSTMを使うのがseq2seqモデル
TensorFlow のチュートリアルでおなじみ
15 /23
改良モデル3
出力言語系列デコーダ側
コンテキスト
ソフトマックスで候補を絞る
16 /23
改良モデル4
ソフトマックスで候補を絞る
17 /23
18 /23
Graves(2014) NTMarXiv:1410.5401v1
19 /23
Zaremba(2015)arXiv:1505.00521v2
20 /23
Show, Attend and Tell: Neural Image CaptionGeneration with Visual AttentioarXiv:1502.03044v2
21 /23
TensorFlow ではtensorflow.contrib.rnn.python.ops.rnn_cell.AttentionCellWrapper
arXiv:1601.06733v7
22 /23
# rnn with attention
classifier = tf.contrib.learn.TensorFlowRNNClassifier(rnn_size=2,
cell_type="lstm",
n_classes=2,
input_op_fn=rnn_input_fn,
bidirectional=False,
attn_length=2,
steps=100,
attn_size=2,
attn_vec_size=2)
classifier.fit(data, labels)
23 /23
if attn_length is not None:
fw_cell = contrib_rnn.AttentionCellWrapper(
fw_cell, attn_length=attn_length, attn_size=attn_size,
attn_vec_size=attn_vec_size, state_is_tuple=False)
bw_cell = contrib_rnn.AttentionCellWrapper(
bw_cell, attn_length=attn_length, attn_size=attn_size,
attn_vec_size=attn_vec_size, state_is_tuple=False)
rnn_fw_cell = nn.rnn_cell.MultiRNNCell([fw_cell] * num_layers,
state_is_tuple=False)