머신러닝을 공부하며 든 궁금증.
cost function (loss function)으로 이용하는 MSE라는 것을 보자마자 궁금해졌다.
분명 평균 제곱 오차 (Mean Squared Error) 라고 했는데, 왜 데이터의 개수(n) 이 아니라, 2n으로 나누는 건가?
읽던 책에도 그 이유가 나와 있지 않았고, 강의 교안에도 딱히 그에 대한 언급은 없었다.
결론은 Gradient Descent (경사하강법)을 적용하는 과정에서 미분값을 구하게 되는데,
제곱을 미분하면 2가 생기니까 식이 깔끔해지도록 이를 상쇄시켜 주기 위함이라는 것.
어짜피 cost function을 최소화하는 것에 관심이 있는 것이지, cost function의 값이 정확히 무엇인지는 크게 상관 없기 때문에, 미분식을 더 깔끔하게 만드는 것이 이득이라는 것이다.
+ 그렇다면 어짜피 데이터의 개수 n으로 나누지 않아도 되는 것 아닌가?
cost function의 값을 최소화하는 것이 목표라면, n으로 나누든 나누지 않든 똑같을 것 같은데?
라는 의문이 또 들었고.. 이건 chatGPT한테 물어봤다.
3번은 어짜피 미분해도 1/n이 남아 있어서 동의할 수 없지만.. 뭐 그렇다고 한다.