A list of cost functions used in neural networks, alongside applications
What are common cost functions used in evaluating the performance of neural networks?
Details
(feel free to skip the rest of this question, my intent here is simply to provide clarification on nota...
Gradient Descent
경사하강법이 최적화 문제를 해결하는데 아주 효율적인 방법이다.
하지만 경사하강법의 문제는 비용 함수가 볼록해야지만 사용할 수 있다는 것이다.
하지만 함수의 모양이 볼록하지 않다면 어떡해야할까?
Stochastic Gradient Descent
우리는 손실함수가 제곱한 형태라서 이차함수 형태로 나올 것이라 생각했다.
그러나 다차원 공간이라서 볼록하지 않은 모양으로 바뀔 수 있다고 한다.
그래서 이럴 때 평법한 경사 하강법을 적용하려고 하면 잘못된 가중치를 얻을 수 있다.
이를 해결하기 위해 확률적 경사 하강법을 사용한다.
확률적 경사 하강법은 볼록할 필요가 없다.
기존의 (배치)경사 하강법은 신경망에서 모든 행을 실행한 다음 가중치를 조정하고 전체 행을 다시 실행한다.
그러나 확률적 경사 하강법은 한 번에 한 행만 실행하고 가중치를 조정하는 것이다.
확률적 경사 하강법은 전반적인 최소치를 찾는게 아니라 로컬 최소치를 찾게 되는 문제점을 피하는데 도움이 된다는 것이다.
한 번에 반복 한번, 행 한 번을 실행하기 떄문에 변동성이 훨씬 높다.
하나씩 하다보니 확률적 경사 하강법이 느릴 것 같지만 실제로는 더 빠르다.
전체 데이터를 메모리에 로드해서 모든 행이 다 실행 될 때까지 기다릴 필요가 없기 때문이다.
배치 경사 하강법은 결정론적인 알고리즘이지만 확률적 경사하강법은 말 그대로 확률적인 알고리즘이다.
신경망의 시작 가중치가 똑같다면,
배치 경사 하강법은 매번 똑같은 반복을 하고 같은 결과로 가중치가 업데이트 될 것이다,.
그러나 확률적 경사 하강법은 같은 결과가 나오지는 않을 것이다.
그래서 둘의 장단점을 합친 미니 배치 경사 하강법: 10개, 100개 정도 데이터를 실행하고 조정하는 방법도 있다.