[์ธ๊ณต์ง€๋Šฅ] RNN ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์™€ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง

2023. 4. 7. 11:33ใ†_Study/AI

728x90

RNN (Recurrent Neural Network) ๐Ÿ‡¸.•*¨*•¸.•*¨*•¸.•*¨*•¸.•*¨*•

ํ•ด๋‹น ์ž๋ฃŒ๋Š” ๊ฐ•์˜ ํ•™์Šต์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ์ด์™ธ์˜ ๋‚ด์šฉ์€ ๊ฒ€์ƒ‰ ๋ฐ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๋ฅผ ํ†ตํ•ด ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์˜ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

#AI #์ธ๊ณต์ง€๋Šฅ #๊ธฐ๊ณ„ํ•™์Šต๊ณผ์ธ์‹ #chatgpt #python #study


์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ

- ์‹œ๊ฐ„ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ, ์‹œ๊ฐ„ ์ถ•์„ ๋”ฐ๋ผ ์‹ ํ˜ธ๊ฐ€ ๋ณ€ํ•˜๋Š” ๋™์  ๋ฐ์ดํ„ฐ

- ๋‹จ์–ด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”

- ์ƒ˜ํ”Œ์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฆ„ (๊ธฐ๊ฐ„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. input data resolution ์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.)

- ๋‹จ์ˆœ ์ด๋ฏธ์ง€๋Š”, ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด์ง€,์ €์žฅํ•˜์ง€ ์•Š์ง€๋งŒ, ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋„ ์žˆ๋‹ค. ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 

 

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์‹ํ•˜๋Š” ๊ณ ์ „์ ์ธ ๋ชจ๋ธ

- ARIMA (Autoregressive integrated moving average)

- SARIMA (seasonal ARIMA)

- Prophet

 

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์‹ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ

- ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (RNN)

- LSTM : ์„ ๋ณ„ ๊ธฐ์–ต ๋Šฅ๋ ฅ์„ ๊ฐ–์ถฐ ์žฅ๊ธฐ ๋ฌธ๋งฅ ์ฒ˜๋ฆฌ์— ์œ ๋ฆฌ.

 

 

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”ํ•œ ํŠน์„ฑ

1. ์š”์†Œ์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

2. ์ƒ˜ํ”Œ์˜ ๊ธธ์ด๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

3. ๋ฌธ๋งฅ ์˜์กด์„ฑ

4. ๊ณ„์ ˆ์„ฑ

 

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ํ‘œํ˜„, ๊ฐ€๋ณ€๊ธธ์ด๊ณ  ๋ฒกํ„ฐ์˜ ๋ฒกํ„ฐ๋ฉฐ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„๊ฐ€๋Šฅ

 

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์€ ์œ ์—ฐํ•œ ๊ตฌ์กฐ๋ผ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์— ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋Œ€ํ‘œ์  ์‘์šฉ์€ ๋ฏธ๋ž˜ ์˜ˆ์ธก (Prediction ๋˜๋Š” forecasting)

ex) ๋‚ด์ผ ์ฃผ๊ฐ€ ์˜ˆ์ธก, ๋‚ด์ผ ๋‚ ์”จ ์˜ˆ์ธก, ์–ธ์–ด ๋ฒˆ์—ญ, ์Œ์„ฑ ์ธ์‹... ๋“ฑ

 

๋†์‚ฐ๋ฌผ ์œ ํ†ต์—…์ž๊ฐ€ 5๋…„ ๋™์•ˆ ๋งค์ผ ํŒ๋งค๋Ÿ‰์„ ๊ธฐ๋กํ–ˆ๋‹ค๋ฉด? -> t = 365*5 =1825

 

x๋ฅผ 3๊ฐœ ํ•˜๋‚˜์˜ sample์„ input์œผ๋กœ ๊ฐ€์ •. 

๋ฏธ๋ž˜์˜ ๊ฐ’์€ ์—†์ง€๋งŒ, ๊ณผ๊ฑฐ์˜ ๊ฐ’์„ ํ†ตํ•ด ์—ฐ์‚ฐํ•จ์œผ๋กœ์จ ๋ฏธ๋ž˜์˜ ๊ฐ’์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Œ์œผ๋กœ ์ „ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

 

์œˆ๋„์šฐ ๋‹จ์œ„๋กœ ์ž˜๋ผ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

 

์ƒ˜ํ”Œ ๊ฐœ์ˆ˜์™€ ์ƒ๊ด€์—†๋Š” ์žฌ๊ท€์ ์ธ ๋ชจ๋ธ

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ ๊ฒฝ๋ง์€ ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์„ ์•ฝ๊ฐ„ ๊ณ ์ณ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

 

u์™€ V๋„ ๋˜‘๊ฐ™์€๋ฐ W๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค.

 

t๊ฐ€ 10๊ฐœ ๋‹จ์–ด๋ผ๊ณ  ํ•ด๋ณด์ž. h hiddln layer๋กœ ๋“ค์–ด๊ฐ„ ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋ฉด w์„ ๊ณฑํ•œ๋‹ค์Œ์— ๋‘๋ฒˆ์งธ input๋„ ๊ฐ™์ด ๋“ค์–ด๊ฐ„๋‹ค. h๋Š” ์ฆ‰, 2๊ฐœ์˜ input์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด w๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? ๊ณ ์ •ํ•œ๋‹ค. w๋Š” ํ•ญ์ƒ ๋™์ผํ•˜๊ฒŒ ๊ณฑํ•œ๋‹ค. weight๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ U๋Š” ๋™์ผํ•˜๋‹ค.

 

 

 

output์€ ํ•ญ์ƒ ๋™์ผ

 

์ƒ˜ํ”Œ์˜ ๊ฐœ์ˆ˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ณ„๊ฐœ์˜ weight๋กœ ์„ค์ •ํ–ˆ๋‹ค๋ฉด U์˜ ๊ฐœ์ˆ˜๋„ ๋ชจ๋‘ ๋ณ„๊ฐœ๋กœ ์„ค์ •ํ–ˆ์–ดํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค. ex U1๊ฐ€ ๋ช‡๊ฐœ, U2๊ฐ€ ๋ช‡๊ฐœ, U3๊ฐ€ ๋ช‡๊ฐœ... ๋”ฐ๋ผ์„œ ์žฌ๊ท€์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ์ž๋™ ์ข…๋ฃŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๋ฒˆ ์žฌ๊ท€๊ณ„์‚ฐ์„ ํ• ๊ฑด์ง€๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. U์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ํ•ด์„œ ์—ฐ์‚ฐ์ด ๊ฐ„๋‹จํ•ด์กŒ๋‹ค.

 

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์˜ ํ•™์Šต

- ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์ ์€ {U,V,W}๋ฅผ ์•Œ์•„๋‚ด๋ฉฐ

- BPTT (back-propagation through time) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•œ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ธฐ๊ณ„ํ•™์Šต์„ ์ฐธ๊ณ ํ•˜๊ณ , time ์ธก๋ฉด๋„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ, ์‹œ๊ฐ„๋„ ๊ณ ๋ คํ•ด์•ผ๋งŒํ•˜๋Š”๊ฑฐ ๊นŒ์ง€๋งŒ ์ดํ•ดํ•œ๋‹ค.

 

 

 

RNN

: ๊ธฐ์–ต๋ ฅ์— ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

 

LSTM (ํ™•์žฅํŒ), ์„ ๋ณ„ ๊ธฐ์–ต ๋Šฅ๋ ฅ Long-Short-Term-Memory

 

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์˜ ๊ธฐ์–ต๋ ฅ ํ•œ๊ณ„

: ์€๋‹‰์ธต ์ƒํƒœ๋ฅผ ๋‹ค์Œ ์ˆœ๊ฐ„์œผ๋กœ ๋„˜๊ธฐ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ณผ๊ฑฐ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

: ํ•˜์ง€๋งŒ ์žฅ๊ธฐ ๋ฌธ๋งฅ ์˜์กด์„ฑ (๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์š”์†Œ๊ฐ€ ๋ฐ€์ ‘ํ•œ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํ˜„์ƒ)์„ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ํ•œ๊ณ„

: ๊ณ„์† ๋“ค์–ด์˜ค๋Š” ์ž…๋ ฅ์˜ ์˜ํ–ฅ์œผ๋กœ ๊ธฐ์–ต๋ ฅ ๊ฐํ‡ด

๋งจ ์ฒ˜์Œ์˜ ๋…ธ๋“œ์˜ ์˜ํ–ฅ์ด ์ ์  ์‚ฌ๋ผ์ง„๋‹ค.

 

์ค‘์š”ํ•œ ๋‚ด์šฉ์€ o๋Š” ์—ด๋ฆผ, ๊ธฐ์–ตํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋‚ด์šฉ์€ x๋Š” ๋‹ซํž˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

์‹ค์ œ๋กœ๋Š” ๊ฒŒ์ดํŠธ๋Š” 0~1์˜ ์‹ค์ˆ˜๊ฐ’์ด๋ฉฐ ์—ฌ๋‹ซ๋Š” ์ •๋„๊ฐ€ ๊ฐ€์ค‘์น˜๋กœ ํ‘œํ˜„๋˜๋ฉฐ ๊ฐ€์ค‘์น˜๋Š” ํ•™์Šต์œผ๋กœ ์•Œ์•„๋‚ธ๋‹ค.

 

