250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Deep Learning] ๋ฐฐ์น˜ ์ •๊ทœํ™” (Batch Normalization, BN) ๋ณธ๋ฌธ

๐Ÿง  Deep Learning

[Deep Learning] ๋ฐฐ์น˜ ์ •๊ทœํ™” (Batch Normalization, BN)

ใ…… ใ…œ ใ…” ใ…‡ 2022. 12. 9. 23:03
728x90
๊ธฐ์กด์˜ Gradient Vanishing, Exploding ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒˆ๋กœ์šด ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ
-> ํ›ˆ๋ จํ•˜๋Š” ๋™์•ˆ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฆฌ๋ž€ ๋ณด์žฅ โŒ
์ด์— 2015๋…„ ์„ธ๋ฅด๊ฒŒ์ด ์ด์˜คํŽ˜์™€ ์น˜๋ฆฌ์Šˆํ‹ฐ์–ธ ์„ธ๊ฒŒ์ง€๊ฐ€ ๋ฐฐ์น˜์ •๊ทœํ™” ๊ธฐ๋ฒ• ์ œ์•ˆ

 

- Batch Normalization

- Batch : ์‹ ๊ฒฝ๋ง ํ•™์Šต ์‹œ ๋ณดํ†ต ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์œ„

- Batch Normalization : ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ์ •๊ทœํ™”ํ•จ

  • ๊ฐ ์ธต์—์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์ „์ด๋‚˜ ํ›„์— ๋ชจ๋ธ์— ์—ฐ์‚ฐ์„ ํ•˜๋‚˜ ์ถ”๊ฐ€
  • ์ด ์—ฐ์‚ฐ์€ ๋‹จ์ˆœํ•˜๊ฒŒ ์ž…๋ ฅ์„ ์›์ ์— ๋งž์ถ”๊ณ  ์ •๊ทœํ™”ํ•œ ๋‹ค์Œ, ๊ฐ ์ธต์—์„œ ๋‘ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฒฐ๊ด๊ฐ’์˜ ์Šค์ผ€์ผ์„ ์กฐ์ •ํ•˜๊ณ  ์ด๋™์‹œํ‚ด
  • ์‹ ๊ฒฝ๋ง์˜ ์ฒซ ๋ฒˆ์งธ ์ธต์œผ๋กœ ๋ฐฐ์น˜ ์ •๊ทœํ™”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ›ˆ๋ จ ์„ธํŠธ๋ฅผ ํ‘œ์ค€ํ™”ํ•  ํ•„์š” ์—†์Œ
  • ํ›ˆ๋ จํ•˜๋Š” ๋™์•ˆ ๋ฐฐ์น˜ ์ •๊ทœํ™”๋Š” ์ž…๋ ฅ์„ ์ •๊ทœํ™”ํ•œ ๋‹ค์Œ ์Šค์ผ€์ผ์„ ์กฐ์ •ํ•˜๊ณ  ์ด๋™ ์‹œํ‚ด

 

์ฆ‰ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์›์ ์— ๋งž์ถ”๊ณ  ์ •๊ทœํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ‰๊ท ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ์ถ”์ •ํ•ด์•ผ ํ•จ

 

 

 

 

 

 

 

๋ฐฐ์น˜ ์ •๊ทœํ™”์˜ ์žฅ์ 

1. ํ•™์Šต ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
2. ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐํ™”์— ๋Œ€ํ•œ ๋ฏผ๊ฐ๋„๋ฅผ ๊ฐ์†Œ ์‹œํ‚ด (hyper parameter์˜ ์„ค์ •์ด ์ข€ ๋” ์ž์œ ๋กœ์›Œ ์ง)
3. ๋ชจ๋ธ์˜ ์ผ๋ฐ˜ํ™”(regularization) ํšจ๊ณผ

 

 

 

 

 

์ผ€๋ผ์Šค๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฐ์น˜ ์ •๊ทœํ™” ์˜ˆ์‹œ

model = tf.keras.Sequential([
    keras.layers.Flatten(input_shape=[28,28]),
    keras.layers.BatchNormalization(),
    keras.layers.Dense(300, kernel_initializer='he_normal', use_bias=False),
    keras.layers.BatchNormalization(),
    keras.layers.Activation('relu'),
    keras.layers.Dense(100, kernel_initializer='he_normal', use_bias=False),
    keras.layers.BatchNormalization(),
    keras.layers.Activation('relu'),
    keras.layers.Dense(10,activation='softmax')
])
728x90
Comments