Scan Registration for Autonomous Mining Vehicles Using 3D-NDTKitsukawa Yuki
研究室のゼミの論文紹介の発表資料です。
Magnusson, M., Lilienthal, A. and Duckett, T. (2007), Scan registration for autonomous mining vehicles using 3D-NDT. J. Field Robotics, 24: 803–827. doi: 10.1002/rob.20204
Efficient Lattice Rescoring Using Recurrent Neural Network Language Models
X. Liu, Y. Wang, X. Chen, M. J. F. Gales & P. C. Woodland
ICASSP 2014
I introduced this paper at NAIST Machine Translation Study Group.
Distant supervision for relation extraction without labeled data
Mike Mintz, Steven Bills, Rion Snow, Dan Jurafsky
ACL 2009
I introduced this paper at NAIST Machine Translation Study Group.
Paper Introduction,
"Translating into Morphologically Rich Languages with Synthetic Phrases"
Victor Chahuneau, Eva Schlinger, Noah A. Smith, Chris Dyer (EMNLP2013)
12. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 12
リカレントニューラルネット (1)
● リカレントニューラルネット (Recurrent Neural Network: RNN)
– フィードバック付きのニューラルネット
– 時系列データの解析によく用いられる
13. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 13
リカレントニューラルネット (2)
● 時間方向に伸展したRNN
– 中間層には入力の種類と順序に関する情報が蓄積される(はず)
データ1 データ2 データ3
データ1
データ1
→データ2
データ1
→データ2
→データ3
14. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 14
Encoder-decoder 翻訳モデル (1)
● 原言語側と目的言語側の2本のRNNを結合
– 原言語側 … 入力単語の情報を蓄積
– 目的言語側 … 蓄積された情報を取り出しながら単語を生成
END runs he
走る は 彼
Encoder
Decoder
15. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 15
Chainer で Encoder-decoder 翻訳
● Chainer - http://chainer.org/
– ニューラルネットのフレームワーク
– ソースコードの計算式がそのままニューラルネットの構造になる
● 複雑な形状のニューラルネットを記述するのに最適
は
(一例、他の定式化も可能)
16. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 16
Chainer で Encoder-decoder 翻訳
● Chainer - http://chainer.org/
– ニューラルネットのフレームワーク
– ソースコードの計算式がそのままニューラルネットの構造になる
● 複雑な形状のニューラルネットを記述するのに最適
import numpy as np
import chainer.functions as F
import chainer.links as L
from chainer import Variable
xi = L.EmbedID(VOCAB, EMBED)
ip = L.Linear(VOCAB, HIDDEN)
pp = L.Linear(HIDDEN, HIDDEN)
...
x = Variable(np.array([[w]], dtype=np.float32))
i = F.tanh(xi(x))
p = F.tanh(ip(i) + pp(p))
は
17. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 17
Encoder-decoder 翻訳の実装
# encoding
_p, p = init()何か初期化
for word in reversed(sentence):
x = Var([[stoi(word)]])単語ID化
_p, p = lstm(_p, xp(x) + pp(p))LSTMに入力
この時点でpに入力系列の情報が入っている(はず)
# decoding
y = stoi('SOL')
while y != stoi('EOL'):
_p, p = lstm(_p, yp(y) + pp(p))デコーダの状態遷移
y = softmax(py(p)).data.argmax()次の単語
print(itos(y))
● Enc-dec のナイーブな実装 (赤字: Chainer/NumPy関数、緑: 重み行列)
18. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 18
Decoder
Attention (1)
● Attention ... 入力の情報から必要な情報をその都度生成
– 入力長に(あまり)依存しない解析が可能
– 使いやすいらしく、割と色々応用されている
● 翻訳、キャプション生成、画像生成(ビットマップ、ベクタ)、構文解析、etc
– 詳しくは http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
SRC TRGEncoder DecoderEnc-dec
Attention
A
quick
brown
fox
jumps
...
Enc
速い
茶色の
19. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 19
Attention (2)
● Global attention ... 現在のデコーダ状態から各単語の重みを計算、線形和
[Luong et al., 2015, Effective Approaches to Attention-based Neural Machine Translation]
20. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 20
Attention (3)
● Global attentionのナイーブな実装 (赤字: Chainer/NumPy関数、緑: 重み行列)
a_list:入力単語のベクトル表現(encoderの出力), p:デコーダの状態
_p, p = init()
y = stoi('SOL')
while y != stoi('EOL'):
e_list = []重みのリスト
e_sum = zeros(...)分母
for a in a_list:
w = tanh(aw(a) + pw(p))何か変換して
e = exp(we(w))重み計算
e_list.append(e)
e_sum += e
c = zeros(...)線形和
for a, e in zip(a_list, e_list):
e /= e_sum
c += reshape(batch_matmul(a, e), ...)
_p, p = lstm(_p, ch(p) + hh(p) + yh(Var([[y]])))次の状態
y = softmax(py(p)).data.argmax()次の出力
print(itos(y))
21. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 21
Attention (4)
● Local attention ... 原言語の1か所に集中する縛りを導入
– Attentionの特性が鮮鋭になる
正規分布を掛け合わせて
中心から外れたところの重みを無視
(わりと雑…)
Chainerで実装する場合は
この式を追加するだけ
[Luong et al., 2015, Effective Approaches to Attention-based Neural Machine Translation]
22. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 22
LSTM (long/short-term memory) (1)
● LSTM ... 過去のRNNの全状態の線形和で次回の出力を生成
– 長距離のbackpropagationが「まともに」計算できるので、長周期の構造学習が可能
– Encoder-decoder系のネットワークでは使わないとお話にならない
電気回路っぽく書いた
LSTMセル
sigmoid
tanh
23. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 23
LSTM (long/short-term memory) (2)
● LSTM ... 過去のRNNの状態の線形和で次回の出力を生成
– 長距離のbackpropagationが「まともに」計算できるので、長周期の構造学習が可能
– Encoder-decoder系のネットワークでは使わないとお話にならない
電気回路っぽく書いた
LSTMセル
赤: 記憶が行われるパス
24. 16/05/12 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 24
LSTM (long/short-term memory) (3)
● LSTM ... 過去のRNNの状態の線形和で次回の出力を生成
– 長距離のbackpropagationが「まともに」計算できるので、長周期の構造学習が可能
– Encoder-decoder系のネットワークでは使わないとお話にならない
電気回路っぽく書いた
LSTMセル
赤: 記憶が行われるパス
青: ゲート