앞서 다루었던 Linear regression의 Hypothesis 식에 대한 cost function은 예측값과 실제값의 차이의 제곱을 평균(MSE, Mean Square Error)으로 한 형태를 갖고 있는 아래 식과 같은 2차함수의 형태였습니다. 따라서 어떤 지점에서 시작하든 Gradient descent algorithm으로 최소가 되는 값을 찾을 수 있었습니다. (참고: https://alifestudy.tistory.com/52)
하지만, Logistic regression의 Hypothesis 식은 Linear regression과 같은 선형이 아닌, 비선형인 Sigmoid 함수이기 때문에 Linear regression과 같은 MSE를 Cost function을 사용하면 적절한 최소값을 찾기 어렵게 됩니다. 그 이유는 Logistic regression(Sigmoid 함수)을 Hypothesis 식으로 해서 MSE를 그래프로 그려보면 아래와 같기 때문입니다.
Linear regression의 Cost function 모양과는 달리 굴곡이 많은 형태를 갖고 있고(Non-convex), 이 경우 Gradient descent algorithm을 적용하면 전체의 최소값(Global minimum, 빨간 점 부분)이 아닌 현 시작점 기준 주변에 있는 기울기가 작아지는 부분을 최소값으로 착각하여 수렴할 수 있습니다(Local minimum, 초록 점 부분). 이로 인해, Logistic regression의 Cost function을 MSE로 설정하게 되면 w의 초기값을 무엇으로 학습을 시작하느냐에 따라 모델의 예측성능이 영향받게 됩니다. 따라서, Logistic regression에서 Global minimum을 찾기 용이한 새로운 Cost function(c(H(x), y))을 아래와 같이 정의하게 됩니다.
먼저, 모델이 1로 예측해야 하는 경우 (y=1, 위 Cost function에서 -log(H(x)) 부분)를 아래와 같이 y= - log(x)에 대한 그래프로 예를 들어보겠습니다.
H(x)는 0과 1의 사이값을 가지므로, -log(H(x))는 위 그래프에서 0 <= H(x) <= 1의 범위에서만 유효하게 됩니다. 따라서, 위처럼 초기 W 값이 어디이든지 간에, Cost(H(x))를 0으로 만드는 H(x) = 1이 되는 지점으로 학습이 진행되게 됩니다. 이는 모델이 y=1로 예측하는 방향으로 학습되어야 한다는 전제를 충족합니다.
여기서 x, y 축은 이해를 돕기 위해 그래프 상에는 각각 H(x)와 cost(H(x))로 표현하였지만, y축은 실제로는 x에 주어진 데이터가 대입된 W에 대한 식(Cost(W))으로 보시면 됩니다 (https://alifestudy.tistory.com/53 에서 Cost function(MSE)을 W에 대해 표현한 식과 동일한 맥락). 마찬가지로, x축도 H(x)가 아닌 W로 보시면 됩니다.
조금 자세히 설명드렸지만, 위 식을 보고 직관적으로 이해하셔도 됩니다. y=1을 예측해야 하는 경우, H(x)도 마찬가지로 1을 예측할 수 있게 되면 -log(H(x)=1) = -log1 = 0이 되어 cost function이 최소가 됩니다(학습 되어야 하는 방향). 반대로 H(x)가 0으로 예측해버리게 되면, -log(H(x)=0) = -log0 ≃ ∞(무한)이 되어 급격하게 커집니다. y=0을 예측해야 하는 경우도 마찬가지입니다.
하지만 위와 같이 y=0, 1일때 조건을 나누어 코드로 표현하면 복잡해지기 때문에, 일반적으로 아래와 같이 하나로 합쳐서 표현합니다.
위의 식을 보면, y=0인 경우, 우측 항(-(1-y)log(1-H(x)))만 살아남게 되고, y=1일 때는 좌측 항만 살게 되어 조건으로 나누어 표시했던 식과 동일한 형태임을 확인할 수 있습니다. 또한 이 식은 그래프로 확인하면 2차 함수와 유사한 Convex(볼록한) 형태를 띠게 되어, Global minimum을 찾기 용이해집니다. 위 식은 이후 Multinominal classification에서 다룰 softmax의 cost function인 cross entropy와 유사한 형태를 갖고 있습니다. (이후 포스팅에서 언급하도록 하겠습니다)
위 식은 data 한 요소에 대한 cost 계산법을 표현하므로, Logistic regression의 cost function은 아래와 같이 전체 data에 대한 합으로 표현할 수 있고, Gradient descent algorithm도 Linear regression에서 적용했던 것처럼 동일하게 적용할 수 있습니다.
위 식의 미분을 실제로 계산하려면 복잡하므로, 이 부분은 일반적으로 Deep learning framework(tensorflow, pytorch 등)에서 알아서 계산하도록 하게 합니다. 이 부분 구현 방법도 '딥러닝 기초 실습' section의 포스팅에서 이후 다루도록 하겠습니다.
다음 포스팅에서는 Multinomial classification (2가지 이상의 category(class) 분류) algorithm으로 주로 사용되는 Softmax에 대해 다뤄보도록 하겠습니다.
참고한 자료1: https://hunkim.github.io/ml/
'딥러닝 기초' 카테고리의 다른 글
5-2. Softmax의 Cost function (Cross entropy) (0) | 2023.08.20 |
---|---|
5-1. Softmax (Multinomial classification) (0) | 2023.08.15 |
4-1. Logistic regression (0) | 2023.08.13 |
3. 여러 개의 변수를 갖는 Linear regression (0) | 2023.08.06 |
2. Linear regression의 cost 함수를 최소화하는 방법 (0) | 2023.07.30 |