[인공지능] 케라스 학습 기술 - 배치 정규화

참조


배치 정규화란?

  • 배치 정규화는 각 미니 배치의 레이어에 대한 입력을 표준화하는 매우 심층 신경망을 훈련하는 기술입니다.
  • 이는 학습 프로세스를 안정화하고 딥 네트워크를 훈련하는 데 필요한 훈련 시대의 수를 극적으로 줄이는 효과가 있습니다.

배치 정규화

  • 모델에 주입되는 샘플들을 균일하게 만드는 방법
  • 학습 후 새로운 데이터에 잘 일반화 할 수 있도록 도와줌
  • 데이터 전처리 단계에서 진행해도 되지만 정규화가 되어서 layer에 들어갔다는 보장이 없음
  • 주로 Dense 또는 Conv2D Layer 후, 활성화 함수 이전에 놓임
from tensorflow.keras.layers import BatchNormalization, Dense, Activation 
from tensorflow.keras.utils import plot_model
from tensorflow.keras.models import Sequential

model = Sequential()
model.add(Dense(32, input_shape=(28*28,), kernel_initializer='he_normal'))
model.add(BatchNormalization())
model.add(Activation('relu'))

model.summary()

plot_model(model, show_shapes=True)
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #
=================================================================
 dense (Dense)               (None, 32)                25120

 batch_normalization (BatchN  (None, 32)               128
 ormalization)

 activation (Activation)     (None, 32)                0

=================================================================
Total params: 25,248
Trainable params: 25,184
Non-trainable params: 64
_________________________________________________________________
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY