๊ธฐ์ดˆ/์ธ๊ณต์ง€๋Šฅ

ํ•™์Šต๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์ˆ ๋“ค

James Hwang๐Ÿ˜Ž 2021. 9. 10. 00:20
๐Ÿ’ก 'Deep Learning from Scratch'๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ

1. ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’(Initial value)

  ์‹ ๊ฒฝ๋ง์˜ ํ•™์Šต์—์„œ ํŠนํžˆ๋‚˜ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์„ ๋ฌด์—‡์œผ๋กœ ์„ค์ •ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์‹ ๊ฒฝ๋ง ํ•™์Šต์˜ ์„ฑํŒจ๊ฐ€ ๊ฐˆ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

1.1 ์ดˆ๊นƒ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •

  ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์„ ๋ชจ๋‘ 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, ์˜ฌ๋ฐ”๋ฅธ ํ•™์Šต์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜๊ฐ€ ๋ชจ๋‘ 0์ผ ๊ฒฝ์šฐ, ์ˆœ์ „ํŒŒ์‹œ ๊ฐ™์€ ๊ฐ’๋“ค์ด ๋‹ค์Œ์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•(back-propagation)์—์„œ ๋ชจ๋“  ๊ฐ€์ค‘์น˜์˜ ๊ฐ’์ด ๋™์ผํ•˜๊ฒŒ ๊ฐฑ์‹ ๋˜๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ€์ค‘์น˜๊ฐ€ ๊ณ ๋ฅด๊ฒŒ ๋˜์–ด๋ฒ„๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ดˆ๊นƒ๊ฐ’์€ ๋ฌด์ž‘์œ„๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1.2 ์€๋‹‰์ธต(Hidden layer)์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ

  1.2์ ˆ์—์„œ๋Š” ๊ฐ€์ค‘์น˜์˜ ์ดˆ๊นƒ๊ฐ’์— ๋”ฐ๋ผ ์€๋‹‰์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ์œ„ํ•˜์—ฌ 5๊ฐœ์˜ ์ธต์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ์ธต์˜ ๋…ธ๋“œ๊ฐ€ 100๊ฐœ์”ฉ์ธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์— 1000๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœ๋ถ„ํฌ(normal distribution)๋กœ ๋ฌด์ž‘์œ„ ํ•˜๊ฒŒ ์ƒ์„ฑํ•˜์—ฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ™œ์„ฑํ™” ํ•จ์ˆ˜(activation function)๋กœ๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ(Sigmoid) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  ์šฐ์„  ๊ฐ€์ค‘์น˜์˜ ๋ถ„ํฌ์— ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ 1์ธ ์ •๊ทœ๋ถ„ํฌ๋ฅผ ์ด์šฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ฐ์ดํ„ฐ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 1. ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ(ํ‘œ์ค€ํŽธ์ฐจ 1์ธ ์ •๊ทœ๋ถ„ํฌ ์ด์šฉ)

  ๊ทธ๋ฆผ 1์—์„œ ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’๋“ค์ด 0๊ณผ 1์— ์น˜์šฐ์ณ ๋ถ„ํฌํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๊ฐ€ 0๊ณผ 1์— ์น˜์šฐ์ณ ๋ถ„ํฌํ•˜๊ฒŒ ๋˜๋ฉด ์—ญ์ „ํŒŒ์˜ ๊ธฐ์šธ๊ธฐ ๊ฐ’์ด ์ ์  ์ž‘์•„์ง€๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค(vanishing gradient)๋กœ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ 0.01๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์‹คํ—˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 2. ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ(ํ‘œ์ค€ํŽธ์ฐจ 0.01์ธ ์ •๊ทœ๋ถ„ํฌ ์ด์šฉ)

  ๊ทธ๋ฆผ 2๋Š” ํ™œ์„ฑํ™”๊ฐ’๋“ค์ด 0.5 ๋ถ€๊ทผ์— ์ง‘์ค‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋กœ๋Š” ์ด์–ด์ง€์ง€ ์•Š๊ฒ ์ง€๋งŒ, ํ™œ์„ฑํ™”๊ฐ’์ด ์น˜์šฐ์ณค๋‹ค๋Š” ๊ฒƒ์€ ํ‘œํ˜„๋ ฅ์„ ์ œํ•œํ•œ๋‹ค๋Š” ์ ์—์„œ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๊ฐ€ ๊ฑฐ์˜ ๊ฐ™์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•œ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง„๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

