๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1๏ธโƒฃ AI•DS/๐Ÿ“— NLP

[cs224n] 7๊ฐ• ๋‚ด์šฉ ์ •๋ฆฌ

by isdawell 2022. 4. 21.
728x90

Vanishing Gradients and Fancy RNNs

 

๐Ÿ’ก ์ฃผ์ œ : Vanishing Gradients and Fancy RNNs

 

๐Ÿ“Œ ํ•ต์‹ฌ 

 

  • Task : ๋ฌธ์žฅ์ด ์ฃผ์–ด์งˆ ๋•Œ ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜จ ๋‹จ์–ด๋“ค ์ดํ›„์— ๋‚˜์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธก
  • Sequential data : ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ ์žˆ์œผ๋ฉฐ ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์งˆ ๊ฒฝ์šฐ ์˜๋ฏธ๊ฐ€ ์†์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋กœ ์ˆœํ™˜์‹ ๊ฒฝ๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ž…๋ ฅ์„ ์ˆœ์ฐจ๋ฐ์ดํ„ฐ๋กœ ๋ฐ›๊ฑฐ๋‚˜, ์ถœ๋ ฅ์„ ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ๋กœ ๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋‹ค. 
  • RNN : ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ณผ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…ํ•œ NN ์˜ ์ผ์ข… ๐Ÿ‘‰ ๋ฌธ์ œ์  : ๊ธฐ์šธ๊ธฐ์†Œ์‹ค/ํญ์ฆ, ์žฅ๊ธฐ์˜์กด์„ฑ 
  • LSTM : RNN ์˜ ์žฅ๊ธฐ์˜์กด์„ฑ์˜ ๋ฌธ์ œ์ ์„ ๋ณด์™„ํ•ด ๋“ฑ์žฅํ•œ ๋ชจ๋ธ ๐Ÿ‘‰ cell state , 3 ๊ฐœ์˜ gate ๊ฐœ๋…์„ ๋„์ž… 

 

 

 

 

 

 

1๏ธโƒฃ  Language model, RNN  ๋ณต์Šต 


 

1. Langauage model 

 

โœ” ์ •์˜ 

 

  • ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ๋งฅ ์ดํ›„์— ์œ„์น˜ํ•  ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. 
  • ํ™•๋ฅ ์˜ ๊ณฑ์…ˆ๋ฒ•์น™์— ์˜ํ•ด ์‹œํ€€์Šค ๊ฒฐํ•ฉํ™•๋ฅ ์„ ๋„์ถœํ•œ๋‹ค. 

 

 

 

 

 

 

2. N-gram, NNLM 

 

 

โœ” N-gram

 

 

  • unigram, bigram, trigram ๋“ฑ ์ด์ „์— ๋“ฑ์žฅํ•œ n ๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํ†ตํ•ด count ๋นˆ๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์กฐ๊ฑด๋ถ€ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•œ๋‹ค

 

  • ๐Ÿ’จ Sparsity ๋ฌธ์ œ : n-gram ๋ฒ”์œ„ ๋‚ด์˜ ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ ๋‚ด์—์„œ ๋“ฑ์žฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์กฐ๊ฑด๋ถ€ํ™•๋ฅ ์˜ ๋ถ„์ž๋‚˜ ๋ถ„๋ชจ ๊ฐ’์ด 0 ์ด ๋˜๋Š” ๋ฌธ์ œ 

 

 

โœ” NNLM 

 

 

  • window size ์ด์ „ ๋‹จ์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
  • n-gram ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์ด๋‚˜ ํ™•๋ฅ ๊ฐ’์„ ์—ฐ์‚ฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค. 
  • word embedding : distributed representation (์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„ ์ƒ์—์„œ ๋น„์Šทํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋‹จ์–ด๋“ค์€ ๋น„์Šทํ•œ ๊ณต๊ฐ„์— ์œ„์น˜ํ•  ๊ฒƒ์ด๋‹ค) 
  • ๐Ÿ’จ window size ๊ฐ€ ์ปค์ง€๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜์—ฌ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๊ณ  ๊ณผ์ ํ•ฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌ 

 

โœ” ๋‘ ๋ฐฉ๋ฒ•์˜ ๊ณตํ†ต์ ์ธ ํ•œ๊ณ„์  ๐Ÿ˜ฅ  : ์ž…๋ ฅ๊ธธ์ด (N, windowsize) ๊ฐ€ ๊ณ ์ •๋˜์–ด ํ•œ์ •๋œ ๊ธธ์ด์˜ ๋‹จ์–ด๋งŒ ์‚ดํŽด๋ณด๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ๋ฌธ๋งฅ์— ๋Œ€ํ•œ ๊ณ ๋ ค๋Š” ๋ฐฐ์ œํ•œ๋‹ค. 

 

 

 

 

3. Vanilla RNN (๊ธฐ๋ณธ RNN)

 

๐Ÿ’ฅ ngram ๊ณผ NNLM ์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜์—ฌ, ์ž…๋ ฅ ๊ธธ์ด์— ์ œํ•œ์„ ๋‘์ง€ ์•Š๋Š” ๋ชจ๋ธ์ด ๋“ฑ์žฅ 

 

 

