더북(TheBook)

3.6.3 ‘컴파일’ 단계: 학습 과정 설정

모델 구조를 정의하고 난 후 다음 세 가지를 더 선택해야 합니다.

손실 함수(loss function)(목적 함수(objective function)): 훈련 과정에서 최소화할 값. 현재 작업에 대한 성공의 척도입니다.

옵티마이저(optimizer): 손실 함수를 기반으로 네트워크가 어떻게 업데이트될지 결정합니다. 특정 종류의 확률적 경사 하강법(SGD)으로 구현됩니다.

측정 지표(metric): 훈련과 검증 과정에서 모니터링할 성공의 척도입니다. 예를 들어 분류 정확도입니다. 손실과 달리 훈련은 측정 지표에 직접 최적화되지 않습니다. 따라서 측정 지표는 미분 가능하지 않아도 됩니다.

손실, 옵티마이저, 측정 지표를 선택했다면 모델에 내장된 compile()fit() 메서드를 사용하여 모델 훈련을 시작할 수 있습니다. 또는 사용자 정의 루프를 만들 수도 있습니다. 이에 대해서는 7장에서 다루겠습니다. 훨씬 할 일이 많거든요! 지금은 compile()fit() 메서드를 알아보겠습니다.

compile() 메서드는 훈련 과정을 설정합니다. 2장에서 신경망 예제를 맨 처음 만들 때 이미 보았습니다. 이 메서드의 매개변수는 optimizer, loss, metrics(리스트)입니다.

model = keras.Sequential([keras.layers.Dense(1)]) 
model.compile(optimizer="rmsprop", 
              loss="mean_squared_error", 
              metrics=["accuracy"]) 

선형 분류기를 정의합니다.

옵티마이저 이름을 지정합니다. 여기에서는 RMSprop입니다(대·소문자를 구분하지 않음).

손실 이름을 평균 제곱 오차로 지정합니다.

측정 자료를 리스트로 지정합니다. 여기에서는 정확도만 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.