1.3 Xavier ์ดˆ๊นƒ๊ฐ’(Xavier initialization)

  ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ ReLU๋ฅผ ์ œ์™ธํ•œ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜์™€ Tanh ๊ฐ™์€ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Xavier ์ดˆ๊นƒ๊ฐ’์€ ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’์„ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ๋ถ„ํฌ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ๊ฐ€์ค‘์น˜์˜ ์ ์ ˆํ•œ ๋ถ„ํฌ๋ฅผ ์ฐพ๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Xavier ์ดˆ๊นƒ๊ฐ’์€ ์•ž ๊ณ„์ธต์˜ ๋…ธ๋“œ๊ฐ€ $ n $๊ฐœ๋ผ๋ฉด $ \frac{1}{\sqrt{n}} $์ธ ๋ถ„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋„์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ W_{i, j} \sim N \left(0, \frac{1}{\sqrt{n}} \right) $$

  • $ N $ : ์ •๊ทœ ๋ถ„ํฌ
  • $ n $ : ์ด์ „ ๊ณ„์ธต์˜ ๋…ธ๋“œ ์ˆ˜

  Xavier ์ดˆ๊นƒ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด, ์•ž ์ธต์— ๋…ธ๋“œ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๋Œ€์ƒ ๋…ธ๋“œ์˜ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฐ€์ค‘์น˜๊ฐ€ ์ข๊ฒŒ ํผ์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 3. ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ(Xavier ์ดˆ๊นƒ๊ฐ’ ์ ์šฉ)

  ๊ทธ๋ฆผ 3์„ ๋ณด๋ฉด ์ธต์ด ๊นŠ์–ด์ง€๋ฉด์„œ ํ˜•ํƒœ๊ฐ€ ๋‹ค์†Œ ์ผ๊ทธ๋Ÿฌ์ง€์ง€๋งŒ, ์•ž์—์„œ ๋ณธ ๋ฐฉ์‹๋“ค๋ณด๋‹ค๋Š” ํ™•์‹คํžˆ ๋„“๊ฒŒ ๋ถ„ํฌํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ์ธต์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ๋‹นํžˆ ํผ์ ธ ์žˆ์–ด, ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜์˜ ํ‘œํ˜„๋ ฅ๋„ ์ œํ•œ๋ฐ›์ง€ ์•Š๊ณ  ํ•™์Šต์ด ํšจ์œจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ทธ๋Ÿฌ์ง„ ํ˜•ํƒœ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ Tanh๋กœ ๋ฐ”๊พธ๋ฉด ๋ฉ๋‹ˆ๋‹ค. Tanh๋ฅผ ์ ์šฉํ•œ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 4. ๊ฐ ์ธต์—์„œ Tanh๋ฅผ ์ด์šฉํ•œ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ(Xavier ์ดˆ๊นƒ๊ฐ’ ์ ์šฉ)