โœ” RNN Architexture

 

 

โ‘  input word sequence ์›ํ•ซ๋ฒกํ„ฐ ๐Ÿ‘‰ ๋‹จ์–ด์‚ฌ์ „ ๊ฐœ์ˆ˜๋งŒํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š” ์›ํ•ซ๋ฒกํ„ฐ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค. 

 

โ‘ก Word embedding  e(t) = E*x(t) ๐Ÿ‘‰ embedding matrix E ์™€ ์ž…๋ ฅ ์›ํ•ซ๋ฒกํ„ฐ x๊ฐ€ ๊ณฑํ•ด์ ธ embedding ํ‘œํ˜„์‹์˜ ๋ฒกํ„ฐ e ๋ฅผ ์ƒ์„ฑํ•ด๋‚ธ๋‹ค. 

 

 

โ‘ข Hidden state vector  h(t) = sigmoid(Wh*h(t-1) + We*e(t) + b1) ๐Ÿ‘‰ ์ด์ „ ๋‹จ๊ณ„์˜ hidden state ์™€ Wh ๋ฒกํ„ฐ๋ฅผ ๊ณฑํ•œ ๊ฐ’๊ณผ, ํ˜„์žฌ ๋‹จ๊ณ„์˜ (We ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ๊ณผ ์ž„๋ฒ ๋”ฉ ๋‹จ์–ด๋ฒกํ„ฐ e ๋ฅผ ๊ณฑํ•œ) hidden state vector ๋ฅผ ๋”ํ•˜์—ฌ ์‹œ๊ทธ๋ชจ์ด๋“œ ์—ฐ์‚ฐ ์ˆ˜ํ–‰

 

 

โ‘ฃ output distribution y(t) = softmax( U*h(t) + b2 )  ๐Ÿ‘‰ weight matrix U ์™€ hidden state ๋ฅผ ๊ณฑํ•˜์—ฌ ์†Œํ”„ํŠธ๋งฅ์Šค ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ตœ์ข… output vector ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋•Œ output vector ๊ฐ’์ด ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ๋‹ค์Œ ๋‹จ์–ด๋กœ ๋“ฑ์žฅํ•  ํ™•๋ฅ ๊ฐ’์ด๋‹ค. 

 

 

 

โญ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๊ฐ’ x(1), x(2), ... ์ด ๋“ค์–ด๊ฐ์— ๋”ฐ๋ผ ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค์Œ์— ์œ„์น˜ํ•  ๋‹จ์–ด๋“ค์„ ์ฐจ๋ก€๋กœ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

โญ RNN ์˜ ์ค‘์š”ํ•œ ๊ตฌ์กฐ์  ํŠน์ง• : ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ๋™์ผํ•œ weight matrix E, We, Wh, U ๋ฅผ ์ ์šฉํ•œ๋‹ค. 

 

 

 

โœ” ์†์‹คํ•จ์ˆ˜ 

 

๐Ÿ‘€ many-to-many RNN

 

time step ๋งˆ๋‹ค ์ž…์ถœ๋ ฅ์ด ์กด์žฌ

  • x(t) : ์ž…๋ ฅ๊ฐ’ 
  • y(t) : ๋‹ค์Œ์— ์œ„์น˜ํ•  ๋‹จ์–ด์˜ ์˜ˆ์ธก๊ฐ’ 
  • U : ์ตœ์ข…์ ์ธ ์ถœ๋ ฅ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด, hidden state ์™€ ๋งŒ๋‚˜๋Š” ๊ฐ€์ค‘์น˜ํ–‰๋ ฌ 
  • Wh : ํ˜„์žฌ ์‹œ์ ์˜ hidden state ๋ฅผ ๋„์ถœํ•˜๊ธฐ ์œ„ํ•ด, ์ด์ „ ์‹œ์ ์˜ hidden state ์™€ ๋งŒ๋‚˜ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ 
  • We : ํ˜„์žฌ ์‹œ์ ์˜ hidden state ๋ฅผ ๋„์ถœํ•˜๊ธฐ ์œ„ํ•ด, ์ž„๋ฒ ๋”ฉ๋œ ๋ฒกํ„ฐ์™€ ๋งŒ๋‚˜ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ 

 

 

๐Ÿ‘€ loss function 

 

  • ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ถ„๋ฅ˜ ๋ฌธ์ œ์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์†์‹คํ•จ์ˆ˜๋Š” cross-entropy ๋กœ ์ •์˜๋œ๋‹ค. 
  • many-to-many RNN ๊ตฌ์กฐ์—์„œ ๊ฐ time step ๋ณ„๋กœ loss function ๊ฐ’์ด ๋„์ถœ๋˜๊ณ  

 

  • ๋ชจ๋“  ๋‹จ๊ณ„์˜ loss function ์„ ํ‰๊ท ๋‚ด๋ฆฐ ๊ฐ’์ด ์ตœ์ข… RNN ๋ชจ๋ธ์˜ loss ์— ํ•ด๋‹นํ•œ๋‹ค. 

 

 

