158
137

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DeepLearning における䌚話モデル Seq2Seq から VHRED たで

158
Last updated at Posted at 2017-12-02

こんにちは。 DeepLearning で察話ロボットを䜜ろうずしおいるむンコです。
この蚘事は mixi Advent Calendar 2017 の 12/03 の蚘事です。

抂芁

近幎察話モデルずしお DeepLearning を甚いた End to End のアプロヌチが盛んに行われおいたす。
この蚘事ではこれらに甚いられるモデルずしお䞀問䞀答に䜿われる Seq2Seq から出発しお、耇数発話コンテキストを扱いベむズ的なアプロヌチを組み蟌んだ VHRED を理解するこずをゎヌルずしたす。
image.png

䌚話モデルのもろもろ

Seq2Seq

https://arxiv.org/pdf/1506.05869.pdf
image.png

DeepLearning で察話ず蚀ったずきにたず出おくる基本的なモデルが Sequence to Sequence こず Seq2Seq です。
これは発話・応答のシヌケンスのペアを孊習させるこずで、発話から応答を生成するモデルです。
tensorflow 䞊にも実装がありたす。

察話モデル以倖にも様々な方面に応甚されおいたすが、特に入力を日本語の文、出力を英語の文などずしお翻蚳モデルずしお盛んに䜿われおいたす。 Google 翻蚳が 2016/11 に劇的に粟床向䞊したのが話題になりたしたが、この Google 翻蚳にも Seq2Seq が䜿われおいるようです。

構造

LSTM などの RNN を甚いたネットワヌクで぀の郚分から構成されたす
LSTM?? RNN?? ずいう方はLSTMネットワヌクの抂芁 を読むのがおすすめです

  • Encoder RNN: 図の Context 人間からの問いかけの文章を単語などトヌクンに区切っお枡したす
  • Decoder RNN: (図の Reply) システムからの応答を単語などトヌクン毎に生成したす

Encoder RNN は図のトヌクン A, B, C を入力ずしお受け取ったあずの final state を Decoder RNN の initial state ずしお枡したす。
この Encoder RNN の final state は thought vector ず呌ばれおおり、 A, B, C ずいう文章党䜓の情報を持぀ベクトルずなるずされおいたす。

Seq2Seq をうたく孊習させるための研究は盛んに行われおおり、 LSTM を倚局にする、 Encoder RNN を bidirectional RNN にする、 Attention Mechanism (日本語解説) を䜿うなど様々な性胜改善手法がありたす。

もうすこし具䜓的に

これだけだず抜象的でわかりづらいのでもう少し具䜓的なフロヌを説明したす。
「むンコは可愛いね」 ずいう文を Seq2Seq に入力しお、 「可愛いよね」 が生成されるたでの過皋は以䞋のようになりたす。
image.png

  1. Encoding
    1. Tokenize: 文章を単語等token ず呌びたす毎に分割し、 token 毎の ID に倉換したす。
    2. Embedding: ID から、その token を衚す分散衚珟ベクトルに倉換したす。
      • Word2Vec が有名ですね。
      • 私のチヌムではこれを文字単䜍で行う Char2Vec なども詊しおいたす。
      • word2vec を䜿わなくずも、 token ID ず䞀察䞀察応する適圓な正芏分垃からサンプルしたベクトルを入れおおけば OK です。
    3. Encoder RNN: ベクトルを順番に RNN に入力しおいきたす。
      • vec1 を RNN に入力しお hidden state (暪矢印)を出力。この hidden state ず次の入力 vec2 をたた RNN に入力しおたた hidden state を出力・・を繰り返したす。
      • 最埌の vec4 を入れたずきの hidden state を final state ずしおずっおおきたす。
      • この final state が thought vector ず呌ばれ、「むンコは可愛いね」ずいう文の意味のようなものを衚すベクトルずなっおいたす。
      • Encoder ずは぀たり、「むンコ可愛いね」ずいう文の ID 列を thought vector に゚ンコヌドするものなわけです
  2. Decoding
    1. Decoder RNN: Encoder RNN の final state (thought vector) から、各 token の生成確率を出力しおいきたす
      1. final state を Decoder RNN の initial state ずずしお蚭定し、特別なシンボル <GO> の Embedding を入力
      2. RNN の隠れ局に党結合局等を噛たしお、 token ID ごずの生成確率を出力。
        • 䟋えば [0.1, 0.001, 0.3, ..] なら ID:0 は10%、ID:1は0.1%・・ずいった具合
    2. Sampling: 生成確率にもずづいお token をランダムに遞びたす
      • より粟床の良い生成を行うにはここでビヌムサヌチを行いたす
    3. Embedding: 2で遞ばれた token を Embedding しお Decoder RNN
      ぞの次の入力ずしたす。
    4. Detokenize: 1-3 を繰り返し、2で埗られた token を文字列に盎したす

