레이어의 초기화 방법을 다르게 설정 가능
default: GlorotUniform
kernel_initializer 매개변수 활용
클래스형과 함수형으로 모두 제공
클래스형
# 클래스 인스턴스 초기화
he_normal = tf.keras.initializers.HeNormal()
dense = tf.keras.layers.Dense(256, kernel_initializer=he_normal, activation='relu')
dense.get_config()['kernel_initializer']
함수형
dense = tf.keras.layers.Dense(256, kernel_initializer = 'he_normal',
activation = 'relu')
dense.get_config()['kernel_initializer']
Keras에서 지원하는 초기화 목록
Tensorflow Keras Layer는 기본적으로 규제를 적용하고 있지 x
모델을 구성하는 레이어마다 규제 적용 가능
→ kernel_regularizer에 규제 지정
딥러닝 모델의 가장 큰 난제가 바로 과대적합 문제임
딥러닝 모델의 층이 넓고 깊어질 때 모델은 훈련에 주어진 샘플에 과하게 적합하도록 학습하는 경향이 있음
⇒ 훈련 데이터셋에 너무 적응하여 검증 데이터셋이나 테스트 데이터셋에 대해 일반화된 성능을 갖지 못하는 문제
드롭아웃
모델의 과대적합 문제를 해결하기 위해 제안된 아이디어

노드의 일부 신호를 임의로 삭제하는 방법 → 모델이 학습하는 가중치 파라미터의 개수 감소
각 층에서 활성화 함수를 통과하기 전 mini batch의 scale을 정규화
다음 층으로 데이터가 전달되기 전에 스케일을 조정
→ 보다 안정적인 훈련 가능, 성능 향상

배치 정규화 층은 케라스에서 클래스 함수로 지원
클래스 인스턴스로 선언하여 하이퍼파라미터 값을 변경하여 적용할 수 있음
# LeakyReLU 기본 설정
tf.keras.layers.LeakyReLU()
# LeakyReLU, alpha = 0.2 로 변경
tf.keras.layers.LeakyReLU(alpha = 0.2)
수렴 속도 향상에 기여할 수 있음
