(07๊ฐ•) Sequential Models - RNN

210812

Sequential Model

์ผ์ƒ ์†์— ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ(๋™์ž‘์ด๋‚˜ ๋ชจ์…˜, ์˜์ƒ, ์Œ์„ฑ)์ด Sequential์ด๋‹ค. ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์€ ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด์ „์— ์‚ฌ์šฉํ•œ FC๋‚˜ CNN์„ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

Naive sequence model

์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ

Autoregressive model

๊ทธ์— ๋ฐ˜ํ•ด Auto. ๋ชจ๋ธ์€ ์ด์ „ n๊ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. n๊ฐœ๋กœ ์ด์ „ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ณ ์ •๋˜๋ฏ€๋กœ ๊ณ„์‚ฐ์ด ์‰ฌ์›Œ์ง„๋‹ค.

  • ๋ฏธ๋ž˜๋Š” ๊ณผ๊ฑฐ n๊ฐœ์—๋งŒ independentํ•˜๋‹ค๋ผ๋Š” ๊ฐ€์ •

Markov model

Markov Assumption์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด๋ฆ„์ด ๋ถ™์Œ.

  • ๊ฐ•ํ™”ํ•™์Šต์„ ๊ณต๋ถ€ํ•  ๋•Œ ๋‚˜์˜ค๊ธฐ๋„ ํ•œ๋‹ค. Markov Decision Process, MDP

๋ง์ด ๋˜๋Š” ๋…ผ๋ฆฌ๋Š” ์•„๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด์ผ ์ˆ˜๋Šฅ์€ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๊ฒƒ๋งŒ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค๋Š” ๋…ผ๋ฆฌ. ๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ markov ๋ชจ๋ธ์€ ๋งŽ์€ ์ •๋ณด๋ฅผ ๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์žฅ์ ์€ joint distribution์„ ์„ค๋ช…ํ•  ๋•Œ ๋˜๊ฒŒ ์ข‹์•„์ง„๋‹ค.

Latent autogressive model

์ด์ „ ๋ชจ๋ธ์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๊ณผ๊ฑฐ์˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋Ÿด ์ˆ˜ ์—†์—ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ๊ณผ๊ฑฐ์˜ ์ •๋ณด๋ฅผ hidden state๊ฐ€ ์š”์•ฝํ•œ๋‹ค๋Š” ๊ฒƒ. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ time step์€ ์ด hidden state ํ•˜๋‚˜์—๋งŒ ์˜์กดํ•œ๋‹ค.

Recurrent Neural Network

์•ž์—์„œ ๋ณด์•˜๋˜ ๋ชจ๋ธ๋“ค๊ณผ ๋‹ค ๋™์ผํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€์˜ ์ฐจ์ด์ ์€ RNN์€ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ ๋Œ์•„์˜ค๋Š” ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ

RNN์„ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ’€๊ฒŒ๋˜๋ฉด ์‚ฌ์‹ค ์ž…๋ ฅ์ด ๊ต‰์žฅํžˆ ๋งŽ์€ FC๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

RNN์˜ ํฐ ๋ฌธ์ œ๋Š” Short-term dependencies ๊ณผ๊ฑฐ์˜ ์ •๋ณด๋“ค์ด ๊ณ„์† ์ถ”ํ•ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ๊ณผ๊ฑฐ์˜ ์ •๋ณด๋“ค์ด ํ˜„์žฌ์˜ ์ƒํƒœ(๊ทธ๋ฆผ์—์„œ A)์— ์œ ์ง€๋˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ.

  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์Œ์„ฑ์ธ์‹์˜ ๊ฒฝ์šฐ 5์ดˆ ๊นŒ์ง€๋Š” ์ž˜ ๊ธฐ์–ตํ•˜๋Š”๋ฐ, 5์ดˆ ์ด์ „์— ๋งํ–ˆ๋˜ ์Œ์„ฑ๋“ค์€ ์ œ๋Œ€๋กœ ๋ฐ˜์˜์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ

h0๊ฐ€ h4๊นŒ์ง€ ๊ฐ€๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์„ ๊ฑฐ์ณ์•ผ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ activation ํ•จ์ˆ˜๊ฐ€ sigmoid๋ผ๋ฉด ์ด h0๊ฐ’์ด squshing๋˜๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋‹ˆ ๋‚จ์€ ๊ฐ’์˜ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง€๊ฒŒ ๋œ๋‹ค

  • squshing๋œ๋‹ค๋ผ๋Š” ๊ฒƒ์€ ์ฐŒ๋ถ€๋Ÿฌ์ง€๋‹ค ๋ผ๋Š” ์˜๋ฏธ์ธ๋ฐ, ์ž…๋ ฅ ๊ฐ’์ด ์•„๋ฌด๋ฆฌ ์ปค๋„ sigmoid๋ฅผ ๊ฑฐ์น˜๋ฉด 0~1๋กœ ์ค„์–ด๋“ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ

๋ฐ˜๋Œ€๋กœ, activation ํ•จ์ˆ˜๊ฐ€ ReLU๋ผ๋ฉด h0๊ฐ’์ด h4๊นŒ์ง€ ๊ฐˆ ๋•Œ๋งˆ๋‹ค ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ณฑํ•ด์ง€๊ณ  ๊ฒฐ๊ตญ h4์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ h0์˜ ๊ฐ’์ด ๋งค์šฐ ํฌ๊ฒŒ ๋œ๋‹ค.

์ •๋ฆฌํ•˜๋ฉด, sigmoid๋Š” vanishing gradient ๋ฌธ์ œ๊ฐ€, ReLU๋Š” exploding gradient ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

  • ๊ทธ๋ž˜์„œ RNN์„ ํ•  ๋•Œ ReLU๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

  • ๊ทธ๋ž˜์„œ LSTM์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ชจ๋ธ์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค.

