SlideShare a Scribd company logo
1 of 35
Download to read offline
Generative Junji
高田純次で学ぶ RNN な生成モデル
自己紹介
所属: 株式会社 ブレインパッド
興味: 深層学習・強化学習・分散処理
趣味: アウトドアとか
2
おおたまん
太田 満久
分析専業の会社で、研究開発や技術調査、
事業部の技術支援を担当
他己紹介
所属: テイクワン・オフィス
3
たかだじゅんじ
高田 純次
- 日本のお笑いタレント、俳優
- 東京都調布市国領出身
- 身長175cm
- 血液型はO型
- 愛称は「純ちゃん」「純じい」「 Mr適当」
「TJ」「ミスター無責任」
- 自身の所属事務所であるテイクワン・オ
フィスの代表取締役も務める。
※ Wikipedia より引用
アジェンダ
1. デモ
2. 理論編
3. 実装編
4. まとめ
4
本発表のゴール
「データが少なくても深層学習は面白い」ということをデモを通じて示したい
5
デモ
● 高田純次の言いそうなことを TensorFlow で
自動生成します
● ゼロからモデルを学習します
● 学習が100ステップ進む毎に、生成された文
章を表示します
6
https://goo.gl/VTrgNW
モデルについて
● Variational AutoEncoder の系列データ版を実装
○ Generating Sentences from a Continuous Space
● 「高田純次 語録」で検索し、高田純次の発言を入手して学習
○ ★高田純次発言集1530選(高田純次語録)
7
理論編
8
Generating Sentences from Continuous Spaces
Oriol Vinyals, Andrew M. Dai, Rafal Jozefowicz & Samy Bengio
9
10
論文概要
● Variational AutoEncoder を使って文章を生成
するモデルを作った
● 2つの文の間を潜在空間上で移動しても、文法
的に正しい文になっている
潜在空間と生成モデルのイメージ
11
既存手法(RNNLM)
提案手法
潜在空間
潜在空間
This was only way.
This was only way.
I Love you!
was is This was way.
既存手法 (RNNLM) では、潜在空間から適当な
点をピックアップして文を生成しても、文法的にお
かしな文になってしまいます
提案手法では、潜在空間から適当な点をピック
アップして文を生成しても、文法的に問題ない文
になります。
(論文で言及しているのは2つの既知の文の間の部分)
点によってはうまくいくが...
だいたいうまくいかない...
だいたいうまくいく!
既知手法(RNNML)の潜在空間
RNNMLを使うと文章を固定次元のベクトル空間(潜在空間)に埋め込むことができま
す。ただし、潜在空間のすべてが文と対応しているわけではないため、文の生成では使
えません。
12
RNNLMの例: 2つの文の中間の文は、文法的におかしい
画像の深層生成モデル
深層学習を利用した画像の生成モデルには有名な手法が2つあります
1. VAE (Variational AutoEncoder)
AutoEncoderに確率分布を持ち込んでデータを生成
2. GAN (Generative Adversarial Network)
GeneratorとDiscriminatorを戦わせてデータを生成
(Google 中井さんの素晴らしい解説があったはず!)
13
VAE と GAN
14
Deep Advances in Generative Modeling (SlideShare) ※ z から x^ を生成するネットワーク
VAE と AutoEncoder
普通のAE (AutoEncoder) と違い、VAEでは encoder の出力が確率分布です
15
1つのデータにZの1
つの値がきまる
1つのデータにZの1
つの分布がきまる
AE
VAE ※ ガウス分布あれば、平均と分散がきまる
VAE の loss 関数
VAEの loss は、分布に関する loss とAEの再構成誤差の2つの和になります
16
分布に関するloss (KL divergence)
再構成誤差
VAEの例
VAEを使うと、画像を生成できます
17
Semi-supervised Learning with Deep Generative Models
GANの例 (DCGAN)
GAN(DCGAN)でも、画像を生成できます。VAEよりもくっきりしています
18
すぎゃ〜んメモ: TensorFlowによるDCGANでアイドルの顔画像生成
言語の深層生成モデル
画像ではGANがいい感じでしたが、GANは連続値用にデザインされたものなので、自
然言語に適用するのは難しい
19
この論文で使われているのも、GANではなくVAEです
※ 最近、この困難を解決して、 GANを自然言語に適用した論文 (SeqGAN)で出て、注目されています
ネットワーク構成
ネットワークはVAEのEncoderとDecoderを単層のLSTMに置き換えたものです
20
学習
単純に最適化をすると、うまく学習してくれないことがわかっているので、以下の2つの工
夫をしています
- word dropout
- 学習中に decoder の入力単語をランダムに <UNK>(未知語) に置き換えることで、直前の文字へ
の依存を減らし、潜在変数 Z への依存を強くします
- KL cost annealing
- 学習初期に KL divergence が 0 となってしまうのを防ぐため、重み w を導入し、徐々に KL
divergenceへの依存を強くしていきます
21
w
結果
いい感じになりました!
(論文では色々検証していますが省略)
22
実装編
TensorFlowでRNNを実装する際のチップスは
新村さんがわかりやすく話してくれるはず!
23
対象の決定
● 文章生成は未だ研究段階の技術。わりとテキトーな文章が生成されやすい
24
テキトーな文章ならいい感じになるのでは!?
データ収集
せっかくなので、データ収集もテキトーにや
りたい
25
データの多そうなサイト1つだけ採用
Encoderの実装
Encoder では文章の埋め込み(潜在
空間)を学習する
● 1層のLSTM
● 入力: 文章
● 出力: μ と σ
26
Decoderの実装
Decoder では潜在空間から文章を生
成する
● 1層のLSTM
● 入力: z (initial state)
● 出力: 文章
27
最適化
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 の
大きさの推移などは検証していません。
デモ再訪
どんな結果になっているでしょうか
29
https://goo.gl/VTrgNW
30
global_step: 99900 elapsed time: 11909
[#################################################-] loss: 1.20753e-05
よく 『 カバン を 忘れる 』 って いう 人 が いる けど 、 カバン の 中 に 入っ て 誰 か に 運ん で
ま 、 今 の 笑い は 三遊 間 ヒット ぐらい の 笑い だ な
何 も し なく て も ハラ が 減る けど 、 これ が 『 生き てる 』 って いう こと な ん だろう ね
これ 、 『 適当 』 って 呼ば れ た けど 、 チクビ が 下 半身 か 食べ ない から
これ 、 『 適当 』 って 呼ば れ た けど 、 さすが NHK だけ あっ て カメラ が 2 台 以上 あっ
渡辺 正行 の 合コン で 目 の 前 に 『 可 も なく 不可 も なく の コ 』 が 座っ て き
顔 、 ちっちゃい ね ~ 。 おじ さん の 顔 は 半分 は 言っ て た ん だ
よく 『 風 と 一 つ に なっ て 運転 する 』 って ヤツ が いる けど 、 風 と 一緒 に なっ たら
顔 、 オレ が 好き な の 。 オレ は 頭 に デップ つけ て ない けど 、 言っ て も 全裸 だ
シュワルツェネガー と は 友達 な ん だ けど 、 オレ が 一方 的 に 否定 し て ん だ よ
銀座 の 蝶 は 、 美人 度 6 以上 が 『 銀座 の 蝶 』 な ん だ
今年 の 大晦日 は ゴルフ に 行け ない ん だ 。 2 時 に おせち 料理 を 取り に 行か なく ちゃ いけ ない
娘 が 風呂 に 入る 時 は 頭 から 入っ てる ところ に オレ が 湯船 の 出 て くる から し
オナラ が みんな し だっ た こと が ない ? 『 乱交 』 って 言う ん だ よ 。 ダッ ハッハッハ
娘 と 一緒 に お 風呂 に 入り たい お 父 さん は 、 あらかじめ お 風呂 に 潜っ て おい て 、 娘
これ 、 手作り チョコレート な の ? 市販 の チョコ の ほう が おいしい ん じゃ ない の ?
よく 『 野球 場 で いう と 何 個 分 』 と か いう けど 野球 場 が どの くらい の 大き さ な
顔 から 火 が 出る くらい 恥ずかしい 時 は 顔 から 火 を 出し ちゃえ ば みんな の 気 が そっち に いっ ちゃう
オナラ が 止まら ない と いう 人 は コルク を 詰め とけ ば いい ん じゃ ない の ?
渡辺 正行 の 合コン で 目 の 前 に 『 可 も なく 不可 も なく の コ 』 が 座っ て き た
結果
微妙な結果ですが、 学
習過程は見ていて面白い
まとめ
● 少量で良ければ、データ収集
はとても簡単
● 少量のデータに深層学習を適
用するには、ネットワークをシン
プルにする必要がある
● シンプルなネットワークは、は
やく収束する
● モデルをゼロから実装しなくて
も、公開されているものを使うこ
とができる
31
楽しい!
We are hiring!
ブレインパッドでは機械学習エンジニアを募集しています!
興味のある方は
mitsuhisa.ohta@brainpad.co.jp
or
recruit@brainpad.co.jp
まで!
32
Appendix
33
深層学習による文章生成の関連研究
● Show and Tell
○ 画像からキャプションを生成
● Sequence to Sequence
○ 文章から文章を生成。翻訳や雑談、 Smart Reply などに利用可能
● SeqGAN
○ ランダムな数値から文章を生成。自然言語に GAN を適用
● Generating Sentences from a Continuous Space
○ ランダムな数値から文章を生成。今回紹介した論文
34
その他参考資料
● ★高田純次発言集1530選(高田純次語録)
● WILDML: RNNS IN TENSORFLOW, A PRACTICAL GUIDE AND
UNDOCUMENTED FEATURES
● Introduction to Recurrent Networks in TensorFlow
● 生成モデルの Deep Learning
35

More Related Content

Viewers also liked

Activity forecasting
Activity forecastingActivity forecasting
Activity forecastingjh3rox
 
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3NNで広告配信のユーザー最適化をやってみた。@ TFUG #3
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3Junichiro Katsuta
 
TFUG#3 Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方
TFUG#3  Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方TFUG#3  Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方
TFUG#3 Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方Masato Taruishi
 
Ml15min発表資料(提出用)
Ml15min発表資料(提出用)Ml15min発表資料(提出用)
Ml15min発表資料(提出用)WEBFARMER. ltd.
 
Variational AutoEncoder
Variational AutoEncoderVariational AutoEncoder
Variational AutoEncoderKazuki Nitta
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法Sho Nakazono
 
NIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksNIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksEiichi Matsumoto
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~圭 進藤
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...Deep Learning JP
 
エンジニアのブログ書きの
心技体
エンジニアのブログ書きの
心技体エンジニアのブログ書きの
心技体
エンジニアのブログ書きの
心技体Kenji Tanaka
 
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)Yusuke Iwasawa
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用Seiya Tokui
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計Takahiro Kubo
 
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題現在のDNNにおける未解決問題
現在のDNNにおける未解決問題Daisuke Okanohara
 
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)Kohei Mochida
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことSatoshi KOBAYASHI
 

