๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[์ˆœํ™˜์‹ ๊ฒฝ๋ง] RNN์˜ ๋ฌธ์ œ์ 

by coderSohyun 2024. 2. 3.

RNN์ด๋ž€?

RNN(Recurrent Neural Network)์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๋ชจ๋ธ๋กœ ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ์™€ ๊ฐ™์ด ์ด์ „ ์‹œ๊ฐ(๊ณ„์ธต)์˜ ์ถœ๋ ฅ ๊ฐ’(์€๋‹‰ ๊ฐ’)์ด ๋‹ค์Œ ์‹œ๊ฐ(๊ณ„์ธต)์œผ๋กœ ์ „ํŒŒ๋˜์–ด ์ฆ‰, ๊ณผ๊ฑฐ ์ •๋ณด๋ฅผ ๊ณ„์Šนํ•˜์—ฌ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์— ๋Œ€์‘ํ•˜๋Š” ์‹ ๊ฒฝ๋ง์ž„. 

์€๋‹‰์ธต์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹ค์‹œ ์€๋‹‰์ธต์œผ๋กœ ๋Œ์•„๊ฐ€ ์ƒˆ๋กœ์šด ์ž…๋ ฅ ๊ฐ’๊ณผ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆœํ™˜ ๊ตฌ์กฐ์ž„.

์™„์ „์—ฐ๊ฒฐ์ธต(Fully Connected Layer), CNN(Convolutional Neural Network)์€ ์€๋‹‰์ธต์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๊ฐ’์ด ์ถœ๋ ฅ์ธต ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜์ง€๋งŒ, RNN์€ ์€๋‹‰์ธต์œผ๋กœ ๋˜๋Œ์•„๊ฐ€ ์ˆœํ™˜ํ•œ๋‹ค๋Š” ์ ์—์„œ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Œ. 

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์€๋‹‰์ธต์—์„œ ๊ฒฐ๊ณผ ๊ฐ’์ด ๋‚˜์™€ ๋‹ค์‹œ ์€๋‹‰์ธต์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ์ˆœํ™˜ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ 

 

RNN์˜ ์ˆœํ™˜๊ตฌ์กฐ

์œ„ ๊ทธ๋ฆผ์—์„œ RNN ์ˆœํ™˜ ๊ตฌ์กฐ๋ฅผ ํŽผ์นœ ํ˜•ํƒœ๋กœ ์ž…๋ ฅ๊ฐ’ {x0, x1,...,xt}๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ๊ฐ ์ž…๋ ฅ์— ๋Œ€์‘ํ•˜๋Š” {h0,...,ht}๊ฐ€ ์ถœ๋ ฅ๋จ. ์ด๋•Œ RNN ๊ณ„์ธต์€ ๋ชจ๋‘ ๊ฐ™์€ ๊ณ„์ธต์ด๊ณ  ์ถœ๋ ฅ {h0,...,hk,...,ht}๋ฅผ ๊ฐ๊ฐ k์‹œ์ ์—์„œ์˜ ์€๋‹‰ ์ƒํƒœ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ ์œ„์— ์‹์„ ๋ณด๋ฉด ht-1(t-1์˜ ์€๋‹‰์ƒํƒœ)์— ๋Œ€ํ•œ weight ๊ฐ’(Wh)๊ณผ xt(t์‹œ์ ์—์„œ ์€๋‹‰์ธต์— ๋“ค์–ด๊ฐˆ ์ž…๋ ฅ๊ฐ’)์— ๋Œ€ํ•œ weight ๊ฐ’(Wx)๋ฅผ ์—ฐ์‚ฐํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ 

(+b๋Š” ์™œ ๋‚˜์˜ค๋ฉฐ, tanh๋กœ ๊ณ„์‚ฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ -> ์ฐพ์•„๋ณด์…ˆ) 

 

