• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

loss.py 의 loss에 사용된 tf.nn.l2_loss 에 대해서 질문 드립니다.

21.05.27 18:20 작성 조회수 262

0

loss.py 중 set coord_loss 뿐 아니라 모든 loss를 구하는 부분에서 tf.nn.l2_loss를 사용하셨는데, 이건 제곱 후 2로 나눠주는 연산을 하는 연산으로 알고 있습니다.

loss function에서는 2로 나누는 연산은 없었는데, code에서 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

감사합니다~.