목적함수, 비용함수 그리고 손실함수

ParkJeongJoon·2022년 9월 10일
0

Machine Learning

목록 보기
8/13

비용함수에 대해 공부하기 전에, 목적함수와 비용함수, 손실함수 용어가
혼용되어 쓰이고 있다는 것을 알았고 더 조사해 본 결과 엄밀히 따지면 다르다는 것을 알게 되어 더 정리해 보고자 글을 쓰게 되었다.

  • 목적함수(Objective Function)
    목적 함수는 말그대로 어떠한 목적을 가지고 모델을 학습해 최적화하고자 하는 함수이다. 일반적으로 딥러닝에서는 경사 하강법(Gradient Descent) 방식을 사용하여 최적화하기 때문에 비용 함수가 바로 목적 함수가 된다. 하지만 MLE(Maximum Likelihood Estimate)와 같이 확률을 최대로 하는 방법을 사용할 경우에 감소하는 방식이 아닌 최대로 하는 방법을 할 때는 비용 함수가 아닌 목적 함수로 언급해야 한다. (출처: https://ok-lab.tistory.com/171)
    MLE가 정확히 기계학습과 무슨 관계가 있는지 모르겠지만 어떤 강의에서 언급된 것을 본 적이 있기 때문에, 이부분은 더 자세히 알아봐야겠다.

  • 비용함수(Cost Function)
    비용함수는 더 일반적이다. 어떤 모델의 페널티의 복잡성을 줄이는것(regularization*)과 트레이닝 셋에 전반적인 손실 함수의 총합이 될수도 있다.
    좀 더 자세히 설명하면 예측값과 실제값의 차이가 줄어들수록 더 우리는 많은 값들을 예측할 가능성이 늘어나는데 이 코스트 펑션은 그 차이를 표현하니까 코스트 펑션이 줄어들수록 더 정확한 예측이 가능하다. underfit은 트레이닝이 부족할때 나타난다. underfit은 high bias, high variance의 결과를 가져오는 경우가 많다. low bias, high variance인 overfit이 되어도 문제인데, 트레이닝 셋에만 맞는 값들이 예측되어 bias는 낮지만 실제 미래에 있을 값들이나 새로운 값들에는 맞지 않을 수 있기 때문에 주의해야한다. low bias, low variance인 코스트 펑션을 찾는것이 중요하다.
    에러함수에서 fit이 너무 되면 추가적으로 페널티를 줘서 overfitting도 막아주고 하는 함수를 튜닝하는 테크닉이라 생각하면 좋을 것 같다.

Mean Squared Error MSE(θ)=1N∑Ni=1(f(xi|θ)−yi)2
SVM cost function SVM(θ)=∥θ∥2+C∑Ni=1ξi (there are additional constraints connecting ξi with C and with training set)
regularization in machine learning? 계수의 제약이나 계수의 규약 혹은 계수가 0으로 줄어드는 회귀의 형식같은것이다. 다른말로는 오버피팅의 위험성을 줄여주고 모델의 너무 자유롭거나(flexible) 복잡한(overfit/complex) 성격을 줄여주는 테크닉이다. Complexity라고도 혼용되어 쓰여진다. (출처:https://velog.io/@eunice123/%EB%AA%A9%EC%A0%81%ED%95%A8%EC%88%98-%EC%86%90%EC%8B%A4%ED%95%A8%EC%88%98-%EB%B9%84%EC%9A%A9%ED%95%A8%EC%88%98-%EC%B0%A8%EC%9D%B4)

MSE는 아주 중요하므로 바로 다음에 자세히 작성할 예정이다.

  • 손실함수(Loss Function)
    Loss function
    데이터 포인트에 정의되는 펑션. 예측과 라벨링에 쓰이고 페널티 측정가능.

square loss l(f(xi|θ),yi)=(f(xi|θ)−yi)2, used in linear Regression
hinge loss l(f(xi|θ),yi)=max(0,1−f(xi|θ)yi), used in SVM
0/1 loss l(f(xi|θ),yi)=1⟺f(xi|θ)≠yi, used in theoretical analysis and definition of accuracy
[5] 분류 오류가 있는지 알아볼려면 sign(f(x))이 y가 아닌 시간에대한 분수를 구하면 되는데 이는 결국 둘을 곱했을때 음수가 되는 경우를 말해서 sign(f(x))*y<0 라고 표현할 수 있고, yf(x) < 0와 yf(x)>0를 나눠서 재 분류하게되면 이게 바로 마진에 대한 분류가 되고 yf(x)<0 대해 페널티를 주는것도 가능해진다. 이때 1,0로만 페널티를 주는것도 가능하지만 다른 손실함수들을 대입해 convex 하게 표현 할 수도 있음.출처:https://velog.io/@eunice123/%EB%AA%A9%EC%A0%81%ED%95%A8%EC%88%98-%EC%86%90%EC%8B%A4%ED%95%A8%EC%88%98-%EB%B9%84%EC%9A%A9%ED%95%A8%EC%88%98-%EC%B0%A8%EC%9D%B4)

라고는 하나, 너무 무슨 소리를 하는건지 도통 모르겠어서 다른 글을 찾아 보니,
비용함수는 모든 데이터를 받아 한꺼번에 오차를 계산, 손실함수는 각각의 데이터를 따로 오차를 계산하는 방식으로 손실함수를 Σ로 나타내면 그게 비용함수라고 한다.

이 외 오차함수(Error Function)라는 것도 있는 듯 하나, 딥러닝에 더 밀접한 관계가 있는 내용같아 딥러닝 챕터에서 써야겠다.

profile
이제부터가 진짜 시작이야

0개의 댓글