๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data Science/Machine Learning

[ML] Recurrent Neural Network(RNN)

๋ฐ˜์‘ํ˜•

๐Ÿ”‰ํ•ด๋‹น ์ž๋ฃŒ ๋‚ด์šฉ์€ ์ˆœ์ฒœํ–ฅ๋Œ€ํ•™๊ต ๋น…๋ฐ์ดํ„ฐ๊ณตํ•™๊ณผ ๊น€์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ˆ˜์—…์ž๋ฃŒ์— ๊ธฐ๋ฐ˜ํ•˜์˜€์œผ๋ฉฐ ์ˆ˜์—…์ž๋ฃŒ์˜ ์ €์ž‘๊ถŒ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ˆ˜์—…์ž๋ฃŒ๋ฅผ ์ง์ ‘ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆ˜์—…์ž๋ฃŒ์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ณธ์ธ์ด ์ง์ ‘ ์ž‘์„ฑํ•˜์˜€์œผ๋ฏ€๋กœ ์ €์ž‘๊ถŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ํ•„ํžˆ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

 

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๋Š” ๋ฐ ๊ฐ€์žฅ ํฐ ๊ณตํ—Œ์„ ํ•œ CNN(Convolutional Neutral Network)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” '์ˆœ์„œ'๊ฐ€ ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋Š” ๋ฐ ๋งŽ์€ ๋„์›€์„ ์ค€ RNN(Recurrent Neural Network)์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

 

์šฐ์„  'Recurrent' ์˜ ์‚ฌ์ „์  ์˜๋ฏธ๋Š” '์žฌ๋ฐœํ•˜๋Š”', '๋˜ํ’€์ด', '์žฌ๊ท€์ ์ธ' ์ด๋‹ค. ๋ง ๋œป ๋Œ€๋กœ ๋ฌด์–ธ๊ฐ€ ๊ณ„์† ๋˜ํ’€์ดํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•˜๊ณ  ์žˆ๋‹ค. 

 

Recurrent๋Š” ๋ฐ˜๋ณต์„ ์˜๋ฏธํ•œ๋‹ค.

 

์ด์ œ RNN์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ํŒŒํ—ค์ณ ๋ณด์ž. ๋ชฉ์ฐจ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

1. RNN์ด๋ž€?

2. RNN์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

3. RNN์˜ ์ข…๋ฅ˜

4. ๋ฌธ์žฅ ์ž๋™์™„์„ฑ์€ RNN์ด ํ•˜๋Š” ๊ฒƒ์ด๋‹ค!

1. RNN์ด๋ž€?

๊ทธ๋ ‡๋‹ค๋ฉด RNN์€ ๋Œ€์ฒด ๋ฌด์—‡์„ ๋ฐ˜๋ณตํ•œ๋‹ค๋Š” ๊ฑธ๊นŒ? ๋ฐ”๋กœ NN ์ฆ‰, ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ง€? ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค๋ฉฐ ๊ฐ์ด ์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด์ž.

 

RNN์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ

 