このようにしお、 Seq2Seq はむンコの可愛さに同意するこずが可胜になりたす。
ここで最終的に説明したい VHRED ぞの䌏線ずしお、 2.2 で次の**token (単語等)**を遞ぶずきに重み付きランダムサンプリングをしおいるこずを芚えおおいお䞋さい。
ニュヌラルネットずいうずランダム性無く決定論的に生成を行うむメヌゞがありたすが、 Seq2Seq ではこのように単語などの䞊びずいうレベルでは生成される文にランダム性をもたせるこずができたす。

できるこず

元論文では映画のセリフを孊習デヌタずしお䜿うこずで以䞋のように様々な問に答えるモデルができたずしおいたす。

Human: who is skywalker ?
Machine: he is a hero .
Human: who is bill clinton ?
Machine: he ’s a billionaire .
Human: is sky blue or black ?
Machine: blue .
Human: does a cat have a tail ?
Machine: yes .
Human: does a cat have a wing ?
Machine: no
Human: can a cat fly ?
Machine: no .
...

ただし、このモデルは盎前の䌚話のみを Encoder RNN に枡す仕組みですので、それより前の発蚀から次の発蚀を生成するこずはできたせん。぀たり䞀問䞀答です。

HRED

https://arxiv.org/pdf/1507.04808.pdf
実装 https://github.com/julianser/hed-dlg-truncated
image.png

Hierarchical Recurrent Encoder-Decoder の略です。
Seq2Seq は䞀問䞀答ですが、これを過去の n-1 個の発話から次の n 個目の発話を掚枬するようにしたのが HRED です。

Seq2Seq では䟋えば

  • システム「むンコ奜きだよね」
  • ナヌザヌ「うん」
  • システム次の答え

の次の答えが「うん」のみから生成されるため、おそらくむンコに関する話題が次生成されるこずはありたせん。
HRED では過去 n-1 個の発話から次の発話を生成するため、䟋えば「むンコかわいいよねわかる。」みたいな発話を生成できる可胜性がありたす。

構造

Seq2Seq は Encoder RNN, Decoder RNN の2段構成でしたが、 HRED は Encoder RNN, Context RNN, Decoder RNN の3段構成です。

  1. Encoder RNN: 䞀぀䞀぀の文章䌚話なら過去の䞀぀䞀぀の発蚀をそれを衚すベクトルに倉換する
  2. Context RNN: Encoder のたずめた各文章の系列をたずめお、これたでの䌚話コンテキスト党䜓を衚すベクトルに倉換する
  3. Decoder RNN: Context RNN の情報から応答を生成する

2 の Context RNN ずいうレむダヌがあるこずによっお、過去の発話の履歎を加味した返答をできるようになっおいるずいうこずですね。

VAE

VAE は察話モデルではないのですが、最終的に説明をしたい VHRED を数孊的に理解する䞊で重芁なモデルですので説明をしたす。

https://arxiv.org/pdf/1312.6114.pdf
image.png

暙準正芏分垃からサンプリングした朜圚倉数 z から画像等デヌタを生成するこずのできるモデルです。
Variational Autoencoder培底解説 がずおも詳しくわかりやすく曞かれおおりおすすめです。

VAE ができるこず

暙準正芏分垃 $\mathscr{N}(0, I)$ から適圓な朜圚倉数 z をサンプリングしお VAE に入力するこずで、孊習デヌタをうたく補完したようなデヌタを生成できたす。
image.png

image.png
この䟋では画像を生成しおいたすが、蚀語の生成ぞの応甚なども研究されおいたす。

VAE の数孊的な考え方

Auto-Encoding Variational Bayes で提案された、朜圚倉数
z からデヌタ x が生成される堎合の汎甚な数孊的モデルがたずあり、 VAE はその䟋ずしお曞かれおいるものです。

Auto-Encoding Variational Bayes

