티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Logistic Regression
chrisysl 2018. 6. 27. 20:01Logistic 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') 을 의미함.