1.4 He ์ดˆ๊นƒ๊ฐ’(He initialization)

  ํ™œ์„ฑํ™” ํ•จ์ˆ˜์— ReLU๋ฅผ ์ด์šฉํ•  ๊ฒฝ์šฐ, ReLU์— ํŠนํ™”๋œ ์ดˆ๊นƒ๊ฐ’์„ ์ด์šฉํ•˜๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ํŠนํ™”๋œ ์ดˆ๊นƒ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ He ์ดˆ๊นƒ๊ฐ’์ž…๋‹ˆ๋‹ค. He ์ดˆ๊นƒ๊ฐ’์€ ์•ž ๊ณ„์ธต์˜ ๋…ธ๋“œ๊ฐ€ $ n $๊ฐœ์ผ ๋•Œ, ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ $ \sqrt{\frac{2}{n}} $์ธ ์ •๊ทœ๋ถ„ํฌ๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ W_{i, j} \sim N \left(0, \sqrt{\frac{2}{n}} \right) $$

  ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ ReLU๋ฅผ ์ด์šฉํ•œ ๊ฒฝ์šฐ์˜ ํ™œ์„ฑํ™”๊ฐ’ ๋ถ„ํฌ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, Xavier ์ดˆ๊นƒ๊ฐ’์— ReLU๋ฅผ ์ ์šฉํ•œ ๊ฒฝ์šฐ์™€๋„ ๋น„๊ตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ๋นˆ๋„์ˆ˜๊ฐ€ 7000์ด ๋„˜๋Š” ๋ถ€๋ถ„์€ ์‹œ๊ฐํ™”์—์„œ ์ œ์™ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 5. Xavier ์ดˆ๊ธฐ๊ฐ’์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ
๊ทธ๋ฆผ 6. He ์ดˆ๊ธฐ๊ฐ’์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

  Xavier ์ดˆ๊นƒ๊ฐ’ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ์ธต์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก 0์œผ๋กœ ์น˜์šฐ์นœ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ธต์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก ํ™œ์„ฑํ™”๊ฐ’๋“ค์˜ ์น˜์šฐ์นจ์ด ์ปค์ง€๊ณ , ์ด์— ๋”ฐ๋ผ ํ•™์Šตํ•  ๋•Œ ๊ธฐ์šธ๊ธฐ ์†Œ์‹ค ๋ฌธ์ œ๋กœ ์ด์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, He ์ดˆ๊นƒ๊ฐ’์€ ๋ชจ๋“  ์ธต์—์„œ ๊ท ์ผํ•˜๊ฒŒ ๋ถ„ํฌํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ธต์ด ๊นŠ์–ด์ง€๋”๋ผ๋„ ๋ถ„ํฌ๊ฐ€ ๊ท ์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ญ์ „ํŒŒ์—์„œ๋„ ์ ์ ˆํ•œ ๊ฐ’์ด ๋‚˜์˜ฌ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2. ๋ฐฐ์น˜ ์ •๊ทœํ™”(Batch normalization)

  ๋ฐฐ์น˜ ์ •๊ทœํ™”๋Š” 2015๋…„์— ์ œ์•ˆ๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ์ •๊ทœํ™”๊ฐ€ ์ฃผ๋ชฉ์„ ๋ฐ›์•˜๋˜ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

  1. ํ•™์Šต ์†๋„์˜ ๊ฐœ์„ 
  2. ์ดˆ๊นƒ๊ฐ’์— ํฌ๊ฒŒ ์˜์กดํ•˜์ง€ ์•Š์Œ
  3. ๊ณผ์ ํ•ฉ์„ ์–ต์ œํ•จ

  ๋ฐฐ์น˜ ์ •๊ทœํ™”๋Š” ๊ฐ ์ธต์˜ ํ™œ์„ฑํ™”๊ฐ’์ด ์ ์ ˆํ•˜๊ฒŒ ๋ถ„ํฌ๋˜๋„๋ก ์กฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ๋งก์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์˜ ๊ทธ๋ฆผ 7๊ณผ ๊ฐ™์ด ์‹ ๊ฒฝ๋ง ์‚ฌ์ด์— '๋ฐฐ์น˜ ์ •๊ทœํ™” ๊ณ„์ธต(batch normalization layer)'์„ ์‚ฝ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 7. ๋ฐฐ์น˜ ์ •๊ทœํ™”๊ฐ€ ์ ์šฉ๋œ ์‹ ๊ฒฝ๋ง ์˜ˆ์‹œ

  ๋ฐฐ์น˜ ์ •๊ทœํ™”๋Š” ํ•™์Šต์‹œ ๋ฏธ๋‹ˆ๋ฐฐ์น˜๋ฅผ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๊ฐ€ $ N(0,1) $์ด ๋˜๋„๋ก ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ \begin{aligned} \mu_B &\leftarrow \frac{1}{m} \sum_{i=1}^m{x_i}\\ \sigma^2 &\leftarrow \frac{1}{m}\sum_{i=1}^m{(x_i-\mu_B)^2}\\ \hat{x_i} &\leftarrow \frac{x_i-\mu_B}{\sqrt{\sigma_B^2 + \epsilon}} \end{aligned} $$

  ๋ฏธ๋‹ˆ๋ฐฐ์น˜ $ B = {x_1, x_2, ..., x_m} $์ด๋ผ๋Š” $ m $๊ฐœ์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์— ๋Œ€ํ•˜์—ฌ ํ‰๊ท  $ \mu_B $์™€ ๋ถ„์‚ฐ $ \sigma^2_B $์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ‰๊ท ์ด 0, ๋ถ„์‚ฐ์ด 1์ด ๋˜๊ฒŒ ์ •๊ทœํ™” ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์‹์—์„œ $ \epsilon $์€ 10e-7๊ณผ ๊ฐ™์€ ์ž‘์€ ๊ฐ’์œผ๋กœ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ผ์„ ๋ง‰๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  ์œ„ ์‹์€ ๋‹จ์ˆœํžˆ ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ $ B $๋ฅผ ํ‰๊ท  0, ๋ถ„์‚ฐ 1์ธ ๋ฐ์ดํ„ฐ $ \{\hat{x_1}, \hat{x_2}, ..., \hat{x_m} \} $๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์„ฑํ™” ํ•จ์ˆ˜์˜ ์•ž ํ˜น์€ ๋’ค์— ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๋œ ์น˜์šฐ์น˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฐฐ์น˜ ์ •๊ทœํ™” ๊ณ„์ธต๋งˆ๋‹ค ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํ™•๋Œ€(scale)์™€ ์ด๋™(shift) ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ y_i \leftarrow \gamma \hat{x_i}+\beta $$

  ์œ„ ์‹์—์„œ $ \gamma $๊ฐ€ ํ™•๋Œ€, $ \beta $๊ฐ€ ์ด๋™์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ๋‘ ๊ฐ’์€ ๊ฐ๊ฐ 1๊ณผ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ํ•™์Šตํ•˜๋ฉด์„œ ์ ํ•ฉํ•œ ๊ฐ’์œผ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.


