a chainer meetup talk

8
15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 1 A Chainer MeetUp Talk 小田 悠介 (NAIST) 2015/10/14 Chainer MeetUp

Upload: yusuke-oda

Post on 20-Jan-2017

75.904 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: A Chainer MeetUp Talk

15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 1

A Chainer MeetUp Talk

小田 悠介 (NAIST)

2015/10/14 Chainer MeetUp

Page 2: A Chainer MeetUp Talk

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/

Page 3: A Chainer MeetUp Talk

15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 3

自然言語処理とNeural Networks● 最近、動的にトポロジが変化するneural networkでNLPするのが流行

– 非常に強い言語モデル

– 「文生成に用いた場合」に特に強い有効性

– Encoder-decoder翻訳モデルあたりが火付け役か

● 他の分野との違い

– 画像処理など

● ネットワーク構造が固定、単調

● レイヤ単位では巨大

– 自然言語処理

● ネットワーク構造が可変で複雑

● レイヤ単位では小さい

Page 4: A Chainer MeetUp Talk

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種類

● 言語モデル

● 増やそうと思えば増やせます

Page 5: A Chainer MeetUp Talk

15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 5

Neural Network 翻訳器 (1)

簡単なタスクならほぼ既存手法と同じ精度

Page 6: A Chainer MeetUp Talk

15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 6

Neural Network 翻訳器 (2)

Page 7: A Chainer MeetUp Talk

15/10/16 Copyright (C) 2015 by Yusuke Oda, AHC-Lab, IS, NAIST 7

Chainerへの要望● 任意のデータ型のEmbedding

– strで直接Embedが使えると嬉しい

● スカラ倍演算

– ↓ニューラルネットで計算した「重み」を使って別のベクトルを足しあわせ(割とよく使う )

– 既存の関数を組み合わせれば可能、ただ一発でやりたい

● LSTMのバリエーション

– 自分で修正するのは面倒

– …種類が沢山ある

● バッチ処理の隠蔽

– Variableの内部がバッチ処理前提で扱いづらい

Page 8: A Chainer MeetUp Talk

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 →翻訳器 )

● その他色々