์™ผ์ชฝ ๊ทธ๋ฆผ์€ RNN ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆผ์„ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ 'Unfold' ์‹œํ‚จ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด์„œ RNN์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์šฉ์–ด์— ๋Œ€ํ•ด์„œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž.

 

  • X : ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 
  •  h : RNN Cell์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด RNN cell์•ˆ์—๋Š” ํŠน์ • ๊ฐœ์ˆ˜์˜ ๋…ธ๋“œ(๋‰ด๋Ÿฐ)๋“ค์ด ์กด์žฌํ•œ๋‹ค. ์ฆ‰, ์ด๊ณณ์— ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. 
  • U : ์ž…๋ ฅ๋ฐ์ดํ„ฐ X์™€ Weight๊ฐ€ ๊ณฑํ•ด์ ธ h(RNN Cell)์•ˆ์— ์กด์žฌํ•˜๋Š” ๋…ธ๋“œ๋“ค์„ ์ถœ๋ ฅ๊ฐ’์œผ๋กœ ๋„์ถœ์‹œํ‚จ๋‹ค. ์ด ๋•Œ 'Weight'๊ฐ€ ๋ฐ”๋กœ U์ด๋‹ค. ๋ณดํ†ต U์˜ size๋Š” input_size * neuron_size ๊ฐ€ ๋œ๋‹ค.
  • O : RNN Cell์—์„œ ๋‚˜์˜ค๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ์ถœ๋ ฅ๊ฐ’์€ RNN Cell์ด ๋งˆ์ง€๋ง‰์ธ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ค‘๊ฐ„์ถœ๋ ฅ๊ฐ’ ๋˜๋Š” ์ตœ์ข…์ถœ๋ ฅ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ๋งˆ์ง€๋ง‰ RNN Cell์„ ์ œ์™ธํ•œ ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ RNN Cell์—์„œ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ๋“ค์€ ๋ชจ๋‘ '์ค‘๊ฐ„' ์ถœ๋ ฅ๊ฐ’๋“ค์ด ๋˜๊ฒ ๋‹ค.
  • W : h(RNN Cell)์•ˆ์— ์กด์žฌํ•˜๋Š” ๋…ธ๋“œ๋“ค๊ณผ Weight๊ฐ€ ๊ณฑํ•ด์ ธ O(์ค‘๊ฐ„ ๋˜๋Š” ์ตœ์ข… ์ถœ๋ ฅ๊ฐ’)๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š”๋ฐ, ์ด ๋•Œ 'Weight'๊ฐ€ ๋ฐ”๋กœ W์ด๋‹ค.
  • V : 'state'๋ผ๊ณ  ํ•˜๋ฉฐ RNN์˜ ๊ฐ€์žฅ ํฌ์ธํŠธ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ h_t-1(์ด์ „ RNN Cell)์—์„œ h_t(ํ˜„์žฌ RNN Cell)๋กœ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฐ’์ด๋‹ค. ์ฆ‰, h_t์—๊ฒŒ h_t-1์— ์žˆ์—ˆ๋˜ ์ •๋ณด์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ๋Š” ์…ˆ์ด๋‹ค. ์ด ๋•Œ V๋ผ๋Š” state๋ฅผ ์ „๋‹ฌํ•ด์ค„ ๋•Œ๋„ ๋”ฐ๋กœ Weight๊ฐ’์„ ๊ณฑํ•ด์ค€๋‹ค. ์‹œ๊ฐ„ ์ถ•๋งˆ๋‹ค ๋„˜๊ฒจ ์ฃผ๋Š” state์— ๊ณฑํ•ด์ฃผ๋Š” Weight๋Š” ๋ชจ๋“  RNN Cell์—์„œ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ๋„ ์žŠ์ง€๋ง์ž. (bias๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋„ ํ•œ๋‹ค)

2. RNN์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ

์ด์ œ RNN์— ๋Œ€ํ•œ ์šฉ์–ด๋ฅผ ์•Œ์•„๋ณด์•˜์œผ๋‹ˆ ์œ„์—์„œ ๋ณด์•˜๋˜ RNN ๊ตฌ์กฐ๋ฅผ ์ข€ ๋” ์‹ฌ์ธต์ ์œผ๋กœ ํŒŒ์•…ํ•ด๋ณด์ž. 

 

RNN์˜ ๋‹จ์ผ ๊ตฌ์กฐ

 

์šฐ์„ , ์ˆ˜์‹์ด ๋“ฑ์žฅํ–ˆ๋‹ค๊ณ  ๋ฌด์„œ์›Œํ•˜์ง€ ๋ง์ž. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋™์•ˆ ๋ฐฐ์›Œ์™”๊ณ  ์ž˜ ์ˆ˜ํ–‰ํ•ด์™”๋˜ ๊ธฐ๋ณธ์ ์ธ ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ์˜ ์ˆ˜์‹๊ณผ ๋น„์Šทํ•˜๋‹ค. ๋จผ์ € ์ „์ฒด์ ์ธ ํ๋ฆ„๋Œ€๋กœ ์ƒ๊ฐํ•ด๋ณด์ž. ๊ฐ€์žฅ ๋จผ์ € t ๋ผ๋Š” ์‹œ๊ฐ„์ถ•์ผ ๋•Œ x_t๋ผ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ h_t๋ผ๋Š” RNN Cell์— ๋“ค์–ด์˜ค๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. h_t๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋  ๋•Œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ x_t์— ๊ณฑํ•ด์ค„ ๊ฒƒ์€ ๋ฐ”๋กœ W_xh๋ผ๋Š” Weight ๊ฐ’์ด๋‹ค. ๋ชฉ์ฐจ 1๋ฒˆ์—์„œ ๋ฐฐ์› ๋˜ ์šฉ์–ด์— ๋Œ€์‘์‹œ์ผœ๋ณธ๋‹ค๋ฉด 'U'๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ํ•  ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์ธ ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ์—๋„ ๊ทธ๋žฌ๋“ฏ์ด b_h๋ผ๋Š” bias๊ฐ’์„ ๋”ํ•ด์ค€๋‹ค.

 

