Lecture 10: Recurrent Neural Network

3 minute read

Process Sequence of Recurrent Neural Network

์ผ๋ฐ˜ Neural Network ์˜ ๋ชจ์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ผ๋ฐ˜ Neural Network ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์€๋‹‰์ธต์„ ์ง€๋‚˜๋ฉด ๊ฒฐ๊ณผ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉด ์ œ๋Œ€๋กœ ๋œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. Recurrent Neural Network (์ค„์—ฌ์„œ RNN) ์€ ๋‹ค์–‘ํ•œ ํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์˜ˆ์‹œ์ด๋‹ค.

  1. one to many: ์ด๋ฏธ์ง€ -> ์ด๋ฏธ์ง€๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š” ๋ฌธ์žฅ ๋งŒ๋“ค๊ธฐ
  2. many to one: ์ž์—ฐ์–ด ๋ฌธ์žฅ -> ์ฃผ์ œ ํŒŒ์•…ํ•˜๊ธฐ
  3. many to many: ์˜์–ด๋กœ ๋œ ๋ฌธ์žฅ -> ํ”„๋ž‘์Šค์–ด๋กœ ๋œ ๋ฌธ์žฅ
  4. many to many: ํ”„๋ ˆ์ž„ ๋ ˆ๋ฒจ ๋‹จ์œ„๋กœ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜

Architecture of Recurrent Neural Network

RNN์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ž‘๋™ํ•œ๋‹ค.

  1. Recurrent coil๋กœ ์ด๋ฃจ์–ด์ง„ RNN ๋ ˆ์ด์–ด์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์šฉ๋œ๋‹ค.
  2. RNN์˜ ์€๋‹‰์ธต์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ƒˆ๋กœ์šด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์„๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  3. RNN ์€๋‹‰์ธต์ด ๊ฒฐ๊ณผ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

์œ„ ๊ณผ์ •์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

$h_t = f_w(h_{t-1},x_t)$

์—ฌ๊ธฐ์„œ $h_t$๋Š” ์ƒˆ๋กœ์šด ์€๋‹‰์ƒํƒœ, $f_w$๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ๋กœ ์ด๋ฃจ์–ด์ง„ ํ•จ์ˆ˜, $h_{t-1}$๋Š” ์˜ˆ์ „ ์€๋‹‰์ƒํƒœ, $x_t$๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์ด๋‹ค.

$x_t$๋Š” ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋ฐ”๋€Œ๋Š” ๋ฐ์ดํ„ฐ๋กœ, $f_w$๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ์œ ์ง€๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์•„๋ž˜ ์ˆ˜์‹์€ $h_t$์˜ ๋ณ€ํ™” ๊ณผ์ •, $f_w$๋ฅผ $tanh$ ๋กœ ์„ค์ •ํ•˜์˜€์„ ๋•Œ ๋ชจ์Šต์ด๋‹ค.

Computational Graph of Recurrent Neural Network

RNN์ด ์ž‘๋™ํ•˜๋Š” ๊ณผ์ •์„ computational graph ๋กœ ๋‹ค์‹œ ํ‘œํ˜„ํ•ด๋ณด์•˜๋‹ค.

$h_0$์€ ์ฃผ๋กœ 0์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ํ–‰๋ ฌ์ด๋‹ค. $h$๊ฐ€ ์‹œ๊ฐ„์ด ๊ฐˆ์ˆ˜๋ก ๋ฐ”๋€Œ๋Š” ๊ณผ์ •์„ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค. RNN์˜ one-to-many, many-to-one, many-to-many์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฐ๊ฐ computaional graph๋กœ ๋‚˜ํƒ€๋‚ด ๋ณด์•˜๋‹ค.

  1. one-to-many


2. many-to-one


3. many-to-many

์œ„ ๊ทธ๋ฆผ์—์„œ RNN๋ชจ๋ธ์˜ ๊ฐ ์€๋‹‰์ƒํƒœ์— ๋Œ€ํ•œ ๊ณ„์‚ฐ๊ฐ’๊ณผ ์†์‹ค๊ฐ’์„ ๊ณ„์‚ฐํ•˜์˜€๋Š”๋ฐ, ์†์‹ค๊ฐ’์„ ์ด์šฉํ•˜์—ฌ gradient flow๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

Character-level Language Model

