더북(TheBook)

5.4.1 손실

우리가 겪을 손실이란 무엇일까요? 이를 알아보려면, 먼저 우리가 만든 모델이 단일 사례를 잘못 예측했을 때의 결과를 정량화할 수 있는 손실 함수를 만들어야 합니다. 그리고 이 손실 함수를 이용해서 모델이 전체 훈련 세트를 얼마나 잘 처리하는지 측정하는 훈련 손실 함수를 만듭니다. 기술 용어로는 경험적 손실(empirical loss)이라고 합니다. 경험적이라는 표현은 ‘관측한’이라는 뜻이므로, 경험적 손실은 관측한 데이터에 기반한 손실입니다. 훈련 손실은 개별 훈련 사례의 손실에 대한 총합입니다. 코드로는 다음과 같이 구현합니다.

 

In [12]:

def training_loss(loss, model, training_data):
    '모델과 전체 학습 데이터를 이용한 학습 손실의 총합'
    return sum(loss(model.predict(x.reshape(1, -1)), y) for x, y in training_data)

def squared_error(prediction, actual):
    '개별 사례에 대한 오차 제곱'
    return (prediction - actual)**2

# 다음과 같이 사용합니다
# my_training_loss = training_loss(squared_error, model, training_data)

이를 수학적으로 표현하면 다음과 같습니다.

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