인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

redsharks님의 프로필 이미지
redsharks

작성한 질문수

딥러닝 CNN 완벽 가이드 - Fundamental 편

Dense Layer로 Fashion MNIST 예측 모델 구현하기 - 예측 및 성능 평가

loss 값의 해석

작성

·

786

0

강사님 안녕하세요. 강의 마지막 부분 중 loss에 대한 질문이 있어 글 남깁니다.
 
accuracy의 경우, 0~1의 값을 가지므로 본 강의의 trained model의 accuracy 값인 0.8828의 수준에 대한 직관적인 이해가 가능합니다. (11:15초 부분의 맨 마지막 코드 결과값)
 
하지만, loss 값의 경우, 테스트 한 1만개의 이미지에 대해 softmax output 값으로부터 거꾸로 loss가 구해지는 것으로 이해를 했는데요, 이런 경우 0.3675라는 loss값이 정확히 어느정도의 값을 나타내는지 직관적으로 이해하기 어려웠습니다.
 
0.3675라는 loss 값을 판단할 때, 무엇을 기준으로 보는게 가장 적합할지 여쭤봅니다. (ex, 총 10개의 클래스를 가지는 데이터셋이었으므로 10을 기준으로 판단? 혹은 1만개의 테스트 이미지를 사용하였으므로, 사용한 이미지의 개수를 기준으로 판단? 등)

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

질문을 제가 잘 이해했는지는 모르겠습니다만,

딥러닝의 loss값은 loss함수를 어떤것을 사용했느냐에 따라 달라지기 때문에 직관적으로 이해할 수 있는 기준치는 없습니다.  일반적으로 classification은 log loss 를 기반으로하는 Cross entropy loss를 적용합니다. (굳이 따지자면 cross entropy에 영향을 미치는 것은 클래스의 갯수입니다. )

다만 loss값은 batch size 단위의 평균 loss를 기반으로 만들어집니다. 즉 batch size가 10이면 10개의 이미지에 대한 loss 합을 구한 다음에 10으로 나누게 됩니다( 이 방식은 SUM_OF_BATCHES라고 하며 별다른 설정이 없으면 Tensorflow에서 Default로 동작합니다)

물론 이 loss 계산식은 tensorflow에서 변경될 수 있습니다.(https://www.tensorflow.org/api_docs/python/tf/keras/losses/Reduction 에 보다 상세한 설명이 있습니다).  batch size 단위의 평균 loss가 될 수 있고, 전체 학습 데이터 건수의 총합을 기반으로도 설정할 수 있습니다(즉 이 경우는 학습 데이터가 많으면 총 loss가 커집니다) 

감사합니다. 

redsharks님의 프로필 이미지
redsharks
질문자

답변 감사드립니다 :)

redsharks님의 프로필 이미지
redsharks

작성한 질문수

질문하기