generative junji

35
Generative Junji 高田純次で学ぶ RNN な生成モデル

Upload: mitsuhisa-ohta

Post on 14-Jan-2017

238 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Generative junji

Generative Junji高田純次で学ぶ RNN な生成モデル

Page 2: Generative junji

自己紹介

所属: 株式会社 ブレインパッド

興味: 深層学習・強化学習・分散処理

趣味: アウトドアとか

2

おおたまん

太田 満久

分析専業の会社で、研究開発や技術調査、事業部の技術支援を担当

Page 3: Generative junji

他己紹介

所属: テイクワン・オフィス

3

たかだじゅんじ

高田 純次

- 日本のお笑いタレント、俳優- 東京都調布市国領出身- 身長175cm- 血液型はO型- 愛称は「純ちゃん」「純じい」「 Mr適当」

「TJ」「ミスター無責任」- 自身の所属事務所であるテイクワン・オ

フィスの代表取締役も務める。※ Wikipedia より引用

Page 4: Generative junji

アジェンダ

1. デモ2. 理論編3. 実装編4. まとめ

4

Page 5: Generative junji

本発表のゴール

「データが少なくても深層学習は面白い」ということをデモを通じて示したい

5

Page 6: Generative junji

デモ

● 高田純次の言いそうなことを TensorFlow で自動生成します

● ゼロからモデルを学習します

● 学習が100ステップ進む毎に、生成された文章を表示します

6

https://goo.gl/VTrgNW

Page 7: Generative junji

モデルについて

● Variational AutoEncoder の系列データ版を実装○ Generating Sentences from a Continuous Space

● 「高田純次 語録」で検索し、高田純次の発言を入手して学習○ ★高田純次発言集1530選(高田純次語録)

7

Page 8: Generative junji

理論編

8

Page 9: Generative junji

Generating Sentences from Continuous SpacesOriol Vinyals, Andrew M. Dai, Rafal Jozefowicz & Samy Bengio

9

Page 10: Generative junji

10

論文概要

● Variational AutoEncoder を使って文章を生成するモデルを作った

● 2つの文の間を潜在空間上で移動しても、文法的に正しい文になっている

Page 11: Generative junji

潜在空間と生成モデルのイメージ

11

既存手法(RNNLM)

提案手法

潜在空間

潜在空間

This was only way.

This was only way.

I Love you!

was is This was way.

既存手法 (RNNLM) では、潜在空間から適当な点をピックアップして文を生成しても、文法的におかしな文になってしまいます

提案手法では、潜在空間から適当な点をピックアップして文を生成しても、文法的に問題ない文になります。(論文で言及しているのは2つの既知の文の間の部分)

点によってはうまくいくが...

だいたいうまくいかない...

だいたいうまくいく!

Page 12: Generative junji

既知手法(RNNML)の潜在空間

RNNMLを使うと文章を固定次元のベクトル空間(潜在空間)に埋め込むことができます。ただし、潜在空間のすべてが文と対応しているわけではないため、文の生成では使えません。

12

RNNLMの例: 2つの文の中間の文は、文法的におかしい

Page 13: Generative junji

画像の深層生成モデル

深層学習を利用した画像の生成モデルには有名な手法が2つあります

1. VAE (Variational AutoEncoder)

AutoEncoderに確率分布を持ち込んでデータを生成

2. GAN (Generative Adversarial Network)

GeneratorとDiscriminatorを戦わせてデータを生成

(Google 中井さんの素晴らしい解説があったはず!)

13

Page 14: Generative junji

VAE と GAN

14

Deep Advances in Generative Modeling (SlideShare) ※ z から x^ を生成するネットワーク

Page 15: Generative junji

VAE と AutoEncoder普通のAE (AutoEncoder) と違い、VAEでは encoder の出力が確率分布です

15

1つのデータにZの1つの値がきまる

1つのデータにZの1つの分布がきまる

AE

VAE※ ガウス分布あれば、平均と分散がきまる

Page 16: Generative junji

VAE の loss 関数

VAEの loss は、分布に関する loss とAEの再構成誤差の2つの和になります

16

分布に関する loss (KL divergence)

再構成誤差

Page 17: Generative junji

VAEの例

VAEを使うと、画像を生成できます

17

Semi-supervised Learning with Deep Generative Models

Page 18: Generative junji

GANの例 (DCGAN)GAN(DCGAN)でも、画像を生成できます。VAEよりもくっきりしています

18

すぎゃ〜んメモ : TensorFlowによるDCGANでアイドルの顔画像生成

Page 19: Generative junji

言語の深層生成モデル

画像ではGANがいい感じでしたが、GANは連続値用にデザインされたものなので、自然言語に適用するのは難しい

19

この論文で使われているのも、GANではなくVAEです

※ 最近、この困難を解決して、 GANを自然言語に適用した論文 (SeqGAN)で出て、注目されています

Page 20: Generative junji

ネットワーク構成

ネットワークはVAEのEncoderとDecoderを単層のLSTMに置き換えたものです

20

Page 21: Generative junji

学習

単純に最適化をすると、うまく学習してくれないことがわかっているので、以下の2つの工夫をしています

- word dropout- 学習中に decoder の入力単語をランダムに <UNK>(未知語) に置き換えることで、直前の文字へ

の依存を減らし、潜在変数 Z への依存を強くします

