[Deep Learning] Recurrent Neural Network (2) - LSTM

2023. 5. 17. 23:50

๐Ÿง‘๐Ÿป‍๐Ÿ’ป์šฉ์–ด ์ •๋ฆฌ

Neural Networks
Feed-forward
Backpropagation
Convolutional Neural Network
Recurrent Neural Network
LSTM
Attention
Cell state
forget gate
input gate
output gate

์ด์ „ ์‹œ๊ฐ„๊นŒ์ง€ RNN์˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์กฐ๊ธˆ ๋” ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

RNN์˜ ๋‹จ์ 

RNN์„ ์ญ‰ ์—ฐ๊ฒฐ์‹œ์ผœ ๋†“๊ณ  ๋ณด๋‹ˆ,

 

ํŠนํžˆ Encoder, Decoder ๋ถ€๋ถ„์—์„œ ํ™•์—ฐํžˆ ๋“ค์–ด๋‚˜๋Š” ์ด ํŠน์ง•์€,

 

๋„ˆ๋ฌด ์ž…๋ ฅ๋˜๋Š” ๋ฌธ์žฅ์ด ๊ธธ๋‹ค๋ณด๋‹ˆ,

 

Long-Term Dependency ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

 

input signal์˜ ์ •๋ณด๋ฅผ h t์— ๊ณผ๊ฑฐ์—์„œ๋ถ€ํ„ฐ ๊ณ„์† ๋ชจ์•„์˜ต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๊ณผ๊ฑฐ์˜ ๋” ์ด์ „ ์‹œ์ ์˜ ๋ฌด์–ธ๊ฐ€๊ฐ€ ํ•„์š”ํ•ด์งˆ ๊ฒฝ์šฐ,

 

์ด chain์ด ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ๊นŒ๋จน๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, short term memory๋งŒ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์ธ RNN์€ long-term dependency๋ฅผ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•˜์—ฌ long-term memory๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

LSTM(Long-Short Term Memory)

 

๊ทธ๋ž˜์„œ ๋ณด์™„๋œ ๋ชจ๋ธ์ด LSTM์ž…๋‹ˆ๋‹ค.

 

long๊ณผ short๋ฅผ ๋‹ค ๊ณ ๋ คํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

 

์‚ฌ์‹ค์ƒ RNN์€ short term ์œ„์ฃผ๋กœ ๋ณด๋‹ˆ, ์ด๊ฒƒ์œผ๋กœ long term๋„ ๋ณด๊ฒ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์œ„๋Š” RNN์ด๊ณ ,

 

์•„๋ž˜๋Š” LSTM์ž…๋‹ˆ๋‹ค.

์œ„ RNN ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ฆฌ๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ๋ด์˜จ ๊ฒƒ๊ณผ ๊ฐ™์ฃ ?

 

์™œ ์ด๋ ‡๊ฒŒ ๋ณต์žกํ•˜๊ฒŒ ๊ทธ๋ ธ์„๊นŒ์š”?

 

LSTM์˜ ์œ„ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•จ์ด๋ฉฐ,

 

์ง€๊ธˆ ์ƒˆ๋กœ ๊ทธ๋ฆฐ RNN ๊ตฌ์กฐ์™€ ๋‹ค๋ฅผ ๊ฒŒ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ฐ€๋ด…์‹œ๋‹ค.

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ pattern 1,2,3, Seq2Seq, one2many, many2one ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋“ค์ด ๋˜‘๊ฐ™์ด ๋‹ค ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ์ € hidden node ๋‚ด๋ถ€์—์„œ ๋ฒŒ์–ด์ง€๋Š” ์ผ๋งŒ ๋ณต์žกํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ƒˆ๋กœ์šด ๊ตฌ์กฐ๋Š” ์•„๋‹ˆ๋ฉฐ, hidden node ๋‚ด๋ถ€์—์„œ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๋งŒ ๋ฐ”๊ฟ”์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ๊ทธ ๋ฐฉ์‹์„ ํ•˜๋‚˜์”ฉ ๋œฏ์–ด๋ด…์‹œ๋‹ค.

 

Cell state

LSTM์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ด Cell state์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€, context๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ long-term memory๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ self-connection์„ ํ†ตํ•ด์„œ ์œ„๋ฅผ ์ญ‰ ์ง€๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

์ญ‰ ๊ด€ํ†ตํ•ด์„œ ์ง€๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

