이 알고리즘은 Classification 알고리즘 중에서 정확도가 높은 알고리즘으로 알려져 있다. 실제 문제에도 바로 적용해볼 수 있다. NN과 딥러닝을 이해하기 위해서는 이 알고리즘이 굉장히 중요하다. Regression과 굉장히 유사하다. classification의 다른 점은 둘 중의 하나를 고르는 것 즉, binary classification이다. 예를 들어 스팸과 햄을 구분하는 것이나 페이스북을 들어가면 굉장히 재밌고 신나는 타임라인이 올라온다. 친구가 300명 400명 정도 되면 올라오는 피드가 굉장히 많다. 페이스북에서는 classification은 우리가 좋아요를 누른 게시물 등을 학습해서 친구들이 만들어내는 수백 개의 타임라인 중 어떤 라인은 보여주고 어떤 라인은 보여주지 말자 그래서 우리 눈에 보이기 좋은 타임라인만 쌓이게 된다.
이것을 기계적으로 학습하기 위해서 숫자 0,1로 encoding 한다. 예를 들어 스팸을 1로 햄을 0으로 해서 구분하는 것이다.
아래 사진을 보면 시간에 따라 시험에 합격, 불합격을 가진 data가 있다고 가정해보자. 1은 pass 0은 fail이다.

근대 여기서보면 linear Regression 으로 할수있지않을까? 라는 생각이 든다 하지만 50시간을 공부한 친구가 있다고 생각해보자.

당연히 data에 따르면 합격해야되는대 linear Regression은 wx값이 기울어지다보면 합격과 불합격을 나누게 된다. 이때 기울어지다보니 합격인 사람도 불합격으로 처리되는 경우가 있다. 이런것이 바로 문제이다. 또다른 문제는 반드시 값이 0과1이 나와야 대는데 H(x) = Wx + b 의 값이 1보다 훨씐 크거나 0보다 훨씐 작을 수가 있다. 그래서 0과 1사이의 값을 찾아주는 함수가 없을 까? 생각해보다가 나온것이 바로 sigmoid함수이다.

z는 x축이고 g(z)는 y축이다. z의 값은 커질수록 g(z)는 1에 가까워진다. z가 작아질수록 0에 가까워진다. 이때 우리가 원하는 0과 1사이의 값을 얻을수 있는 것이다. 그럼 아래의 식처럼 놓을수있다.
z = Wx H(x) = g(z) |

바로 위식이 sigmoid함수이다. e의 지수 부분에 우리가 가지고 있던 hyporthesis를 넣은 것이다. 여기가 바로 가장 중요한 logistic classification의 가장 중요한 함수가 된다.
공부한 사이트:https://www.youtube.com/watch?v=PIjno6paszY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=11
'머신러닝 > 모두를 위한 딥러닝' 카테고리의 다른 글
TensorFlow로 Logistic Classification의 구현하기 (0) | 2019.05.23 |
---|---|
Logistic Regression의 cost 함수 설명 (0) | 2019.05.21 |
TensorFlow로 파일에서 data읽어오기 (0) | 2019.05.18 |
multi-variable linear regression을 TensorFlow에서 구현하기 (0) | 2019.05.16 |
multi-variable linear regression (0) | 2019.05.15 |