3. ๊ณผ์ ํ•ฉ(Overfitting)

  ๊ธฐ๊ณ„ํ•™์Šต์—์„œ ๊ณผ์ ํ•ฉ์€ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ณผ์ ํ•ฉ์ด๋ž€ ์‹ ๊ฒฝ๋ง์ด ํ•™์Šต ๋ฐ์ดํ„ฐ์—๋งŒ ์ง€๋‚˜์น˜๊ฒŒ ์ ์‘(fitting)ํ•˜์—ฌ ๊ทธ ์™ธ์˜ ๋ฐ์ดํ„ฐ์—๋Š” ์ œ๋Œ€๋กœ ๋Œ€์‘ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฒ”์šฉ์„ฑ์„ ์ง€ํ–ฅํ•˜๋Š” ๊ธฐ๊ณ„ํ•™์Šต์˜ ํŠน์„ฑ๊ณผ ๋Œ€๋น„๋ฉ๋‹ˆ๋‹ค. ๊ณผ์ ํ•ฉ์€ ์ฃผ๋กœ ๋‹ค์Œ์˜ ๋‘ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  1. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๊ณ  ํ‘œํ˜„๋ ฅ์ด ๋†’์€ ๋ชจ๋ธ
  2. ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ์ ๊ฒŒ ์ด์šฉ๋œ ๋ชจ๋ธ

  ์•„๋ž˜์˜ ๊ทธ๋ฆผ 8์ฒ˜๋Ÿผ ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ์ •ํ™•๋„ ํฌ๊ฒŒ ๋ฒŒ์–ด์ง€๋Š” ๊ฒƒ์€ ํ•™์Šต ๋ฐ์ดํ„ฐ์—๋งŒ ์ ์‘ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์—๋Š” ์ œ๋Œ€๋กœ ๋Œ€์‘ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณผ์ ํ•ฉ์„ ์–ต์ œํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 8. ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•๋„[์ถœ์ฒ˜ : CS231N]

