
471
12
장
텐서플로를 사용한 사용자 정의 모델과 훈련
텐서, 연산, 변수,
다양한 데이터
구조를 알아보았으므로 모델과 훈련 알고리즘을 커스터마이
징할 준비를 마쳤습니다!
12.3
사용자 정의 모델과 훈련 알고리즘
가장 간단하고 많이 사용하는 사용자 정의 손실 함수를 만들어봅시다.
12.3.1
사용자 정의 손실 함수
회귀 모델을 훈련하는 데 훈련 세트에 잡음 데이터가 조금 있다고 가정해봅시다. 물론 이상치
를 제거하거나 고쳐서 데이터셋을 수정해볼 수 있지만, 비효율적이고 잡음 데이터가 여전히 남
아 있을 것입니다. 이럴 때 어떤 손실 함수를 사용해야 할까요? 평균 제곱 오차는 큰 오차에 너
무 과한 벌칙을 가하기 때문에 정확하지 않은 모델이 만들어질 것입니다. 평균 절댓값 오차는
이상치에 관대해서 훈련이 수렴되기까지 시간이 걸립니다. 그리고 모델이 정밀하게 훈련되지
않을 것입니다. 이런 경우 평균 제곱 오차대신 후버
Huber
손실 (
10
장 참조 )을 사용하면 좋습니
다. 후버 손실은 아직 공식 케라스
API
에서 지원하지 않습니다.
tf
.
keras
에서는 지원하기는 하
지만 (
keras
.
losses
.
Huber
클래스를 사용하면 됩니다 ), 마치 없는 것처럼 생각하고 구현해
보겠습니다. 누워서 떡 먹기처럼 아주 쉽습니다! 레이블과 예측을 매개변수로 받는 함수를 만
들고 ...