์ˆœํ™˜ ์—†์ด ์ง€๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ๊ณผ๊ฑฐ๋กœ๋ถ€ํ„ฐ ์˜ค๊ณ , ๋ญ”๊ฐ€ ๋‘ ๋ฒˆ์˜ operation์„ ๊ฑฐ์ณ์„œ ํ˜„์žฌ์˜ context๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

 

LSTM์—๋Š” ์ด 3๊ฐ€์ง€์˜ ๋ฌธ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

 

์ด forget gate์—์„œ๋Š” ๊ณผ๊ฑฐ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์ •๋ณด๋“ค์„ ์–ผ๋งˆ๋‚˜ ์žƒ์–ด๋ฒ„๋ฆด์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ณผ๊ฑฐ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” context๋ฅผ ์–ผ๋งˆ๋‚˜ ํ†ต๊ณผ์‹œํ‚ฌ ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

1์— ๊ฐ€๊นŒ์›Œ ์ง„๋‹ค๋ฉด, ๊ณผ๊ฑฐ์˜ ์ •๋ณด๋“ค์„ ์ „๋ถ€๋‹ค ์œ ์ง€์‹œํ‚จ๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๊ณ , long-term memory์— ๊ณ„์† ๊ธฐ์–ตํ•œ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค.

 

0์— ๊ฐ€๊นŒ์›Œ ์ง„๋‹ค๋ฉด, ์ง€๊ธˆ๊นŒ์ง€ ๊ณผ๊ฑฐ๋กœ๋ถ€ํ„ฐ ๊ตฌ์„ฑ๋˜์–ด ์˜จ ์ด ์ •๋ณด๋Š” ํ˜„์žฌ ์‹œ์ ์—์„œ ์“ธ๋ชจ๊ฐ€ ์—†์œผ๋‹ˆ ๋‹ค ๊ฐ–๋‹ค ๋ฒ„๋ฆฌ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด gate๋Š” 0 ~ 1 ์‚ฌ์ด์—์„œ bound๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ sigmoid๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ทธ๋ฆผ์˜ ์šฐ์ธก ์ˆ˜์‹๊ณผ ๊ฐ™์€ ์ˆ˜์‹์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์ด hidden node ๊ณ„์‚ฐ๊ณผ ์‹์€ ๊ฐ™์ง€๋งŒ, W f์™€ b f๋Š” trainable parameter์ž…๋‹ˆ๋‹ค.

 

์šฐ์„ , forget gate๋ผ๋Š” ๋””์ž์ธ์„ ํ•ด๋‘๊ณ , ์ด forget gate์˜ ์—ญํ• ์€ ํ•™์Šต ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ํ•™์Šต์ด ๋˜๋Š”๋ฐ,

 

W์™€ b๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์— ์ž˜ ์กฐ์ž‘ํ•ด์„œ ์ด gate์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ• ์ง€๋ฅผ ์ž˜ ๊ฒฐ์ •ํ•˜๋ผ๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ๊ตฌ์กฐ๋งŒ ์งœ๋†“๊ณ  Backpropagation์— ์ฑ…์ž„์„ ์ „๊ฐ€์‹œํ‚ค๋Š” ๋Š๋‚Œ์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ๋ฌธ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ๋ฌธ์€ Input gate์ž…๋‹ˆ๋‹ค.

 

๊ธˆ๋ฐฉ C t์˜ ๊ฐ’์ด ๊ฒฐ์ • ๋˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ C t-1์˜ ๊ณผ๊ฑฐ์˜ ์ •๋ณด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฒฐ์ •๋ ์ง€, forget gate์˜ ๊ณฑํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด์„œ ๊ฒฐ์ •๋˜๊ณ ,

 

๊ทธ๋ฆฌ๊ณ  ๋”ํ•˜๊ธฐ์˜ ๊ณผ์ •์ด ํ•˜๋‚˜ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ๋Š” ํ˜„์žฌ์˜ ์ •๋ณด๋ฅผ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

 

ํ˜„์žฌ ์ •๋ณด๋Š” ์œ„์™€ ๊ฐ™์ด C t์˜ ์ˆ˜์‹์œผ๋กœ hidden node์—์„œ activation ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์—ฐ์‚ฐ๋ฉ๋‹ˆ๋‹ค.

 

์ด C t๋Š” ํ˜„์žฌ ์ •๋ณด์˜ ํ›„๋ณด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