์ด๋Ÿฌํ•œ RNN์˜ ๊ตฌ์กฐ๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ, ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ฐ€๋ น "You say goodbye and I say hello"์—์„œ ๊ฐ ๋‹จ์–ด์˜ ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ณ ์ž ํ• ๋•Œ, ๋ฌธ์žฅ์—์„œ ์ž„๋ฒ ๋”ฉ ๋œ ๋‹จ์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ RNN์— ์ž…๋ ฅํ•จ. 

(์ž„๋ฒ ๋”ฉ์ด๋ž€ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๋กœ, ์ปดํ“จํ„ฐ๊ฐ€ ๋‹จ์–ด๋ฅผ ์ˆซ์ž๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์ปดํ“จํ„ฐ๊ฐ€ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ์„ ์˜๋ฏธํ•จ/ ์‚ฌ๋žŒ์ด ์“ฐ๋Š” ์ž์—ฐ์–ด๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆซ์žํ˜•ํƒœ์ธ vector๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ • ํ˜น์€ ์ผ๋ จ์˜ ์ „์ฒด ๊ณผ์ •์„ ์˜๋ฏธํ•จ - ์ž„๋ฒ ๋”ฉ ๊ด€๋ จํ•ด์„œ ์•„์ฃผ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •์˜๋งŒ ์ •๋ฆฌํ•œ ๊ฒƒ์ž„. ๊ด€๋ จ ๋‚ด์šฉ ๋” ์ฐพ์•„์„œ ๊ฐœ๋… ์ˆ™์ง€ํ•ด๋†“๊ธฐ // ์ผ๋‹จ ๋‚ด๊ฐ€ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ https://velog.io/@glad415/%EC%9E%84%EB%B2%A0%EB%94%A9Embedding%EC%9D%B4%EB%9E%80

 

์ดํ›„ ๊ฐ ์ž…๋ ฅ์— ๋Œ€์‘ํ•˜๋Š” ์€๋‹‰์ƒํƒœ๋กœ ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•จ. 

์—ฌ๊ธฐ์„œ ์€๋‹‰์ƒํƒœ๋Š” ํ•ด๋‹น ์‹œ์ ๊นŒ์ง€์˜ ๋‹จ์–ด ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ„.

 

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

 

RNN์˜ ์–ธ์–ด ๋ชจ๋ธ

์œ„ ๊ทธ๋ฆผ์—์„œ You๋ผ๋Š” ๋‹จ์–ด๊ฐ€ Embedding ๊ณ„์ธต์„ ๊ฑฐ์นœ ํ›„ RNN์— ์ž…๋ ฅ๋˜๋ฉด, You์˜ ์€๋‹‰์ƒํƒœ hyou๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด say๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. 

 

์€๋‹‰์ƒํƒœ hyou๋Š” ๋‹ค์Œ RNN ๊ณ„์ธต์œผ๋กœ ๋“ค์–ด๊ฐ€ say๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ž„๋ฒ ๋”ฉ๋œ ํ˜•ํƒœ์™€ ์—ฐ์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ hyou๋Š” ๊ณผ๊ฑฐ์˜ ์ •๋ณด you๋ฅผ ์‘์ง‘ํ•œ ์€๋‹‰ ์ƒํƒœ์ž„.

 

๋‹ค์Œ RNN ๊ณ„์ธต์—์„œ ๋‚˜์˜จ say์˜ ์€๋‹‰์ƒํƒœ hsay๋Š” ๊ณผ์ € ์ •๋ณด 'You say'๋ฅผ ์‘์ง‘ํ•œ ์€๋‹‰ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ดํ›„ hsay๋ฅผ ์ด์šฉํ•ด ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด goodbye๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์ด RNN ํ•™์Šต, ์ˆœ์ „ํŒŒ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. 

์ดํ›„ ์—ญ์ „ํŒŒ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ์˜ˆ์ธก ๋‹จ์–ด์™€ ์‹ค์ œ ๋‹จ์–ด๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ ๊ฐ€์ค‘์น˜์™€ ์€๋‹‰์ƒํƒœ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. 

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ดํŽด๋ณด์ž

 

1. ์ˆœ์ „ํŒŒ

RNN ์ˆœ์ „ํŒŒ ๊ณผ์ •

์œ„ ๊ทธ๋ฆผ์€ RNN์˜ ์ˆœ์ „ํŒŒ ๊ณผ์ •์ž„. 

'You say goodbye and I say hello'์—์„œ ๋‹ค์Œ์— ๋‚˜์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋ฉฐ RNN ๊ณ„์ธต์„ ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์ž„

 

1) say์˜ ์€๋‹‰์ƒํƒœ์ธ hsay์™€ hello๊ฐ€ ์ž„๋ฒ ๋”ฉ๋œ ๋ฒกํ„ฐ xhello๊ฐ€