๐Ÿ‘€ BPTT : back propagation through time 

 

  • RNN ์˜ ์—ญ์ „ํŒŒ๋Š” BPTT ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ผ๋ฐ˜์ ์ธ MLP ์—ญ์ „ํŒŒ ๊ณผ์ •๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋งค time step ๋ณ„ ์ž…์ถœ๋ ฅ์ด ์กด์žฌํ•œ๋‹ค๋Š” ์ค‘์š”ํ•œ ํŠน์ง•์„ ๊ณ ๋ คํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์กด์žฌํ•œ๋‹ค. (โ‘ก ๋ฒˆ ๊ณผ์ • ์ฐธ๊ณ  - time step ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์—ฌ summation ์—ฐ์‚ฐ) 
  • chain rule โญ 

 

 

 

 

 


 

 

 

2๏ธโƒฃ LSTM 

 


 

1. Problem of RNN

 

 

โœ” ์ฒซ๋ฒˆ์งธ ๋ฌธ์ œ : Vanishing/Exploding Gradients 

 

 

๐Ÿ‘€ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค

 

 

๋„ค ๋ฒˆ์งธ ์ง€์ ์˜ ์†์‹ค J ์— ๋Œ€ํ•œ hidden state h ์˜ gradient

 

 

  • BPTT ์—ฐ์‚ฐ์—์„œ loss function ์˜ Wh ์— ๋Œ€ํ•œ ๋ฏธ๋ถ„์—ฐ์‚ฐ์‹œ, hidden state ์‚ฌ์ด์˜ ํŽธ๋ฏธ๋ถ„ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค/ํญ์ฆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 
  • BPTT : ๊ฐ ๋ ˆ์ด์–ด๋งˆ๋‹ค ๋™์ผํ•œ ์œ„์น˜์˜ weight ์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  error ๋ฏธ๋ถ„๊ฐ’์„ ๋”ํ•œ๋‹ค์Œ ์—ญ์ „ํŒŒํ•˜์—ฌ ํ•œ๋ฒˆ์— ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ• 

 

๊ทธ๋ฆผ1

 

๊ทธ๋ฆผ2

 

Chain rule ์— ์˜ํ•ด ํŽธ๋ฏธ๋ถ„ํ•œ ํšŸ์ˆ˜๋งŒํผ Wh ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ณฑํ•ด์ง€๊ฒŒ ๋œ๋‹ค.

 

 

  • ๋™์ผํ•œ ๊ฐ€์ค‘์น˜ Wh ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Wh ๊ฐ€ 1๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ณฑํ•ด์ง€๋Š” ๊ฐ’์ด 0์— ๊ฐ€๊นŒ์›Œ์ ธ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , Wh ๊ฐ€ 1๋ณด๋‹ค ํฐ๊ฒฝ์šฐ๋Š” ๊ฐ’์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ปค์ ธ ๊ธฐ์šธ๊ธฐ ํญ์ฆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ๐Ÿ‘‰ ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์–ด๋ ต๊ฑฐ๋‚˜ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 

 

 

๐Ÿ‘€ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ด์œ ๋Š” ๐Ÿ‘‰ Context ๋ฐ˜์˜์ด ์–ด๋ ค์›€ 

 

 

โ‘  ๊ฐ€๊นŒ์šด Gradient ์˜ ํšจ๊ณผ๋งŒ ๋ฐ˜์˜ํ•œ๋‹ค. ์ฆ‰, Near-effects ๋งŒ ๋ฐ˜์˜๋˜๊ณ  Long-term effects ๋Š” ๋ฌด์‹œ๋œ๋‹ค. 

 

 

step4 ์‹œ์ ์—์„œ์˜ gradient ์˜ํ–ฅ๋ ฅ์€ ๊ฐˆ์ˆ˜๋ก ์ค„์–ด๋“ค์ง€๋งŒ step2 ์‹œ์ ์˜ gradient ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์›Œ ์˜ํ–ฅ๋ ฅ์ด ๊ฐ•ํ•จ

 

 

 

โ‘ก Gradient ๋Š” ๋ฏธ๋ž˜ ์‹œ์ ์— ๋Œ€ํ•ด ๊ณผ๊ฑฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€์— ๋Œ€ํ•œ ์ฒ™๋„์ธ๋ฐ, gradient ๊ฐ€ ์†Œ์‹ค๋˜๋ฉด Step t ์™€ Step (t+n) ์‚ฌ์ด์— ์˜์กด์„ฑ dependency ๊ฐ€ ์—†์–ด์„œ 0์ด ๋œ ๊ฒƒ์ธ์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž˜๋ชป ๊ตฌํ•ด 0์ด๋œ ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. 

 

 

 

 

๐Ÿ‘€ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๊ฐ€ Language Model์—์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ฌธ์ œ : LM Task

 

 