์ž, ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๊ธฐ๋ณธ ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ์˜ ๋‹จ๊ณ„์™€ ๋น„์Šทํ•˜๋‹ค. RNN์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•œ ๊ฐ€์ง€๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ฐ”๋กœ t-1์‹œ๊ฐ„ ์ถ•์˜ RNN Cell์ธ h_t-1์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” state๋ฅผ ์ฐธ์กฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด state๋Š” ์œ„ ๊ทธ๋ฆผ์—์„œ W_hh * h_t-1์„ ์˜๋ฏธํ•œ๋‹ค. h_t-1์€ ์ด์ „ state๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ W_hh๋Š” ์ด์ „ state๋ฅผ ํ˜„์žฌ๋กœ ๋„˜๊ฒจ์ค„ ๋•Œ ๊ณฑํ•ด์ฃผ๋Š” ์ผ์ข…์˜ Weight๊ฐ’์ด๋‹ค.(๋ชฉ์ฐจ 1๋ฒˆ์—์„œ ์šฉ์–ด 'V'์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ๋•Œ "V๋ผ๋Š” state๋ฅผ ์ „๋‹ฌํ•ด์ค„ ๋•Œ๋„ ๋”ฐ๋กœ Weight๊ฐ’์„ ๊ณฑํ•ด์ค€๋‹ค"๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ์ด Weight๊ฐ€ ๋ฐ”๋กœ W_hh์ด๋‹ค)

 

์ง€๊ธˆ๊นŒ์ง€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— Weight์„ ๊ณฑํ•˜๊ณ  Bias๋„ ๋”ํ–ˆ๋‹ค. ๋˜ ์ด์ „ state์˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ๋”ํ•ด์ฃผ์—ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ตœ์ข…์˜ h_t๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ํ™œ์„ฑํ•จ์ˆ˜์ธ ํƒ„์  ํŠธ ํ•˜์ดํผ๋ณผ๋ฆญ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•  ๋‹จ๊ณ„๋Š” (์ค‘๊ฐ„ ๋˜๋Š” ์ตœ์ข…)์ถœ๋ ฅ๊ฐ’์ธ y_t๋ฅผ ๋„์ถœํ•ด์•ผ ํ•œ๋‹ค. y_t๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋ฐฉ๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ h_t๊ฐ’์—์„œ ์ถœ๋ฐœํ•˜๋Š”๋ฐ, ๊ณผ์ •์€ x_t(์ž…๋ ฅ ๋ฐ์ดํ„ฐ)์—์„œ h_t๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. ๋‹จ y_t๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์ด์ „ state๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜์ง„ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋ฏธ h_t๋ฅผ ๋งŒ๋“ค ๋•Œ ์ด์ „ state๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ h_t์—๋‹ค๊ฐ€ Weight(W_hy)๋ฅผ ๊ณฑํ•ด์ฃผ๊ณ  bias๋ฅผ ๋”ํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ๋์ด ์•„๋‹ˆ๋ผ ์œ„ ๊ทธ๋ฆผ์—์„œ๋Š” ์ƒ๋žต๋˜์—ˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์œ„ ๊ทธ๋ฆผ y_t์— ํ™œ์„ฑํ•จ์ˆ˜ Softmax๋ฅผ ์‚ฌ์šฉํ•ด 0~1์‚ฌ์ด์˜ ํ™•๋ฅ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  arg_max๋ฅผ ์ทจํ•ด์ฃผ์–ด One-hot vector ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒฝ์šฐ๋„ ๋นˆ๋ฒˆํ•˜๋‹ค. ๋ฌผ๋ก  ๊ฒฝ์šฐ์— ๋”ฐ๋ผ Softmax๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ํ™œ์„ฑํ•จ์ˆ˜๋„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

