๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋”ฅ๋Ÿฌ๋‹ (17)

DATA101

[Deep Learning] RNN ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋… ์ดํ•ด

๐Ÿ“š ๋ชฉ์ฐจ 1. RNN ๊ฐœ๋… 2. RNN ์ˆ˜์‹ 3. RNN ์šฉ๋„ 1. RNN ๊ฐœ๋… Recurrent Neural Network(RNN)์€ ์ž์—ฐ์–ด ๋ฌธ์žฅ๊ณผ ๊ฐ™์ด ๋‹จ์–ด์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ(Sequential Data)๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‹ ๊ฒฝ๋ง์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ RNN์€ ๋‹จ์–ด์˜ ์–ด์ˆœ์— ๋”ฐ๋ผ ๋ฌธ์žฅ์˜ ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ  ์•ž์— ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์“ฐ์˜€๋Š”์ง€ ๊ธฐ์–ตํ•ด์•ผ ๋’ค์— ์˜ค๋Š” ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์ฃผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. RNN์€ Hidden Layer์˜ ๋…ธ๋“œ์—์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜(Activation Function)๋ฅผ ๊ฑฐ์ณ ๋‚˜์˜จ ๊ฒฐ๊ด๊ฐ’์„ Output Layer๋กœ ๋ณด๋‚ด๋ฉด์„œ ๋‹ค์‹œ ๋‹ค์Œ Hidden Layer ๋…ธ๋“œ ๊ณ„์‚ฐ์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ณด๋‚ด๋Š” ์‹ ๊ฒฝ๋ง์ž…๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ, ๊ฒฐ๊ด๊ฐ’์ด ๋‹ค์Œ Hidden Layer ๋…ธ๋“œ์˜..

[๋”ฅ๋Ÿฌ๋‹] Grid Search, Random Search, Bayesian Optimization

๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€์ธ Grid Search, Random Search, Bayesian Optimization์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. Grid Search 2. Random Search 3. Bayesian Optimization 1. Grid Search ๊ทธ๋ฆฌ๋“œ ์„œ์น˜(Grid Search)๋Š” ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉฐ ์ตœ์ ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ 1์ฒ˜๋Ÿผ ๊ฐ€๋กœ์ถ•์ด ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์ด๊ณ  ์„ธ๋กœ์ถ•์ด ๋ชฉํ‘œํ•จ์ˆ˜์ผ ๋•Œ, ๋ชฉํ‘œํ•จ์ˆ˜ ๊ฐ’์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๋“œ ์„œ์น˜๋Š” ํŠน์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ผ์ • ๊ฐ’๋งŒํผ ์ผ์ผ์ด ๋ณ€๊ฒฝํ•˜๋ฉฐ ์ถœ๋ ฅ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ..

[๋”ฅ๋Ÿฌ๋‹] ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค(Vanishing Gradient)์˜ ์˜๋ฏธ์™€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๐Ÿ“š ๋ชฉ์ฐจ1. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ์˜๋ฏธ2. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ์›์ธ3. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•1. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ์˜๋ฏธ๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ Layer๋ฅผ ๋งŽ์ด ์Œ“์„์ˆ˜๋ก ๋ฐ์ดํ„ฐ ํ‘œํ˜„๋ ฅ์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•™์Šต์ด ์ž˜ ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” Layer๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํ•™์Šต์ด ์ž˜ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค(Vanishing Gradient) ํ˜„์ƒ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์ด๋ž€ ์—ญ์ „ํŒŒ(Backpropagation) ๊ณผ์ •์—์„œ ์ถœ๋ ฅ์ธต์—์„œ ๋ฉ€์–ด์งˆ์ˆ˜๋ก Gradient ๊ฐ’์ด ๋งค์šฐ ์ž‘์•„์ง€๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ด๋Ÿฐ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ์š”? ์ด์–ด์ง€๋Š” ์„น์…˜์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. 2. ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ์›์ธ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค์˜ ๋ฐœ์ƒ ์›์ธ์€ ํ™œ์„ฑํ™” ํ•จ์ˆ˜(Activation Function)์˜ ๊ธฐ์šธ๊ธฐ์™€ ๊ด€๋ จ์ด ๊นŠ์Šต๋‹ˆ๋‹ค..

[๋”ฅ๋Ÿฌ๋‹] ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Gradient Descent) ์ข…๋ฅ˜

๐Ÿ“š ๋ชฉ์ฐจ 1. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• ๊ฐœ๋… 2. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• ์ข…๋ฅ˜ 2.1. ๋ฐฐ์น˜ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• 2.2. ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• 2.3. ๋ฏธ๋‹ˆ ๋ฐฐ์น˜ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• 1. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• ๊ฐœ๋… ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Gradient Descent)์ด๋ž€ ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ ํ™” ๋ฐฉ๋ฒ•(Optimizer) ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต ์‹œ ๋ชฉํ‘œ๋Š” ์˜ˆ์ธก๊ฐ’๊ณผ ์ •๋‹ต๊ฐ’ ๊ฐ„์˜ ์ฐจ์ด์ธ ์†์‹ค ํ•จ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”์‹œํ‚ค๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์†์‹ค ํ•จ์ˆ˜ ๊ฐ’์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ๊ฐ€์ค‘์น˜(weight) ํ˜น์€ ํŽธํ–ฅ(bias)์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์ตœ์ ์˜ ๊ฐ€์ค‘์น˜๋‚˜ ํŽธํ–ฅ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊นŒ์š”? ์ตœ์ ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ํŽธํ–ฅ์„ ์ฐพ๋Š” ๊ณผ์ • ์—ญ์‹œ ์ ˆ์ฐจ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ..