Viewers also liked (20)

Activity forecasting
Activity forecastingActivity forecasting
Activity forecasting
 
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3NNで広告配信のユーザー最適化をやってみた。@ TFUG #3
NNで広告配信のユーザー最適化をやってみた。@ TFUG #3
 
TFUG#3 Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方
TFUG#3  Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方TFUG#3  Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方
TFUG#3 Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方
 
Ml15min発表資料(提出用)
Ml15min発表資料(提出用)Ml15min発表資料(提出用)
Ml15min発表資料(提出用)
 
Variational AutoEncoder
Variational AutoEncoderVariational AutoEncoder
Variational AutoEncoder
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
NIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksNIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder Networks
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
10分でわかったつもりになるlean start up ~リーンスタートアップって何ですか?~
 
bigdata2012ml okanohara
bigdata2012ml okanoharabigdata2012ml okanohara
bigdata2012ml okanohara
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
 
エンジニアのブログ書きの
心技体
エンジニアのブログ書きの
心技体エンジニアのブログ書きの
心技体
エンジニアのブログ書きの
心技体
 
bigdata2012nlp okanohara
bigdata2012nlp okanoharabigdata2012nlp okanohara
bigdata2012nlp okanohara
 
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
[DL輪読会] GAN系の研究まとめ (NIPS2016とICLR2016が中心)
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
現在のDNNにおける未解決問題
現在のDNNにおける未解決問題現在のDNNにおける未解決問題
現在のDNNにおける未解決問題
 
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)
農業Aiハッカソンやってみた(第10回 Machine Learning 15minutes!)
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
 

Generative junji