티스토리 뷰

Logistic Regression

 - 머신러닝에서 가장 인기있고 유용한 알고리즘 중 하나.

 - Logistic Regression 즉, 논리 회귀 알고리즘이다.

 - 그리고 이것의 흐름도는 다음과 같다.

 - 데이터 수집 (Take your data)

 - 랜덤 모델 선택 (Pick a random model)

 - 에러 계산 (Calculate the error)

 - 에러 최소화 및 더 나은 모델 탐색 (Minimize the error, and obtain a better model)


 - Cross-Entropy : 일어나는 사건의 가능성을 측정한 것.

 - 좋은 네트워크는 낮은 엔트로피를 갖음.

 - 이말은 곧 발생한 사건과 알려진(known) 확률 사이에 상관관계가 있다는 의미이다.

 - Cross-Entropy는 error function을 계산할때 사용되며 이를 통해 각 네트워크(모델)를 비교하고

 - 어떤것이 더 나은지 알 수 있다. 그러므로 더 나은 네트워크(모델)에 가까워 질 수 있다.

 - Error function은 해당 네트워크(모델)가 얼마나 잘 작동하는지 를

 - 네트워크를 비교하고, 더 나은 네트워크에 가깝게 접근하기위해 수학적으로 계산을 한 것이다.

 - 이때 이 Error function은 기술적으로 cross-entropy를 사용하여 얻어낼 수 있음.






Calculating the Error Function

 - 빠르게 지난 내용들을 recap해보면, 우리는 cross-entropy를 구했었고, 우측이 더 좋은 모델인 이유는 

 - 이 cross-entropy 값이 더 작기 때문이다.

 - 그럼 이 Error-function의 공식에 대해 알아보도록 하자.



 - 두가지 케이스로 나눠서 접근을 해보자.


 - 첫번째 케이스는 y = 1일때 즉, 점이 파랑일 때

 - 모델이 우리에게 파랑일 확률을 말해주는 prediction은 yHat이다.

 - 파랑 영역에 있는 파란점의 확률이 빨간 영역에 있는 파란 점보다 더 높다.

 - 그리고 에러(error)는 이 Prediction을 지수로 하는 음의 로그를 지칭한다.(Error = - ln(yHat))


 - 두번째 케이스는 y = 0일때 즉, 점이 빨강일 때

 - 빨강일 prediction은 1- P(blue) 즉, 1- yHat이 된다.

 - 에러는 Error = -ln(1 - yHat)


 - 결과적으로 에러의 총 합은 Error = -(1-y)*(ln(1-yHat)) - y*ln(yHat) 으로 표현할 수 있다(위의 예시에선 4.8이 이에 해당).

 - Error function은 해당 클래스의 개수인 m으로 나눈 값이 되며 위의 예시에선 4.8/4 = 1.2가 된다.

 - 우리는 이제 이 Error function을 앞으로 사용하도록 하자.



 - yHat이 linear function인 WX+b가 sigmoid에 의해 yHat으로 주어지므로 Error Function을 구할 수 있고, 

 - Error function의 전체 공식은 이 yHat을 다시 원래대로 WX + b로 되돌려 주기만 하면 된다.

 - 따라서 우리는 이 에러를 최소화하는것을 목표로 구현해내면 된다.



 - 우리가 이전에 예시로 들어봤던것은 binary classification에 관한 것이었고, 

 - 앞으로 multi-class classification에 관한 문제에는 Error가 multi-class entropy로 주어지게된다.






Minimizing the error function

 - 그렇다면 이제 우리의 목표는 이 error function을 최소화하는것이다.

 - 랜덤한 weights로부터 시작을 하고 거기서 sigmoid(Wx + b)라는 prediction을 얻어낼 수 있고

 - 또한 위에서 다뤘던 것 처럼 공식에 의해 error function 도 얻어낼 수 있다. 

 - error function의 공식은 각 점에대한 error function의 합을 클래스의 개수로 나눈다는 점 

 - 따라서 잘못 분류된 점에 대해서는 큰 값을, 옳게 분류된 점에 대해서는 작은 값을 리턴한다는 점


 - 우리가 이 error function을 최소화 할 방법은 gradient descent를 이용하는것이다.

 - 다시 산에 예시를 빗대어보면, 산 정상에서 바닥까지의 거리를 error라 가정하자.

 - 현재의 Error function이 E(W, b)를 의미하고 이때 W 와 b 는 weights를 의미함

 - 그다음 gradient descent를 이용해서 에러를 최소화 해 나갈것이다.

 - 더 작은 에러를 도출해내는 E(W', b') 방향으로 계속해서 반복하는 원리이고, 

 - 이 과정에서 더 작은 에러값을 도출해내는 W', b'이라는 weights를 얻게되고

 - 이는 더 나은 prediction을 얻게 해준다.

 - 즉, 이 새로운 prediction은 sigmoid(W'x + b') 을 의미함.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함