Theano 또는 Tensorflow를 사용하여 신경망을 교육하면 신기원마다 “손실”이라는 변수가보고됩니다.
이 변수를 어떻게 해석해야합니까? 손실이 클수록 나쁘거나 신경망의 최종 성능 (정확도)에 어떤 의미가 있습니까?
답변
손실 이 적을수록 모델이 향상됩니다 (모델이 훈련 데이터에 과도하게 적합하지 않은 경우). 손실은 훈련에서 계산됩니다 및 검증 되며 그 상호 작용은 모델이이 두 세트에 대해 얼마나 잘 수행되고 있는지입니다. 정확도와 달리 손실은 백분율이 아닙니다. 훈련 또는 검증 세트에서 각 예에 대해 발생한 오류를 요약 한 것입니다.
신경망의 경우 손실은 일반적으로 음의 로그 우도 이며 분류 및 회귀에 대한 잔차 제곱합입니다 . 자연스럽게 학습 모델의 주요 목표는 신경망에서의 역전 파와 같은 다른 최적화 방법을 통해 가중치 벡터 값을 변경하여 모델 매개 변수에 대한 손실 함수 값을 최소화 (최소화)하는 것입니다.
손실 값은 각 최적화 반복 후에 특정 모델이 얼마나 잘 작동하는지 나타냅니다. 이상적으로는 매번 또는 여러 번 반복 한 후에 손실이 감소 할 것으로 예상합니다.
모델의 정확도는 일반적으로 모델 매개 변수를 학습하고 수정 한 후 학습이 수행되지 않은 후에 결정됩니다. 그런 다음 테스트 샘플을 모델에 공급하고 실제 목표와 비교 한 후 모델의 실수 횟수 (0 대 1 손실)를 기록합니다. 그런 다음 오 분류 백분율이 계산됩니다.
예를 들어, 테스트 샘플 수가 1000이고 모델이 952를 올바르게 분류하면 모델의 정확도는 95.2 %입니다.
손실 가치를 줄이면서 미묘한 부분도 있습니다. 예를 들어, 당신은 문제로 실행할 수 있습니다 오버 피팅 모델 “기억한다”훈련 예제와 테스트 세트의 종류 효과의가되는. 정규화를 사용하지 않거나 모델이 매우 복잡한 경우 (자유 매개 변수 W
의 수가 많음) 또는 데이터 포인트의 수가 N
매우 적은 경우에도 과적 합이 발생합니다.
답변
일반적으로 서로 다른 단계에서 사용되는 모델의 성능을 평가하기위한 두 가지 다른 메트릭입니다.
손실은 종종 훈련 과정에서 모델에 대한 “최상의”파라미터 값 (예 : 신경망의 가중치)을 찾기 위해 사용됩니다. 가중치를 업데이트하여 훈련에서 최적화하려고합니다.
적용 관점에서 정확도가 더 높습니다. 위의 최적화 된 매개 변수를 찾으면이 지표를 사용하여 모델 예측이 실제 데이터와 얼마나 정확한지 평가할 수 있습니다.
장난감 분류 예제를 사용하겠습니다. 몸무게와 키로 성별을 예측하려고합니다. 데이터는 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입니다.
답변
@Aadnan Training / Validation / Test 데이터 세트를 명확히하기 위해 : 트레이닝 세트는 모델의 초기 트레이닝을 수행하여 신경망의 가중치를 초기화하는 데 사용됩니다.
유효성 검사 세트는 신경망이 훈련 된 후에 사용됩니다. 네트워크의 하이퍼 파라미터를 조정하고 변경 사항이 모델의 예측 정확도에 미치는 영향을 비교하는 데 사용됩니다. 트레이닝 세트는 신경망의 게이트 웨이트를 구축하는데 사용되는 것으로 생각 될 수 있지만, 검증 세트는 신경망 모델의 파라미터 또는 아키텍처의 미세 조정을 허용한다. 매개 변수 / 아키텍처 변경이 네트워크의 예측력에 어떤 영향을 미치는지 관찰하기 위해 동일한 데이터 및 네트워크 가중치에 대해 이러한 서로 다른 매개 변수 / 아키텍처를 반복적으로 비교할 수 있으므로 유용합니다.
그런 다음 테스트 세트는 훈련 및 검증 데이터 세트를 사용한 훈련 및 파라미터 / 아키텍처 선택 후 이전에 보이지 않은 데이터에 대해 훈련 된 신경망의 예측 정확도를 테스트하는 데만 사용됩니다.