지금까지 포스팅에서는 데이터를 기반으로 output을 예측하기 위해 데이터를 가장 잘 표현하는 선을 찾는 Linear regression에 대해 알아보았습니다. Linear regression으로 추정한 모델의 특징은 어떤 input이 주어졌을 때 output의 패턴이 선의 형태로 나타난다는 것이었습니다
본 글에서는 데이터를 기반으로 output을 예측하는 것은 동일하지만, 연속된 값이 아닌 둘 중 하나를 구분(binary classification)하는 데 주로 사용되는 Logistic regression에 대해 알아보겠습니다. 본 algorithm은 deep learning에서 (특히 binary classification에서) 자주 사용되는 algorithm이기도 합니다.
Logistic regression이 적용될 수 있는 상황(binary classification)으로는 다음과 같은 예를 들 수 있습니다.
- 쇼핑몰 웹 사이트에서 고객에게 해당 상품을 추천할지 말지 여부
- 다음날 주가가 상승할지 하락할지
이와 같이 정해진 category 둘 중 하나를 고르는 상황은 모두 binary classification으로 생각해볼 수 있으며, algorithm 상에서는 일반적으로 이 두 category를 0과 1로 encoding 합니다. 그렇다면 이러한 상황을 예측하기 위해 Logistic regression이 아닌 Linear regression을 사용한다면 어떻게 될까요?
공부한 시간에 대해 합격 / 불합격 여부를 예측하는 모델을 찾는다고 가정해보겠습니다. 그러면 데이터는 아래와 같이 어떤 시간 이하에서는 불합격이다가, 그 이후부터 합격하는 양상을 보일 것입니다.
그리고 이러한 데이터를 Linear regression으로 예측한다면 아래와 같은 그래프를 생각할 수 있을 것입니다. 그리고 이 모델을 통해, 합격 여부의 값이 0.5보다 커지는 시간을 기준으로 합격/불합격 여부를 판단할 수 있게 됩니다. (여기서는 화살표로 표시한 1.5시간)
여기까지는 그럴듯해 보이지만, 위와 같은 데이터를 Linear regression으로 모델링 하기에는 다음과 같은 한계가 있습니다.
- 공부 시간이 커질수록 합격할 확률이 높아지는 것을 모델링하다보면, 실제로는 합격이 시작되는 공부시간이지만, Linear regression 함수의 기울기가 작아지면서 불합격으로 예측될 수 있다. (즉, 정확도가 점차 떨어질 수 있다.)
- 실제 output은 0과 1 사이에 있어야 하지만, Linear regression 모델로 예측하는 경우 범위를 벗어날 수 있다.
위에서 제시한 첫번째 한계의 경우, 5시간을 공부한 뒤에 합격한 데이터를 포함하여 Linear regression으로 모델링한다면, 아래와 같이 2시간을 공부한 데이터에 대해서는 0.4의 값을 갖게 되어(아래에서 화살표로 표시한 부분), 위에서 합격여부의 기준으로 삼은 0.5보다 작기 때문에 불합격으로 예측해버리게 됩니다. 그리고 더 큰 공부시간 데이터가 포함되면 정확도는 더 떨어지게 됩니다.
또한, 모델링하고자 하는 target data(합격/불합격 여부)의 0, 1의 값의 크기 자체에는 의미가 없기 때문에, Linear regression으로부터 출력되는 0과 1밖의 범위는 더더욱 의미가 없습니다. (이 부분에서는, 우리가 모델링해야 하는 algorithm은 합격/불합격 여부를 0과 1 사이의 확률로서 예측해야 된다 정도로 생각해볼 수 있습니다)
위와 같은 한계로 인해 일반적으로 binary classification 문제에서는 0과 1 사이를 효과적으로 모델링 할 수 있는 Logistic regression을 사용하여 모델링합니다. Logistic regression의 기본 식과 그래프는 아래와 같습니다. 그리고 이 식은 일반적으로 Sigmoid 함수(Logistic 함수)로 불립니다. Sigmoid 함수 그래프는 무한히 커지면 1에 가까워지고, 작아지면 0에 가까워지는 특징을 보입니다.
그리고, 위의 기본 식을 활용하여 Logistic regression을 위해 Weight값(Matrix W)을 추가하면 아래와 같은 식을 Hyposthesis 식으로 사용할 수 있습니다 (https://alifestudy.tistory.com/55에서 XW로 정의한 Hypothesis 식에서 W를 앞에서 곱해지도록 표현하면서 transpose notation (지수 T)를 포함하게 되었습니다). 그리고 이 형태는 마찬가지로 https://alifestudy.tistory.com/55에서 잠시 언급한 Fully connected layer를 통과한 값에 sigmoid 함수를 activation function으로 적용한 형태로 볼 수도 있습니다. Activation function에 대해서는 나중에 다루도록 하겠습니다.
이어서 다음 포스팅에서는, Logistic regression의 Cost function(Cross entropy)에 대해 다뤄보도록 하겠습니다.
참고한 자료1: https://hunkim.github.io/ml/
'딥러닝 기초' 카테고리의 다른 글
5-1. Softmax (Multinomial classification) (0) | 2023.08.15 |
---|---|
4-2. Logistic regression의 Cost function, Gradient descent (0) | 2023.08.15 |
3. 여러 개의 변수를 갖는 Linear regression (0) | 2023.08.06 |
2. Linear regression의 cost 함수를 최소화하는 방법 (0) | 2023.07.30 |
1. Linear regression (선형 회귀) (0) | 2023.07.25 |