로지스틱 회귀(Logistic Regression)란?
로지스틱 회귀는 이진분류(binary classification)를 해결하기 위한 알고리즘이다
지도학습
labeled dataset을 바탕으로 x를 통해 x의 클래스(y)를 분류
여기서 중요한 점!
2개의 클래스 A와 B를 분류한다고 생각하지말고!! A인 클래스와 A가 아닌 클래스를 분류한다고 생각할 것!!!!
분류문제는 해당 클래스에 속할 확률을 예측결과로 사용해야한다
지금까지의 선형회귀(Linear Regression)은 하나의 예측값을 결과로써 사용했지만
로지스틱 회귀(Logistic Regression)와 같은 분류문제는 각 클래스에 속할 확률을 결과 예측값으로 사용해야한다
따라서 선형회귀 모델의 값이 확률로써 의미를 가질 수 있도록 sigmoid 함수를 사용한다
sigmoid 함수
위의 그래프에서 볼 수 있듯이 sigmoid는 input을 0에서 1사이의 값, 즉 확률분포로 바꿔준다
로지스틱 회귀의 가설(hypothesis)
지금까지 설명을 잘 따라왔다면 위의 식이 아래와 같이 보여야한다
sigmoid( 선형회귀의 가설 h(θ) )
그리고 의문이 한가지 생겨야한다.
'왜 bias는 sigmoid의 input으로 안 들어가지?'
해답은 저 표현식 자체가 이미 bias를 표현한 식이다 그 이유는 아래와 같다
기존의 비용함수(MSE)를 사용해도 될까?
선형회귀에서는 아래와 같은 비용함수를 사용했었다.
자, 그렇다면 우리가 위에서 정한 로지스틱 회귀의 가설, 다시 말해 sigmoid함수가 추가된 우리의 가설이
이 비용함수에 들어가면 어떤 그래프가 될까?
오잉 non convex 함수면 global optima를 찾을 수 없는데... 어떡하지.......???
그리하여 새로운 비용함수(Binary Cross Entropy) 등장
여기서 y는 사람이 주는 레이블 데이터이다!!!
차근차근 해석해보면 우선 우리의 가설은 sigmoid를 거쳤기 때문에 0과 1사이의 값이다
다음은 이 가설을 입력으로 받는, 즉 입력의 범위가 0에서 1사이인 -logx의 그래프는 다음과 같다
자, 이제 손실함수를 그려보자
y=1인 경우의 손실함수는 다음과 같다
이 함수식의 값은 입력 가설이 0부터 1로 증가할때 무한대에서 0으로 점근적으로 감소하게 된다
y=0인 경우의 손실함수는 다음과 같고
이 함수식의 값은 입력 가설이 0부터 1로 증가할때 0에서 무한대로 점근적으로 증가한다
즉 손실함수는 y의 값에 따라 다음과 같이 그려진다
자 어떠한가 MSE를 손실함수로 사용할때보다 binary cross entropy를 손실함수로 사용하니까
훨씬 간단하고 무엇보다 이제 더이상 MSE를 사용했을 경우처럼 non convex function이 아니라 convex function이다
이 말은 무엇인가 경사하강법을 사용해도 반드시 global optima를 찾을 수 있다는 뜻이다.
이쯤에서 정리
자, 지금까지 설계한 모델이 어떠한 학습의 논리흐름을 가지는지 한번 정리하고 넘어가는게 좋을 것 같다.
우선 우리가 설계한 가설은 sigmoid라는 개념을 추가해서 "확률"이라는 의미를 갖게 되었다
'우리가 설계한 모델이 어떤 방식으로 학습되는가'라는 말은
'우리가 설계한 모델의 파라미터들이 어떠한 방식으로 업데이트 되는가'라는 말과 같고 이 말은
'우리가 설계한 모델은 어떠한 손실함수를 최소화 하는 방향으로 파라미터들이 업데이트되는가'라는 말과 같다.
즉, '우리의 손실함수가 최소화되는 것'의 의미를 알아야 하는데
우선 우리의 가설을 h(x)대신 더 정확히 설명하기 위해서 sigmoid(wx+b)라고 표현하겠다
정답레이블 y가 1일때는 위의 그래프에서 알 수 있듯이 sigmoid(wx+b)가 1에 가까워지는 방향으로 학습되어야 손실함수가 최소가 되는 방향으로 학습된다.
sigmoid 그래프를 다시 보자
sigmoid(wx+b)가 1에 가까워지려면 적어도 wx+b는 0보다는 크게 된다
정답레이블 y가 0일때는 위의 그래프에서 알 수 있듯이 sigmoid(wx+b)가 0에 가까워지는 방향으로 학습되어야 손실함수가 최소가 되는 방향으로 학습된다.
sigmoid 그래프를 다시 보자
sigmoid(wx+b)가 0에 가까워지려면 적어도 wx+b는 0보다는 작게 된다
'딥러닝_이미지&영상처리' 카테고리의 다른 글
선형회귀 알고리즘(Linear Regression) (0) | 2019.11.07 |
---|