3.1 ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ(Weight Decay)

  ๊ณผ์ ํ•ฉ์„ ์–ต์ œํ•˜๊ธฐ ์œ„ํ•ด ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๊ณผ์ •์—์„œ ํฐ ๊ฐ€์ค‘์น˜์— ๋Œ€ํ•˜์—ฌ ๊ทธ์— ์ƒ์‘ํ•˜๋Š” ํŒจ๋„ํ‹ฐ๋ฅผ ๋ถ€๊ณผํ•จ์œผ๋กœ์จ ๊ณผ์ ํ•ฉ์„ ์–ต์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŒจ๋„ํ‹ฐ์˜ ๋ถ€๊ณผ๋ฅผ ์œ„ํ•ด ๊ฐ€์ค‘์น˜์— ๋Œ€ํ•œ norm์„ ์†์‹ค ํ•จ์ˆ˜์— ๋”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ norm์€ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋‚˜ ๊ธธ์ด๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 3.1์ ˆ์—์„œ๋Š” norm์˜ ๋Œ€ํ‘œ์ ์ธ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•๊ณผ ๋”๋ถˆ์–ด ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ๋ฅผ ์œ„ํ•œ ์ผ๋ฐ˜ํ™”(regularization) ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

- L1 Norm (Manhattan distance)

  norm์€ ์ ˆ๋Œ“๊ฐ’์„ ์ด์šฉํ•œ ๊ฑฐ๋ฆฌ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ d_1(\mathsf{p}, \mathsf{q})= \rVert \mathsf{p}-\mathsf{q} \rVert_1=\sum_{i=1}^n{|p_i-q_i|} $$

  • $ \mathsf{p} $ : ๋ฒกํ„ฐ $ \mathsf{p} =(p_1, p_2, ..., p_n) $
  • $ \mathsf{q} $ : ๋ฒกํ„ฐ $ \mathsf{q} =(q_1, q_2, ..., q_n) $

  L1 norm์€ ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฒกํ„ฐ ์‚ฌ์ด๋ฅผ ๋งจํ•ดํŠผ์—์„œ ํƒ์‹œ๋ฅผ ํƒ€๊ณ  ์ด๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€๊ฐ์„ ์œผ๋กœ ๊ฐ€๋กœ์ง€๋ฅด์ง€ ์•Š๊ณ  ์•„๋ž˜์˜ ๊ทธ๋ฆผ 9์—์„œ ํŒŒ๋ž€ ์„ ์ด๋‚˜ ์ดˆ๋ก์ƒ‰ ์„ ์ฒ˜๋Ÿผ ์ง์„ ์œผ๋กœ๋งŒ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 9. ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ ์˜ˆ์‹œ[์ถœ์ฒ˜ : ์œ„ํ‚คํ”ผ๋””์•„]

