티스토리 뷰
Logistic(regression) classification : cost function & gradient decent
취뽀가자!! 2018. 6. 6. 17:41Logistic (regression) classification: cost function & gradient decent
Linear Regression에서 배운 hypothesis와 이번에 배울 hypothesis를 비교해서 보여준다. hypothesis는 cost함수를 구성하는 핵심이기에 여기서도 cost함수가 달라져야 한다고 한다.
우리가 이전에 배운 hypothesis를 cost함수로 표현해 minimize하면 오른쪽 그림과 같이 나타난다. 왜냐하면 직선을 구부려 놓은 것이기 때문이다. 하지만 새로운 hypothesis를 이용해 cost함수를 식으로 나타내면 왼쪽 그림과 같이 울퉁불퉁하게 나타나게 된다. 왜냐하면 sigmoid를 구부려서 연결했기 때문이다.
이렇게 sigmoid를 구부려서 만든 새로운 cost 함수는 문제점이 있다. 바로 local minimum을 찾는 다는 것이다. 그래서 반드시 구불구불한 형태의 모양을 매끈하게 펴야 한다. 그래야 우리가 원하는 global minimum에 도달할 수 있다.
이것이 새로운 cost 함수이다. cost 함수의 목적은 비용(cost)를 판단해서 올바른 W와 b를 찾는 것이다. 다시 말해, 목표로 하는 W와 b를 찾을 수 있다면, 어떤 형태가 됬건 cost 함수라고 부를 수 있다는 뜻이다.
자연상수(e)의 지수를 사용하는 hypothesis의 비용을 판단하기 위해 log가 등장했다. log가 등장한 이유는 지수의 반대개념이기 때문에 구불구불한 cost함수를 매끈하게 필 수 있게 되기 때문이다.
왼쪽 그래프는 그래프의 왼쪽 부분이고 오른쪽 그래프는 그래프의 오른쪽 부분이다.
-log(z)는 왼쪽 그래프를 나타내고, -log(1-z)는 오르쪽 그래프를 나타낸다.
이번에는 식에 대해 설명해 보겠다.
y가 1일 때
H(x) =1일 때는 왼쪽 그래프에서 y는 0이 된다. (cost=0) - > 예측 맞음
H(x) = 0일 때는 왼쪽 그래프에서 y는 무한대가 된다. (cost=무한대) -> 예측 틀림
y가 0일 때
H(x) = 0일 때는 오른쪽 그래프에서 y는 0이 된다. (cost=0) - > 예측 맞음
H(x) = 1일 떼는 오른쪽 그래프에서 y는 무한대가 된다. (cost=무한대) -> 예측 틀림
맞는 예측을 했을 때의 비용을 0으로 만들어 줌으로써 cost 함수의 역할을 제대로 함을 알 수 있다.
그리고 Linear regression에서 했던 것처럼 패널티를 주기 위해 제곱을 하진 않는다. log 자체에 패널티와 동일한 무한대로 수렴하는 값이 있기 때문에 제곱을 할 필요가 없기 때문이다. 결론적으로 분류(classification)에서도 지금까지와 동일하게 최소 cost가 되도록 W를 조절하는 것이 핵심이다.
앞에 나온 식 두개를 하나의 식으로 합친 것이다. 하나의 식으로 합친 이유는 코딩을 할 때 매번 if문이 들어가 불편해지기 때문에 하나로 합친 것이다. 식에 대한 이해는 간단하다.
우리가 앞에서 만들어 왔던 공식을 cost함수와 합쳤다.
두 번째 공식은 cost(W)에 대해 미분을 적용해서 W의 다음 번 위치를 계산하는 공식이다. Linear Regression과 공식에서는 달라진 게 없지만, cost(W)가 달라져 매우 복잡한 공식이 되어 버렸다. 어차피 미분을 해주는 함수가 있기에 '미분을 하면 되는구나' 정도로 넘어가면 된다.
Linear Regression 알고리즘에서 cost 함수와 gradient descent를 구하는 공식이 각각 있었던 것처럼 Logistic Regression에서도 두 개의 공식이 있어야 하고, 위의 그림에서 확인할 수 있다.
미분에 대한 공식은 달라졌지만, W를 일정 크기만큼 이동시키는 부분은 여전히 동일하기 때무에 앞서 배운 gradient descent 알고리즘을 여기서도 사용할 수 있다.
-------------------------------------
이 글은 모두의 딥러닝을 듣고 정리한 글입니다.
'AI > 딥러닝(sung kim)' 카테고리의 다른 글
Multinomial 개념 (0) | 2018.06.10 |
---|---|
TensorFlow로 Logistic Classification의 구현하기 (0) | 2018.06.09 |
Logistic(regression) classification (1) | 2018.06.05 |
multi-variable linear regression을 tensorflow에서 구현하기 (0) | 2018.05.22 |
multi-variable linear regression (1) | 2018.05.22 |