RNN์ด ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋ผ๊ณ  ํ•˜๋ฉด Character-level Language Model ์ด ์žˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋ฌธ์ž๊ฐ€ ํƒ€๊ฒŸ ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋ฌธ์ž๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

๋‹ค์Œ์— ๋‚˜์˜ฌ ๋ฌธ์ž๋ฅผ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์˜ˆ์ธกํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ถœ๋ ฅ๊ฐ’์— softmax classifier ๊ฐ€ ์ ์šฉํ•œ๋‹ค.

Truncated Backpropagation through time

RNN์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ•™์Šต์„ ํ•˜๋ฏ€๋กœ RNN์˜ ์—ญ์ „ํŒŒ๋Š” ์ฆ‰ ์‹œ๊ฐ„์„ ๊ฑฐ์Šฌ๋Ÿฌ๊ฐ€๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ RNN์€ ๊ฐ๊ฐ์˜ ์†์‹ค ๊ฐ’์— ๋Œ€ํ•œ gradient๋ฅผ ๋ชจ๋‘ ๊ตฌํ•˜๋ฏ€๋กœ ์—ญ์ „ํŒŒ ๊ณผ์ •์ด ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜๊ณ  ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ Truncated Backpropagation through time ์ด๋‹ค.

Truncated Backpropagation through time ์€ ๊ณ„์‚ฐ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ชจ๋“  ๊ณผ์ •์„ ๋ถ„ํ• ํ•œ๋‹ค.

Implementation of RNN

์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์…ฐ์ต์Šคํ”ผ์–ด ์ž‘ํ’ˆ๋“ค์„ RNN ๋ชจ๋ธ์— ํ›ˆ๋ จ์‹œ์ผฐ๋”๋‹ˆ ์…ฐ์ต์Šคํ”ผ์–ด ๋ฌธ์ฒด์™€ ์ƒ๋‹นํžˆ ๋น„์Šทํ•œ ๋ฌธ์žฅ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ algebraic geometry textbook์„ ํ•™์Šต์‹œ์ผฐ๋”๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทธ๋Ÿด์‹ธํ•œ textbook ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋‚ธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

c์–ธ์–ด๋กœ ๋œ ์ฝ”๋“œ๋ฅผ ํ•™์Šต์‹œ์ผฐ๋”๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด c์–ธ์–ด๋กœ ๋œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์—์„œ ๋‚ด์šฉ์„ ์ž์„ธํžˆ ๋ณด๋ฉด ์ƒ๋‹นํžˆ ๋ง์ด ์•ˆ๋˜๊ณ  ์ดํ•ด๊ฐ€ ์ „ํ˜€ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์žฅ์ด๋ผ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ตญ ์ธ๊ฐ„์ด ์™„์ „ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ์ •๋„์˜ ๋ฌธ์žฅ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š”๊ฒƒ์ด RNN ๋ชจ๋ธ์˜ ์ตœ์ข…๋ชฉํ‘œ์ด๋‹ค.

Image Captioning

์ปดํ“จํ„ฐ ๋น„์ „์—์„œ RNN์€ CNN๊ณผ ํ•จ๊ป˜ image captioning์— ํ™œ์šฉ๋œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์ง„์ด ์žˆ๋‹ค.

์ด ์‚ฌ์ง„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ํ†ตํ•ด image captioning ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

  1. ์ด๋ฏธ์ง€๊ฐ€ CNN ๋ชจ๋ธ์— ์ž…๋ ฅ์ด ๋˜์–ด 1์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ์ถœ๋ ฅ์„ ํ•œ๋‹ค.


2. ์ถœ๋ ฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ RNN ๋ชจ๋ธ์— ์ž…๋ ฅ์ด ๋˜์–ด ์‚ฌ์ง„์— ๋Œ€ํ•œ ๋ฌ˜์‚ฌ๋ฅผ ํ•˜๋Š” ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋•Œ, ๋ฌธ์žฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ์ž‘์‹ ํ˜ธ์™€ ์ข…๋ฃŒ์‹ ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

Image Captioning with Attention

image captioning์„ ์‚ฌ์ง„์˜ ๋ชจ๋“  ๋ถ€๋ถ„์ด ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ ์„ ์ •ํ•˜์—ฌ ๊ทธ ๋ถ€๋ถ„๋งŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CNN์˜ ์ถœ๋ ฅ๊ฐ’์€ 1์ฐจ์›์ด ์•„๋‹Œ L(์ง€์—ญ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ’) x D(ํŠน์ง•๊ฐ’)์ธ 2์ฐจ์› ๋ฐ์ดํ„ฐ๊ฐ€ ๋œ๋‹ค.