์ž, ์ด์ œ ๋‹จ์ผ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์„ธ๋ถ€์ ์œผ๋กœ ๋ฐฐ์›Œ๋ดค์œผ๋‹ˆ ์ด ๊ตฌ์กฐ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š” RNN ๊ตฌ์กฐ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์ˆ˜์›”ํ•  ๊ฒƒ์ด๋‹ค.

 

์—ฌ๋Ÿฌ๊ฐœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” RNN ๊ตฌ์กฐ

 

์œ„ ๊ทธ๋ฆผ์— ๋Œ€ํ•ด์„œ ์ƒ์„ธํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•˜๊ฒ ๋‹ค. ์œ„ ๋‹จ์ผ ๊ตฌ์กฐ์—์„œ ๋ฐฐ์› ๋˜ ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด์ž. ์ ˆ๋Œ€ ํ•œ ๋ฒˆ์— ์ดํ•ดํ•  ํ•„์š”๋„ ์—†๋‹ค. ์ฒœ์ฒœํžˆ, ๋‘ ๋ฒˆ ๊ทธ๋ฆฌ๊ณ  ์„ธ ๋ฒˆ์”ฉ ์ฝ์–ด๊ฐ€๋ฉด์„œ ์ดํ•ดํ•ด๋ณด์ž. ํ•„์ž๋Š” 10๋ฒˆ ์งธ ๋˜์„œ์•ผ ์ดํ•ดํ•œ ๋“ฏ ํ•˜๋‹ค.

3. RNN์˜ ์ข…๋ฅ˜

๋‹ค์Œ์€ RNN์˜ ์ข…๋ฅ˜์ด๋‹ค. ํ•˜๋‹จ์˜ ๊ทธ๋ฆผ์„ ๋ณด๊ณ  ๊ฐœ๊ด„์ ์ธ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด์ž. ๊ฐ ๊ตฌ์กฐ์—์„œ ๋‹ค๋ฅธ ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, RNN Cell ๊ฐœ์ˆ˜๋„ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ตฌ์ฒด์ ์ธ ์ข…๋ฅ˜๋ฅผ ๋‚˜๋ˆ„๊ฒŒ ํ•˜๋Š” ๊ธฐ์ค€์€ '์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜์™€ ์ค‘๊ฐ„ ์ถœ๋ ฅ๊ฐ’์˜ ๊ฐœ์ˆ˜' ์ด๋‹ค.

 

RNN์˜ ์ข…๋ฅ˜๋“ค

3-1. One to One

๊ฐ€์žฅ ์™ผ์ชฝ์˜ RNN Cell์ด 1๊ฐœ์ธ ๊ตฌ์กฐ์ด๋‹ค. ์‚ฌ์‹ค์ƒ ์ด๋Š” ๊ธฐ๋ณธ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ์™€ ๋™์ผํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด RNN์€ ์ด์ „ state๋ฅผ ํ†ตํ•ด ์ •์ด์ „ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐœ๋…์ด ํฌ์ธํŠธ์ธ๋ฐ, RNN Cell์ด ํ•œ๊ฐœ๋ผ๋ฉด ์ด์ „ state๋ฅผ ์ „๋‹ฌํ•  ๋‹ค๋ฅธ RNN Cell์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

3-2. One to Many

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ๊ฐœ(One)๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ์ถœ๋ ฅ์ด ์—ฌ๋Ÿฌ๊ฐœ(Many) ๋„์ถœ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ์ฃผ๋กœ Image Captioning์— ์‚ฌ์šฉ๋œ๋‹ค. Image Captioning์€ ์ €๋ฒˆ CNN ํฌ์ŠคํŒ…์—์„œ๋„ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๊ธด ํ–ˆ์ง€๋งŒ ๋จธ์‹ ๋Ÿฌ๋‹์ด ์ด๋ฏธ์ง€๋ฅผ ๋ณด๊ณ  ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ…์ŠคํŠธ๋กœ ๋‚ด๋ฑ‰๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ฐ•์ง€ํ˜ธ๋‹˜์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์ž. RNN ๊ณผ CNN์„ ๊ฒฐํ•ฉํ•œ ํฅ๋ฏธ์žˆ๋Š” ๋‚ด์šฉ์ด๋‹ˆ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์— ๊ด€์‹ฌ์žˆ๋Š” ๋ถ„๋“ค์€ ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฐ๋‹ค.

