Basic RNN ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์•ฝ์ 

The cat, which already ate โ€ฆ., was full
The cats, which already ate โ€ฆ., were full

  • ๋ฌธ์žฅ ์ดˆ๋ฐ˜๋ถ€์˜ cat/cats์— ๋”ฐ๋ผ ๋ฌธ์žฅ ํ›„๋ฐ˜๋ถ€์˜ was/were๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ์ด๋Š” ๋ฌธ์žฅ ์ดˆ๋ฐ˜๋ถ€์˜ ๋‹จ์–ด๊ฐ€ ๋ฌธ์žฅ ํ›„๋ฐ˜๋ถ€์— ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • RNN์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŽ์€ ํ† ํฐ๋“ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ๊นŠ์€ ์‹ ๊ฒฝ๋ง์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฉฐ
  • Back Propagation์„ ์‚ฌ์šฉํ•ด ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  • ๋ฌธ์žฅ ์ดˆ๋ฐ˜๋ถ€์˜ ๋‹จ์–ด๊ฐ€ ๊ฒฐ๊ณผ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋ฌธ์žฅ ํ›„๋ฐ˜๋ถ€์˜ ๋‹จ์–ด๊ฐ€ ๊ฒฐ๊ณผ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์œผ๋กœ๋ถ€ํ„ฐ ๊ณ„์‚ฐ๋œ๋‹ค
  • ์‹ ๊ฒฝ๋ง์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก ๋ฌธ์žฅ ์ดˆ๋ฐ˜๋ถ€์˜ ๋‹จ์–ด๊ฐ€ ๊ฒฐ๊ณผ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ์ ์–ด์ ธ
  • ๊ฐ€๊นŒ์šด ๊ณณ์— ์žˆ๋Š” ์ž…๋ ฅ์— ์˜ํ–ฅ์„ ๋” ๋งŽ์ด ๋ฐ›์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค
  • ์ด๊ฒƒ์ด Basic RNN ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์•ฝ์ ์ด๋‹ค

LSTM

  • Long Short-Term Memory ์˜ ์•ฝ์ž
  • ํƒ€์ž„์Šคํ…์ด ๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์ˆœํ™˜์ธต
  • ๋‹จ๊ธฐ ๊ธฐ์–ต์„ ์˜ค๋ž˜ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋จ
  • ์ž…๋ ฅ๊ณผ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑํ•˜๊ณ  ์ ˆํŽธ์„ ๋”ํ•ด ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผ์‹œํ‚ค๋Š” ๊ตฌ์กฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ (4๊ฐœ)
  • ์ž…๋ ฅ ๊ฒŒ์ดํŠธ, ์‚ญ์ œ ๊ฒŒ์ดํŠธ, ์ถœ๋ ฅ ๊ฒŒ์ดํŠธ ์—ญํ• ์„ ํ•˜๋Š” ์ž‘์€ ์…€์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ
  • ์€๋‹‰ ์ƒํƒœ ์™ธ์— ์…€ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ ์…€ ์ƒํƒœ๋Š” ๋‹ค์Œ ์ถฉ์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ˜„์žฌ ์…€์—์„œ๋งŒ ์ˆœํ™˜๋จ

