기계 학습 모델의 "손실"및 "정확도"를 해석하는 방법


답변:


284

손실 이 적을수록 모델이 향상됩니다 (모델이 훈련 데이터에 과도하게 적합하지 않은 경우). 손실은 훈련에서 계산됩니다검증 되며 그 상호 작용은 모델이이 두 세트에 대해 얼마나 잘 수행되고 있는지입니다. 정확도와 달리 손실은 백분율이 아닙니다. 훈련 또는 검증 세트에서 각 예에 대해 발생한 오류를 요약 한 것입니다.

신경망의 경우 손실은 일반적으로 음의 로그 우도 이며 분류 및 회귀에 대한 잔차 제곱합입니다 . 자연스럽게 학습 모델의 주요 목표는 신경망에서의 역전 파와 같은 다른 최적화 방법을 통해 가중치 벡터 값을 변경하여 모델 매개 변수에 대한 손실 함수 값을 최소화 (최소화)하는 것입니다.

손실 값은 각 최적화 반복 후에 특정 모델이 얼마나 잘 작동하는지 나타냅니다. 이상적으로는 매번 또는 여러 번 반복 한 후에 손실이 감소 할 것으로 예상합니다.

모델의 정확도는 일반적으로 모델 매개 변수를 학습하고 수정 한 후 학습이 수행되지 않은 후에 결정됩니다. 그런 다음 테스트 샘플을 모델에 공급하고 실제 목표와 비교 한 후 모델의 실수 횟수 (0 대 1 손실)를 기록합니다. 그런 다음 오 분류 백분율이 계산됩니다.

예를 들어, 테스트 샘플 수가 1000이고 모델이 952를 올바르게 분류하면 모델의 정확도는 95.2 %입니다.

여기에 이미지 설명을 입력하십시오

손실 가치를 줄이면서 미묘한 부분도 있습니다. 예를 들어, 당신은 문제로 실행할 수 있습니다 오버 피팅 모델 "기억한다"훈련 예제와 테스트 세트의 종류 효과의가되는. 정규화를 사용하지 않거나 모델이 매우 복잡한 경우 (자유 매개 변수 W의 수가 많음) 또는 데이터 포인트의 수가 N매우 적은 경우에도 과적 합이 발생합니다.


2
@Amir 님 안녕하세요, 자세한 설명에 감사드립니다. 그러나 문제가 있습니다 : 신경망에서 훈련 할 때 손실이 항상 감소 하지만 ( 신기원이 증가 할 때 ) 정확도는 좋지 않습니다.
mamatv

8
@mamatv 비용이 감소하는 한 잘 가야합니다. 비용과 정확도는 일반적으로 반비례 관계를 갖지만 정확도는 0-1 오류의 합이고 비용은 부동 소수점 숫자의 합이라는 것을 알 수 있습니다. 따라서, 0.001 %의 비용 감소가 반드시 0.001 %의 정확도 증가를 의미하는 것은 아닙니다. 비용의 감소가 무형적 일 때 정확도가 훨씬 더 어려워집니다 (비용이 현지 최소치에 매우 근접 함)
Amir

2
@mamatv 교육 및 검증 비용이 줄어드는 한, 잘 가야한다고 말해야했습니다. 각 에포크에서 유효성 검사 정확성을 확인할 수도 있습니다. 올라가면 모델이 과적 합되기 시작하여 훈련을 중단해야합니다.
Amir

1
손실을 최소화하기보다는 정확도를 높이도록 모델을 훈련시켜야하는 이유는 무엇입니까?
bikashg

2
@bikashg의 정확성은 차별화 할 수 없으므로 역전시킬 수 없습니다.
DharmaTurtle

23

일반적으로 서로 다른 단계에서 사용되는 모델의 성능을 평가하기위한 두 가지 다른 메트릭입니다.

손실은 종종 훈련 과정에서 모델에 대한 "최상의"파라미터 값 (예 : 신경망의 가중치)을 찾기 위해 사용됩니다. 가중치를 업데이트하여 훈련에서 최적화하려고합니다.

