작성
·
399
0
loss.py 중 set coord_loss 뿐 아니라 모든 loss를 구하는 부분에서 tf.nn.l2_loss를 사용하셨는데, 이건 제곱 후 2로 나눠주는 연산을 하는 연산으로 알고 있습니다.
tf.nn.l2_loss를 사용해서 2로 나누는 연산을 하신 이유에 대해서 궁금합니다.
답변 1
1
안녕하세요. 반갑습니다~.
1/2을 곱한이유는 ^2로 제곱하는 부분이 Gradient Descent 과정에서 미분을 취하면 앞에 *2로 튀어나오기 때문에 이부분에 1/2을 곱해서 상쇄시킴으로써 수식을 더욱 깔끔하게 만들기 위함입니다.
딥러닝 구현에서 광범위하게 사용되는 패턴중에 하나로 1/2은 단지 수식 전개를 깜끔하게 만들기 위한 상수이기때문에 1/2을 곱하든 곱하지 않든 최종 결과에 큰차이를 만들어내지는 않으므로 크게 신경쓰지 않으셔도 됩니다.
더 자세한 내용은 아래 답변을 참조하세요.
https://datascience.stackexchange.com/questions/52157/why-do-we-have-to-divide-by-2-in-the-ml-squared-error-cost-function
감사합니다~.