Logistic Regression
Linear Regression는 복잡한 문제를 푸는 데에 적합하지 않다. 특히, 일반적인 데이터의 경향에서 벗어난 Outlier가 있을 때에는 Linear Hypothesis로 나타내는 데에 한계가 있다. 이를 해결하기 위해 등장한 것이 Logistic Hypothesis이다.
$$H(X) = \frac{1}{1+e^{-W^TX}}$$
sigmoid function 혹은 logistic function으로 표현하면 나타나는 특징은 1. 미분가능하고 2. 0과 1 에 bound되며 3. 0과 1 사이에 존재하므로 이를 확률(pdf)로 볼 수 있다. 또한, 4. 구간적인 linear가 존재하여 가운데($W^TX$)에서의 gradient가 최대이고 양쪽 가장자리에서의 gradient는 0에 가까워진다.
하지만, sigmoid function은 exponential 함수로 이루어져 있어 bending이 있고 local minimum이 존재한다. global minimum이 아니어도 gradient가 0이 되면 학습이 중단된다. 따라서 cost function을 기존에 정의했던 것처럼 단순히 MSE로 나타내면 안된다. 이를 해결하기 위해서 log 함수를 적용하면 bending을 방지할 수 있다는 idea에서 시작한다.
$$cost(w) = \frac{1}{m}\sum c(H(x),y)$$
$$c(H(x),y)=\left\{\begin{matrix}
-log(H(x)) : y=1 \\ -log(1-H(x)) : y=0
\end{matrix}\right.$$
target 값 중 정답 label은 0 혹은 1의 값만 가진다.
Case1) y = 1 (target이 정답일 때) : $cost = -log(H(x))$
만약 H(x) = 1이면 cost = 0이고, 이는 H(x)와 y가 같다는 것을 의미한다. 또한, H(x) = 0이면 cost = $\infty$이고, 이는 cost value가 매우 커서 예측이 정확하지 않다는 것을 의미한다.
Case2) y = 0 (target이 정답이 아닐 때) : $cost = -log(1-H(x))$
만약 H(x) = 0이면 cost = 0이고, 이는 H(x)와 y가 같다는 것을 의미한다. 또한, H(x) = 1이면 cost = $\infty$이고, 이는 cost value가 매우 커서 예측이 정확하지 않다는 것을 의미한다.
이를 합치면 Binary Cross Entropy(BCE)와 유사한 형태가 된다.
$$c(H(x),y)=-ylog(H(x))-(1-y)log(1-H(x))$$
이를 cost function에 적용하여 작성하면 아래와 같은 식이 나온다.
$$cost(w) = -\frac{1}{m}\sum (ylog(H(x))+(1-y)log(1-H(x))$$
$$w= w- \alpha \frac{\partial}{\partial w}cost(w)$$
logistic regression은 binary classification이라는 task를 수행하는 데에 사용된다.
Softmax Regression
구분하고자 하는 target의 종류가 2개라면 binary classification이므로 logisitic regression으로 해결할 수 있지만, 구분하고자 하는 target의 종류(class)가 3개 이상이라면 어떻게 해야할까? logistic function으로 hypothesis을 나타내고 binary classification을 여러 번한다면 idea는 굉장히 단순하지만 좋은 방법은 아니다. 그래서 hypothesis를 나타내기 위한 새로운 개념 softmax를 활용한 softmax regression이 등장한다. softmax function은 bayes theorem으로부터 유도된다.
$$Bayes Theorem : P(Y_i|X) = \frac{P(X|Y_i)P(Y_i)}{P(X)}$$
$X$ : Data, $Y$ : Class
$\rightarrow P(Y_i|X)$ : Class posterior, $P(Y_i)$ : Class prior, $P(X|Y_i)$ : Data likelihood, $P(X)$ : Evidence
$$ P(Y_i| \overline{X} ) = \frac{P( \overline{X} |Y_i)P(Y_i)}{P( \overline{X} )} = \frac{ P( \overline{X} |Y_i)P(Y_i) }{\sum^K_{j=1} P( \overline{X} |Y_i)P(Y_i)}$$
$a_j = ln( P(\overline{X}|Y_i)P(Y_i))$ 혹은 $e^{a_j}= P(\overline{X}|Y_i)P(Y_i)$라 하자.
여기서 ln을 쓰는 이유는?
1. $ln(\cdot)$은 단조 증가이므로 대소 관계를 바꾸지 않는다.
2. 곱에 ln을 씌우면 합으로 바뀐다.
3. pdf는 central limit theorem에 의해 gaussian과 닮아 있어 exponential function으로 나타나는 경우가 많으므로 ln을 활용하면 계산이 더 쉬워진다.
$$P(Y_i|\overline{X}) = \frac{ P( \overline{X} |Y_i)P(Y_i) }{\sum^K_{j=1} P( \overline{X} |Y_i)P(Y_i)} = \frac{ e^{a_j} }{\sum^K_{j=1} e^{a_j} } $$ : Softmax Function
$WX = \overline{Y}$에 의해 계산된 값은 softmax 함수를 통과하면 pdf의 형태의 hypothesis로 나타난다.
cost function은 logistic regression에서와 같이 cross entropy를 활용한다. logistic regression에서의 cost function은 class가 2개로 고정이므로 binary cross entropy(BCE)를 활용하여 달라보일 수 있지만 BCE도 결국 cross entropy에서 class를 2개로 고정한 것이므로 logistic regression과 softmax regression의 cost function은 동일한 구조라고 볼 수 있다.
softmax regression에서는 유사한 형태의 $D(S, L) = -\sum_i L_i log(S_i)$로 표현할 수 있다. notation과 실제 식에서의 target과 prediction의 순서가 반대이므로 순서에 주의하자.
따라서, cost function은 $-\sum L_i log(S_i) = \sum L_i \bigodot -log(\overline{Y}_i)$이다.
여러 training set에 대한 multiple loss는 $L = \frac{1}{N}\sum_i D(S(WX_j+b),L_j)$이다.
Regression 총정리
Linear Regression | Logistic Regression | Softmax Regression | |
Task | Regression | Binary Classification | Multinomial Classification |
Hypothesis | Linear Function | Logistic(Sigmoid) Function | Softmax Function |
Cost Function | Mean Square Error | Binary Cross Entropy | Cross Entropy |
[출처] 한양대학교 장준혁 교수님 인공지능개론 수업
'인공지능' 카테고리의 다른 글
[인공지능개론] Neural Networks② (0) | 2024.05.08 |
---|---|
[인공지능개론] Neural Networks① (0) | 2024.05.07 |
[인공지능개론] Regression④ (0) | 2024.05.07 |
[인공지능개론] Regression② (0) | 2024.05.06 |
[인공지능개론] Regression① (0) | 2024.05.06 |
댓글