Loss function
통계학, 결정 이론 및 경제학 분야에서 손실 함수는 사건(기술적으로 표본 공간의 한 요소)을 그 사건과 관련된 경제적 손실을 표현하는 실수로 사상하는 함수이다. Cost function으로도 불린다.
Cost Minimization
- What Is Cost Minimization?
- (머신러닝) Linear Regression의 minimize cost 알고리즘
- (머신러닝) Logistic classification와 cost minimize 함수
예측 손실
손실 함수는 확률 변수의 정의를 만족하므로 누적 분포 함수와 예측치를 구할 수 있다.
예측 손실은
$$ \Lambda = \int_{-\infty}^\infty !!\lambda(x)\, f(x)\, \mathrm{d}x $$
이며, 여기에서
- λ(x) = 손실 함수
- x = 연속 확률 변수
- f(x)= 확률 밀도 함수이다.
In the Machine learning
이 Hypothesis가 좋은 Hypothesis인지 아닌지 어떻게 알 수 있을까? 사실 답은 간단하다. ‘새로운 데이터의 결과를 얼마나 잘 예측을 하느냐’. 하지만 새로운 데이터가 없이는 Scoring이 불가능하다.1 때문에 지금 존재하고 있는 데이터에서 찾은 패턴이 전체 패턴과 동일하다는 가정하에 지금 데이터에 얼마나 잘 Fit하느냐로 Scoring을 하는 것이 가능할 것이다. 즉, 새로운 데이터를 이용하여 Scoring을 해야하지만, 새로운 데이터를 받기 이전에 Scoring을 하고 그 Hypothesis를 사용해야하기 때문에 지금 가지고 있는 Dataset이 향후 새로 들어올 데이터와 유사하다고 생각하고 지금 가지고 있는 값을 이용해 Fitting을 하는 것이다.
이때 사용하는 것이 바로 Loss function이다. Hypothesis의 Loss를 측정하여 그 값을 최소화 하는 것이다. Loss 혹은 Cost라는 이름에서 유추할 수 있듯 이 값은 function으로 예측된 (Predicted) 값과 측정된 (Observed) 값의 차이를 사용하여 계산한 값이다. 여러가지 Loss function의 꼴이 있는데, 가장 간단하게 사용할 수 있는 function은 아래와 같다.
$$ (predicted(x) - observed(x))^2 $$
그 밖에 0-1 Loss
라고 해서 값이 정확하게 일치하면 0, 아니라면 1 만큼의 Loss를 가지는 매우 Strict한 Loss function이다.
- Prev: Hypothesis
- Next: Gradient descent
Comment
원래 정답에 해당하는 출력에 대해서 인공신경망이 계산에 의해서 예측한 출력의 값의 차이 정도를 게산하는 함수를 뜻한다. 여러가지 손실함수가 있는데 각 출력 뉴런의 각각의 오차를 모두 게산하여 오차의 정도를 표시하는 RMSE(Root Mean Squared Error)와 좀 더 개선된 크로스 엔트로피(Cross-Entorpy) 에러 계산법이 자주 사용된다.
Example
Hypothesis 중에서 가장 좋은 녀석은 어떻게 고르지? 그래서 도입되는 개념이 바로 Cost function 혹은 Loss function이다.
Cost function을 정의함으로서 이 함수가 기존에 주어진 데이터에 대해서 얼마나 정확한지 유추할 수가 있다. 예를 들어 우리가 예측한 함수가 y = x
이고 (x, y) = (1, 2), (2, 3), (4, 5)
라고 생각해보자. 그렇다면 아마 x가 1,2,3일 떄 각각 1 만큼 예측값과 실제 값이 차이가 날 것이다. Cost function은 이 차이값들을 통해 얼마나 이 함수가 원래 개형과 가까운가를 유추한다.
Cost function of linear regression
- 02. Linear Regression의 Hypothesis와 cost 설명 (lec 02)
- 04. Linear Regression의 cost 최소화 알고리즘의 원리 설명 (lec 03)
Linear regression의 기본 cost 함수의 Hypothesis는 아래와 같다.
$$ H(x) = Wx + b \ cost(W, b) = \frac{1}{m}\sum_{i=1}^{m}(H(x^{(i)}) - y^{(i)})^2 $$ 위와 같은 수식이 나온 이유는 아래와 같다.
- 뺄셈을 하게 되면 직선 위치에 따라 음수와 양수가 섞여서 나오게 된다. 계산이 피곤해진다.
- 절대값을 취하는 것이 가장 쉽지만, 제곱을 하는 것도 방법이다. (음수x음수)와 (양수x양수)에 대해 항상 양수가 나오니까
- 제곱을 하면 가까운 데이터는 작은 값이 나오고, 멀리 있는 데이터는 큰 값이 나오기 때문에 멀리 있는 데이터에 벌점(penalty)을 부과할 수 있다.
목표는 cost를 최소로 만드는 W(기울기)와 b(절편)를 찾는 것이다.
hypothesis공식을 단순화하기 위해 y 절편에 해당하는 b를 없앤다.
공식을 가볍게 만들기 위해 b를 없애는 것이 이상해 보일 수도 있지만, W의 갯수가 많아지고, 행렬로 처리해야 하는 시점이 되면 b를 행렬에 넣어서 공식을 간단하게 만든다. 어차피 공식에서 사라질 값을, 우리의 이해를 돕기 위해 미리 없애주신 자상한 배려가 눈에 띈다.
$$ H(x) = Wx \ cost(W) = \frac{1}{m}\sum_{i=1}^{m}(Wx^{(i)} - y^{(i)})^2 $$
Formal definition 변환은 아래와 같다.
$$ cost(W) = \frac{1}{2m}\sum_{i=1}^{m}(Wx^{(i)} - y^{(i)})^2 $$ 제곱의 평균을 구하기 위해 사용하는 m은 W와 b를 사용해서 계산이 끝난 이후에 적용하기 때문에, m으로 나누건 2m으로 나누건 W와 b에는 영향을 주지 않는다는 것을 먼저 이해해야 한다.
비용 계산의 목적은 최소 비용이 되었을 때의 W와 b가 필요하기 때문이다. 최소 비용이 얼마인지는 전혀 중요하지 않다. 여러 개의 비용이 있을 때, 이 중에서 가장 작은 비용을 찾고, 그 때의 W와 b를 사용하면 된다. 여러 개의 비용에 대해 모두 2를 곱하거나 2로 나누면, 비용은 늘어나거나 줄어들지만 상대적인 크기는 달라지지 않는다.
그렇다면, 왜 2m을 사용할까? 제곱을 미분하게 되면 2가 앞으로 오는데, 이때 분자에 있는 2와 분모에 있는 2를 곱해서 1로 만들면 공식이 단순해지기 때문에 일부러 넣는 것이다.
기울기(W)의 다음 위치를 판단하기 위한 공식은 아래와 같다.
-
W := W - W의변화량
변화량을 알기 위해 미분(Deravative)을 구한다.
$$ W := W - \alpha\frac{\partial}{\partial W}cost(W) $$ α(알파)는 우리가 임의로 추가하는 상수로 미분에는 참가하지 않는다. α(알파)가 너무 크면 오버슈팅(overshooting)이 될 수 있고, 너무 작으면 최소 비용에 수렴할 때까지 너무 오래 걸리게 된다. 이 값은 여러 번에 걸쳐 테스트하면서 결정해야 하는 중요한 값이지만, 역시 미분에는 참가하지 않는다.
미분 결과는 아래와 같다.
$$ \begin{align} W &:= W - \alpha\frac{\partial}{\partial W}cost(W) \ &:= W - \alpha\frac{\partial}{\partial W} \frac{1}{2m}\sum_{i=1}^{m}(Wx^{(i)} - y^{(i)})^2 \ &:= W - \alpha\frac{\partial}{\partial W} \frac{1}{2m}\sum_{i=1}^{m}(Wx^{(i)} - y^{(i)})(Wx^{(i)} - y^{(i)}) \ &:= W - \alpha\frac{\partial}{\partial W} \frac{1}{2m}\sum_{i=1}^{m}(Wx^{(i)})^2 - 2Wx^{(i)}y^{(i)} + (y^{(i)})^2 \ &:= W - \alpha\frac{1}{2m}\sum_{i=1}^{m} \frac{\partial}{\partial W}( W^{2}(x^{(i)})^2 - 2Wx^{(i)}y^{(i)} + (y^{(i)})^2 ) \ &:= W - \alpha\frac{1}{2m}\sum_{i=1}^{m} 2W(x^{(i)})^2 - 2x^{(i)}y^{(i)} \ &:= W - \alpha\frac{1}{2m}\sum_{i=1}^{m} 2(Wx^{(i)} - y^{(i)})x^{(i)} \ &:= W - \alpha\frac{1}{m}\sum_{i=1}^{m} (Wx^{(i)} - y^{(i)})x^{(i)} \ \end{align} $$
Effective Loss function
- Softmax
- Sum of squares / Euclidean
- Hinge / Margin
- Sigmoid Cross-Entropy
- Infogain
- Accuracy and Top-k
See also
Favorite site
- Wikipedia (en) 손실함수에 대한 설명
- Hypothesis Function을 평가하는 방법
- Coursera - Machine Learning week.2 - Cost function
References
-
온전히 불가능한 것은 아니고 Model selection을 통해 Validation을 하는 Skill이 있다. ↩