Error Function

2021.07.17 - [AI] - Maximizing Probabilities, Cross Entropy

 

앞선 글에서 Cross Entropy를 어떻게 구하는 지 알아 보았다.

이를 통해서 Error Function을 구하고자 한다.

$$ CrossEntropy() = - \sum_{i=1}^n y_i*ln(p_i) + (1-y_i)*ln(1-p_i) $$

Cross Entropy를 최소화 하는 것이 좋은 모델이라고 앞서 말을 했다.

최소화된 Cross Entropy를 sum한 갯수로 나누어 평균을 만들어 주면 우리는 이것을

Error Function이라고 부른다. 역시 이것도 최소화 하는 것을 목표로 한다.

$$ ErrorFunction() = - \frac{1}{n} \sum_{i=1}^n y_i*ln(p_i) + (1-y_i)*ln(1-p_i) $$

여기에 한가지를 더 변경해 주면된다.

$ ln(p_i) $ 는 p_i가 빨강 혹은 파랑이 될 확률을 표현 한다. 이것을 예측값이라고 부를 수 있다.

y hat $ ln(\hat{y}) $이라는 표현으로 변경해 주도록 하겠다.

$$ ErrorFunction() = - \frac{1}{n} \sum_{i=1}^n y_i*ln(\hat{y}) + (1-y_i)*ln(1-\hat{y}) $$

마찬가지로 클래스가 3개 이상일 경우 같은 방법으로 Error Function을 정의 해 줄 수 있다.

$$ CrossEntropy() = - \sum_{i=1}^n \sum_{j=1}^m   p_{ij}*ln(p_{ij}) $$

$$  Error Function() = - \frac{1}{n} \sum_{i=1}^n \sum_{j=1}^m   \hat{y}_{ij}*ln(\hat{y}_{ij}) $$

$ ln(\hat{y}) $ 은 0에서 1사이의 예측 값인데, 이것을 1차 함수의 sigmoid 수식으로 변경하면 아래와 같이 된다.

2021.07.17 - [AI] - Sigmoid Function

$$ ErrorFunction() = - \frac{1}{n} \sum_{i=1}^n y_i*ln(\sigma(Wx_i + b)) + (1-y_i)*ln(1-\sigma(Wx_i + b)) $$

이게 가능한 이유는

$$ \hat{y} = Wx + b $$

가 성립함으로 $ \hat{y} $ 대신 선의 수식을 넣어 주고 이를 0에서 1사이의 값의 형태로 변경해 주는 sigmoid를 반영하기 때문에 가능하다. 

왜 sigmoid를 사용하는가? 그것은 Activate Function이기 때문이다.

728x90
반응형

'AI' 카테고리의 다른 글

Feedforward  (0) 2021.07.18
Gradient Descent  (0) 2021.07.18
Maximizing Probabilities, Cross Entropy  (0) 2021.07.18
Softmax function  (0) 2021.07.17
Sigmoid Function  (0) 2021.07.17