RNN ๊ณ„์ธต์— ๋“ค์–ด๊ฐ„ ํ›„ ์ผ๋ จ์˜ ๊ณผ์ •์„ ํ†ตํ•ด hello์˜ ์€๋‹‰์ƒํƒœ์ธ hhello์™€ yhello๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. 

2) ์ถœ๋ ฅ๋œ ์€๋‹‰์ƒํƒœ๋Š” ๋‹ค์Œ RNN ๊ณ„์ธต์˜ ์ž…๋ ฅ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค

3) hhello๋Š” hello๋ฅผ ๋น„๋กฏํ•ด say, I์™€ ๊ฐ™์ด ๊ทธ๋™์•ˆ ์ด๋™ํ•ด์˜จ ๋‹จ์–ด๋“ค์˜ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

4) yhello๋Š” hhello๊ฐ€ ๋ณ€ํ˜•๋œ ํ˜•ํƒœ๋กœ, hello์˜ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ผ๋ จ์˜ ๊ณผ์ •์€ ์•„๋ž˜์˜ ์‹์œผ๋กœ, ๋ชจํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์œ„์˜ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. 

RNN ์ˆœ์ „ํŒŒ ์ˆ˜์‹

1) ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์ธ Wh, Wx

b๋Š” RNN ๊ณ„์ธต๋ณ„๋กœ ๋™์ผํ•จ

2) hhello๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด hsay์™€ Wh๋ฅผ ๊ณฑํ•˜๊ณ  hello๋ฅผ ์ž„๋ฒ ๋”ฉํ•œ ๋‹จ์–ด๋ฒกํ„ฐ(xhello)์™€ Wx๋ฅผ ๊ณฑํ•œ ํ›„ ํŽธํ–ฅ(b)๋ฅผ ๋”ํ•จ. 

3) ์ดํ›„ ํ•˜์ดํผ๋ณผ๋ฆญํƒ„์  ํŠธ ํ•จ์ˆ˜(tanh)๋ฅผ ์”Œ์›€ (why..?? ์ด ํ•จ์ˆ˜์ธ์ง€ ์ฐพ์•„๋ณด๊ธฐ) 

 

 

2. ์—ญ์ „ํŒŒ 

RNN์˜ ์—ญ์ „ํŒŒ

1) RNN์—์„œ ์˜ค์ฐจ์—ญ์ „ํŒŒ๋Š” RNN ๊ณ„์ธต์—์„œ ์ถœ๋ ฅ๋œ ๊ฒฐ๊ณผ์™€ Y๊ฐ’์˜ ์ฐจ์ด๋ฅผ ๋ฐ˜์˜ํ•ด ๊ฐ€์ค‘์น˜์™€ ์€๋‹‰์ƒํƒœ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ณผ์ •

2) ์˜ˆ๋ฅผ ๋“ค๋ฉด ์œ„ ๊ทธ๋ฆผ์—์„œ Softmax ์ดํ›„ ๋‚˜์˜ค๋Š” ๋‹จ์–ด๋“ค์˜ ์˜ˆ์ธก ํ™•๋ฅ ๊ณผ ์‹ค์ œ๊ฐ’์˜ ์˜ค์ฐจ๋ฅผ Cross Entropy๋กœ ๊ตฌํ•จ

