이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다.
[머신러닝 이론] Logistic Regression(로지스틱 회귀)
이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Multiple Linear Regression(다중 선형 회귀) 이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝
chaerrylog.tistory.com
이전 글에서는 Binary Classification를 수행하는 로지스틱 회귀에 대해서 설명했다.
이번 글에서는 Multi-class Classification을 수행하는 소프트맥스 회귀에 대해서 설명하겠다.
Softmax Function
소프트맥스 함수는 출력값의 범위를 [0, 1]로 바꿔주는 함수이고, 소프트맥스 함수를 통해 나온 출력값의 총합은 1이 된다. 따라서 소프트맥스 함수는 확률로 표현이 된다.
소프트맥스 함수는 아래 식으로 표현된다. 이 식에서 i = 1, 2, ... , k이다.
$$ p_{i} = \frac{e^{z_{i}}}{\sum_{j=1}^{k}e^{z_{j}}} $$
조금 더 이해하기 쉽도록 class가 3개일 때를 예시로 들어보면, 밑에 수식으로 소프트맥스 함수를 구할 수 있고, p1+p2+p3 = 1이다.
$$ softmax(z) = \begin{bmatrix}
\frac{e^{z_{1}}}{\sum_{j=1}^{3}e^{z_{j}}} & \frac{e^{z_{2}}}{\sum_{j=1}^{3}e^{z_{j}}} & \frac{e^{z_{3}}}{\sum_{j=1}^{3}e^{z_{j}}} \\
\end{bmatrix}=[p_{1}, p_{2}, p_{3}] $$
Loss Function
소프트맥스 회귀의 Loss Function은 Cross Entropy 함수이다. 이 함수는 Softmax Function의 입력값과 출력값의 차이를 나타내는 함수이다. 또한 Binary Cross Entropy와 마찬가지로 log 함수의 모양을 갖는 함수이다.
$$ cost = D(y, p) = -\sum_{j=1}^{k}y_{j}log(p_{j}) $$
앞에 수식은 하나의 데이터에 대한 Loss를 구한 것이다. 여러 개의 데이터가 있는 데이터셋에서의 Loss에 대한 수식은 아래와 같다.
$$ cost = -\frac{1}{n}\sum_{i=1}^{n}D(y, p) = \frac{1}{n}\sum_{i=1}^{n}\sum_{j=1}^{k}y_{j}^{(i)}log(p_{j}^{(i)}) $$
BCE VS CE
저번 글에서 설명한 BCE의 수식은 아래와 같다.
$$ cost(W) = -\frac{1}{m}\sum ylog(H(x))+(1-y)log(1-H(x)) $$
이 수식과 오늘 배운 CE의 수식을 비교해보면 달라보이지만, 실제로는 BCE와 CE는 같다.
Weight
Loss를 최소로 해주는 W를 구하는 방법은 선형 회귀, 로지스틱 회귀와 마찬가지로 Gradient descent 알고리즘을 사용한다.
<Reference>
1. https://www.youtube.com/watch?v=jMU9G5WEtBc&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=15&t=193s
'머신러닝&딥러닝 > 모두를 위한 딥러닝' 카테고리의 다른 글
[머신러닝 이론] Overfitting(과적합) Regularization(일반화) (0) | 2024.01.15 |
---|---|
[머신러닝 이론] Learning rate(학습률) (1) | 2024.01.15 |
[머신러닝 실습] Logistic Regression(로지스틱 회귀) with PyTorch (0) | 2023.09.20 |
[머신러닝 이론] Logistic Regression(로지스틱 회귀) (0) | 2023.09.20 |
[머신러닝 실습] Linear Regression(선형 회귀) with PyTorch (0) | 2023.09.17 |