[머신러닝 배우기] 4.머신러닝의 주요 개념 - 손실함수


손실함수

모델의 정확도

모델이 실제로 데이터를 바르게 표현했는지, 얼마나 예측이 정확한지를 수학적인 표현으로 알 수 있는 것이 손실함수이다. 사실 오차의 정도를 표현하는 식인데, 결국 오차의 정도가 작으면 정확한 식을 찾았다는 것이므로 정확도를 측정하는 식으로 알려져있다.

손실함수의 종류에는 크게 4가지가 있다. 산술 손실함수, 확률 손실함수, 랭킹 손실함수, 모델복잡도에 대한 손실함수.

산술 손실함수

모델로 산술값을 예측하는 경우 예측값과 실제 관측값의 차이를 산술적으로 계산하는 손실함수를 많이 사용한다. 크게 제곱 손실함수와 절댓값 손실함수가 있다. 제곱 손실함수와 절댓값 손실함수는 둘다 양수값을 만들기 위한 것이고, 제곱하면 차이가 좀더 명확히 보이고 후에 알아 볼 최적화 식과도 관련이 되어있어서 제곱 손실함수를 많이 사용하곤한다.

하지만 제곱 손실함수는 데이터가 멀리있는 경우 차이도 제곱이 되어버리므로 노이즈가 많이 낄 수 있다. 이런경우에는 절대값 손실함수를 사용하는 것이 바람직하다.

확률 손실함수

확률 손실함수는 모델이 예측할 확률을 최대화하는 방식을 계산한다. 보통 분류모델에 사용 되곤한다. 쉽게 이야기해 산술값을 모델링하는 회귀에는 산술 손실함수를 매칭하는 것이 좋고, 분류모델에는 확률 손실함수가 유용하다.

대표적으로 최대가능도추정(MLE)과 쿨백-라이블러 발산(KL-divergence)이 있다.

랭킹 손실함수

랭킹 손실함수는 산술이나 확률 손실함수처럼 결괏값에 대한 손실을 측정하지 않는다. 대신 결괏값의 순서가 맞는지를 판별한다. 랭킹 손실함수는 추천시스템이나 랭킹학습에서 많이 사용된다.

가장 유명한 방식으로는 순서가 맞는지 확인하는 방식과, 편집을 몇번을 해야하는지 확인하는 방식이 있다.

모델 복잡도와 관련된 손실함수

앞서 공부했던 정규화에서는 제약 조건을 걸어 모델 복잡도를 조절하는 것을 배웠다. 정규화처럼 모델 복잡도에 대한 손실함수를 이용해서 제약조건을 거는 효과를 낼 수 있다.

최적화

실제로 학습을 하는 방법

최적화는 손실함수를 이용해서 모델을 학습하는 방법이라고 할 수 있다. 손실함수의 결괏값을 최소화하는 모델의 인자를 찾는 것이 최적화인 것이다.

인자에 임의의 값을 넣어보면서 해볼 수 있지만, 보통은 수학적으로 최적의 값을 찾도록 한다. 쉽게 이야기해서 고등학교때 배웠던 함수의 최솟값, 최댓값을 찾는 것과 같다.




© 2019. by Moonan

Powered by Moonan