3) ์ดํ›„ ์˜ค์ฐจ๋ฅผ ๋ฏธ๋ถ„ํ•ด ๊ธฐ์šธ๊ธฐ {dh_hello, dh_row, dh_day, dw_x, dx_hello, dw_h}๋ฅผ ๊ตฌํ•˜๊ณ  

๊ฐ ๊ฐ€์ค‘์น˜์— ๋ฐ˜์˜ํ•ด ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์‹์œผ๋กœ ์˜ค์ฐจ์—ญ์ „ํŒŒ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.  (์ดํ•ด ์•ˆ๋ผ)

4) ์˜ค์ฐจ๋ฅผ ๋ฏธ๋ถ„ํ•˜๋Š” ๊ณผ์ •์—์„œ y์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

5) y์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•˜๋Š” ์‹์„ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

RNN ์—ญ์ „ํŒŒ ์ˆ˜์‹

 

3. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ

1) RNN์—์„œ ์—ญ์ „ํŒŒ๊ฐ€ ์ง„ํ–‰๋˜๋ฉด์„œ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์†Œ์‹ค๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ. 

2) ์šฐ์„  ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฅผ ํ†ตํ•ด ์€๋‹‰์ƒํƒœ, ๊ฐ€์ค‘์น˜, ํŽธํ–ฅ{h, W, b}์€ ๊ธฐ์šธ๊ธฐ/๋ฏธ๋ถ„๊ฐ’์ด ๋ฐ˜์˜๋˜๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฉ๋‹ˆ๋‹ค

3) RNN์€ ๊ธฐ์šธ๊ธฐ/๋ฏธ๋ถ„๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์ด ์•„๋ž˜ ๋‘ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค

4) ๋งŒ์•ฝ RNN ๊ณ„์ธต์ด ๋งŽ๋‹ค๋ฉด, ์˜ค์ฐจ์—ญ์ „ํŒŒ๊ฐ€ ์ง„ํ–‰๋ ์ˆ˜๋ก ๊ธฐ์šธ๊ธฐ๊ฐ€ ์†Œ์‹ค๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

 

์ˆ˜์‹์œผ๋กœ ์ฆ๋ช…ํ•˜๋ฉด์„œ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์†Œ์‹œ๋˜๋Š”์ง€ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

๊ธฐ์šธ๊ธฐ ์ „๊ฐœ์‹

1) ์œ„ ๊ทธ๋ฆผ์—์„œ hrow๋ฅผ wh๋กœ ๋ฏธ๋ถ„ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

2) Say์˜ ์€๋‹‰์ƒํƒœ์ธ hsay๋Š” ์ด์ „ ๋‹จ๊ณ„์˜ RNN ๊ณ„์ธต์ธ you, say, goodbye, and, I์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

3) ๋”ฐ๋ผ์„œ hrow๋ฅผ wh๋กœ ๋ฏธ๋ถ„ํ•˜๋ ค๋ฉด hyou, hsay, hgoodbye, hand, hI๋ฅผ ๋ชจ๋‘ ๋ฐ˜์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

4) ์œ„ ๊ทธ๋ฆผ์„ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ธฐ์šธ๊ธฐ ์ „๊ฐœ์‹ 2

1) ์œ„ ๊ทธ๋ฆผ์—์„œ hrow๋ฅผ wh๋กœ ๋ฏธ๋ถ„ํ•˜๋ฉด ๊ฐ€์ค‘์น˜, ์€๋‹‰์ƒํƒœ๋ฅผ ๊ณ„์† ๊ณฑํ•˜๊ณ  ๋”ํ•˜๋Š” ํŒจํ„ด์ด ๋ณด์ด๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

