Lec 05: Logistic Regression/Classification
Deep_Learning study Lec05
Boostcourse의 ‘파이토치로 시작하는 딥러닝 기초’를 통한 공부와 정리 Post
‘파이토치로 시작하는 딥러닝 기초’와 ‘텐서플로우로 시작하는 딥러닝 기초’를 함께 공부하며 개념적인 부분에서 상호보완하고 있기 때문에 다른 포스트에서 같은 내용을 다루는 부분이 있을 수 있습니다.
Goal of Study
- 로지스틱 회귀/분류(Logistic Regression/Classification)의 개념을 알아본다.
Keyword
- 로지스틱 회귀 / 분류(Logistic Regression / Classification)
- 가설(Hypothesis)
- 시그모이드 / 로지스틱(Sigmoid / Logistic)
1. 강의 요약
Classification(binary)
연속적인 값이 아닌 경우를 나누기 위한 머신 러닝을 하기 위해 binary Classification을 할 경우에는 두 가지의 값으로 나뉘어야 한다.
데이터의 특징을 토대로 케이스를 두 가지로 분류할 수 있으며,
이를 바탕으로 Logistic Regression Model을 만들게 된다.
=> Logistic Regression이 Classification에 관한 문제이다.
이진 분류를 풀기 위한 대표적인 알고리즘이 Logistic Regression이다.
Logistic VS Linear
Logistic Regression을 적용하기 위한 데이터의 경우에는
구분선으로 케이스를 두 가지로 구분해낼 수 있는 데이터이다.
이에 반해, Linear Regression의 경우에는 데이터들이 연속적이다.
이러한 연속적인 경향들의 값을 학습해 새로운 데이터에 대해 예측하는 것이다.
(ex, Time, Weight, Height)
Hypothesis Representation
합격과 불합격을 공부 시간에 따라 예측할 때,
우리가 원하는 것은 Linear한 수치형 데이터가 아닌
정확히 0과 1로 구분해내는 binary classification에 대한 결괏값에 필요하다.
그러므로, 새로운 수식이 필요하다.
원하는 Hypothesis를 표현하기 위해서는 다음과 같은 과정이 필요하다.
(세타는 Weight이다.)
기존과 같이 X에 Weight를 곱하여 Linear한 값이 나오게 되는데,
이 값을 Logistic function을 통해서 0과 1의 구간으로 표현할 수 있고,
이를 특정 Decision Boundary를 통해 0과 1을 출력해내는 것이 우리가 원하는 Hypothesis이다.
Sigmoid (Logistic) function
Logistic function => g(z) function
지수 함수의 성질에 따라 g(z)함수에서 z가 무한대에 가까워지면 e^(-z)는 0에 가까워지므로,
g(z)가 1에 점점 수렴하게 된다. 역은 0에 수렴하게 되는 것을 알 수 있다.
이를 Sigmoid 함수라고 한다.
우리가 Linear Regression의 Hypothesis에서 구한 W * X 처럼 Linear한 값을
Sigmoid 함수를 통해 Hypothesis를 0과 1 사이의 구간으로 나타내주는 것이 핵심이다.
Hypothesis가 W와 X로 표현된 Sigmoid함수임을 확인할 수 있다. (T는 전치행렬)
Decision Boundary
조금 더 자세히 살펴보면, 우리가 필요로 하는 것은 1과 0일때,
Sigmoid를 통해서 값이 나온 것을 Decision Boundary인 0.5를 기준으로 나누게 된다.
즉, 구간을 통해 어느 지점에서 0과 1로 나눌 것인지 결정하는 것이 Decision Boundary이다.
Linear이든, non-Linear이든 이를 구분하는 경계선(Decision Boundary)을 기준으로 구분해낼 수 있다.
Cost Function
Linear Regression과 마찬가지로, Hypothesis의 Weight를 최적의 값으로 만들어 주는것이
Cost를 최소화하는 과정이고, 이를 얻어낼 때 사용하는 것이 Cost Function이다.
=> 즉, 원래의 값과 가장 오차가 적은 W를 구하여 Hypothesis를 정하는데 사용되는 함수
Logistic Regression에서도 데이터를 가장 잘 구분해낼 수 있도록 Cost를 줄여가며
원하는 모델 값을 만들어낸다.
이 또한, Hypothesis에서 나온 값에서 실제 데이터의 값의 차이를 최소화하기 위한 식을 사용한다.(MSE)
위 식에서는 J가 Cost function이며, Weight가 세타로 표현되었다.
Weight Update via Gradient Dsecent
Logisitic Regression에서도 GD를 통해 Weight를 update한다.
Convex Logisitic Regression
이를 이제 식으로 어떻게 표현해낼 수 있는지 살펴보자.
위의 MSE에서 가설에서 실제 데이터 값을 빼주는 것을 제곱하여 이의 평균을 통해 Cost function을 결정한다.
이 때, Hypotheis를 통해 나오는 값의 형태는 Sigmoid 형태의 실수형 값이 나오고, 실제 데이터는 1과 0으로 구분되어지는 값이기에
이를 빼주면 다음과 같은 형태가 나타나게 된다. (값이 구부러지게 된다.)
이를 그래프로 나타내는 다음과 같이 나타난다.
실제 Cost 함수를 구하기 위해서는 이전에도 언급했듯이 Convex의 형태를 가져야한다.
그래서 Cost Function을 Convex 함수 형태로 다루기 위해 다음과 같은 수식을 이용한다.
가설 함수의 값들을 log에 집어 넣고 Convex형태를 만들 수 있도록 음의 부호를 붙여주고 평행이동 시켜주며
이 둘을 더해 최적의 Cost function을 만들 수 있다.
식의 부연설명을 하자면,
if y = 1 일때는, Logistic Regression에서 값이 1인 경우를 말하는 것이다.(Classification에서의 1)
이 때, Hypothesis가 1에 도달할 수록, Cost는 Minimize되는 것을 알 수 있다.
if y = 0 일때는, Logistic Regression에서 값이 0인 경우를 말하는 것이다.(Classification에서의 0)
이 때, 그래프를 뒤집으며
Hypothesis가 0에 도달할 수록, Cost는 Minimize되는 것을 알 수 있다.
Cost가 최소화 될 수록 우리가 원하는 값에 가까워진다는 것을 이해하고 있으므로, 위의 식 또한 쉽게 이해할 수 있을 것이다.
다시 Cost function을 정리하면 다음과 같다.
Leave a comment