과적합 감지
이 연습에서는 원본 수어 알파벳 데이터셋에서 소수의 예시만 뽑은 작은 부분집합으로 작업해 보겠습니다. 작은 샘플에 매개변수가 많은 모델을 결합하면 일반적으로 과적합이 발생합니다. 즉, 모델이 여러 예시에 일반화되는 특징을 학습하기보다 각 예시의 정답(클래스)만 외워버리는 상태를 말해요.
검증 샘플의 손실이 학습 샘플의 손실보다 크게 나타나고, 더 학습할수록 검증 손실이 증가하는지 확인해 과적합을 감지하겠습니다. 샘플이 작고 학습률이 높으면 모델이 최적값으로 수렴하기 어렵습니다. 여기서는 옵티마이저의 학습률을 낮게 설정하여 과적합을 더 쉽게 식별할 수 있도록 하겠습니다.
keras는 tensorflow에서 임포트되어 있다는 점에 유의하세요.
이 연습은 강의의 일부입니다
Python으로 시작하는 TensorFlow
연습 안내
keras에서model이라는 순차 모델을 정의하세요.- 첫 번째 Dense 레이어를 노드 1024개,
relu활성화 함수, 입력 형태 (784,)로 추가하세요. - 학습률을 0.001로 설정하세요.
fit()연산을 전체 샘플을 50번 반복하고, 검증에는 샘플의 50%를 사용하도록 설정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)