2) ๋งŒ์•ฝ RNN ๊ณ„์ธต์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด, ์˜ค์ฐจ์—ญ์ „ํŒŒ ๊ณผ์ •์ด ์ง„ํ–‰๋˜๋ฉฐ ๊ธฐ์šธ๊ธฐ๊ฐ€ ๊ณฑํ•˜๊ณ  ๋”ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ˜๋ณต๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

3) ์—ฌ๊ธฐ์—์„œ ๊ธฐ์šธ๊ธฐ๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

4) ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์˜ค์ฐจ์—ญ์ „ํŒŒ ๊ณผ์ •์ด ๊ฝค ์ง„ํ–‰๋˜์—ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธํ•  ๊ธฐ์šธ๊ธฐ๊ฐ€ ์•„์ฃผ ์ž‘์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์ด๊ฒƒ์„ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด LSTM์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. 

๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๊ฐ€ gradient vanishing ๋งํ•˜๋Š” ๊ฒƒ์ž„ 

 

https://byumm315.tistory.com/entry/RNN%EC%9D%84-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4

์œ„ ๋ธ”๋กœ๊ทธ ๊ทธ๋Œ€๋กœ ์ฐธ๊ณ ํ•จ^^ 

๊ทธ๋ƒฅ ์ญ‰์ญ‰ ์ฝ๊ณ  ํ•„๊ธฐ? ํ•˜๋ฉด์„œ ์ดํ•ด๋ ฅ ๊ธธ๋Ÿฌ๋ณด๋ คํ•จ 

 

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

์œ„์— LSTM ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค์ฐจ ์—ญ์ „ํŒŒ, CNN์˜ ์—ญ์ „ํŒŒ ๋“ฑ ๊ธ€๋“ค์ด ์•„์ฃผ ์ข‹์Œ! ์ฐธ๊ณ ํ•˜์ž 

 

 

์–ด์จŒ๋“  RNN์ด ๋Œ€๋žต์ ์œผ๋กœ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ์‚ดํŽด๋ดค๋‹ค

๋ฌผ๋ก  ๊ฑด๋„ˆ๋›ด ๋ถ€๋ถ„๋„ ์žˆ์–ด์„œ ์Œ.. ์ด๊ฑด ๋‚ด์ผ ๋˜ ์™€์„œ ํ•œ๋ฒˆ ๋ณด์ถฉํ•ด๋ณด๊ฒ ๋‹ค

 

RNN์˜ ๋ฌธ์ œ์ 

์ด๊ฑธ ๊ทธ๋ž˜์„œ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜๊ฑด๋ฐใ…‹ใ…‹ใ…‹ ์ด์ œ ์กฐ๊ธˆ ๊ตฌ์กฐ๋ฅผ ์•Œ์•˜์œผ๋‹ˆ ๋ด๋ณธ๋‹ค

 

RNN์€ ์ด์ „ ๋งฅ๋ฝ์˜ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์ผ๋ช… ์ˆœํ™˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๋Š” "Feed Forward" ๋ฐฉ์‹์˜ ์‹ ๊ฒฝ๋ง๋ณด๋‹ค ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ํ•™์Šต์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ ๋˜์—ˆ๋‹ค. (์—ญ์ „ํŒŒ ๋•Œ๋ฌธ์— ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ํ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹Œ๋“ฏ? ๋งž๋Œ€..ใ…Ž)

ํ•˜์ง€๋งŒ RNN์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์žฅ๊ธฐ ์˜์กด ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ.

์ฆ‰ ์žฅ๊ธฐ ๊ธฐ์–ต์—๋Š” ์ทจ์•ฝํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•จ.

๋‚˜์ฒ˜๋Ÿผ ๊ธฐ์–ต๋ ฅ์ด ์ข‹์ง€ ์•Š์€ RNN ์นญ๊ตฌ

