ML lec 5-2 Logistic Regression의 cost 함수 설명

2021. 5. 23. 19:18

출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 

 


우리가 앞서 살펴본 Cost function은 위와 같았음.

 


 

 

하지만 우리의 가설이 바뀌게 되면서 sigmoid function을 사용해서 출력값을 0과 1 사이로 조정해줬음.

 

또 그래프의 그림을 그려보면 위의 파란색 그래프과 같이 그릴 수 있는데, 오른쪽 그림에서 발생하는 한가지 문제점은 경사하강법을 실시하면 시작점이 어디냐에 따라서 끝나는 점이 달라질 수 있다는 것임.

 

이렇게 각각 달라지는 최종 점을 Local minimum 이라고 할 수 있는데, 우리가 찾고자 하는 점은 Global minimum임.

 

global minimum을 찾기 위해서는 위와 같은 cost 함수의 형태를 그대로 사용할 수 없기 때문에 새로운 형태의 cost function이 필요하게 됨.

 


두 가지의 경우로 나누어서 함수를 정의할 수 있음. y가 1일 때와 0일 때.

 


y의 실제 label이 1일 때와 0일 때로 나누어서 고려해보자.

 

두 경우 모두 성공적으로 H(x)의 값을 예측하게 되면 cost 값은 0에 가까워지지만, 실제 label과 cost의 값 예측이 실패하게 되면 cost의 값이 매우 커지게 된다.

 

따라서 이 그래프 두개를 합하게 되면 앞에서 봤던 밥그릇 모양의 그래프가 만들어지고, 이 그래프에서는 경사하강법을 적용할 수 있게 된다.

 


 

 

실제로 코드를 작성할 때는 y가 0과 1로 나뉘기 때문에 if condition을 적용해야한다.

 

하지만 꽤 복잡하기 때문에 이 것을 합해서 하나의 식으로 표현을 하기 위해 조정을 해주게 되면 맨 아랫줄의 식으로 표현을 할 수 있게 된다.

 


 

이 알고리즘을 코드에서 구현할 때는 위와 같이 작성할 수 있는데, 수식 부분은 실제로 라이브러리가 존재하기 때문에 별도로 작성하지 않아도 된다. GradientDescentOptimizer 라는 라이브러리로 존재.

BELATED ARTICLES

more