์…€ ์ƒํƒœCell state

  • ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ์กด์žฌ์ด๋ฉฐ ์€๋‹‰ ์ƒํƒœ์™€ ๋‹ฌ๋ฆฌ ๋‹ค์Œ ์ธต์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๊ณ  ์…€์—์„œ ์ˆœํ™˜๋งŒ ๋˜๋Š” ๊ฐ’
  • ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ์™€ ๊ฐ™์•„์„œ State๊ฐ€ ๊ฝค ์˜ค๋ž˜ ๊ฒฝ๊ณผํ•˜๋”๋ผ๋„ Gradient๊ฐ€ ์ž˜ ์ „ํŒŒ๋จ
  • Gate๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ตฌ์กฐ์— ์˜ํ•ด ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜๋ฉฐ
    Gate๋Š” Training์„ ํ†ตํ•ด ์–ด๋–ค ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋ฒ„๋ฆด์ง€ ํ•™์Šตํ•˜๋ฉฐ
    Cell State๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•จ
    • Forget gate (f) : ๊ณผ๊ฑฐ ์ •๋ณด๋ฅผ ์žŠ๊ธฐ ์œ„ํ•œ ๊ฒŒ์ดํŠธ
    • Inout gate (i) : ํ˜„์žฌ ์ •๋ณด๋ฅผ ๊ธฐ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๊ฒŒ์ดํŠธ
    • Output gate (o) : ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ๊ฒŒ์ดํŠธ
    • ๋ชจ๋“  Gate๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ถœ๋ ฅ ๊ฐ’์ด 0์ด๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ๋ง๋ผ, 1์ด๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ๋„˜๊ฒจ๋ผ
  • Forget Gate (f) : ๊ณผ๊ฑฐ ์ •๋ณด๋ฅผ ์–ผ๋งˆ๋‚˜ ์žŠ์„์ง€์— ๋Œ€ํ•œ ๋‹จ๊ณ„
    • ์ž…๋ ฅ๊ฐ’๊ณผ ์€๋‹‰์ƒํƒœ๋ฅผ ๊ฐ€์ค‘์น˜์— ๊ณฑํ•œ ๋‹ค์Œ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผ์‹œํ‚จ ํ›„ 0๊ณผ 1 ์‚ฌ์ด์˜ ๊ฐ’์„ ์ด์ „ Cell State์™€ ๊ณฑํ•จ
    • ๊ฒฐ๊ณผ๊ฐ’์ด 1์ด๋ฉด โ€œ์ด์ „ ์ƒํƒœ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ณด์กดํ•ด๋ผโ€๊ฐ€ ๋˜๊ณ , 0์ด๋ฉด โ€œ์ด์ „ ์ƒํƒœ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ฒ„๋ ค๋ผโ€๊ฐ€ ๋จ
  • Input Gate (i) : ํ˜„์žฌ ์ •๋ณด๋ฅผ ์–ผ๋งˆ๋‚˜ ๊ธฐ์–ตํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋‹จ๊ณ„
    • ์ž…๋ ฅ๊ฐ’๊ณผ Hidden State๋ฅผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜์— ๊ณฑํ•œ ๋‹ค์Œ ํ•˜๋‚˜๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผ ์‹œํ‚ค๊ณ , ํ•˜๋‚˜๋Š” tanhํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผ์‹œํ‚จ ํ›„ ๋‘ ๊ฒฐ๊ณผ๋ฅผ ๊ณฑํ•œ ํ›„ ์ด์ „ Cell State์™€ ๋”ํ•จ
  • Output Gate (o) : ๋‹ค์Œ State๋กœ ๋‚ด๋ณด๋‚ผ Output(Hidden state)์„ ๊ตฌํ•˜๋Š” ๋‹จ๊ณ„
    • ์ž…๋ ฅ๊ฐ’๊ณผ ์ด์ „ ํƒ€์ž„์Šคํ…์˜ Hidden State๋ฅผ ๊ฐ€์ค‘์น˜์— ๊ณฑํ•œ ํ›„ ํ™œ์„ฑํ™” ํ•จ์ˆ˜(์‹œ๊ทธ๋ชจ์ด๋“œ)๋ฅผ ํ†ต๊ณผ์‹œํ‚ค๊ณ  ์ด์ „ Cell State๋ฅผ tanh ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผ์‹œํ‚จ ๊ฐ’๊ณผ ๊ณฑํ•˜์—ฌ Hidden State๋ฅผ ๋งŒ๋“ ๋‹ค
  • State Update : ์ด์ „ Cell State์ธ C(t-1)๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์„œ ์ƒˆ๋กœ์šด Cell State์ธ C(t) ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„
    • Forget gate๋ฅผ ๊ณฑํ•˜๊ณ 
    • Input gate๋ฅผ ๋”ํ•˜๊ณ 
    • ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์Œ Cell State๋กœ ๋‚ด๋ณด๋ƒ„