๐Ÿ‘‰ ๋ฉ€๋ฆฌ์žˆ๋Š” ๋‹จ์–ด๋“ค ์‚ฌ์ด์˜ dependency ๋ฅผ ํ•™์Šตํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ 

 

 

 

  • ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋กœ ์˜ˆ์ธกํ•  ๊ณณ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ์ •๋ณด๋ฅผ ์ž˜ ์ „๋‹ฌ๋ฐ›์ง€ ๋ชปํ•ด, ๋ณธ๋ž˜ ์ •๋‹ต์€ ticket ์ด์ง€๋งŒ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋‚˜์˜จ ๋ฌธ์žฅ์œผ๋กœ ์ž˜๋ชป๋œ ์ •๋‹ต์ธ printer ๋กœ ์˜ˆ์ธกํ•จ

 

 

 

  • ์›๋ž˜ ์ •๋‹ต์€ writer ๋ฅผ ๋”ฐ๋ผ is ๊ฐ€ ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ, ๋ฉ€๋ฆฌ ์œ„์น˜ํ•œ ๋‹จ์–ด์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ค„์–ด๋“ค์–ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด books ๋ฅผ ๋ณด๊ณ  are ์ด๋ผ๊ณ  ์ž˜๋ชป ์˜ˆ์ธกํ•œ๋‹ค. 

 

 

 

๐Ÿ‘€ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค 

 

 

โ‘  ๋‹ค๋ฅธ ํ™œ์„ฑํ™” ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ  

 

  • ๋™์ผํ•œ ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋ฐœ์ƒํ•˜๋Š” ๊ธฐ์šธ๊ธฐ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด RNN ์€ hidden state ๋ฅผ ๋„์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ™œ์„ฑํ™”ํ•จ์ˆ˜๋กœ ์‹œ๊ทธ๋ชจ์ด๋“œ๊ฐ€ ์•„๋‹Œ ํ•˜์ดํผ๋ณผ๋ฆญ ํƒ„์  ์ธ  ํ•จ์ˆ˜๋ฅผ ์ฑ„ํƒํ•œ๋‹ค. 

๋นจ๊ฐ„์ƒ‰์ด ์›๋ž˜ ํ•จ์ˆ˜์˜ ๊ณก์„ , ์ดˆ๋ก์ƒ‰์ด ๋ฏธ๋ถ„ํ•œ ๊ณก์„ 

 

  • ์‹œ๊ทธ๋ชจ์ด๋“œ ๋ฏธ๋ถ„๊ฐ’์€ 0์—์„œ 0.25 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฏ€๋กœ 0์— ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ 
  • ๋ฐ˜๋ฉด, Tanh ๋ฏธ๋ถ„๊ฐ’์€ 0๊ณผ 1์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฏ€๋กœ sigmoid ๋ณด๋‹จ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ์— ๋” ๊ฐ•ํ•จ 

 

  • ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ข‹์€ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋Š” ReLU ์ด๋‹ค. 

 

 

 

โ‘ก Gradient Clipping 

 

  • ๊ธฐ์šธ๊ธฐ ํญ์ฆ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์ฑ… (๋งค๋ฒˆ ํ•™์Šต๋ฅ ์„ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์›€) 
  • gradient ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง€๋ฉด SGD update step ๋„ ๋„ˆ๋ฌด ์ปค์ง„๋‹ค.
  • ๋„ˆ๋ฌด ํฐ learning rate ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ ์—…๋ฐ์ดํŠธ step ์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ ธ ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šต ๋ฐ ๋ฐœ์‚ฐํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ learning rate ๋ฅผ ์ž‘๊ฒŒํ•˜๋ฉด ํ•™์Šต ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ ค์ง„๋‹ค. 
  • ๐Ÿ’จ ํ•ด๊ฒฐ์ฑ… : gradient ๊ฐ€ ์ผ์ • threshold ๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด gradient L2 norm ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ๋ฐฉ์‹ 
    • ์ผ์ • ๊ฐ’์ด ๋„˜์–ด๊ฐ€๋ฉด gradient ๊ฐ’์„ ์ปคํŒ…ํ•˜๋Š” ๊ฒƒ! 
  • ์†์‹คํ•จ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์šธ๊ธฐ ๋ฐฉํ–ฅ์€ ์œ ์ง€ํ•œ์ฑ„๋กœ ํฌ๊ธฐ๋งŒ ์กฐ์ ˆํ•œ๋‹ค. 

 

 

 

 

โ‘ข In CNN, FN : ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ Connection ๋ฐฉ๋ฒ• ๊ณ ์•ˆ 

 

 

  • ResNet ๐Ÿ‘‰ Residual connection ๊ฐœ๋…์„ ๋„์ž…ํ•ด input x ์— convolution layer ๋ฅผ ์ง€๋‚˜๊ณ  ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋”ํ•ด ๊ณผ๊ฑฐ์˜ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค : ๊ธฐ์กด์— ํ•™์Šตํ•œ ์ •๋ณด ๋ณด์กด + ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šตํ•œ ์ •๋ณด 
  • DenseNet ๐Ÿ‘‰ Dense connection ๊ฐœ๋…์„ ๋„์ž…ํ•ด ์ด์ „ layer ๋“ค์˜ feature map ์„ ๊ณ„์†ํ•ด์„œ ๋‹ค์Œ layer ๋“ค์˜ ์ž…๋ ฅ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹ : concatenation 
  • HighwayNet ๐Ÿ‘‰ Highway connection ๋‚ด๋…์„ ๋„์ž…ํ•ด output ์ด input์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ๋ณ€ํ™˜๋˜๊ณ  ์˜ฎ๊ฒจ์กŒ๋Š”์ง€ ํ‘œํ˜„ 

 

