-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
loss.py 의 loss에 사용된 tf.nn.l2_loss 에 대해서 질문 드립니다.
21.05.27 18:20 작성 조회수 305
0
loss.py 중 set coord_loss 뿐 아니라 모든 loss를 구하는 부분에서 tf.nn.l2_loss를 사용하셨는데, 이건 제곱 후 2로 나눠주는 연산을 하는 연산으로 알고 있습니다.
tf.nn.l2_loss를 사용해서 2로 나누는 연산을 하신 이유에 대해서 궁금합니다.
YOLO 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0
loss.py - object_loss, noobject_loss, class_loss
강의실 바로가기
답변을 작성해보세요.
1
AISchool
지식공유자2021.05.27
안녕하세요. 반갑습니다~.
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
감사합니다~.
답변 1