a chainer meetup talk
TRANSCRIPT
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 1
A Chainer MeetUp Talk
小田 悠介 (NAIST)
2015/10/14 Chainer MeetUp
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 2
自己紹介● 名前: 小田 悠介
– 〜2011 神戸市立高専 電子工学科
– 〜2013 神戸市立高専 専攻科(電気電子工学)
– 2013〜 奈良先端科学技術大学院大学 情報科学研究科 中村研究室 (D1)
– 某G社 (年末まで)
● 興味: 自然言語処理 (音声処理、機械翻訳、構文解析、ソフトウェア言語処理)
– Contribution
● Travatar (機械翻訳ツール)
● Ckylark (構文解析器)
● MTEval (翻訳精度の評価ツール)
● その他
– Twitter: @odashi_t
このスライドの図の一部は以下のチュートリアルからの引用です。http://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-with-gpus/
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 3
自然言語処理とNeural Networks● 最近、動的にトポロジが変化するneural networkでNLPするのが流行
– 非常に強い言語モデル
– 「文生成に用いた場合」に特に強い有効性
– Encoder-decoder翻訳モデルあたりが火付け役か
● 他の分野との違い
– 画像処理など
● ネットワーク構造が固定、単調
● レイヤ単位では巨大
– 自然言語処理
● ネットワーク構造が可変で複雑
● レイヤ単位では小さい
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 4
ChainerとNLP● Chainer
– ネットワーク構造 = ソースコード
– 複雑怪奇なネットワークを迅速に構成可能
– 簡単に書いて簡単に試せる(実行時間は無視)
● サンプル集
– https://github.com / odashi / chainer_examples
● 翻訳器2種類(encoder-decoder, attention-net)
● 単語分割器2種類
● 言語モデル
● 増やそうと思えば増やせます
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 5
Neural Network 翻訳器 (1)
簡単なタスクならほぼ既存手法と同じ精度
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 6
Neural Network 翻訳器 (2)
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 7
Chainerへの要望● 任意のデータ型のEmbedding
– strで直接Embedが使えると嬉しい
● スカラ倍演算
– ↓ニューラルネットで計算した「重み」を使って別のベクトルを足しあわせ(割とよく使う )
– 既存の関数を組み合わせれば可能、ただ一発でやりたい
● LSTMのバリエーション
– 自分で修正するのは面倒
– …種類が沢山ある
● バッチ処理の隠蔽
– Variableの内部がバッチ処理前提で扱いづらい
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 8
Chainerへの要望● GPGPUバックエンドの完全な隠蔽
– to-cpu(), to_gpu()を一切気にしなくてよい内部実装
● 複数GPUの自動的な割り当て
– どのGPUに処理を投げるか内部で決定
– (論文書けそう)
● 賢い視覚化 (4単語を読んで3単語を出力するattention-net →翻訳器 )
● その他色々