๐Ÿค” ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋Š” ๋พฐ์กฑํ•œ ํ•ด๊ฒฐ์ฑ…์ด โ—ฝโ—ฝโ—ฝ 

 

 

 

 

 

 

โœ” ๋‘๋ฒˆ์งธ ๋ฌธ์ œ : Long Term Dependency ์žฅ๊ธฐ์˜์กด์„ฑ

 

  • ์‹œํ€€์Šค์˜ ๊ธธ์ด๊ฐ€ ๊ธด ๊ฒฝ์šฐ, ์‹œํ€€์Šค ์ดˆ๋ฐ˜์˜ ์ •๋ณด๊ฐ€ hidden state ๋ฅผ ๋„์ถœํ•˜๋Š”๋ฐ ๊นŒ์ง€ ์ „๋‹ฌ๋˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ long term dependency ๋ฅผ ์ž˜ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

 

 

 

2. LSTM โญโญ

 

 

๐Ÿคจ gradient ๊ฐ€ 0์— ๊ฐ€๊นŒ์›Œ์ง€๋Š”๊ฒŒ ๋ฌธ์ œ๋ฉด

์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๋‘์–ด์„œ gradient ๊ฐ’์ด ์†Œ์‹ค๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?

 

 

  • RNN์˜ ๋ฌธ์ œ๋Š” ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๋Œ€๋กœ ํ•™์Šตํ•˜์—ฌ ๊ฒฐ๊ณผ์— ๋ฐ˜์˜ํ•ด๋‚ผ ์ˆ˜ ์—†๋‹ค๋Š” ์  ๐Ÿ‘‰ ๋งŒ์•ฝ ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ๐Ÿ˜ฒ 

 

 

โœ” Long Short - Term Memory RNN

 

  • RNN ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•ด ๋”ฐ๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•จ์œผ๋กœ์จ ์•ž๋‹จ์˜ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜์—ฌ ์ถœ๋ ฅ์„ ๋งŒ๋“ค๊ณ ์ž ํ•œ ๋ชจ๋ธ๋กœ ์ด์ „ ๋‹จ๊ณ„์˜ ์ •๋ณด๋ฅผ memory cell ์— ์ €์žฅํ•˜์—ฌ ํ˜๋ ค๋ณด๋‚ธ๋‹ค. 
  • simple RNN ์˜ ๊ฒฝ์šฐ ์˜ค์ง hidden state ํ•˜๋‚˜๋งŒ์„ ๊ฐ€์ง€๊ณ  ๋ชจ๋“  time step ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ ์ž ํ–ˆ๋‹ค๋ฉด, LSTM ์˜ ๊ฒฝ์šฐ์—” ํฌ๊ฒŒ 2๊ฐ€์ง€ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•˜์—ฌ RNN ๊ณผ์˜ ์ฐจ๋ณ„์ ์„ ๋‘๊ณ  ์žˆ๋‹ค. 
  • ์ด์ „ ์ •๋ณด๋ฅผ ๊ณ„์†ํ•ด์„œ ์ „๋‹ฌํ•˜๋Š” Cell state ์™€ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฑธ๋Ÿฌ์ฃผ๋Š” Gate ๊ฐ€ ์กด์žฌ → ํ˜„์žฌ์‹œ์ ์˜ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณผ๊ฑฐ์˜ ๋‚ด์šฉ์„ ์–ผ๋งˆ๋‚˜ ์žŠ์„์ง€ ๊ณฑํ•ด์ฃผ๊ณ  ๊ทธ ๊ฒฐ๊ณผ์— ํ˜„์žฌ ์ •๋ณด๋ฅผ ๋”ํ•ด์„œ ๋‹ค์Œ ์‹œ์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. 

 

 

 

 

โ‘  hidden state ๋ฅผ ํ†ตํ•ด ๋‹จ๊ธฐ๊ธฐ์–ต์„ ์กฐ์ ˆํ•˜๊ณ  cell state ๋ฅผ ํ†ตํ•ด ์žฅ๊ธฐ๊ธฐ์–ต์„ ์กฐ์ ˆํ•œ๋‹ค. 

โ‘ก forget, input, output 3๊ฐœ์˜ gate ๋ฅผ ํ†ตํ•ด ๋งค time step ์˜ cell state ์™€ hidden state, input ์—์„œ ์ทจํ•  ์ •๋ณด์˜ ์–‘์„ ๊ฒฐ์ •ํ•œ๋‹ค. 

 

 

 

โœ” ๊ฐœ๋… ์ •๋ฆฌ 

 

 