- KL cost annealing- 学習初期に KL divergence が 0 となってしまうのを防ぐため、重み w を導入し、徐々に KL

divergenceへの依存を強くしていきます

21

w

Page 22: Generative junji

結果

いい感じになりました!

(論文では色々検証していますが省略)

22

Page 23: Generative junji

実装編TensorFlowでRNNを実装する際のチップスは新村さんがわかりやすく話してくれるはず!

23

Page 24: Generative junji

対象の決定

● 文章生成は未だ研究段階の技術。わりとテキトーな文章が生成されやすい

24

テキトーな文章ならいい感じになるのでは!?

Page 25: Generative junji

データ収集

せっかくなので、データ収集もテキトーにやりたい

25

データの多そうなサイト1つだけ採用

Page 26: Generative junji

Encoderの実装

Encoder では文章の埋め込み(潜在空間)を学習する

● 1層のLSTM

● 入力: 文章

● 出力: μ と σ

26

Page 27: Generative junji

Decoderの実装

Decoder では潜在空間から文章を生成する

● 1層のLSTM

● 入力: z (initial state)

● 出力: 文章

27

Page 28: Generative junji

最適化

Adamによって最適化を行う。 論文に従い、2つのトリックを採用

● KL cost annealing● word dropout

28

ステップ数 KLD項の重み

< 10,000 0.0

10,000 ~ 20,000 線形に接続

> 20,000 1.1※ KL cost annealing は適当に実装。KL divergence の大きさの推移などは検証していません。

Page 29: Generative junji

デモ再訪

どんな結果になっているでしょうか

29

https://goo.gl/VTrgNW

Page 30: Generative junji

30

global_step: 99900 elapsed time: 11909

[#################################################-] loss: 1.20753e-05

よく 『 カバン を 忘れる 』 って いう 人 が いる けど 、 カバン の 中 に 入っ て 誰 か に 運ん でま 、 今 の 笑い は 三遊 間 ヒット ぐらい の 笑い だ な何 も し なく て も ハラ が 減る けど 、 これ が 『 生き てる 』 って いう こと な ん だろう ねこれ 、 『 適当 』 って 呼ば れ た けど 、 チクビ が 下 半身 か 食べ ない から

これ 、 『 適当 』 って 呼ば れ た けど 、 さすが NHK だけ あっ て カメラ が 2 台 以上 あっ

渡辺 正行 の 合コン で 目 の 前 に 『 可 も なく 不可 も なく の コ 』 が 座っ て き顔 、 ちっちゃい ね ~ 。 おじ さん の 顔 は 半分 は 言っ て た ん だよく 『 風 と 一 つ に なっ て 運転 する 』 って ヤツ が いる けど 、 風 と 一緒 に なっ たら

顔 、 オレ が 好き な の 。 オレ は 頭 に デップ つけ て ない けど 、 言っ て も 全裸 だシュワルツェネガー と は 友達 な ん だ けど 、 オレ が 一方 的 に 否定 し て ん だ よ銀座 の 蝶 は 、 美人 度 6 以上 が 『 銀座 の 蝶 』 な ん だ今年 の 大晦日 は ゴルフ に 行け ない ん だ 。 2 時 に おせち 料理 を 取り に 行か なく ちゃ いけ ない

娘 が 風呂 に 入る 時 は 頭 から 入っ てる ところ に オレ が 湯船 の 出 て くる から しオナラ が みんな し だっ た こと が ない ? 『 乱交 』 って 言う ん だ よ 。 ダッ ハッハッハ

娘 と 一緒 に お 風呂 に 入り たい お 父 さん は 、 あらかじめ お 風呂 に 潜っ て おい て 、 娘これ 、 手作り チョコレート な の ? 市販 の チョコ の ほう が おいしい ん じゃ ない の ?よく 『 野球 場 で いう と 何 個 分 』 と か いう けど 野球 場 が どの くらい の 大き さ な顔 から 火 が 出る くらい 恥ずかしい 時 は 顔 から 火 を 出し ちゃえ ば みんな の 気 が そっち に いっ ちゃう

オナラ が 止まら ない と いう 人 は コルク を 詰め とけ ば いい ん じゃ ない の ?渡辺 正行 の 合コン で 目 の 前 に 『 可 も なく 不可 も なく の コ 』 が 座っ て き た

結果

微妙な結果ですが、 学習過程は見ていて面白い

Page 31: Generative junji

まとめ

● 少量で良ければ、データ収集はとても簡単

● 少量のデータに深層学習を適用するには、ネットワークをシンプルにする必要がある

● シンプルなネットワークは、はやく収束する

● モデルをゼロから実装しなくても、公開されているものを使うことができる

31

楽しい!

Page 32: Generative junji

We are hiring!ブレインパッドでは機械学習エンジニアを募集しています!

興味のある方は

[email protected]

[email protected]

まで!

32

Page 33: Generative junji

Appendix

33

Page 34: Generative junji

深層学習による文章生成の関連研究

● Show and Tell○ 画像からキャプションを生成

● Sequence to Sequence○ 文章から文章を生成。翻訳や雑談、 Smart Reply などに利用可能

● SeqGAN○ ランダムな数値から文章を生成。自然言語に GAN を適用

● Generating Sentences from a Continuous Space○ ランダムな数値から文章を生成。今回紹介した論文

34