본문 바로가기
Deep learning

2-3. Logistic Regression

by 괴로운데이빗 2020. 7. 28.

classification 문제를 해결하기 위해 Logistic 사용가능

 

Logistic Regression은 Linear와 다르게 y값이 0또는 1.

이를 classification 문제라고 한다.

 

원래 Linear 사용하면 가정한 모델이 따라, 직선 곡선 2차함수 그릴 수 있다.

하지만 데이터가 feature 값에 따라 0,1로 있는 경우에는 s자모양 함수가 필요하다.

그래야 샘플과 라인간의 cost가 작아질 수 있다.

 

이런 함수값을 찾아야 미분을 해서 파라미터 값들을 얻을 수 있는데(gradient descent),

실제 이런 모양함수가 있다.

-> Logistic function

 

y인 0.5를 기준으로 0,1로 분류가능하다.

z=wx+b로 이는 Linear에서 사용했던 함수인데,

z>0이면 g(z)는 0.5~1로,

z<0이면 ㅎ(z)는 0~0.5값이 나오게 된다.(선형에서 특정 z값을 기준으로 분류가 된다.)

 

이 슬라이드에서 함수와 식을 정리해주고 있다.

s자가 Logistic function에 대한 그래프이고,

hypothesis가정은 위의 Logistic function의 식이다.

여기서도 역시 파리미터인 w와 b를 학습하는 문제로 생각 할 수 있다.

feature가 여러 개라면 우측 제일하단 식처럼 나타낼수 있다.(w는 벡터이다.)

 

여기서 중요한 것이 역시 cost이다.

이전에는 sigma(h-y)^2해서 다 더했는데,

이것은 h함수가 미분값을 구하기 힘든 구조가 된다.

즉, 함수가 최소값이 1개만 있는 convex한 값이었는데,

위의 식 이용하면 이런 convex한 값이 만들어지지 않기때문에, 크로스엔트로피라고 하는 Loss(Cost) 사용

 

식 간단히 살펴보면 y가 1일때는 h도 1이면 편하다.

y가 1일때는 우측은 자동으로 0이 된다.

 

(좌측)

로그함수그래프를 참고하여, prediction값(h)이 0에 가까우면 -무한대값이 나온다.

따라서 Cost가 커지게 된다.

하지만 1일때는 0값이 되므로, cost가 0에 가까워진다.

 

(우측)

반대로 y값이 0이면 우측은 1이되어 hypothesis(h, prediction값)이 0에 가까워야만 0값이 나오게된다.

만약 y값이 0이었는데, prediction값이 1과 가깝게 나오게되면 log부분의 값은 0에가까워져 -무한대가 되어 Cost가 커지게 된다.

 

이 식을 Cost로 minimization 하기위한 parameter 찾는다.

풀게되면 원하는 w와 b값을 얻을 수 있다.

 

이 식을 최소하기 위해서는 여기서도 gradient descent기법을 사용하면 된다.

 

gradient descent식을 다시 살펴보면 다음과 같다.

결국 구해야 할 값은 상단 동그라미이다.

이 값 구하면 w값을 업데이트 할 수 있다.

알파값은 우리가 정해주는것이다.

 

즉, 하단식의 미분값만 구하면 되는 것이다.

 

1. 체인룰에 의해 h로 미분, h에 대한 미분하면 된다.

로그의 미분.

 

2. 체인룰로 z로 미분, z에 대한 미분

이 z값에 대한 Sigmoid 펑션, Logistic function의 미분값을 구하면,

Logistic function의 미분값은 h(1-h)나오게 되는데 과정은 생략하겠다.

z=wx+b

이므로 이걸 w로 미분하니까 x만 남음

 

결국 최종식은 Linear에서 gradient descent로 풀었을때 나온 식과 일치함

결국 gradient descent하기 위해서는 우리 prediction값과 y값의 차이가 필요하다.

이 에러에 의해 gradient를 구할 수 있고, 그걸로 w업데이트 할 수 있는 것이다.

bias는 생략했다.(x0이라고 생각하면 된다.)

 

정리슬라이드.

Logistic에서 gradient descent식을 풀게되면 하단 Linear regression과와 정확히 일치하는 식이 나온다.

즉, gradient descent로 파라미터를 업데이트 할 수 있다는 소리이다.

 

z에 Logistic function을 입혀준다.(Sigmoid function이라고도 불린다.)

prediction h와 y값 비교해서 에러를 구한다.

이 에러를 바탕으로 gradient descent를 할 수 있고,

파라미터 업데이트 가능하다

 

이는 트레이닝 과정이고, 이 값들이 최종 fix가 되면 새로운 feature들 들어왔을때 여기에 넣어주게 되면 prediction값 얻을수 있다.

 

다음 수업때는 Neural network 알아보자

'Deep learning' 카테고리의 다른 글

2-6.Medical image classification  (0) 2020.08.08
2-5.Image Classification  (0) 2020.08.08
2-4.Neural Network  (0) 2020.08.06
2-2.Linear Regression  (0) 2020.07.06
1-1.Introduction to medical image classification  (0) 2020.07.01
1-7. Magnetic Resonance Imaging (MRI)  (0) 2020.06.15
1-6. X-ray / CT / PET  (0) 2020.06.04