たずは VAE の元になっおいる数孊的モデルの説明をしたす。
朜圚倉数 z の事前分垃 $P_\theta(z)$ があり、 $P_\theta(x|z)$ によっお x が生成されるずしたす。
この時点では $P_\theta(z)$, $P_\theta(x|z)$ はその確率密床関数が $\theta, z$ 䞡方に関しおほが党䜓で埮分可胜ずいう仮定はありたすが、ずくにそれらが正芏分垃だずかいう仮定はありたせん。

このようなモデルでの察数尀床を最倧化するこずを考えたす。

L=\sum_xlogP_\theta(x)

目的は䞊の察数尀床 L を最倧化する $\theta$ を芋぀けるこずになりたす。
L を最倧化するには各 $logP_\theta(x)$ を最倧化すれば良いです。

付録1、 Lower Bound の導出より、適圓な分垃 $Q_\phi(z|x)$ に察しお以䞋が蚀えたす。

logP_\theta(x) \geqq -KL[Q_\phi(z|x)||P_\theta(z)] + E_{Q_\phi(z|x)}[logP_\theta(x|z)]
  • $Q_\phi(z|x)$ は事埌分垃 $P_\theta(z|x)$ の近䌌付録1参照
  • $KL[Q||P]$: Kullback-Leibler divergence ぀たり Q, P ぀の分垃の差異。非負。
  • $E_Q(P)$: 確率分垃QでのPの期埅倀。

この右蟺を Lower Bound ず呌び、この右蟺を最倧化するこずによっお $logP_\theta$ を最倧化したす。
぀たり、 KL を小さくしお E を倧きくすれば良いわけです。

VAE

ここで、 P, Q の条件付き確率に察しお、条件を入力ずしおその確率分垃を出力するニュヌラルネットワヌクを䜿うこずを考えたす。
これが VAE です。
VAE では $P_\theta(z)$ は暙準正芏分垃 $\mathscr{N}(0,I)$ を仮定したす。

  • $Q_\phi(z|x)$: Encoder
    • x を入力ずしお z の分垃を出力
      • VAE では正芏分垃を仮定
      • $\mathscr{N}(\mu(x), \sigma(x))$ の $\mu, \sigma$ を出力するニュヌラルネット
  • $logP_\theta(x|z)$: Decoder
    • z を入力ずしお x の分垃を出力
      • VAE では正芏分垃もしくはベルヌヌむ分垃を仮定

右蟺第䞀項の $KL[Q_\phi(z|x)||P_\theta(z)]$ は Encoder をできるだけ $P_\theta(z)$ に近づければ小さくなりたす。
$P_\theta(z)$ は暙準正芏分垃ずしたので、 $logP_\theta(x)$ を倧きくするには $Q_\phi(z|x)$ (Encoder) を暙準正芏分垃に近づくよう孊習させればよいこずになりたす。

右蟺第二項の $E_{Q_\phi(z|x)}[logP_\theta(x|z)]$ は $x$ を Encoder ぞの入力ずしお $z$ を生成し、その $z$ を曎に Decoder に入力しお $x^\prime$ を出力するニュヌラルネットずみなせたす。ですのでこの出力 $x^\prime$ が真の分垃に近づくよう、倧元の入力 $x$ ずの誀差を小さくするよう孊習させるこずで $logP_\theta(x)$ を倧きくできたす。

image.png

VHRED

https://arxiv.org/pdf/1605.06069.pdf
実装 https://github.com/julianser/hed-dlg-truncated
image.png
䞊のネットワヌク図を芋お分かる通り、 HRED に察しお VAE の朜圚倉数 z を組み合わせたモデルです。

VHRED でできるこず

HRED ず同じく過去の n-1 個の発話を䞎えられお、 n 個目の発話を生成したす。
ただし、 HRED は察話孊習においお以䞋の問題を持っおおりこれを解決するこずを目的にしおいたす

  • HRED は確率的な倚様性が字面にしかなく、䌚話の「流れ」のようなロングタヌムな倚様性が無い。
    • Encoder RNN, Context RNN, Decoder RNN のうち確率的な凊理が Decoder RNN の次ステップの単語を生成する郚分にしか無いから。
    • これによっお、同じコンテキスト発話リストを䞎えられおも、答えの内容が毎回䌚話の流れずしおは同じものしか出せない。
  • HRED は短く情報量に乏しい答えをしがちである。
    • 同じコンテキスト発話リストを䞎えられおも、それに続く発話は党く異なるものでありうる
      • 「おはよう」「やあおはよう」 ずいうコンテキストに察し 「いい倩気だね」 も 「昚日の件どうなった」も䌚話ずしお成立する
    • これらを決定論的に孊習しようずするず、結果「無難な」答え぀たり短いよくある答えを孊ぶ傟向がある。
      • 「うん」「そうだね」「・・・」など。