RNN ๋ชจ๋ธ์ด ์ด ์œ„์˜ ์˜ˆ์‹œ์˜ ์ •๋‹ต์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ๋Š” "to"๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์‹œ๊ฐ (๊ณ„์ธต)๊นŒ์ง€ ์ด์ „์˜ ๋งฅ๋ฝ๋“ค์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•จ. ์ฆ‰, ์ด์ „์˜ ๋ชจ๋“  ๋งฅ๋ฝ ์ •๋ณด๋ฅผ Output๊ฐ’ (h)์— ๋ณด๊ด€ํ•ด๋‘ฌ์•ผํ•จ 

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์™œ RNN์ด ์žฅ๊ธฐ ๊ธฐ์–ต์— ์ทจ์•ฝํ•œ์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด

์ •๋‹ต ๋ ˆ์ด๋ธ”๋กœ "TOM"์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•™์Šต์˜ ๊ด€์ ์—์„œ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. 

 

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์ •๋‹ต ๋ ˆ์ด๋ธ”์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์—ญ์ „ํŒŒ๋˜๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋ฉฐ, ๋นจ๊ฐ„์„ ์ด ๊ธฐ์šธ๊ธฐ์˜ ์ „ํŒŒ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ๊ณผ์ •์—์„œ ์ •๋‹ต ๋ ˆ์ด๋ธ”์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ธฐ์šธ๊ธฐ์˜ ํ๋ฆ„

์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๊ธฐ์šธ๊ธฐ๋Š” RNN ๊ณ„์ธต์˜ ๊ณผ๊ฑฐ ๋ฐฉํ–ฅ์œผ๋กœ ์ „๋‹ฌ๋˜๊ณ , 

์ด ๋•Œ "์˜๋ฏธ ์žˆ๋Š” ๊ธฐ์šธ๊ธฐ"๊ฐ€ ์ „๋‹ฌ๋˜์–ด์•ผ ์‹œ๊ฐ„ ๋ฐฉํ–ฅ์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์ œ๋Œ€๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Œ

์ฆ‰, ๊ณผ๊ฑฐ๋กœ ์ „ํŒŒ๋˜๋Š” ์€๋‹‰๊ฐ’(Hidden state)์— ๋Œ€ํ•œ ๊ธฐ์šธ๊ธฐ์— ํ•™์Šตํ•ด์•ผ ํ•  ์˜๋ฏธ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๊ณ , ๊ทธ๊ฒƒ์ด ๊ณผ๊ฑฐ๋กœ ์ž˜ ์ „๋‹ฌ๋˜์–ด์•ผ ์žฅ๊ธฐ ์˜์กด ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง๊ณผ ๋™์ผํ•จ. 

 

๋งŒ์•ฝ ์ด ๊ธฐ์šธ๊ธฐ๊ฐ€ ์ค‘๊ฐ„์— ์†Œ์‹ค๋˜๊ฑฐ๋‚˜ ๊ณผ๋„ํ•˜๊ฒŒ ์ปค์ง„๋‹ค๋ฉด ๋ชจ๋ธ์€ ์žฅ๊ธฐ์˜์กด ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์—†์Œ (๊ธฐ์šธ๊ธฐ์— ๋ฌด์Šจ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” ๊ฑฐ์ž„..?? -> ํ•™์Šตํ•ด์•ผํ•  ์˜๋ฏธ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ์Œ. ๊ทธ๋Ÿฌ๋‹ˆ๊น ์ •๋ณด๊ฐ€ ์ˆซ์ž๋กœ ํ‘œํ˜„๋˜์–ด ์žˆ๊ณ  ์ด๋Ÿฌํ•œ ๊ทœ์น™์ด ๋ฐ˜์˜์ด ๋œ ๊ฒƒ์ด ๊ธฐ์šธ๊ธฐ๋ผ๋Š” ๊ฒƒ์ด ๋งž๋Š”๊ฑด๊ฐ•..???)

๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํ•œ RNN ๊ณ„์ธต์—์„œ๋Š” ์‹œ๊ฐ„์„ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ๊ธฐ์šธ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ฑฐ๋‚˜(๊ธฐ์šธ๊ธฐ ์†Œ์‹ค) ํ˜น์€ ์ปค์ง€๋Š” ๋ฌธ์ œ (๊ธฐ์šธ๊ธฐ ํญ์ฃผ)๊ฐ€ ๋ฐœ์ƒํ•จ.

 

RNN์˜ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ (Gradient Vanishing)

์•„๋ž˜๋Š” RNN์—์„œ ์€๋‹‰ ๊ฐ’(Hidden state)์˜ ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„์ด๊ณ  

๋นจ๊ฐ„ ์„ ์€ Back propagation (๊ธฐ์šธ๊ธฐ ์ „ํŒŒ) ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. 

๊ธฐ์šธ๊ธฐ ์ „ํŒŒ์‹œ tanh์—ฐ์‚ฐ๊ณผ MatMul(ํ–‰๋ ฌ๊ณฑ) ์—ฐ์‚ฐ์„ ํ†ต๊ณผํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ 

์—ฌ๊ธฐ์„œ tanh ํ•จ์ˆ˜์— ์ฃผ๋ชฉํ•ด๋ณด์ž

 

tanh ํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ ค๋ณด๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜์˜จ๋‹ค 

์œ„ ๊ทธ๋ž˜ํ”„์—์„œ ์‚ดํŽด๋ณด๋ฉด dy/dx์˜ ๊ทธ๋ž˜ํ”„๋Š” ๊ฐ’์ด 0~1์ด๊ณ , x๊ฐ€ 0์œผ๋กœ๋ถ€ํ„ฐ ๋ฉ€์–ด์งˆ์ˆ˜๋ก ์ž‘์•„์ง„๋‹ค

์ฆ‰, ์—ญ์ „ํŒŒ์—์„œ๋Š” ๊ธฐ์šธ๊ธฐ๊ฐ€ tanh ๋…ธ๋“œ๋ฅผ ์ง€๋‚  ๋•Œ๋งˆ๋‹ค ๊ฐ’์€ ๊ณ„์†ํ•ด์„œ ์ž‘์•„์ง„๋‹ค๋Š” ์˜๋ฏธ์ž„

๋”ฐ๋ผ์„œ ๊ณ„์ธต์ด ๋งŽ์„์ˆ˜๋ก tanhํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ํ†ต๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 

๊ธฐ์šธ๊ธฐ๋„ ๊ณ„์†ํ•ด์„œ ์ž‘์•„์ง€๊ฒŒ ๋˜๊ณ  ์†Œ์‹ค๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ 

 

 

RNN์˜ ๊ธฐ์šธ๊ธฐ ํญ์ฃผ ๋ฌธ์ œ (Gradient Exploding)

๊ธฐ์šธ๊ธฐ ํญ์ฃผ ๋ฌธ์ œ๋Š” MatMul(ํ–‰๋ ฌ๊ณฑ) ์—ฐ์‚ฐ์— ์˜ํ•ด ๋ฐœ์ƒํ•œ๋‹ค

๊ธฐ์šธ๊ธฐ ํญ์ฃผ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์œ„ํ•ด ํ–‰๋ ฌ ๊ณฑ ์—ฐ์‚ฐ์—๋งŒ ์ฃผ๋ชฉํ•˜์—ฌ ์—ญ์ „ํŒŒ ์‹œ ๊ธฐ์šธ๊ธฐ ๋ณ€ํ™”๋ฅผ ์‚ดํŽด๋ณด์ž

MatMul์˜ ์—ญ์ „ํŒŒ

์ƒ๋ฅ˜๋กœ๋ถ€ํ„ฐ dh๋ผ๋Š” ๊ธฐ์šธ๊ธฐ๊ฐ€ ํ˜๋Ÿฌ์˜จ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ,