- L2 norm (Euclidean distance)

  L2 norm์€ ์œ ํด๋ฆฌ๋””์–ธ ๊ฑฐ๋ฆฌ(์ง์„  ๊ฑฐ๋ฆฌ)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ๋‘ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์‹์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ 9์—์„œ๋Š” ์ดˆ๋ก์ƒ‰ ์„ ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์œ ํด๋ฆฌ๋””์–ธ ๊ฑฐ๋ฆฌ์˜ ๊ณต์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$$ d_1(\mathsf{p}, \mathsf{q})= \rVert \mathsf{p}-\mathsf{q} \rVert_2 = \sqrt{\sum_{i=1}^n{(p_i-q_i)^2}} $$

  ์œ„ ๋‘๊ฐ€์ง€์˜ norm์„ ์ผ๋ฐ˜ํ™”(regularization)๋ฅผ ์œ„ํ•ด ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์•ž์„œ ๋งํ•œ ํ•™์Šต ๊ณผ์ •์—์„œ ํฐ ๊ฐ€์ค‘์น˜์— ์ƒ์‘ํ•˜๋Š” ํŽ˜๋„ํ‹ฐ๋ฅผ ๋ถ€๊ณผํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ norm์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ผ๋ฐ˜ํ™” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

- L1 regularization (Lasso regularization)

$$ Lasso\ cost = J(\theta) + \lambda \sum_{i=1}^n{|w_i|} $$

  • $ J(\theta) $ : ์†์‹ค ํ•จ์ˆ˜
  • $ \lambda $ : ์ผ๋ฐ˜ํ™” ๊ณ„์ˆ˜
  • $ w $ : ๊ฐ€์ค‘์น˜

  L1 regularization์€ Lasso regularization์ด๋ผ๊ณ ๋„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ์†์‹ค ํ•จ์ˆ˜์— ๊ฐ€์ค‘์น˜์˜ ํฌ๊ธฐ๊ฐ€ ํฌํ•จ๋˜๋ฉด์„œ ๊ฐ€์ค‘์น˜๊ฐ€ ๋„ˆ๋ฌด ํฌ์ง€ ์•Š์€ ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šตํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ $ \lambda $์˜ ๊ฒฝ์šฐ, ํ•™์Šต๋ฅ ๊ณผ ๊ฐ™์€ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋กœ 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์ผ๋ฐ˜ํ™”์˜ ํšจ๊ณผ๋Š” ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

  L1 norm์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด L2 regularization๋ณด๋‹ค ๋” ๊ฐ•๊ฑดํ•˜๋‹ค(robust)๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” L2 regularization์ด ์ œ๊ณฑ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ด์น˜(outlier)์— ๋Œ€ํ•œ ํŽ˜๋„ํ‹ฐ๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด L1 regularization์€ ์ ˆ๋Œ€๊ฐ’์„ ์ทจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฌ๊ณ ์„ฑ(robustness)
  ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์—์„œ ํŠน์ด์น˜์— ๋Œ€ํ•œ ์ €ํ•ญ์„ฑ์„ ์˜๋ฏธ. ๋ฐ์ดํ„ฐ์˜ ๊ทน๋‹จ๊ฐ’์„ ๋” ์ž˜ ๋ฌด์‹œํ• ์ˆ˜๋ก ๊ฐ•๊ฑดํ•œ ๋ชจ๋ธ.

- L2 regularization (Ridge regularization)

$$ Ridge\ cost = J(\theta) + \lambda \sum_{i=1}^n{w_i^2} $$

  L2 regularization์€ Ridge regularization์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ์†์‹ค ํ•จ์ˆ˜์— ๊ฐ€์ค‘์น˜์˜ ์ œ๊ณฑ์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.

  L2 regularization์€ ์—ฐ์‚ฐ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. L2 norm์˜ ํŠน์„ฑ์ƒ, ์œ ํด๋ฆฌ๋””์–ธ ๊ฑฐ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ์ตœ์ ํ•ด๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ L1 regularization์€ ์ ˆ๋Œ€๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ์ตœ์ ํ•ด๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ตœ์ ํ•ด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํ“จํŒ… ๋น„์šฉ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ๊ณผ ๋”๋ถˆ์–ด, L2 regularization์ด ์ •ํ™•ํ•œ ํ•˜๋‚˜์˜ ์ตœ์ ํ•ด๊ฐ€ ์•„๋‹Œ ๊ทผ์‚ฌ์น˜์— ์˜์กดํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