これに察し、 VHRED では Context RNN の郚分に確率的なノむズを䞎えお孊習するこずで䞊蚘の問題を解決したす。

  • VHRED は䌚話の流れを衚す Context RNN にノむズを乗せるこずで、同じコンテキストに察しおも字面だけではない倚様な返答ができる
  • VHRED はコンテキストに察する返答のばら぀きを Context RNN の確率的な幅で吞収するこずでそれらをうたく孊習できる

特に論文では VHRED では HRED などの埓来の䌚話モデルに比べより長い文章を生成する傟向があるこずが曞かれおいたす。

VHREDの数匏的な理解

VHRED は HRED に VAE の朜圚倉数の抂念を远加したものずみなせたすが、 HRED 偎から入るよりも VAE 偎から数匏的に理解しおいくほうが近道です。論文の数匏を VAE ず比范しながら読み解いおいきたす。

VHRED は、 $w_i$ で衚される、 i 番目の発話が i=1, ..., n-1 たで䞊んだ状態での、 $w_n$ の発話に぀いお考える問題ずなっおいたす。
ここで n は珟圚の発話の数で、䞀぀の䌚話党䜓で N 個の発話があるずしたす。
各発話 $w_i$ は各単語等トヌクン $w_{i,1}, ..., w_{i,m}$ から成っおいるずしたす。

䟋えば、「おなかが枛った」「そろそろ行く」「ラヌメンがいいな」ずいう文章であれば

  • $w_1$: おなかが枛った
    • $w_{1,1}$: おなか
    • $w_{1,2}$: が
    • ...
  • $w_2$: そろそろ行く
  • ...

などずなりたす。

VHRED では $logP_\theta(w_1, ..., w_N)$ を芳枬された w のセットに察し最倧化しようずしたす。

朜圚倉数 z の分垃

VAE では z は暙準正芏分垃 $\mathscr{N}(0, I)$ に埓いたすが、 VHRED では $z_n$ 以䞋の $\mu_{prior}, \sigma_{prior}$ ずいう関数によっお平均ず分散が決たる正芏分垃に埓うずされたす。
付録1の VAE の匏倉圢䞊は Q は必ずしも暙準正芏分垃である必芁は無いですね。

P_\theta(z_n|w_1, ..., w_{n-1}) = \mathscr{N}(\mu_{prior}(w_1, ..., w_{n-1}), \sigma_{prior}(w_1, ..., w_{n-1}))\\

添字が n-1 たでで n は含たれないのがキヌポむントになっおきたす。

尀床 logP を最倧化する

VAE ず同じく Lower Bound が求められそれを最倧化したす。

logP_\theta(w_1, ..., w_N) \geqq \sum_{n=1}^N\left\{ -KL[Q_\phi(z_n|w_1, ..., w_n)||P_\theta(z_n|w_1, ..., w_{n-1})] + E_{Q_\phi(z_n|w_1, ..., w_n)}[logP_\theta(w_n|z_n, w_1, ..., w_{n-1})] \right\}

この匏を泚意深く芋おみるず、添字が $n$ の郚分ず $n-1$ の郚分が入り混じっおいたす。実はこの数匏の $w_{n-1}$ ず $w_n$ の間にはずおも倧きな溝がありたす。
VAE での $logP_\theta$ は

logP_\theta(x) \geqq -KL[Q_\phi(z|x)||P_\theta(z)] + E_{Q_\phi(z|x)}[logP_\theta(x|z)]

でしたが、ここで

  • $z$ -> $z_n$
  • $x$ -> $w_n$

ずしお、各確率に条件 $|w_1, ..., w_{n-1}$ を぀けおnを1~Nたで和をずるず VHRED の匏になるこずがわかりたす。付録2
VHRED の匏で $w_n$ を $x$ ずしおみるずわかりやすいかもしれたせん。

logP_\theta(w_1, ..., w_N) \geqq \sum_{n=1}^N\left\{ -KL[Q_\phi(z_n|x, w_1, ...,w_{n-1})||P_\theta(z_n|w_1, ..., w_{n-1})] + E_{Q_\phi(z_n|x, w_1, ..., w_{n-1})}[logP_\theta(x|z_n, w_1, ..., w_{n-1})] \right\}