๊ฐ ์€๋‹‰์ธต์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋กœ ์ง€์—ญ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ’๊ณผ ์‚ฌ์ง„์˜ ์ผ๋ถ€๋ถ„์„ ๋ฌ˜์‚ฌํ•œ ๋‹จ์–ด๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ชจ๋“  ์ง€์—ญ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์ง„ ์ „์ฒด๋ฅผ ๋ฌ˜์‚ฌํ•œ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

Multilayer RNNs

๊ธฐ์กด RNN๋ชจ๋ธ์— ์€๋‹‰ ๋ ˆ์ด์–ด๋ฅผ ๋” ์Œ“์•„์„œ ๋ชจ๋ธ์„ ๋” ๊นŠ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ๋ ˆ์ด์–ด๋ฅผ 5๊ฐœ ์ด์ƒ์œผ๋กœ ์Œ“๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค.

RNN gradient flow

์ผ๋ฐ˜ RNN๋ชจ๋ธ์—์„œ gradient flow๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

$h_t$, $tanh$, $W$, $h_(t-1)$์ˆœ์œผ๋กœ ์—ญ์ „ํŒŒ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฆ‰, ์—ญ์ „ํŒŒ๋ฅผ ํ• ๋•Œ๋งˆ๋‹ค $W$์˜ ์ „์น˜ํ–‰๋ ฌ์„ ๊ณฑํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ RNN์˜ ๊ตฌ์กฐ๊ฐ€ ๋” ๊นŠ์–ด์งˆ์ˆ˜๋ก ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ์€ ๋งค์šฐ ๋ณต์žกํ•˜๊ฒŒ ๋ณ€ํ•˜๊ณ  $W$์˜ ์ „์น˜ํ–‰๋ ฌ์˜ ๊ฐ’์— ๋”ฐ๋ผ gradient๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  1. ์ „์น˜ํ–‰๋ ฌ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด 1๋ณด๋‹ค ํฌ๋‹ค -> gradient๊ฐ€ ๋ฐœ์‚ฐํ•œ๋‹ค.
  2. ์ „์น˜ํ–‰๋ ฌ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด 1๋ณด๋‹ค ์ž‘๋‹ค -> gradient๊ฐ€ 0์œผ๋กœ ์ˆ˜๋ ดํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์—ญ์ „ํŒŒ๋ฅผ ํ• ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๋ฐฉ๋ฒ•์ด Long Short Term Memory(LSTM)์ด๋‹ค.

Long Short Term Memory(LSTM)

LSTM์˜ ๊ธฐ๋ณธ์ ์ธ ๊ณต์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์—ฌ๊ธฐ์„œ $\sigma$๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  $f, i, g, o$๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  1. $f$: forget gate - ์…€์„ ์ง€์šธ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  2. $i$: input gate - ์…€์— ์ž…๋ ฅ์„ ํ• ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  3. $g$: gate gate(?) - ์…€์— ์–ผ๋งˆ๋งŒํผ ์ž…๋ ฅํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.
  4. $o$: output gate - ์…€์„ ์–ผ๋งˆ๋งŒํผ ๋ณด์—ฌ์ค„์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

LSTM์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

$f, i, g, o$์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์Œ$c_t$์˜ ๊ฐ’์ด ๊ฒฐ์ •๋œ๋‹ค. ์ด๋•Œ $h_t$๊ฐ’์€ ๋ณ„๋„์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ ์—†์ด $c_t$๊ฐ’์—๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฏ€๋กœ gradient flow๋ฅผ ํ• ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด $c_t$ ๊ฐ’๋งŒ ๊ณ ๋ คํ•˜๋ฉด ๋œ๋‹ค.

Summary

  • ์ผ๋ฐ˜ RNN ๊ตฌ์กฐ๋Š” ๊ฐ„๋‹จํ•˜๋‚˜ gradient flow์˜ ์–ด๋ ค์›€ ๋•Œ๋ฌธ์— ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • gradient flow ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ LSTM์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.
  • ๋” ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” RNN ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ˜„์žฌ ์—ฐ๊ตฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค.

Comments