본문 바로가기

PROJECT

[딥러닝 + TensorFlow] logistic_regression

  참고 동영상

https://www.youtube.com/watch?v=PIjno6paszY&list=TLPQMjAwMjIwMjCWs70029iMMA&index=2

 

 

▶  Classification   예시

     Spam Detection: Spam or Ham   즉, 스팸 이메일이냐 아니냐

     Facebook feed : show or hide       facebook의 많은 타임라인의 게시물 거르기

     Credit Card Fraudulent Transaction detection : legitimate/fraud   

    신용카드가 도난되있을 시 사용 패턴이 다를때 이상감지

     

 

 ▶ 0, 1 encoding

    Spam(0) or Ham(1)

    show(0) or hide(1)

    legitimate(0)/fraud(1) 

 

 

위에 있는 예시 들만 봐도 대충 logistic_regression이 뭔지 파악할 수 있을 것이다. 내가 구분하고 싶은것과 아닌것을 둘로 나누고 0 / 1로 구분하는 것이다.

그렇다면 아래 예시를 보자.

 

 

 

▶ pass(1)/Fail(0) based on study hours

      이것은 공부한 시간만 가지고 이 사람이 시험을 패스할 수 있을지 아닐지 예측하는 그래프이다. 이것을 Linear Regression에 적용시켜보면 어떻게 될까? 

 

 

위에 그림과 같이 0.5를 기준으로 합격과 불합격으로 인식될 수 있다. 하지만 만약  50시간을 공부한 사람이

 

이 있다면 liner그래프 아래 찍힐 가능성이 있어 fail로 인식될 수 있다. 즉, 만약 0과 1로 압축을 시키기에는

 

부적합하다는 예기이다. 여기에 0~1사이를 만들어주는 함수를 찾게 된 것이다.

 

 

 

 

Sigmoid or Logistic function

  그리서 나온게 아래보이는 그래프이다. 새로운 그래프는 위로갈 수록 1로 가까이 수렴하고 아래로 내려가면 0으로 수렴한다.

 

그리하여, z = wx라고 하면 새로운 H(x)[새로운 Hypothesis] = g(z) 둔다는 뜻이된다.

Sigmoid or Logistic function

 

 .

 

 

▶ Sigmoid or Logistic function

 

  그래서 나온게 아래보이는 그래프이다. 새로운 그래프는 위로갈 수록 1로 가까이 수렴하고 아래로 내려가면 0으로 수렴한다.

 

 

 

그리하여, z = wx라고 하면 새로운 H(x)[새로운 Hypothesis] = g(z) 둔다는 뜻이된다.

 

 

 

              

위에 식을보면 e의 지수부분이 g(z)에 z부분, 즉, z = wx가 되는것이다. 

그다음 단계는 cost function을 구하고 cost를 최소화 하는 것이다.

 

 

 

 

▶ Cost function

 

    아래 그래프와 같이 우리가 구해야하는  Hypothesis는 더이상 linear하지 않아서(구불구불) 최소점을 찾기가 어려워진다.  시작점이 어디냐에 따라서 끝나는 점이 어딘지 달라질 수 가 있다는 뜻이다.  전체(global) 최소값을 찾는게 목표인 우리로써는 사용할 수가 없다.

 

 

 

 

그래서 나온게 위에 나온 cost함수이다.  y가 1일때와 0일 때를 나누어보자. log함수를 사용하면 구불구불한 그래프의 모양을 매끈하게 잡을 수 있다. 

 

 

 

위에 그래프를 보면 g(z) = -log(z)을 cost함수로 보자. (왼쪽 그래프 보기)

cost의 함수의 의미는 우리가 예측한 값과 같으면 같을 수록 cost함수가 작아진다는 것이다.

y=1이고 H(x)의 값이 1로 맞았을 때, cost(1) = 0으로 가까워진다. 반면 H(x)=0일때는 cost값이 매우 커지게된다. y = 0일때도 마찬가지다.(오른쪽 그래프) 반대쪽 그래프는 H(x)=1일때 cost값이 커진다. 이 두개의 그래프를 합치면 우리가 쓰던 U자형 그래프가 되는 것이다.

 

이 함수가 두개의 그래프를 붙였을 때의 함수가 된다.

 

 

 

 

 

 

▶ TensorFlow

자세한 텐서플로우 알고리즘 다루기는 동영상 url을 따라가면 볼 수 있다.