์žฅ๊ธฐ ์˜์กด์„ฑ.

 

 

๋‹ค์–‘ํ•œ ๊ตฌ์กฐ ์„ค๊ณ„ ๊ฐ€๋Šฅ

 

์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฌธ๋งฅ์„ ์‚ดํ•„ ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์–‘๋ฐฉํ–ฅ LSTM์„ ์‚ฌ์šฉํ•œ๋‹ค.

red line : ๋ฏธ๋ž˜๋ถ€ํ„ฐ ๊ณผ๊ฑฐ๋กœ ๊ฐ€๊ฒŒ ๋ฐ˜๋Œ€๋กœ ๊ณ„์‚ฐ, ๊ทธ๋ž˜์„œ ๋‘๋ฒˆ์งธ layer๊ฐ€ ๋“ฑ์žฅ.

 

ex) ์ž˜ ๋‹ฌ๋ฆฌ๋Š” ์ด ์ฐจ...  / ๊ณ ์‚ฐ์ง€๋Œ€์—์„œ ์ƒ์ƒํ•œ ์ด ์ฐจ๋Š” ํ–ฅ๊ธฐ๊ฐ€ ์ข‹๋‹ค...... -> ์ฐจ tea? car? ๊ตฌ๋ถ„

 

 

์‘์šฉ ๋ฌธ์ œ์— ๋”ฐ๋ฅธ ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ

 

์ผ๋ถ€๋งŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. output์„ ํ•˜๋‚˜๋งŒ ์˜ˆ์ธกํ•˜๊ธฐ. ๋ฏธ๋ž˜๊ฐ’ ํ•˜๋‚˜๋งŒ ์˜ˆ์ธก ๋น„ํŠธ์ฝ”์ธ, ์ฃผ์‹๊ณผ ๊ฐ™์€ ๋‚ด์šฉ.

๊ทผ๋ฐ ์ข…๊ฐ€๋งŒ ์ค‘์š”ํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ณ ์ , ์ €์ ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ? ๋‘ ๊ฐœ ๋” ์ถœ๋ ฅํ•˜๊ธฐ.

์–ธ์–ด๋งˆ๋‹ค ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ? -> ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ถœ๋ ฅํ•˜๊ธฐ.

 

 

 

 

LSTM์œผ๋กœ ์‹œ๊ณ„์—ด ์˜ˆ์ธกํ•˜๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค์Šต

- ๋‹จ์ผ ์ฑ„๋„ : ์ข…๊ฐ€๋งŒ ๊ณ ๋ ค

- ๋‹ค์ค‘ ์ฑ„๋„ : ์ข…๊ฐ€, ์‹œ๊ฐ€, ๊ณ ๊ฐ€, ์ €๊ฐ€๋ฅด ๋ชจ๋‘ ๊ณ ๋ ค

 

 

์—‘์…€๋กœ ๋ฐ›์œผ๋ฉด, 1์ฐจ์›์ž„. train_sample์„ ํ•œ ๊ฐœ๋ฅผ ํ†ต์งธ๋กœ ๋„ฃ์œผ๋ฉด sample data๊ฐ€ 1๊ฐœ๋ฟ์ด๋ฏ€๋กœ window ์‚ฌ์ด์ฆˆ๋กœ ์ž๋ฅธ๋‹ค.

 

 

 

 

๋‹ฌ๋Ÿฌ, ์›์œผ๋กœ ํ–ˆ์„ ๋•Œ๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ณ€ํ• ๊นŒ? ๋ฐ์ดํ„ฐ ์Šค์ผ€์ผ(scale), ์ž๋ฆฟ์ˆ˜๋ฅผ ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด. ๊ฐ’์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋ ˆ์ด๋ธ” ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ ์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. ๋น„์œจ ์ž์ฒด๊ฐ€ ๋˜์–ด ๊ณ„์‚ฐํ•  ๋•Œ ์˜ค์ฐจ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

์„ฑ๋Šฅ ๊ธฐ์ค€

- ๋“ฑ๋ฝ ์ •ํ™•๋ฅ 

- ๋“ฑ๋ฝ์„ ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ๋งžํžˆ๋Š”์ง€ ์ธก์ •

- ๋งžํžŒ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „์ฒด ์ƒ˜ํ”Œ ์ˆ˜๋กœ ๋‚˜๋ˆˆ๋‹ค.

 

 

๋งŒ์•ฝ์— input์ด ์—ฌ๋Ÿฌ ๊ฐœ ์ธ๊ฒฝ์šฐ? -?