Computer Science/기계학습 (Machine Learning)

[머신러닝/ML] Binary Classification / Logistic Regression

gxxgsta 2023. 5. 18. 20:27
반응형
SMALL

Binary Classification / Logistic Regression

Binary Classification은 분류하는 모델 중에서도

이름에 맞게 두 가지 종류로 분류하는 모델을 말한다.

메일이 스팸인지 아닌지,

유튜브에서 해당 영상을 사용자에게 보여줄지 말지를 결정하는 것도 Binary Classification에 해당된다.

0, 1 Encoding

Binary Classification에서 분류할 때에는 0과 1을 사용하여 표기하기도 한다

예를 들어 메일을 스팸인지 아닌지를 분류할 때

스팸인 메일을 1, 아닌 메일을 0으로 표기할 수 있다.

 

Sigmoid(Logistic Function)


공부 시간에 따른 시험 합격률을 판단할 수 있는 모델을 만들었다고 하자.

그러면 아래와 같은 점들을 찍을 수 있을 것이고,

해당 점들을 바탕으로 아래와 같이 직선도 그릴 수 있을 것이다.

 

하지만 Linear Regression과 같이 만든 직선은결과값이 0이나 1로 뚜렷하게 나뉘지 않는다.

또는, 1보다 더 큰 값이 결과값으로 나타날 수 있다.

따라서 H(x)를 0과 1 사이로 mapping해주는 함수가 새롭게 필요하다.

이 함수는 Sigmoid 또는 Logistic Function이라고도 불리며 형식은 아래와 같다.

Sigmoid 함수는 보통 g(z)라고 표기하며 z에는 WX가 들어간다.

따라서, Hypothesis를 나타내는 식은 아래와 같다.

Binary Classification Cost Function


우리가 지금껏 알고 있는 Cost Function의 모습은 아래와 같다.

하지만, 위의 함수를 이용하여 Binary Classification의 cost를 나타내면

울퉁불퉁한 모양의 함수가 만들어진다.

울퉁불퉁한 모양의 cost function은 전체의 최소값이 아닌 부분 최소값, 즉 지역 최소값에 빠질 수 있다.

아래 그림에서 볼 수 있듯이, 그래프 전체에서의 최소값이 아닌, 

현재 위치에서 가장 가까운 최소값을 전체의 최소값이라고 오인할 수 있다.

따라서 Binary Classification에서는 아래와 같은 Cost Function을 사용한다.

왜냐하면, g(z)의 식에서 x의 값은 지수로 들어가 있다.

지수함수를 깨기 위해서 로그를 사용한다는 것은 당연한 일이므로 log함수를 쓰는 것을 전제로 한다.

또한, 위 cost function을 그래프로 나타내면 아래와 같다.

위의 그래프를 바탕으로 우리가 새롭게 정의한 cost function이 어떻게 사용되는지 확인해보자.

결과값이 1이어야 할 때, 즉 y = 1일 때 H(x)값이 1로 제대로 나왔다고 하자.

c(1)은 그래프에서 거의 0에 가까운 값을 가지고 있다.

반대로 H(x)의 값이 0이 나왔다고 가정하면 c(0)의 값은 무한대로 발산하고 있다.

y = 0일 때에도 마찬가지이다.

 

하지만 위의 cost function은 조건문으로 인해 연산에 어려움이 있다.

따라서 cost function을 하나의 식으로 표현하기 위해 아래와 같이 표현할 수 있다.

y의 값이 1이면 앞부분만 남게 되고, y의 값이 0이면 뒷부분만 남게 된다.

즉, 위의 식과 같은 모양이 된다.

 

참고 및 출처 링크: https://hi-guten-tag.tistory.com/205

반응형
LIST