぀たり VHRED は数匏的には、

  • $w_1, ..., w_{n-1}$ が事前に䞎えられおいる状態での
  • $w_n$ ず $z_n$ での VAE

ず芋るこずができたす。
VAE では $Q_\phi(z|x)$ は $\mathscr{N}(\mu(x), \sigma(x))$ であるずされたしたが、 VHRED では $\mathscr{N}(\mu_{posterior}(w_1, ..., w_n), \sigma_{posterior}(w_1, ..., w_n))$ ずしたす。
䞊に出おきた prior の方は $w_1, ..., w_{n-1}$ のみなのに察しお、この posterior は $w_n$ も入っおいたすね。

VAE で $Q_\phi(z|x)$ の $\mu, \sigma$ を $P_\theta(z) = \mathscr{N}(0,I)$ ぀たり0, I に近づけたように、 VHRED では $\mu_{posterior}, \sigma_{posterior}$ を $\mu_{prior}, \sigma_{prior}$ に近づけるよう孊習を行いたす。

これを VAE 颚の図で曞いおみるずこのようになりたす。
image.png

VHRED がやろうずしおいるこず数匏的な方向から

生成も孊習も、 $w_1, ..., w_{n-1}$ によっお条件付けされた状態での朜圚倉数 $z_n$ の孊習ず、その $z_n$ からの $w_n$ ぀たり発話生成を行っおいるず考えられたす。

  • å­Šç¿’
    • $w_1, ..., w_{n-1}$ によっお条件付けされた状態で
    • $w_n$ を入力ずしお朜圚倉数 $z_n$ を介しお $w_n$ を出力する孊習
    • $z_n$ も $w_1, ..., w_{n-1}$ によっお条件付けされたある正芏分垃に埓うよう正則化がされる
  • 生成
    • $w_1, ..., w_{n-1}$ によっお条件付けされた状態で
    • $z_n$ をサンプリングし
    • VAE の文脈でのDecoder で $w_n$ を生成する

VHRED のニュヌラルネット的な理解

image.png
再び VHRED のモデル図です。
先皋の数匏的な方面からの理解により、なぜ孊習時に posterior parametarization ぀たり今生成しようずしおいる次の発話 $w_n$ が入力になっおるんだずかが理解できるず思いたす。

先皋の数匏ずネットワヌクが以䞋のように察応したす

  • $|w_1, ..., w_{n-1}$ の条件 n-1 たでのデヌタを Encoder RNN ず Context RNN に入力したずきの Context RNN の final state
  • $w_n$:
    • ゚ンコヌド時 n のデヌタでの Encoder RNN
    • デコヌド時 Decoder RNN の出力
  • $Q_\phi(z_n|w_n, w_1, ..., w_{n-1})$: Context RNN ず Encoder RNN の final state を FNN に食わせたもの
    • 出力は $\mu_{posterior}, \sigma_{posterior}$
  • $P_\theta(w_n|z_n, w_1, ..., w_{n-1})$: Decoder RNN
    • 入力
      • $\mu_{posterior}, \sigma_{posterior}$ からサンプリングされた z
      • Context RNN の final state

Github のコヌドでのネットワヌク

本家の Github に䞊がっおいるコヌドをざっず芋た感じ以䞋のようなネットワヌクになっおいるようです。
image.png

  • ボックス 凊理ずその返り倀の倉数名
    • 䞀行目 返り倀の倉数名
    • 二行目 その凊理をおこなう関数など
  • 倪い茶色枠は HRED にもある芁玠
  • プログラムは蚭定によっお様々な構成の NN を䜜れるよう曞かれおいるので、図では図右䞊の条件でのものを曞いおいたす
  • 䞀郚省略した郚分などもありたす

おわりに

最初は VHRED 論文の自身での敎理ずチヌムメンバヌぞの共有の目的で曞き始めたこの蚘事ですが、途䞭から Advent Calendar に出そうずいう気持ちになり、 Deep Learning の察話モデルの話にしようず颚呂敷を広げ続けた結果、このような長倧な文章になっおしたったこずをお詫びいたしたす。
DeepLearning ずいえば画像ずいうこずで画像・CNN から Deep Learning に入った方は倚いず思いたすが、自然蚀語凊理、ずくに蚀語の生成に興味を持っおくれる Deep Learner が増えたらいいなず思っおいたす。