3-3. Many to One

One to Many์™€๋Š” ๋ฐ˜๋Œ€๋กœ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ(Many)๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ์ตœ์ข… ์ถœ๋ ฅ๋งŒ ํ•œ๊ฐœ(One)๋งŒ์ด ๋„์ถœ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ์ฃผ๋กœ ๊ฐ์„ฑ๋ถ„์„์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋“ค์–ด๊ฐ€๊ณ  ์ตœ์ข… ์ถœ๋ ฅ๊ฐ’์œผ๋กœ ํ•ด๋‹น ํ…์ŠคํŠธ์˜ ๊ฐ์ •(๊ธ์ • ๋˜๋Š” ๋ถ€์ •)๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

3-4. Many to Many

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ์ถœ๋ ฅ์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋„์ถœ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Many to Many ๊ตฌ์กฐ๋„ ์ž์„ธํžˆ ๋ณด๋ฉด 2๊ฐ€์ง€์˜ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์—์„œ ์™ผ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ 3๋ฒˆ์งธ, 4๋ฒˆ์งธ ๊ทธ๋ฆผ์„ ์„œ๋กœ ๋น„๊ตํ•ด๋ณด์ž.

 

3๋ฒˆ์งธ ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜๊ณ  ๋๋‚˜๋Š” ๋™์‹œ์— ์ถœ๋ ฅ๊ฐ’๋“ค์ด ๋„์ถœ๋˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ์ด๋Ÿฐ ๊ตฌ์กฐ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ ๊นŒ? Machine Trasnlation ์ฆ‰, ๊ธฐ๊ณ„ ๋ฒˆ์—ญ์— ์‚ฌ์šฉ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ RNN์— ๋“ค์–ด๊ฐ€๋Š” ๋™์•ˆ ๋ฌธ๋งฅ์„ ๊ณ ๋ ค(์ด์ „ state๋ฅผ ์ „๋‹ฌ ๋ฐ›์Œ)ํ•˜๊ณ  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋“ค์–ด๊ฐ„ ํ›„ ์ด์ œ ๋ฒˆ์—ญ๋œ ๋ฌธ์žฅ์ธ ์ถœ๋ ฅ๊ฐ’์„ ๋„์ถœํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” '๊ตฌ๊ธ€ ๋ฒˆ์—ญ๊ธฐ', '๋„ค์ด๋ฒ„ ํŒŒํŒŒ๊ณ '๊ฐ€ ๋ฐ”๋กœ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ์ ์ด ์žˆ์—ˆ๋‹ค.(๋ฌผ๋ก  ํ˜„์žฌ๋Š” ์ด ๊ตฌ์กฐ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋ฐœ์ „๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค) 3๋ฒˆ์งธ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ 'seq2seq' ๋ชจ๋ธ ์ฆ‰, 'encoder-decoder' ๋ชจ๋ธ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, ์ด ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…์ด ์ž˜๋œ ๋ฐ•์ง€ํ˜ธ๋‹˜์˜ ๊ธ€์ด ์žˆ์–ด ๊ณต์œ ํ•œ๋‹ค.

 

๋‹ค์Œ 4๋ฒˆ์งธ ๊ตฌ์กฐ๋Š” 3๋ฒˆ์งธ์™€ ๋‹ฌ๋ฆฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐˆ ๋•Œ๋งˆ๋‹ค ๋ฐ”๋กœ ์ถœ๋ ฅ๊ฐ’์ด ๋„์ถœ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ๋ฐ”๋กœ๋ฐ”๋กœ ์ถœ๋ ฅ์„ ํ•ด์•ผํ•˜๋Š” ์ฃผ๋กœ Video Classification์— ์‚ฌ์šฉ๋œ๋‹ค.

4. ๋ฌธ์žฅ ์ž๋™์™„์„ฑ์€ RNN์ด ํ•˜๋Š” ๊ฒƒ์ด๋‹ค!