Cell state 

  • time step ์—์„œ hidden state h ์™€ cell state c ๋ฅผ ๊ฐ€์ง„๋‹ค ๐Ÿ’จ ๊ธธ์ด๊ฐ€ n ์ธ ๋ฒกํ„ฐ 
  • Cell ์€ ์žฅ๊ธฐ๊ธฐ์–ต์„ ์ €์žฅํ•œ๋‹ค. 
  • LSTM ์€ cell ์— ์ •๋ณด๋ฅผ ์ง€์šฐ๊ฑฐ๋‚˜, ์“ฐ๊ฑฐ๋‚˜, ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค ๐Ÿ’จ 3๊ฐœ์˜ gate ๋กœ ๊ด€๋ฆฌ 
  • ๊ฐ timestep ์—์„œ gate ์˜ ๊ฐ ์š”์†Œ๋“ค์€ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ•จ์œผ๋กœ์จ open(1), closed(0) ํ˜น์€ ๊ทธ ์ค‘๊ฐ„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

๋‹จ์ˆœํ•œ ์—ฐ์‚ฐ์ธ ๋ง์…ˆ, ๊ณฑ์…ˆ์„ ํ†ตํ•ด LSTM unit ์„ ํ†ต๊ณผํ•œ๋‹ค.

 

 

Gate ๐Ÿ’จ ๊ธธ์ด๊ฐ€ n ์ธ ๋ฒกํ„ฐ 

  • input gate : ๋ฌด์—‡์„ ์“ธ ๊ฒƒ์ธ๊ฐ€
  • output gate : ๋ฌด์—‡์„ ์ฝ์„ ๊ฒƒ์ธ๊ฐ€ 
  • forget gate : ๋ฌด์—‡์„ ์žŠ์„ ๊ฒƒ์ธ๊ฐ€ 

 

 

 

 

โœ” Architecture 

 

  • LSTM ์€ ์ด 3๊ฐ€์ง€ gate ๋ฅผ ๋‘์–ด์„œ ์ž…๋ ฅ์ •๋ณด์˜ ํ๋ฆ„(flow) ์„ ๊ฒฐ์ •ํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ธฐ๊ธฐ์–ต์„ ๋ณด์กดํ•˜๋Š” cell state ์™€ ๋‹จ๊ธฐ๊ธฐ์–ต์„ ๋ณด์กดํ•˜๋Š” hidden state ์ด 2๊ฐ€์ง€ state ๋“ค์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

 

 

 

โ‘  forget gate layer

 

โ—ฝ ์–ด๋–ค ์ •๋ณด๋ฅผ ๋ฐ˜์˜ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” gate 

 

- ์ด์ „ ๋‹จ๊ณ„์˜ cell state ์—์„œ ์–ด๋–ค ์ •๋ณด๋ฅผ ์žŠ๊ณ , ์–ด๋–ค ์ •๋ณด๋ฅผ Cell state ์— ํ˜๋ ค๋„ฃ์„์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 

- ์ž…๋ ฅ ์ •๋ณด (์ƒˆ๋กœ์šด ์ž…๋ ฅ ์‹œํ€€์Šค ๋‹จ์–ด์™€ ์ด์ „ ์‹œ์ ์˜ hidden state) ์— ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ์ทจํ•˜์—ฌ 0~1์‚ฌ์ด์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

- 0 : ์ €์žฅ๋œ ์ด์ „ ์ •๋ณด๋ฅผ ์ง€์šด๋‹ค. 

- 1 : ์ €์žฅ๋œ ์ด์ „ ์ •๋ณด๋ฅผ ๋ณด์กดํ•œ๋‹ค. 

 

 

๐Ÿ’จ x ๊ฐ’๊ณผ ์ด์ „์‹œ์ ์˜ hidden state ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ sigmoid ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด 0๊ณผ 1์‚ฌ์ด์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์™„์ „ํžˆ ์žŠ๊ณ , 1์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์ •๋ณด๋ฅผ ๋งŽ์ด ํ˜๋ ค๋„ฃ๊ฒŒ ๋œ๋‹ค. 

 

 

 

โ‘ก input gate, new cell content 

 

 

๐Ÿ‘‰ input gate : ์ž…๋ ฅ์ •๋ณด์— ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ์ทจํ•œ๋‹ค.

 

- ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ Cell state ์— ์ €์žฅ๋ ์ง€ ๊ฒฐ์ •ํ•˜๋Š” Gate

- input ์— ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด์ „ ๋‹จ๊ณ„์˜ cell state ์— ๋„ฃ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

- i(t) ๊ฐ’์ด 1์— ๊ฐ€๊น๊ฒŒ ๋‚˜์˜ค๋ฉด ์ƒˆ๋กœ์šด ์ •๋ณด์— ๋Œ€ํ•ด ๋ฐ˜์˜์„ ๋งŽ์ด ํ•˜๊ณ , 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์žŠ๋Š”๋‹ค. 

 

 

๐Ÿ‘‰ new cell content : ์ž…๋ ฅ์ •๋ณด์— tanh ๋ฅผ ์ทจํ•œ๋‹ค. 

์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

 

 

๐Ÿ’จ sigmoid layer (input gate) : ์–ด๋–ค ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 

๐Ÿ’จ Tanh layer (update gate) : cell state ์— ๋”ํ•ด์งˆ ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค. 

 

 

 

โ‘ข Update Cell state 

 

