더북(TheBook)

1.5.1.2 모델: 레이어의 집합

모델은 레이어의 집합이며, 레이어가 케라스의 원자라면 모델은 분자라고 할 수 있다. 케라스에서는 Sequential 모델을 주로 사용한다. Sequential 모델은 한 레이어에 다른 레이어를 연결해 일렬로 나란히 쌓을 수 있다. 이처럼 간단한 아키텍처 덕분에 수학 원리에 신경 쓰지 않고도 충분히 신경망 모델을 설계할 수 있다. 일반적으로 신경망을 만들 때 연결된 레이어의 차원을 잘 맞춰야 하지만, 케라스는 이를 자동으로 수행한다.

모델 설계를 마치면 케라스의 compile 메서드를 사용해 훈련 과정을 설정한다. compile 메서드는 다양한 매개변수를 받는데, 그중 옵티마이저와 손실 함수가 가장 중요하다.

 

1.5.1.3 손실 함수: 신경망의 오차 지표

앞서 1.3.3.2절에서도 손실 함수를 정의해 예측 결과가 얼마나 좋은지(즉, 예측이 얼마나 틀렸는지)를 평가했다. 당면한 문제에 따라 적절한 손실 함수가 달라진다. 케라스는 다양한 손실 함수를 제공하며, mean_squared_error, categorical_crossentropy, binary_crossentropy를 가장 널리 사용한다.

일반적으로 올바른 손실 함수를 선택하는 방법은 다음과 같다.

회귀 문제에는 mean_squared_error를 사용한다.

다중 클래스 분류 문제에는 categorical_crossentropy를 사용한다.

이진 클래스 분류 문제에는 binary_crossentropy를 사용한다.

Note ≡

간혹 케라스의 내장 손실 함수를 사용할 수 없는 경우도 있다. 이 경우 파이썬의 커스텀 함수를 사용해 손실 함수를 직접 정의하고 케라스의 compile 메서드에 전달할 수 있다.

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