3.2 ๋“œ๋กญ์•„์›ƒ(Dropout)

  ๋“œ๋กญ์•„์›ƒ์€ ๋…ธ๋“œ๋ฅผ ์ž„์˜๋กœ ์‚ญ์ œํ•˜๋ฉด์„œ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๊ณผ์ •์—์„œ ์€๋‹‰์ธต์˜ ๋…ธ๋“œ๋ฅผ ์ถœ๋ ฅ ๋น„์œจ๋งŒํผ ๋ฌด์ž‘์œ„๋กœ ๊ณจ๋ผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ๋…ธ๋“œ๋Š” ์•„๋ž˜์˜ ๊ทธ๋ฆผ 10๊ณผ ๊ฐ™์ด ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์Šต ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ˜๋ฆด ๋•Œ๋งˆ๋‹ค ์‚ญ์ œํ•  ๋…ธ๋“œ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•˜์ง€๋งŒ, ์ถ”๋ก  ๊ณผ์ •์—์„œ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ถ”๋ก  ๋•Œ ๊ฐ ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์— ํ•™์Šต ๊ณผ์ •์—์„œ ์‚ญ์ œํ•˜์ง€ ์•Š์€ ๋น„์œจ์„ ๊ณฑํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  ๋“œ๋กญ์•„์›ƒ์€ ์•™์ƒ๋ธ” ํ•™์Šต(ensemble learning)๊ณผ ๋ฐ€์ ‘ํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋กญ์•„์›ƒ์ด ํ•™์Šต ๊ณผ์ •์—์„œ ๋…ธ๋“œ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์‚ญ์ œํ•˜๋Š” ํ–‰์œ„๊ฐ€ ๋งค๋ฒˆ ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ถ”๋ก  ๊ณผ์ •์—์„œ๋Š” ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์— ์‚ญ์ œํ•œ ๋น„์œจ์„ ๊ณฑํ•จ์œผ๋กœ์จ ์•™์ƒ๋ธ” ํ•™์Šต์—์„œ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์˜ ํ‰๊ท ์„ ๋‚ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋“œ๋กญ์•„์›ƒ์€ ์•™์ƒ๋ธ” ํ•™์Šต๊ณผ ์œ ์‚ฌํ•œ ํšจ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์—์„œ๋Š” ์‚ญ์ œํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ์˜ ๋น„์œจ์„ ๊ณฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ ์—ญ์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•™์ƒ๋ธ” ํ•™์Šต
  ๋…๋ฆฝ์ ์œผ๋กœ ํ•™์Šตํ•œ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ท  ๋‚ด์–ด ์ถ”๋ก ํ•˜๋Š” ๋ฐฉ์‹

  ๋“œ๋กญ์•„์›ƒ์„ ๊ตฌํ˜„ํ•œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋“œ๋กญ์•„์›ƒ์˜ ์›์น™๋Œ€๋กœ ์ถ”๋ก  ๊ณผ์ •์—์„œ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ๋…ธ๋“œ์˜ ๋น„์œจ์„ ๊ณฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

class Dropout:
    def __init__(self, ratio: float=0.5) -> np.array:
        self.ratio = ratio
        self.mask = None

    def foward(self, x, train_flg=True):
        if train_flg:
            self.mask = np.random.rand(*x.shape) > self.ratio

            return self.mask
        
        else:
            return x * (1.0 - self.ratio)
    
    def backward(self, dout: np.array):
        return dout * self.mask

์ฐธ๊ณ  ์ž๋ฃŒ

[1] A. Bilogur, "L1 Norms versus L2 Norms," https://www.kaggle.com/residentmario/l1-norms-versus-l2-norms

[2] CS231N, "Neural Networks Part 2: Setting up the Data and the Loss," https://cs231n.github.io/neural-networks-2/