- t ๋ฒˆ์งธ timestep ๊นŒ์ง€์˜ ์žฅ๊ธฐ๊ธฐ์–ต์„ ์ „๋‹ฌํ•˜๋Š” state

 

๐Ÿ‘‰ forget gate : ์ด์ „ ์‹œ์ ์˜ cell state ์—์„œ ์–ด๋Š์ •๋„์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ๊ฐˆ๊ฑด์ง€ ๊ฒฐ์ • = ๊ณผ๊ฑฐ์˜ ์ •๋ณด๋ฅผ ๋ฐ˜์˜ํ• ์ง€์˜ ์œ ๋ฌด 

 

๐Ÿ‘‰ input gate : ์ž…๋ ฅ ์ •๋ณด์—์„œ ์žฅ๊ธฐ ๊ธฐ์–ต์œผ๋กœ ๊ฐ€์ ธ๊ฐˆ ์ •๋ณด์˜ ์–‘์„ ๊ฒฐ์ • = ์ƒˆ๋กญ๊ฒŒ ๋ฐœ์ƒํ•œ ํ˜„์žฌ์˜ ์ •๋ณด๋ฅผ ๋ฐ˜์˜ํ• ์ง€์˜ ์œ ๋ฌด 

 

 

 

element - wise product ๋ฅผ ์ˆ˜ํ–‰

 

  • f(t) * C(t-1) : ์ด์ „ ์‹œ์ ์˜ cell state ์™€ ๋งŒ๋‚˜์„œ ์ „ ์‹œ์ ์œผ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋˜์–ด์˜จ ์žฅ๊ธฐ๊ธฐ์–ต์œผ๋กœ๋ถ€ํ„ฐ ์–ด๋Š์ •๋„์˜ ์ •๋ณด๋Ÿ‰์„ ๊ฐ€์ ธ๊ฐˆ ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 
  • i(t) * ~C(t) : ์ƒˆ๋กญ๊ฒŒ ์ž…๋ ฅ๋œ ๊ฐ’์—์„œ ์žฅ๊ธฐ๊ธฐ์–ต์œผ๋กœ ๊ฐ€์ ธ๊ฐˆ ์ •๋ณด์˜ ์–‘์„ ๊ฒฐ์ •ํ•œ๋‹ค. 

⇒ ์ด ๋‘ ๊ฐ’์ด ๋”ํ•ด์ ธ ๋‹ค์Œ cell state ์˜ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค (update) 

 

๐Ÿง forget gate ๊ฐ€ 1์ด๊ณ  input gate ๊ฐ€ 0์ผ ๋•Œ Cell ์ •๋ณด๊ฐ€ ์™„์ „ํžˆ ๋ณด์กด๋˜์–ด ์žฅ๊ธฐ์˜์กด์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ์˜ ์™„์ „ํ•œ ํ•ด๊ฒฐ์€ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

 

 

 

 

โ‘ฃ Output gate, hidden state 

 

๐Ÿ‘‰ output gate : ์ž…๋ ฅ ์ •๋ณด์— ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ์ทจํ•œ๋‹ค. 

 

๐Ÿ‘‰ hidden state: ํ˜„์žฌ ์ž…๋ ฅ๊ณผ ๋Œ€๋น„ํ•˜์—ฌ ์žฅ๊ธฐ๊ธฐ์–ต Ct ์—์„œ ์–ด๋Š์ •๋„์˜ ์ •๋ณด๋ฅผ ๋‹จ๊ธฐ๊ธฐ์–ต์œผ๋กœ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ • →  ๋‹ค์Œ state ์˜ input ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. 

 

 

 

 

 

 

โœ” LSTM ์ด ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฑด๊ฐ€

 

  • ์—ฌ๋Ÿฌ timestep ์ด์ „์˜ ๊ฐ’๋„ ์ €์žฅํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ์กฐ ๐Ÿ‘‰ forget gate ๊ฐ€ ๋ชจ๋“  timestep ๊ฐ’์„ ์ €์žฅํ•˜๋„๋ก ์„ค์ •๋œ๋‹ค๋ฉด cell ๋‚ด๋ถ€์˜ ์ •๋ณด๋Š” ๊ณ„์† ์ €์žฅ๋œ๋‹ค. 
  • LSTM ๋„ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค/ํญ์ฆ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ๋ณด์žฅํ•  ์ˆ˜๋Š” ์—†์œผ๋‚˜, ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์‰ฌ์šด ๋ชจ๋ธ์ธ ๊ฒƒ์€ ๋งž๋‹ค. 

 

 

 

 


 

3๏ธโƒฃ GRU 


 

1. Gated Recurrent Units 

 

โœ” idea  

  • LSTM ์˜ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธˆ ๋” ๋‹จ์ˆœํ™”์‹œํ‚ค์ž 

 

 

 

  • LSTM ์˜ ๋ณ€ํ˜•๋œ ๋ชจ๋ธ๋กœ Reset Gate (rt) ์™€ Update Gate (zt) 2๊ฐœ์˜ gate ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. 
  • GRU ์˜ ๊ณ„์‚ฐ ์†๋„๊ฐ€ LSTM ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ ๋” ์ ๋‹ค. LSTM ์˜ ์žฅ๊ธฐ ์˜์กด์„ฑ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์€๋‹‰์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ณ„์‚ฐ๋Ÿ‰์„ ์ค„์ธ ๊ฒƒ์ด๋‹ค. 

 

 

 