Long Short Term Memory

๊ธฐ๋ณธ์ ์ธ RNN(Vanilla)์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

LSTM์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

  • X๋Š” ์ž…๋ ฅ, H๋Š” ์ถœ๋ ฅ์ด๋‹ค.

  • cell state๋Š” ์…€ ๋‚ด๋ถ€๋ฅผ ๊ด€ํ†ตํ•˜๋ฉฐ ๋ฐ–์œผ๋กœ ํ๋ฅด์ง€๋Š” ์•Š๋Š”๋‹ค.

    • previous cell state๋Š” t-1 ๊ฐœ์˜ ์ •๋ณด๋ฅผ ์ทจํ•ฉํ•ด์„œ ์š”์•ฝํ•ด์ฃผ๋Š” ์—ญํ• 

  • ์ž˜ ๋ณด๋ฉด, output์ด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๊ธฐ๋„ ํ•˜๊ณ  next hidden state๋กœ ๋น ์ง€๊ธฐ๋„ ํ•œ๋‹ค. ์ด ๊ฒƒ์ด ์ „๋‹จ๊ณ„์—์„œ ์˜ค๋ฉด previous hidden state

  • ๊ทธ๋ฆฌ์Šค์–ด๋กœ ์ƒ๊ธด ๋ชจ์–‘์€ ๋ชจ๋‘ sigmoid ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

LSTM์„ ์ดํ•ดํ•  ๋•Œ๋Š” gate ์œ„์ฃผ๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹๋‹ค. LSTM์€ 3๊ฐœ์˜ gate๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ forget gate, input gate, output gate ์ด๋‹ค.

LSTM์˜ ๊ฐ€์žฅ ํฐ ์•„์ด๋””์–ด๋Š” ์ค‘๊ฐ„์— ํ˜๋Ÿฌ๊ฐ€๋Š” Cell state์ด๋‹ค

Forget Gate

์–ด๋–ค ์ •๋ณด๋ฅผ ๋ฒ„๋ฆด์ง€(์žŠ์–ด๋ฒ„๋ฆด์ง€) ๊ฒฐ์ •ํ•œ๋‹ค. ์ด์ „์˜ ์…€ ์ •๋ณด์™€ ํ˜„์žฌ ์…€์˜ ์ž…๋ ฅ์ด ๋“ค์–ด๊ฐ€์„œ ft f_t ๋ผ๋Š” ์ˆซ์ž๋ฅผ ์–ป๋Š”๋‹ค. ์ด f๋Š” sigmoid์˜ ๊ฐ’์ด๋ฏ€๋กœ ํ•ญ์ƒ 0์—์„œ 1์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค

Input Gate

ํ˜„์žฌ ์ž…๋ ฅ์„ ๋ฌด์ž‘์ • cell state์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ฌ๋ฆด ์ •๋ณด๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ž…๋ ฅ๊ณผ ์ด์ „ ์…€ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ it i_t ๋ผ๋Š” ์ •๋ณด๋ฅผ ๋งŒ๋“ค๊ฒŒ๋œ๋‹ค. ์ด์ œ ์ด i์—์„œ ์˜ฌ๋ฆด ์ •๋ณด๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋Š” Ct C_t ๋กœ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค. (์ฝ๋Š” ๋ฒ•์€ C TILDE) ์ด C ์—ญ์‹œ ์ด์ „์˜ ์…€ ์ •๋ณด์™€ ํ˜„์žฌ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ํ•™์Šต๋œ NN์„ ํ†ตํ•ด์„œ ์–ป๋Š” ๊ฐ’์ด๋‹ค. ์ด ๊ฐ’์€ hyperbolic tangent๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— -1์—์„œ 1์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

Update Cell

Forget gate์—์„œ ๊ตฌํ•œ f์™€ Input gate์—์„œ ๊ตฌํ•œ i๋ฅผ ๊ฐ€์ง€๊ณ  ํ˜„์žฌ์…€์˜ cell state๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

Output Gate

๊ทธ๋Œ€๋กœ Cell State๋ฅผ Output์œผ๋กœ ๋ฝ‘์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๊ฒƒ์„ GRU์—์„œ ํ•œ๋‹ค

  • Gated Recurrent Units, GRU๋Š” RNN ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ์ข…์œผ๋กœ LSTM๋ณด๋‹ค ๋” ๊ฐ„๋žธํ•œ ๊ตฌ์กฐ์ด๋‹ค

LSTM์—์„œ๋Š” ์ด๊ฒƒ์„ ํ•œ๋ฒˆ๋” ๋ณ€ํ™˜ํ•œ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋ฐ”๊นฅ์œผ๋กœ ๋นผ๋‚ผ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ถ€๋ถ„

Gated Recurrent Unit

์ผ๋ฐ˜์ ์œผ๋กœ RNN์„ ์“ฐ๋ฉด Vanilla RNN, LSTM ๊ทธ๋ฆฌ๊ณ  GRU๋ฅผ ์“ด๋‹ค.

GRU๋Š” ๊ฒŒ์ดํŠธ๊ฐ€ 2๊ฐœ์ด๋‹ค.

  • Reset Gate, Update Gate

ํžˆ๋“  ์Šคํ…Œ์ดํŠธ๊ฐ€ ๊ณง ์•„์›ƒํ’‹์ด๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ์Šคํ…Œ์ดํŠธ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

  • RNN์€ ์•„์›ƒํ’‹์„ ๋ณ€ํ™˜ํ–ˆ๋‹ค.

Last updated