본문 바로가기

개발일지

머신러닝의 기본 알고리즘들(Logistic classification)

반응형

안녕하세요~ 화창한 봄날이네요.

오늘은 머신러닝의 기본 알고리즘인 하나인 Logistic classification 에 대해서 알아보겠습니다.

이 알고리즘은 Linear Regression 에서 하나의 선으로만으로 모든 문제를 해결할 수 없었기에 그럼 이걸 True or False로 하는 로직을 만들어보자 해서 나온 것이 바로 로지스틱 클래시피케이션 입니다. 

위의 표처럼 3시간 이하 공부를 하면  불합격, 3시간 이상 공부를 하면 합격이 됩니다. 이것을 왜 리니어 레그레이션으로 하지 못하는 이유를 말씀 드리면 만약 100시간 공부를 한 사람이 있다고 가정을 하면 해당 리니어(선)을 그리면 합격한 사람도 불합격하게 됩니다.


10시간이하의 공부하는 사람만 있었다면 Linear regression Hypothesiss는 y= Wx+b에서 w는 0.5 이상이 되어야 합격이라는 것이 나와야 하는데, 많은 시간 공부하는 사람이 있으면 해당 x값이 더 커지게 됨으로 Linear(선)의 기울기가 더 기울어지기 때문에 주황색 부분의 위치에 있는 사람이 합격임에도 불구하고 불합격이 될 수 있습니다.

Linear Regression을 분류에 사용할 때 발생할 수 있는 문제에 대해서는 앞에서 설명했다. Wx+b라는 공식을 있는 그대로 사용하면 W를 1/2이라고 했을 때, x의 값이 100인 경우 50이라는 엄청난 값이 만들어 질 수 있다. 0과 1만을 사용해야 하는데, 범위를 벗어나는 값이 나오게 된다. 50보다 작으면 0, 크면 1이라고 표현하거나 1/2보다 작으면 0, 크면 1이라고 표현할 수 있는 추가 코드가 반드시 있어야 한다. 아래 그림에서는 이러한 표현식을 sigmoid라고 설명하고 있다.


시그모이드(sigmoid) 함수는 앞에서 배운 공식(Wx + b )이 만들어 내는 값을 0과 1 사이의 값으로 변환해서 줍니다.


e로 시작하는 계산식이 0일 때, 1/1이 되어서 최대값인 1이 된다. e로 시작하는 계산식이 매우 클 때, 소값인 0이 된다. Wx가 0일 때, 지수가 0이 되어, 분모는 2가 되고, 이때 중간값인 1/2이 된다. e로 시작하는 공식이 복잡해 보이지만, 실제로는 전혀 복잡하지 않다.

결국 이 식은 e의 지수일 뿐이다. Wx+b를 그래프에서 표현하는 것처럼 z라고 부르자. z가 음수가 되면 e의 z승은 엄청나게 작아지고, 양수가 되면 엄청나게 커진다. z 앞에 음수 기호가 있기 때문에 z가 음수일 때 오히려 양수가 되어 e의 z승은 큰 값이 되고, 분모로 사용되었기 때문에 전체 값을 0에 가깝게 만들어 버린다. 어찌 됐든 이 공식은 z가 무한히 작거나 무한히 커도 잘 동작한다는 것은 기억하자.

sigmoid는 linear regression에서 가져온 값을 0과 1 사이의 값으로 변환한다. z가 0일 때, 0.5가 된다.


사용예

- 메일의 스팸이냐 스팸이 아니냐

- 페이스북에서 사용자에게 이 글을 보여줄 것이냐 아니냐

- 주식을 팔것이냐 팔지 않을 것이냐



반응형