Upload
keiichirou-miyamoto
View
373
Download
0
Embed Size (px)
Citation preview
自己紹介 名前:宮本圭一郎
SIer で ERP 開発( C#,VB ) freelance深層学習サービスの開発( python )
@miyamotok0105 https://www.facebook.com/keiichirou.miyamoto
nicolas-ivanov/tf_seq2seq_chatbot
Sequence-to-sequence model with attention
multiple buckets
multi-layer recurrent neural network as encoder,
and an attention-based decoderhttps://github.com/nicolas-ivanov/tf_seq2seq_chatbot
データと論文
Corpora
・ AlJohri/OpenSubtitles
Get a lot of raw movie subtitles (~1.2Gb)
・ Cornell Movie-Dialogs Corpus
~ 40Mb after clearing out the technical data.
Papers
[1] Sequence to Sequence Learning with Neural Networks
[2] A Neural Conversational Model
https://github.com/nicolas-ivanov/seq2seq_chatbot_links
キーワードword2vec
RNN,LSTM
A simple Seq2Seq
Seq2seq with attention
Encoder-decoder 翻訳
DSSM+RNN GRU
Hierarchical Neural NetworkLatent Variable Hierarchical Recurrent Encoder-Decoder
Google Neural Machine Translation(GNMT)
文字をベクトル化する
one-hot ベクトル、 bag of words... 未知語に対応できない。次元が増えすぎる。
文脈ベクトル、 TF-IDF... 文章全体に占める割合も重みとして考慮
Distributional 表現、 LSI, LDA...LSI は特異値分解で次元圧縮。 LSI モデルに確率分布を付与
分散表現 (Word Embeddings) 、 word2vec... 1層のニューラルネットで通常 200 〜 1000 次元程。
単語の定義によってベクトル化
ですね、人工知能です
ですね =0 、
=1 人工知能 =2
です =3
one-hot
word2vec でベクトル化king – man + woman = queen
Continuous Bag-of-Words ( CBoW …) 前後の単語から対象単語を予測
Skip-gram... 単語からその周辺単語を予測
ですね、人工知能です
0123
ですね =0.1 、 =0.2
人工知能 =10 です =0.5
単語の定義によってベクトル化
word2vecking – man + woman = queen
EmbedID 、、、
one-hot ベクトル入力に効率のよい層。 embed_id 関数のラッパー。
one-hot ベクトルは文字に対しベクトル化すること。
LSTM の機能メモリセル、、、過去の状態を記憶( ct )
入力判断ゲート (input modulation gate) 、、、メモリセルに加算される値を調整する。直近のあまり関係ない情報が影響してメモリセルが持つ重要な情報が消失してしまうのを防ぐ。
忘却判断ゲート (forget gate) 、、、メモリセルの値が次の時刻でどれくらい保持されるかを調整
出力判断ゲート (output gate) 、、、メモリセルの値が次の層にどれだけ影響するかを調整
Google Neural Machine Translation(GNMT)
ゼロショット学習 ... ポルトガル語→英語、英語→スペイン語を学習してポルトガル語→スペイン語の翻訳が可能
Google’s Neural Machine Translation System
Chainer の主なクラス
・ Variable... 変数の値の変化を記録する。
・ Function... ネットワークの管理を行う。
・ Link... ネットワークのパラメータを持つ。
・ Chain...Link をまとめたもの。
・ Optimizer... ネットワークを操作する。
・ Dataset.Iterator... 学習対象を辞書型で指定。 (<1.11.0)
・ Training.Trainer... エポック数などを指定 (<1.11.0)
・ Updater... 最適化手法の指定など。 (<1.11.0)
・ Extension... 途中経過の保存など。 (<1.11.0)
モデル定義
変数の変化を記録
AdaGrad 等