์ด ๋˜ํ•œ, ๊ทธ๋ƒฅ ๋”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜์‹œํ‚ฌ์ง€๋ฅผ ๊ณฑํ•˜์—ฌ ๋ฐ˜์˜์‹œํ‚ต๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ C t-1์ด ๋“ค์–ด์˜ค๋Š” ๊ฒƒ๊ณผ ๋Œ€์นญ์ด ๋˜๋Š”, ๊ฐ™์€ ์—ฐ์‚ฐ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ์˜ ๊ณฑํ•˜๊ธฐ๋Š” i์ธ input gate์ด๊ณ , ๋˜‘๊ฐ™์€ sigmoid์— ๊ฐ™์€ input data๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ,

 

๋˜ ๋‹ค๋ฅธ trainable parameter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„ ๋งŒ๋“ค์–ด ์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์ด input ํ›„๋ณด๊ฐ€ ๊ฒฐ์ • ๋˜๊ณ , ์ด input ํ›„๋ณด์— ๋Œ€ํ•ด์„œ ์–ผ๋งˆ๋‚˜ ๋ฐ›์•„๋“ค์ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” input gate๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ, ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์šฐ๋ฆฌ๊ฐ€ context์— ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ•  ๊ฒƒ์ธ์ง€ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

input gate, forget gate๋Š” ๋ชจ๋‘ context์— ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ• ์ง€๋ฅผ ๋ณด๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ƒˆ๋กœ์šด context๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ฐ’์€ forget gate * ๊ณผ๊ฑฐ + input gate * ํ˜„์žฌ input์˜ ํ›„๋ณด๋กœ ๊ณ„์‚ฐ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, forget gate, input gate๊ฐ€ ๊ฐ๊ฐ 0.9, 0.1์ด๋ผ๋ฉด ๊ณผ๊ฑฐ๋Š” ๋งŽ์ด, ํ˜„์žฌ๋Š” ์ ๊ฒŒ ๋ฐ˜์˜ํ•ด๋ผ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, long-term memory๊ฐ€ ๋˜์ฃ .

 

0.1, 0.9์˜ ํ˜•ํƒœ๋ผ๋ฉด ๊ณผ๊ฑฐ์— ์žˆ๋Š” ๊ฑฐ ์กฐ๊ธˆ๋งŒ ๋‚จ๊ธฐ๊ณ  ํ˜„์žฌ์˜ ๊ฒƒ์„ ๋ฐ˜์˜ํ•ด๋ผ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด context๊ฐ€ ๊ตฌ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ง€๊ธˆ ์–˜๊ธฐํ•œ ๊ฒƒ์ด context์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ ์ž…๋‹ˆ๋‹ค.

 

hidden node์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋Š” ์•„์ง ์•ˆ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  3๋ฒˆ์งธ ๋งˆ์ง€๋ง‰ ๋ฌธ์ธ output gate์— ์™€์„œ์•ผ ๋“œ๋””์–ด hidden node์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋˜ ๋‹ค๋ฅธ output gate๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ ,

 

context๋ฅผ activation ํ›„ Output gate์— ํ†ต๊ณผ์‹œํ‚ค๋ฉด์„œ hidden node์˜ output์„ ์ด์ œ์„œ์•ผ ๋งŒ๋“ค์–ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ๊ฐ’์„ ์ƒ์œ„ layer๋กœ ์˜ฌ๋ ค์ฃผ๊ณ , t + 1์˜ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ๋„ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์•ž์— ๋‚˜์˜จ ์ด์•ผ๊ธฐ๋ฅผ ๋‹ค ์š”์•ฝํ•ด๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ RNN๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์ธ๋ฐ,

 

Hidden node ์•ˆ์—์„œ operation๋งŒ ๋” ๋งŽ์•„์ง„๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ด ๋ชจ๋“  ๊ฒƒ์€ ์œ„ cell state ํ˜น์€ context ํ˜น์€ long-term memory๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

RNN์€ ๊ธฐ๋ณธ์ ์œผ๋กœ parameter๊ฐ€ 2 sets ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, LSTM์€ ๊ธฐ๋ณธ์ ์œผ๋กœ parameter๊ฐ€ 8 sets ํ•„์š”ํ•˜์—ฌ, 4๋ฐฐ ์ด์ƒ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

 

 

RNN๋„ computer๊ฐ€ ํž˜๋“ค์–ดํ•˜๋Š” ์—ฐ์‚ฐ์ด์ง€๋งŒ, LSTM์€ ๊ทธ๊ฒƒ์— ์–ด๋ฆผ์žก์•„ 4๋ฐฐ ๋” ๋งŽ์€ ์—ฐ์‚ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

 

 

 

 

BELATED ARTICLES

more