ããã«ã¡ã¯ã DeepLearning ã§å¯Ÿè©±ãããããäœãããšããŠããã€ã³ã³ã§ãã
ãã®èšäºã¯ mixi Advent Calendar 2017 ã® 12/03 ã®èšäºã§ãã
æŠèŠ
è¿å¹Žå¯Ÿè©±ã¢ãã«ãšã㊠DeepLearning ãçšãã End to End ã®ã¢ãããŒããçãã«è¡ãããŠããŸãã
ãã®èšäºã§ã¯ãããã«çšããããã¢ãã«ãšããŠäžåäžçã«äœ¿ããã Seq2Seq ããåºçºããŠãè€æ°çºè©±ã³ã³ããã¹ããæ±ããã€ãºçãªã¢ãããŒããçµã¿èŸŒãã VHRED ãçè§£ããããšããŽãŒã«ãšããŸãã

äŒè©±ã¢ãã«ã®ãããã
Seq2Seq
https://arxiv.org/pdf/1506.05869.pdf

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 ã«å
¥åããŠã ã坿ãããã ãçæããããŸã§ã®éçšã¯ä»¥äžã®ããã«ãªããŸãã

- Encoding
- Tokenize: æç« ãåèªçïŒtoken ãšåŒã³ãŸãïŒæ¯ã«åå²ãã token æ¯ã® ID ã«å€æããŸãã
-
Embedding: ID ããããã® token ã衚ãåæ£è¡šçŸãã¯ãã«ã«å€æããŸãã
- Word2Vec ãæåã§ããã
- ç§ã®ããŒã ã§ã¯ãããæååäœã§è¡ã Char2Vec ãªã©ã詊ããŠããŸãã
- word2vec ã䜿ããªããšãã token ID ãšäžå¯Ÿäžå¯Ÿå¿ããé©åœãªæ£èŠååžãããµã³ãã«ãããã¯ãã«ãå ¥ããŠããã° OK ã§ãã
-
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 ã«ãšã³ã³ãŒããããã®ãªããã§ã
- Decoding
-
Decoder RNN: Encoder RNN ã® final state (thought vector) ãããå token ã®çæç¢ºçãåºåããŠãããŸã
- final state ã Decoder RNN ã® initial state ãšãšããŠèšå®ããç¹å¥ãªã·ã³ãã«
<GO>ã® Embedding ãå ¥å - RNN ã®é ãå±€ã«å
šçµåå±€çãåãŸããŠã token ID ããšã®çæç¢ºçãåºåã
- äŸãã°
[0.1, 0.001, 0.3, ..]ãªã ID:0 ã¯10%ãID:1ã¯0.1%ã»ã»ãšãã£ãå ·å
- äŸãã°
- final state ã Decoder RNN ã® initial state ãšãšããŠèšå®ããç¹å¥ãªã·ã³ãã«
-
Sampling: çæç¢ºçã«ããšã¥ã㊠token ãã©ã³ãã ã«éžã³ãŸã
- ãã粟床ã®è¯ãçæãè¡ãã«ã¯ããã§ããŒã ãµãŒããè¡ããŸã
-
Embedding: 2ã§éžã°ãã token ã Embedding ã㊠Decoder RNN
ãžã®æ¬¡ã®å ¥åãšããŸãã - Detokenize: 1-3 ãç¹°ãè¿ãã2ã§åŸããã token ãæååã«çŽããŸã
-
Decoder RNN: Encoder RNN ã® final state (thought vector) ãããå 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

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æ®µæ§æã§ãã
- Encoder RNN: äžã€äžã€ã®æç« ïŒäŒè©±ãªãéå»ã®äžã€äžã€ã®çºèšïŒãããã衚ããã¯ãã«ã«å€æãã
- Context RNN: Encoder ã®ãŸãšããåæç« ã®ç³»åããŸãšããŠããããŸã§ã®äŒè©±ã³ã³ããã¹ãå šäœã衚ããã¯ãã«ã«å€æãã
- Decoder RNN: Context RNN ã®æ å ±ããå¿çãçæãã
2 ã® Context RNN ãšããã¬ã€ã€ãŒãããããšã«ãã£ãŠãéå»ã®çºè©±ã®å±¥æŽãå å³ããè¿çãã§ããããã«ãªã£ãŠãããšããããšã§ããã
VAE
VAE ã¯å¯Ÿè©±ã¢ãã«ã§ã¯ãªãã®ã§ãããæçµçã«èª¬æãããã VHRED ãæ°åŠçã«çè§£ããäžã§éèŠãªã¢ãã«ã§ãã®ã§èª¬æãããŸãã
https://arxiv.org/pdf/1312.6114.pdf

æšæºæ£èŠååžãããµã³ããªã³ã°ããæœåšå€æ° z ããç»åçããŒã¿ãçæããããšã®ã§ããã¢ãã«ã§ãã
Variational Autoencoder培åºè§£èª¬ ããšãŠã詳ããããããããæžãããŠããããããã§ãã
VAE ãã§ããããš
æšæºæ£èŠååž $\mathscr{N}(0, I)$ ããé©åœãªæœåšå€æ° z ããµã³ããªã³ã°ã㊠VAE ã«å
¥åããããšã§ãåŠç¿ããŒã¿ãããŸãè£å®ãããããªããŒã¿ãçæã§ããŸãã


ãã®äŸã§ã¯ç»åãçæããŠããŸãããèšèªã®çæãžã®å¿çšãªã©ãç ç©¶ãããŠããŸãã
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$ ãåºåãããã¥ãŒã©ã«ããã
- x ãå
¥åãšã㊠z ã®ååžãåºå
- $logP_\theta(x|z)$: Decoder
- z ãå
¥åãšã㊠x ã®ååžãåºå
- VAE ã§ã¯æ£èŠååžãããã¯ãã«ããŒã€ååžãä»®å®
- z ãå
¥åãšã㊠x ã®ååžãåºå
å³èŸºç¬¬äžé
ã® $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)$ ã倧ããã§ããŸãã
VHRED
https://arxiv.org/pdf/1605.06069.pdf
å®è£
ïŒ https://github.com/julianser/hed-dlg-truncated

äžã®ãããã¯ãŒã¯å³ãèŠãŠåããéãã 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 颚ã®å³ã§æžããŠã¿ããšãã®ããã«ãªããŸãã

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 ã®ãã¥ãŒã©ã«ãããçãªçè§£

åã³ 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 ã«äžãã£ãŠããã³ãŒãããã£ãšèŠãæã以äžã®ãããªãããã¯ãŒã¯ã«ãªã£ãŠããããã§ãã

- ããã¯ã¹ïŒ åŠçãšãã®è¿ãå€ã®å€æ°å
- äžè¡ç®ïŒ è¿ãå€ã®å€æ°å
- äºè¡ç®ïŒ ãã®åŠçããããªã颿°ãªã©
- 倪ãè¶è²æ 㯠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}$ ãã€ããŠå šãåãèšç®ãããã ãã§ãã
