최적화 매개변수 바꾸기
이제 직접 최적화를 실습해 볼 시간이에요. 아주 낮은 learning rate, 아주 높은 learning rate, 그리고 “적당한” learning rate로 모델을 각각 최적화해 보세요. 이 연습을 실행한 뒤 결과를 살펴보고, 손실 함수 값이 낮을수록 좋다는 점을 기억하세요.
이 연습에서는 이전의 분류 모델(타이타닉에서 누가 생존했는지 예측)의 predictors와 target 값을 미리 불러왔어요. learning rate를 바꿀 때마다 공정하게 비교하려면, 매번 최적화를 처음부터 다시 시작해야 해요. 그래서 최적화되지 않은 새 모델을 만들어 주는 get_new_model() 함수를 준비해 두었어요.
이 연습은 강의의 일부입니다
Python으로 시작하는 Deep Learning
연습 안내
tensorflow.keras.optimizers에서SGD를 import 하세요.- 최적화에 사용할 learning rate 목록
lr_to_test를 만드세요. 값은.000001,0.01,1이어야 합니다. for루프로lr_to_test를 순회하면서:get_new_model()함수를 사용해 새롭고 아직 최적화되지 않은 모델을 만드세요.- 키워드 인수
lr=lr로SGD()생성자를 호출해my_optimizer라는 optimizer를 만드세요. - 모델을 컴파일하세요. 위에서 만든 SGD 객체를
optimizer매개변수로 설정하고, 이 문제는 분류이므로loss는'categorical_crossentropy'로 지정하세요. predictors와target을 사용해 모델을 학습(fit)하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____