Worth spreading

cost를 구할 때 log를 쓰는 이유는? 본문

ABCD/Deep Learning

cost를 구할 때 log를 쓰는 이유는?

annual 2017. 7. 19. 13:24

지난 시간에 포스팅했던 cross entropy함수를 보면 수식에 log가 들어있는 것을 볼 수 있다.


그냥 정답과 예측값 간의 차이를 전달해주면 될텐데 왜 굳이 복잡하게 log를 달아서 전달해주는 것일까?

이것에 대해 함께 이야기해보자 !



머신러닝에서 cost는 우리가 학습시킨 프로그램이 얼마나 정확한지를 나타내는 지표라고 할 수 있다.


cost값이 작을수록 정답에 가깝다는 의미이고 우리는 이 cost를 최소화하는 것을 목표로 한다.


cost의 최솟값을 찾아갈 때는 미분이란 개념을 사용하는데 미분이란 쉽게 말해 기울기를 구하는 것이다.


미분으로 기울기를 구한 후 이 기울기가 작아지는 방향으로 cost함수의 변수 값들을 조절해주는 것이다.


그런데 우리가 머신러닝에서 사용하는 활성화함수는 sigmoid와 같은 비선형함수들이다. 


비선형함수들은 지수(exponential)의 성질을 이용한 것이기 때문에 구부러진 모양의 그래프를 만들어내는데 이렇게 구부러진 그래프에서는 기울기가 들쑥날쑥하게 되어 최솟값을 찾아가기 힘들어진다.


log를 사용하는 이유가 바로 이것이다. log는 지수와 반대되는 성질을 가지고 있지 않은가?


평소에는 복잡한 연산을 위해 지수를 활용해 다양한 연산을 실행하고

cost를 구할 때는 편의를 위해 구부러진 이 값들을 log로 펴준다는 것이다 !



# feedback 환영합니다


Reference - 김성훈 교수님의 '딥러닝의 기본' lec 5-2

 





Comments