โœ” Architecture

 

 

 

๐Ÿ‘€ Reset gate : ์ด์ „ ์ •๋ณด๋ฅผ ์–ด๋Š ์ •๋„ ๋ฐ˜์˜ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ • rt

 

๐Ÿ‘€ Update gate : ๊ณผ๊ฑฐ์™€ ํ˜„์žฌ์˜ ์ •๋ณด ๋ฐ˜์˜ ๋น„์ค‘์„ ๊ฒฐ์ • Zt

  • Zt : LSTM ์˜ forget gate ์™€ input gate ๋ฅผ ํ•ฉ์นœ ๋ถ€๋ถ„ 

 

๐Ÿ’จ LSTM ์˜ forget ์˜ ์—ญํ• ์ด rt ์™€ zt ๋‘ ๊ฐœ๋กœ ๋‚˜๋‰˜์–ด์ง„ ๊ตฌ์กฐ 

๐Ÿ’จ ์ถœ๋ ฅ๊ฐ’ (ht) ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์ถ”๊ฐ€์ ์ธ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

 

2. LSTM vs GRU 

 

  • ์žฅ๊ธฐ๊ธฐ์–ต์— ์ข‹๋‹ค. 
  • GRU ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ LSTM ๋ณด๋‹ค ์ ์–ด ํ•™์Šต ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ , LSTM ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒํ•˜๊ธฐ ์ข‹๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋ธ๋กœ LSTM ์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ํšจ์œจ์„ฑ์„ ์›ํ•˜๋ฉด GRU ๋ฅผ ์‹œ๋„ํ•ด๋ณด๋ฉด ์ข‹์„๋“ฏ

 

 


 

 

4๏ธโƒฃ More Fancy RNNs


 

 

1. Bidirectional RNNs 

 

โœ” ์ •์˜ 

  • ๊ณผ๊ฑฐ ์ƒํƒœ ๋ฟ ์•„๋‹ˆ๋ผ ๋ฏธ๋ž˜์˜ ์ƒํƒœ๊นŒ์ง€ ๊ณ ๋ คํ•˜๋Š” ๋ชจ๋ธ 
  • ์–‘๋ฐฉํ–ฅ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ RNN ๊ตฌ์กฐ 

 

 

 

 

 

 

 

โœ” Architecture 

 

 

 

๐Ÿ’จ ์–‘๋ฐฉํ–ฅ RNN ์€ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์…€ ๋‘ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 

 

  • Forward RNN : ์ •๋ฐฉํ–ฅ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์•„ hidden state ๋ฅผ ์ƒ์„ฑ 
  • Backward RNN : ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์•„ hidden state ๋ฅผ ์ƒ์„ฑ 
  • ๋‘ ๊ฐœ์˜ hidden state ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋Š” ์•Š๊ณ , ์ž…๋ ฅ๊ฐ’์„ ๊ฐ hidden layer ์— ์ „๋‹ฌํ•˜๊ณ  output layer ๋„ ์ด ๋‘ hidden layer ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ๋ฐ›์•„์„œ ์ตœ์ข… Output ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 

 

โœ” Note

  • ์–‘๋ฐฉํ–ฅ RNN ์€ ์ „์ฒด entire input sequence ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Language modeling ์˜ ๊ฒฝ์šฐ์—๋Š” left context ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
  • entire input seqence ๊ฐ€ ์žˆ๋‹ค๋ฉด bidirectionality ๋Š” ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ž‘์šฉํ•œ๋‹ค. 
  • ๐Ÿ‘€ BERT ๐Ÿ‘‰ Bidirectional Encoder Representations from Transformers : powerful pretrained contextual representation system built on bidirectionality 

 

 

2. Multi-layer RNNs

 

โœ” ์ •์˜ 

  • RNN ์„ ์—ฌ๋Ÿฌ ์ธต์œผ๋กœ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ 
  • ๋” ๋ณต์žกํ•œ ํ‘œํ˜„๊ณผ ํŠน์„ฑ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ 2~4๊ฐœ์˜ ์ธต์„ ์Œ“์•„ ์‚ฌ์šฉํ•œ๋‹ค. (๋” ๋งŽ์€ ์ธต์„ ์Œ“๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง„ ์•Š์Œ) 
  • BERT ์™€ ๊ฐ™์ด Transfoermer-based network ์˜ ๊ฒฝ์šฐ์—” 24๊ฐœ์˜ layer ๊นŒ์ง€ ์Œ“์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 


๐Ÿ“Œ ์‹ค์Šต ์ž๋ฃŒ 

 

โ‘  LSTM

 

 

โ‘ก GRU

 

 

โ‘ข Fancy RNNs - bidirectional, multi layer

 

- https://wikidocs.net/22886 ๐Ÿ‘‰ model.add(Bidirectional(SimpleRNN(hidden_units, return_sequences=True), input_shape=(timesteps, input_dim)))

728x90

๋Œ“๊ธ€