Softmax의 비용 함수(Cost function)

1. 비용 함수(Cost function) 이란?

비용 함수(Cost function)는 모델의 정확도를 측정할 때 활용 되며, 비용 함수란 예측 값(측정 값)과 실제 값 차이의 평균을 의미합니다. 비용 함수의 일반적인 식은 아래와 같습니다.

 

 

쉬운 이해를 돕기 위해 아래의 예제 데이터를 활용하여 설명하겠습니다.

<Table 1> Example dataset #1

<Table 1>의 첫 번째 열은 모델의 예측 값을 나타내며, 두 번째 열은 실제 값을 나타내고 있습니다. 이 때의 비용 함수 값을 구하면 아래와 같습니다.

 

<Table 2>를 살펴보면, <Table 1> 보다 정확하게 예측 한 것을 알 수 있습니다.

<Table 2> Example dataset #2

<Table 2>의 비용 함수 값을 구하면 아래와 같습니다.

 

즉, 모델의 정확도가 높을 수록 비용 함수 값은 낮아지며, 모델의 정확도가 낮을 수록 비용 함수 값은 높아지는 것을 알 수 있습니다.

2. softmax에서의 비용 함수

softmax의 비용 함수는 다음과 같습니다.

 

 

 

이 때, N은 데이터의 총 개수를 나타내며, L은 실제 값, Y는 예측 값을 나타냅니다. 쉬운 이해를 돕기 위해 예제 데이터를 활용하여 설명드리겠습니다.

<Table 3> Example dataset #3

<Table 3>은 공부 시간과 출결에 따른 데이터 셋이며, 오른쪽 데이터셋의 오른쪽 3개의 열은 종속변수를 나타냅니다. <Table 3>의 오른쪽 데이터 셋을 Y = aX + B 인 모델에 적용하면 아래 <Figure 1>과 같이 계산됩니다. <Figure 1>의 가장 왼쪽 행렬은 공부시간과 출결을 의미하며, 2번째 행렬은 weight값, 3번째 행렬은 bias, 마지막 행렬은 연산 결과를 의미합니다.

<Figure 1> Calculation #1

<Figure 2>는 <Figure 1>연산 결과를 softmax 함수를 활용하여 변환된 결과를 나타내고 있습니다.

<Figure 2> Calculation #2

<Figure 3>은 softmax 함수를 활용하여 변환된 결과를 one-hot encoding 형태로 변환한 것을 나타내며, 해당 결과는 softmax의 비용 함수에서 예측 값으로 활용됩니다.

<Figure 3> Calculation #3

자, 이제 softmax의 비용 함수를 계산해보겠습니다. 아래의 <Figure 4>는 실제 값과 예측 값, 그리고 비용 함수를 의미합니다.

<Figure 4> 실제 값과 예측 값, 비용 함수

쉬운 설명을 위해 첫 번째 케이스의 비용을 구해보겠습니다. <Figure 5>는 첫 번째 케이스의 비용을 구하는 과정을 나타냅니다. 이 때 ‘*’는 행렬의 원소 곱셈 연산을 의미합니다. 첫 번째 케이스는 실제 값과 예측 값이 일치 하므로 비용은 0으로 계산됩니다.

<Figure 5> 첫 번째 케이스 비용(Cost) 계산 과정

첫 번째 케이스의 비용을 구해보겠습니다. <Figure 6>은 마지막 케이스의 비용을 구하는 과정을 나타냅니다. 첫 번째 케이스는 실제 값과 예측 값이 일치하지 않으므로 비용은 ∞로 계산됩니다.

<Figure 6> 마지막 케이스 비용(Cost) 계산 과정

한편, 예제 데이터에서의 비용 함수는 <Figure 4>와 같으므로 예제 데이터의 전체 비용은 <Figure 7>과 같이 계산됩니다.

<Figure 7> 예제 데이터 셋의 전체 비용 계산 과정

 

 

답글 남기기