GRUGated Recurrent Unit

  • LSTM์„ ๊ตฌ์„ฑํ•˜๋Š” Time-step์˜ Cell์„ ์กฐ๊ธˆ ๋” ๊ฐ„์†Œํ™”ํ•œ ๋ฒ„์ „
  • GRU๋Š” LSTM๋ณด๋‹ค ํ•™์Šต ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๊ณ  ์•Œ๋ ค์ ธ์žˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ ํ‰๊ฐ€์—์„œ GRU๋Š” LSTM๊ณผ ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ์Œ
  • ๋ฐ์ดํ„ฐ ์–‘์ด ์ ์„ ๋•Œ๋Š”, ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์–‘์ด ์ ์€ GRU๊ฐ€ ์กฐ๊ธˆ ๋” ๋‚ซ๊ณ  ๋ฐ์ดํ„ฐ ์–‘์ด ๋” ๋งŽ์œผ๋ฉด LSTM์ด ๋” ๋‚ซ๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ์Œ
  • LSTM๊ตฌ์กฐ
  • GRU๊ตฌ์กฐ
  • ์ฐจ์ด์ 
    • GRU๋Š” LSTM๊ณผ ๋‹ค๋ฅด๊ฒŒ Gate๊ฐ€ 2๊ฐœ์ด๋ฉฐ, Reset Gate(r)๊ณผ Update Gate(z)๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค
      • Reset Gate๋Š” ์ด์ „ ์ƒํƒœ๋ฅผ ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ• ์ง€
      • Update Gate๋Š” ์ด์ „ ์ƒํƒœ์™€ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์–ผ๋งˆ๋งŒํผ์˜ ๋น„์œจ๋กœ ๋ฐ˜์˜ํ• ์ง€
    • LSTM์—์„œ์˜ Cell State์™€ Hidden State๊ฐ€ Hidden State๋กœ ํ†ตํ•ฉ๋˜์—ˆ๊ณ 
    • Update Gate๊ฐ€ LSTM์—์„œ์˜ forget gate, input gate๋ฅผ ์ œ์–ดํ•œ๋‹ค
    • GRU์—๋Š” Output Gate๊ฐ€ ์—†๋‹ค
  • Reset Gate
    • ์ด์ „ ์ƒํƒœ์˜ hidden state์™€ ํ˜„์žฌ ์ƒํƒœ์˜ x๋ฅผ ๋ฐ›์•„ sigmoid ์ฒ˜๋ฆฌ
    • ์ด์ „ hidden state์˜ ๊ฐ’์„ ์–ผ๋งˆ๋‚˜ ํ™œ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด
  • Update Gate
    • ์ด์ „ ์ƒํƒœ์˜ Hidden state์™€ ํ˜„์žฌ ์ƒํƒœ์˜ x๋ฅผ ๋ฐ›์•„ sigmoid ์ฒ˜๋ฆฌ
    • LSTM์˜ Forget gate, Input gate์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ,
    • ์ด์ „ ์ •๋ณด์™€ ํ˜„์žฌ ์ •๋ณด๋ฅผ ๊ฐ๊ฐ ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋น„์œจ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค
      • Update gate์˜ ๊ณ„์‚ฐ ํ•œ ๋ฒˆ์œผ๋กœ LSTM์˜ Forget gate + Input gate์˜ ์—ญํ• ์„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ ์ƒํƒœ์˜ Hidden state๋กœ ๋ณด๋‚ด์ง

๊ณ ๊ธ‰ ์ˆœํ™˜์ธต์ธ LSTM๊ณผ GRU๋Š” SimpleRNN๋ณด๋‹ค ๊ณ„์‚ฐ์ด ํ›จ์”ฌ ๋ณต์žกํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์— ๋งŽ์ด ์ฑ„ํƒ๋˜๊ณ  ์žˆ์Œ