적용 관점에서 정확도가 더 높습니다. 위의 최적화 된 매개 변수를 찾으면이 지표를 사용하여 모델 예측이 실제 데이터와 얼마나 정확한지 평가할 수 있습니다.

장난감 분류 예제를 사용하겠습니다. 몸무게와 키로 성별을 예측하려고합니다. 데이터는 3 개이며 다음과 같습니다 (0은 남성, 1은 여성)

y1 = 0, x1_w = 50kg, x2_h = 160cm;

y2 = 0, x2_w = 60kg, x2_h = 170cm;

y3 = 1, x3_w = 55kg, x3_h = 175cm;

y = 1 / (1 + exp- (b1 * x_w + b2 * x_h)) 인 단순 로지스틱 회귀 모형을 사용합니다.

b1과 b2는 어떻게 찾습니까? 먼저 손실을 정의하고 최적화 방법을 사용하여 b1 및 b2를 업데이트하여 반복적 인 손실을 최소화하십시오.

이 예에서이 이진 분류 문제의 일반적인 손실은 다음과 같습니다. (빼기 부호 앞에 빼기 부호를 추가해야 함)

우리는 b1과 b2가 무엇인지 모릅니다. b1 = 0.1, b2 = -0.03과 같은 임의의 추측을하자. 그렇다면 우리의 손실은 무엇입니까?

그래서 손실은

그런 다음 학습 알고리즘 (예 : 기울기 강하)은 손실을 줄이기 위해 b1 및 b2를 업데이트하는 방법을 찾습니다.

b1 = 0.1이고 b2 = -0.03이 최종 b1 및 b2 (그라디언트 디센트에서 출력)이면 정확도는 어떻게됩니까?

y_hat> = 0.5이면 예측이 female (1)이라고 가정합니다. 그렇지 않으면 0이됩니다. 따라서 알고리즘은 y1 = 1, y2 = 1 및 y3 = 1을 예측합니다. 정확도는 무엇입니까? y1과 y2에 대해 잘못된 예측을하고 y3에 대해 올바른 예측을합니다. 이제 정확도는 1/3 = 33.33 %입니다

추신 : Amir의 답변 에서 역 전파는 NN의 최적화 방법이라고합니다. 나는 그것이 NN에서 가중치에 대한 기울기를 찾는 방법으로 취급 될 것이라고 생각합니다. NN의 일반적인 최적화 방법은 GradientDescent와 Adam입니다.


수학 주셔서 감사합니다. 개념을 명확하게하는 데 도움이되었습니다.
Finn Frotscher

6

@Aadnan Training / Validation / Test 데이터 세트를 명확히하기 위해 : 트레이닝 세트는 모델의 초기 트레이닝을 수행하여 신경망의 가중치를 초기화하는 데 사용됩니다.

유효성 검사 세트는 신경망이 훈련 된 후에 사용됩니다. 네트워크의 하이퍼 파라미터를 조정하고 변경 사항이 모델의 예측 정확도에 미치는 영향을 비교하는 데 사용됩니다. 트레이닝 세트는 신경망의 게이트 웨이트를 구축하는데 사용되는 것으로 생각 될 수 있지만, 검증 세트는 신경망 모델의 파라미터 또는 아키텍처의 미세 ​​조정을 허용한다. 매개 변수 / 아키텍처 변경이 네트워크의 예측력에 어떤 영향을 미치는지 관찰하기 위해 동일한 데이터 및 네트워크 가중치에 대해 이러한 서로 다른 매개 변수 / 아키텍처를 반복적으로 비교할 수 있으므로 유용합니다.

그런 다음 테스트 세트는 훈련 및 검증 데이터 세트를 사용한 훈련 및 파라미터 / 아키텍처 선택 후 이전에 보이지 않은 데이터에 대해 훈련 된 신경망의 예측 정확도를 테스트하는 데만 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.