Matmul ๋…ธ๋“œ์—์„œ์˜ ๊ธฐ์šธ๊ธฐ, ์—ญ์ „ํŒŒ๋Š” dhWh_t๋ผ๋Š” ํ–‰๋ ฌ ๊ณฒ์œผ๋กœ ๊ณ„์‚ฐ๋จ. 

๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๊ณ„์‚ฐ์„ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐ„ ํฌ๊ธฐ(๊ณ„์ธต ํฌ๊ธฐ) ๋งŒํผ ๋ฐ˜๋ณตํ•จ

 

์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•  ์ ์€ ์ด ํ–‰๋ ฌ ๊ณฑ์…ˆ์—์„œ๋Š” 

๋งค๋ฒˆ ๋˜‘๊ฐ™์€ ๊ฐ€์ค‘์น˜๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ

ํ•ด๋‹น ๊ฐ€์ค‘์น˜์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜๋„ ๊ฐ์†Œํ•  ์ˆ˜๋„ ์žˆ์Œ  (๋จผ์†”) 

 

์ด์— ๋Œ€ํ•œ ๋Œ€์ฑ…

- ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ ํ•ด๊ฒฐ

: ๊ธฐ์กด์˜ RNN์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด 

'๊ฒŒ์ดํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ RNN'์ด๋ฉฐ ๋Œ€ํ‘œ์ ์œผ๋กœ LSTM๊ณผ GRU๊ฐ€ ์žˆ๋‹ค

 

- ๊ธฐ์šธ๊ธฐ ํญ์ฃผ ๋ฌธ์ œ์˜ ๋Œ€์ฑ…

: ๊ธฐ์šธ๊ธฐ ํญ์ฃผ์˜ ์ „ํ†ต์ ์ธ ๊ธฐ๋ฒ•์œผ๋กœ๋Š” ๊ธฐ์šธ๊ธฐ ํด๋ฆฌํ•‘ (Gradient Clipping)์ด๋ผ๋Š” ๊ธฐ๋ฒ•์ด ์žˆ์Œ

๋ง ๊ทธ๋Œ€๋กœ ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ์ž๋ฅด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ 

๊ธฐ์šธ๊ธฐ ํญ์ฃผ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๋‹จ์ˆœํžˆ ํŠน์ • ์ž„๊ณ„๊ฐ’์„ ๋„˜๋Š” ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ์ž˜๋ผ๋‚ด๊ฑฐ๋‚˜ ํŠน์ • ๋น„์œจ๋งŒํผ ๊ณฑํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž„ 

(์ •ํ™•ํžˆ ๋ฌด์Šจ ๋ฐฉ๋ฒ•์ธ์ง€ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณด๊ณ , ๋˜ํ•œ ์ „ํ†ต์ ์ธ ๊ธฐ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ ๋ณด๋‹ˆ๊น ๋‹ค๋ฅธ ๊ธฐ๋ฒ• ํ˜น์€ ๊ธฐ์šธ๊ธฐ ํญ์ฃผ ๋ฌธ์ œ์™€ ๊ด€ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•๋“ค์ด ๋‚˜์˜จ ๊ฒƒ ๊ฐ™์€๋ฐ ๊ทธ๊ฒŒ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ) 

 

https://chonchony.tistory.com/47

์ฐธ๊ณ ๋ผ๊ณ  ๋งํ•˜๊ณ  ๊ทธ๋ƒฅ ๋‹ค ๋ฒ ๊ปด๋ฒ„๋ฆฌ๊ธฐ..ใ…Ž 

 

๊ทธ๋ž˜๋„ ์กฐ๊ธˆ์€ ์ดํ•ด๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ.. ์ผ๋‹จ ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๊ณ 

๋‚ด์ผ ๋‹ค์‹œ ๋ณต์Šต ๋ฐ ๋ฐ‘์ค„ ์นœ ๋ถ€๋ถ„๋“ค ๋” ์ฐพ์•„๋ณด๊ฒ ์Œ