오늘은 Multiple Linear Regression과 Logistic Regression에 대해 알아보겠습니다.
Multiple Linear Regressiond이란 변수가 여러개인 Linear Regression입니다.
이전 시간에 알아봤던 Single Linear Regression의 경우 H(x) = Wx + b 로 표현되었지만,
Multiple Linear Regression은 다음과 같으 표현됩니다.
Singel Linear Regression의 경우 예를들어 키를 통해서 몸무게를 예측하는 모델이였다면,
Multiple Linear Regression은 키, 성별, 나이를 통해서 몸무게를 맞추는 식으로 더 다양한 변수들을 활용합니다.
그리고 cost function도 동일하지만 단순히 변수의 갯수가 여러개를 사용한다는 점만 다릅니다.
변수가 3개인 Multiple Linear Regression의 MSE는 다음과 같습니다.
다음과 과 같이 loss를 측정할 수 있습니다.
그리고 각각의 loss에 대해서 각각의 변수들이 하나의 축이 되게됩니다.
만약 2개의 변수를 가지는 Multiple Linear Regression인 경우 cost function은 다음과 같이 나타낼수 있습니다.
각각의 축에 대해서 cost funcdtion을 최소화 하는 식으로 가중치를 업데이트 하게 됩니다.
결국 각각의 축을 따로 보게되면 Single과 동일하게 작동합니다.
그리고 Multiple Linear Regression의 경우 아래 그림과 같이 행렬로 매우 간단한 식으러 표현이 가능합니다.
다음은 변수가 3개이고 총 데이터가 5개가 있는 데이터입니다.
예를 들면 키, 몸무게, 성별이 각각의 w1, w2, w3가 될수 있고, 해당 결과들을 dot product를 통해서 계산한 결과가 H(x)가 됩니다.
Logistic이란 Logistic function을 말하는데, 이는 sigmoid함수를 의미합니다.
아래의 함수를 Logistic function이라고 합니다.
Logistic Regression이 도입된 이유는 간단합니다.
바로 선형으로 데이터를 나타낼수 없다는 문제가 있기 떄문입니다.
아래 그림과 같이 데이터가 분포되어있다면, 이를 직선을 가지고 나타내는것은 불가능합니다.
다음과 같이 선형으로 표현할 수 없는 데이터의 경우 Logistic function을 통해서 다음과 같이 나타낼수 있습니다.
Logstic Function(Sigmoid 랑 같다고 봐도된다.)
Logistic function의 식은 다음과 같다.
0.5를 기준으로 [0, 1] 값을 갖는다.
그렇기 때문에 이름이 Logistic Regression이지만, 특정 Threshold를 지정해서 특정 Threshold를 넘으면1, 그렇지 않으면 0 으로 구분하는 Binary Classification 문제에 주로 사용됩니다.
다음과 같이 W와 b에 따라서 Sigmoid 함수의 모양이 달라집니다.
그래서 Logistic Regression을 사용해서 w와 b를 찾는 과정또한 Lintear Regression 과 동일하게 진행합니다.
1. Hypothesis 함수 설정한다.
2. 임의의 w와 b로 결과를 도출한다.
3. cost function을 결정한다.
4. cost function을 이용해서 cost를 구한다.
5. gradient Descent를 이옹해서 w,b를 업데이트한다.
하지만 여기서 문제가 하나 발생한다.
바로 5번인데, 여기서 cost function이 convex함수가 아니라는것이다.
그렇기 때문에 우리가 아는 방법으로는 w,b를 업데이트 할수 없어서 조치를 취해야한다.
여기서 사용할수 있는 조치는 다음과 같다.
1. 다른 cost function 사용
2. 다른 hypothesis function 사용
3. 다른 최적화 방법을 사용.
이중에서 1번을 바꿔보도록 하겠다.
보통 MSE의 경우 Regression 문에 주로 사용되는 cost function이고 , classification 문제에서는 Cross entropy 라는 cost function이 주로 사용된다.
다음과 같이 cost function을 binary cross entropy로 바꿔주면 cost function이 convex 모양을 갖는것을 확인할 수 있다.
그렇다면 위의 과정을 동일하게 실행하되 cost function을 binary cross entropy로 바꿔서 실행하면 된다