[๋”ฅ๋Ÿฌ๋‹] Epoch, Iteration, Batch size ๊ฐœ๋…

๐Ÿ“š ๋ชฉ์ฐจ 1. Batch Size 2. Iteration 3. Epoch 1. Batch Size Batch ํฌ๊ธฐ๋Š” ๋ชจ๋ธ ํ•™์Šต ์ค‘ parameter๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์ด ๋ฌธ์ œ ํ’€์ด๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Batch ํฌ๊ธฐ๋Š” ๋ช‡ ๊ฐœ์˜ ๋ฌธ์ œ๋ฅผ ํ•œ ๋ฒˆ์— ์ญ‰ ํ’€๊ณ  ์ฑ„์ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด 100๊ฐœ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๋•Œ, 20๊ฐœ์”ฉ ํ’€๊ณ  ์ฑ„์ ํ•œ๋‹ค๋ฉด Batch ํฌ๊ธฐ๋Š” 20์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์€ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์ฑ„์ ์„ ํ•˜๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฐ ์ด์œ ๋‚˜ ๋งž์ถ˜ ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•˜์ฃ . ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Batch ํฌ๊ธฐ๋งŒํผ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ ๊ฐ’๊ณผ ์‹ค์ œ ์ •๋‹ต ๊ฐ„์˜ ์˜ค์ฐจ(conf. ์†์‹คํ•จ์ˆ˜)๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ Optimizer๊ฐ€ parameter๋ฅผ..

[Deep Learning] ์ตœ์ ํ™”(Optimizer): (4) Adam

1. ๊ฐœ๋…Adaptive Moment Estimation(Adam)์€ ๋”ฅ๋Ÿฌ๋‹ ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ์จ Momentum๊ณผ RMSProp์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•™์Šต์˜ ๋ฐฉํ–ฅ๊ณผ ํฌ๊ธฐ(=Learning rate)๋ฅผ ๋ชจ๋‘ ๊ฐœ์„ ํ•œ ๊ธฐ๋ฒ•์œผ๋กœ ๋”ฅ๋Ÿฌ๋‹์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜์–ด "์˜ค๋˜" ์ตœ์ ํ™” ๊ธฐ๋ฒ•์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” RAdam, AdamW๊ณผ ๊ฐ™์ด ๋”์šฑ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ด ์ œ์•ˆ๋˜์—ˆ์ง€๋งŒ, ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ ์ „๋ฐ˜์„ ๊ณต๋ถ€ํ•˜๋Š” ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ Adam์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.2. ์ˆ˜์‹์ˆ˜์‹๊ณผ ํ•จ๊ป˜ Adam์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $$ m_{t} = \beta_{1} m_{t-1} + (1 - \beta_{1}) \nabla f(x_{t-1}) $$$$ g_{t} = \beta_{..

[Deep Learning] ์ตœ์ ํ™”(Optimizer): (3) RMSProp

1. ๊ฐœ๋…RMSProp๋Š” ๋”ฅ๋Ÿฌ๋‹ ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ์จ Root Mean Sqaure Propagation์˜ ์•ฝ์ž๋กœ, ์•Œ์— ์—์Šคํ”„๋กญ(R.M.S.Prop)์ด๋ผ๊ณ  ์ฝ์Šต๋‹ˆ๋‹ค.โœ‹๋“ฑ์žฅ๋ฐฐ๊ฒฝ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ AdaGrad๋Š” ํ•™์Šต์ด ์ง„ํ–‰๋  ๋•Œ ํ•™์Šต๋ฅ (Learning rate)์ด ๊พธ์ค€ํžˆ ๊ฐ์†Œํ•˜๋‹ค ๋‚˜์ค‘์—๋Š” \(0\)์œผ๋กœ ์ˆ˜๋ ดํ•˜์—ฌ ํ•™์Šต์ด ๋” ์ด์ƒ ์ง„ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. RMSProp์€ ์ด๋Ÿฌํ•œ ํ•œ๊ณ„์ ์„ ๋ณด์™„ํ•œ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์œผ๋กœ์จ ์ œํ”„๋ฆฌ ํžŒํŠผ ๊ต์ˆ˜๊ฐ€ Coursea ๊ฐ•์˜ ์ค‘์— ๋ฐœํ‘œํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.๐Ÿ›  ์›๋ฆฌRMSProp์€ AdaGrad์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณ€์ˆ˜(feature)๋ณ„๋กœ ํ•™์Šต๋ฅ ์„ ์กฐ์ ˆํ•˜๋˜ ๊ธฐ์šธ๊ธฐ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ time step์—์„œ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋‹จ์ˆœํžˆ ๊ฐ™์€ ๋น„์œจ๋กœ ๋ˆ„์ ํ•˜์ง€ ์•Š๊ณ  ์ง€์ˆ˜์ด๋™..