2017-02-06 1 views
3

나는 tensorflow의 im2txt 샘플을 훈련하고있어이 손실 출력 :정확히 손실이란 무엇입니까?

INFO:tensorflow:global step 2174: loss = 3.6930 (15.83 sec/step) 
INFO:tensorflow:global step 2175: loss = 3.6651 (15.52 sec/step) 
INFO:tensorflow:global step 2176: loss = 3.5733 (18.25 sec/step) 
INFO:tensorflow:global step 2177: loss = 3.1979 (18.87 sec/step) 
INFO:tensorflow:global step 2178: loss = 2.9362 (15.99 sec/step) 
INFO:tensorflow:global step 2179: loss = 3.6375 (15.65 sec/step) 

손실이 무엇입니까? 정확하게 수행 할 수있는 AI의 확률과 어떤 관련이 있습니까? (공식이 있습니까?) ususally 허용 손실 무엇입니까? 에서

답변

2

: https://github.com/tensorflow/models/blob/master/im2txt/im2txt/show_and_tell_model.py

losses = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=targets, 
                  logits=logits) 
    batch_loss = tf.div(tf.reduce_sum(tf.multiply(losses, weights)), 
         tf.reduce_sum(weights), 
         name="batch_loss") 

softmax는 기본적으로 (당신이 문서의 정확한 정의를 조회 할 수 있습니다) 추론 할 수있는 멋진 최대 기능입니다. 가장 큰 활성화에 대해 높은 가치를 가질 것입니다. 그것은 여러 번 높은 활성화를 가질 수 있으며 이것은 모든 잘못된 것들에 대해 불이익을받을 것입니다.

손실은 모델이 최적화되기를 바라는 것입니다.

똑같은 손실을 가진 유사한 모델을 많이 훈련하지 않은 한 대개이 정도는 의미가 없습니다. 보통 손실 그래프를보고 모델이 진행을 멈추는 것을보고 훈련을 중지 할 수 있습니다. 또한 다른 모델의 경우 손실을 높이기 위해 다른 것들을 추가하는 것이 좋습니다 (평균을 1.0으로하려는 일부 입력 가중치를 말하십시오). 모델이 더 나쁩니다.

모델이 좋은지 나쁜지 알아 보려면 원하는 것에 대한 측정 항목을 추가하십시오. 분명한 것은 정밀도/회상/정확도입니다. 이미 사용할 수있는 미리 정의 된 메트릭이 있습니다 (streaming_accuracy). 또는 메트릭을 계산하여 요약으로 추가 할 수도 있지만 평가 데이터 세트에서 사용할 수는 없습니다.

또 다른 옵션은 분명히 나쁜 (상수 또는 무작위) 모델을 설정하고 그 모델의 손실을 현재와 비교하는 것입니다.

1

손실은 최적화 알고리즘이 최소화하려고 시도하는 대상 기능입니다.

일반적으로 손실 함수는 모델의 악성 정도를 나타내는 척도가됩니다. 그러나 최적화 알고리즘이 제대로 작동하려면 몇 가지 수학적 속성이 필요하기 때문에 정밀도와 리콜 (모델 매개 변수와 관련하여 차별화 된 연속 함수를 원합니다)과 같은 일반적인 요소는 선택할 수 없습니다.

분류 작업의 경우 softmax이 일반적입니다. 네트워크가 가장 활성화 된 클래스를 선택하는 데 사용되는 argmax의 부드럽고 잘 작동하는 버전입니다. 회귀 분석에서 보통 mean squared error이 정상적으로 작동합니다.

관련 문제