์šฐ๋ฆฌ๊ฐ€ ์ธํ„ฐ๋„ท ๋˜๋Š” ๊ตฌ๊ธ€ ๋‹ฅ์Šค, ํ•ธ๋“œํฐ์„ ์‚ฌ์šฉํ•  ๋•Œ ํŠน์ • ๋‹จ์–ด๋ฅผ ์น˜๋‹ค๋ณด๋ฉด ๊ธฐ๊ณ„๊ฐ€ ์•Œ์•„์„œ ๋ฌธ์žฅ์ž๋™์™„์„ฑ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฌธ์žฅ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์ด ๋ฐ”๋กœ RNN์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

su๋งŒ ์ณ๋„ suggestions๋ฅผ ์ž๋™์™„์„ฑ ์‹œ์ผœ์ค€๋‹ค.

 

๊ตฌ์ฒด์ ์œผ๋กœ ๋ฌธ์žฅ์ž๋™์™„์„ฑ์€ 'Many to Many'์˜ RNN ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์„ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ๋‹จ์–ด 'suggestions'์˜ ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ์ž…๋ ฅ๋ฐ์ดํ„ฐ๋กœ ๋“ค์–ด๊ฐ€ RNN์„ ํ†ตํ•ด ํ•™์Šต์„ ํ•˜๊ณ  ๋‹ค์Œ์— ์˜ฌ ์•ŒํŒŒ๋ฒณ์„ ์˜ˆ์ธกํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋‹ค์Œ ์•ŒํŒŒ๋ฒณ์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๋ณด๊ธฐ ์œ„ํ•ด 'hello'์˜ 'o'๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด RNN์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

'hell'์„ ๊ฐ–๊ณ  ๋งˆ์ง€๋ง‰์— ์˜ฌ 'o'๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ

 

๋ฌธ์žฅ ์ž๋™์™„์„ฑ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๋‚ด๋ถ€์ ์ธ RNN ๊ตฌ์กฐ๋Š” ์œ„์™€ ๊ฐ™๋‹ค. h, e, l, l ์ด RNN์˜ ๊ฐ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด๊ฐˆ ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด๋ฅผ ์ค‘๊ฐ„์ถœ๋ ฅ๊ฐ’์œผ๋กœ ๋„์ถœ์‹œํ‚จ๋‹ค. ํ•˜๋‚˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž๋ฉด, ์ฒซ ๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ 'h'๊ฐ€ ๋“ค์–ด๊ฐ”์„ ๋•Œ ์ค‘๊ฐ„ ์ถœ๋ ฅ๊ฐ’์œผ๋กœ 'e'์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ๋„์ถœ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ 'e'๊ฐ€ ๋“ค์–ด๊ฐ”์„ ๋•Œ ์ค‘๊ฐ„ ์ถœ๋ ฅ๊ฐ’์„ ๋‚ด๊ธฐ ์œ„ํ•ด ์•ŒํŒŒ๋ฒณ 'h'๊ฐ€ ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฐœ์ƒํ•œ ์ •๋ณด(์ด์ „ state)๋ฅผ ์ฐธ์กฐํ•ด ๋‘ ๋ฒˆ์งธ ์ถœ๋ ฅ๊ฐ’์ธ 'l' ์„ ๋„์ถœ์‹œํ‚จ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋˜‘๊ฐ™์ด ๋‹ค๋ฅธ ์ž…๋ ฅ๋ฐ์ดํ„ฐ๋“ค์—๋„ ์ ์šฉํ•ด ์ตœ์ข… ์ถœ๋ ฅ๊ฐ’์ธ 'o'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

# Reference

ratsgo.github.io/natural%20language%20processing/2017/03/09/rnnlstm/

 

RNN๊ณผ LSTM์„ ์ดํ•ดํ•ด๋ณด์ž! · ratsgo's blog

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Recurrent Neural Networks(RNN)๊ณผ RNN์˜ ์ผ์ข…์ธ Long Short-Term Memory models(LSTM)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๋‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ์š”๋ฅผ ๊ฐ„๋žตํžˆ ์–ธ๊ธ‰ํ•œ ๋’ค foward, backward compute pass๋ฅผ ์ฒœ์ฒœ

ratsgo.github.io

 

๋ฐ˜์‘ํ˜•