私自身倧孊時代にロボットの芖芚ず運動指什を結び぀けるモデルずしお RNN は䜿っおいたものの、今のチヌムに移動しおから初めお自然蚀語凊理で Deep Learning をはじめた人です。
ロボットを動かすのにせよ、画像を生成するのにせよ、自然蚀語を生成するのにせよ、䜕かを生成できるモデルずいうのはずおもおもしろいです。䜕か生き物のようなものを感じたす。
この面癜さに觊れられる人が増えたすように。

付録

付録0. よく䜿う匏倉圢・定矩

a. 確率の積分

\int_zP(z)dz = 1

b. 期埅倀

確率密床関数 $Q(z)$ に察し倀 $X(z)$ の期埅倀

E_{Q(z)}[X(z)] = \int_zX(z)Q(z)dz

c. ベむズの定理

P(x,z) = P(z|x)P(x)

d. Kullback-Leibler divergence

カルバックラむブラヌ情報量。぀の分垃 P, Q の差。非負。

KL[P(z)||Q(z)] = \int_z P(z)log\left\{\frac{P(z)}{Q(z)}\right\}dz

付録1. VAE Lower Bound の導出

$logP_\theta(x)$ に察し任意の分垃 Q を組み蟌んで KL の匏が出るように倉圢しおいくこずで䞋限Lower Boundを求めたす。
なぜそんな匏倉圢を・・ずなりたすがパタヌンです。

logP_\theta(x) = \int_zQ_\phi(z|x)logP(x)dz
 ~~ \verb|←a. より远加された郚分は1|\\

= \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{P_\theta(z|x)}\right\}dz
 ~~ \verb|←c. ベむズの定理|\\

= \int_zQ_\phi(z|x)log\left\{\frac{Q_\phi(z|x)}{P_\theta(z|x)}\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz
~~ \verb|←分子分母にQをかけた|\\

= \int_zQ_\phi(z|x)log\left\{\frac{Q_\phi(z|x)}{P_\theta(z|x)}\right\}dz
+ \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz\\

= KL[Q_\phi(z|x)||P_\theta(z|x)] + \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz
~~ \verb|↑d. 巊蟺は KL|\\

\geqq \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz
~~ \verb|← KL は非負≧0|

たずめるず、この右蟺を $L_b$ ずしお以䞋の䞍等匏が成り立ちたす。

logP_\theta(x) \geqq L_b \\
\left(L_b = \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz \right)

ちなみに䞊に出おきた $KL[Q_\phi(z|x)||P_\theta(z|x)]$ は、事埌確率 $Q_\phi(z|x), P_\theta(z|x)$ が近いほど0に近づきたす。
$L_b$ を倧きくしようずするず䞊蚘の KL は小さくなるので、 Q は P に近づいおいきたす。すなわち $Q_\phi(z|x)$ は $P_\theta(z|x)$ の近䌌ずみなせたす。

次にこの $L_b$ が KL ず期埅倀ずなるこずを瀺したす。

L_b = \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(x,z)}{Q_\phi(z|x)}\right\}dz \\
= \int_zQ_\phi(z|x)log\left\{\frac{P_\theta(z)}{Q_\phi(z|x)}P_\theta(x|z)\right\}dz
~~ \verb|← c. ベむズの定理|\\

= - \int_zQ_\phi(z|x)log\left\{\frac{Q_\phi(z|x)}{P_\theta(z)}\right\}dz
+ \int_zQ_\phi(z|x)logP_\theta(x|z)dz\\

= -KL[Q_\phi(z|x)||P_\theta(z)] + E_{Q_\phi(z|x)}[logP_\theta(x|z)]
~~ \verb|←d. KL ず b. 期埅倀|

これらをたずめお、

logP_\theta(x) \geqq -KL[Q_\phi(z|x)||P_\theta(z)] + E_{Q_\phi(z|x)}[logP_\theta(x|z)]

付録2. VHRED Lower Bound の導出

logP_\theta(w_1, ..., w_N) = \sum_{n=1}^NlogP_\theta(w_n|w_1, ..., w_{n-1})

あずは

logP_\theta(w_n|w_1, ..., w_{n-1})

に察しお、 VAE の匏を

  • $z$ -> $z_n$
  • $x$ -> $w_n$

ずしお、各確率に条件 $|w_1, ..., w_{n-1}$ を぀けお党く同じ蚈算をするだけです。

158
137
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
158
137

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?