0

Netlab packagemlperr이 평균 제곱 오류를 계산하는지 궁금합니다. documentation은 출력 단위의 활성화 기능에 의존한다고 명시합니다. 그게 어떻게 이해가 되니? 그것으로부터 독립적이어야하지 않습니까?은 평균 제곱 오류를 계산하는 Netlab의 기능 mlperr입니까?

또한 source code of mlperr을 읽으려고했는데 이것이 MSE 오류 기능이라고 생각하게하는 징후가 보이지 않았습니다.

여기에 어떤 통찰력을 제공 할 수있는 Netlab 전문가가 있습니까? 감사! :)

+1

소스 코드에는 출력 활성화 기능에 따라 switch 문이 분명히 있습니다 (http://www.mathworks.com/matlabcentral/fileexchange/2654-netlab/content/mlperr.m). 선형 함수의 경우 실제로 MSE의 공식을 계산하고 있습니다 – Amro

+0

제가보기에, 그 문제는 무엇입니까? 피드 포워드 함수를 호출하고 출력 및 타겟과의 차이를 통해 평균 제곱 오차를 계산하면 안됩니까? – fstab

+1

MSE뿐만 아니라 사용할 수있는 모든 종류의 [손실 기능] (https://en.wikipedia.org/wiki/Loss_function)이 있습니다 .. – Amro

답변

1

이 방법은 다중 출력 퍼셉트론의 출력 활성화에 대한 평가에 사용됩니다. 너무 등의 가장 일반적인 사용, 가정 그것은 십자가 엔트로피 오류를 반환 물류 출력의 MSE 오류

0.5*sum(sum((y - t).^2))

  • 을 반환

    • 선형 출력을

      -sum(sum(t.*log(y) + (1 - t).*log(1 - y)))

    • softmax 출력의 경우 해당 에너지 오류 R

      -sum(sum(t.*log(y)))

    전체 소스는 here를 볼 수 있습니다.

  • +0

    답변 해 주셔서 감사합니다. 그러나 왜 선형 출력 경우에 MSE 오류가 평균을 잃어 버렸습니까? sum 함수가 두 번 호출되는 이유는 무엇입니까? – fstab

    +1

    변수가 행렬이므로'sum (sum (.)) '입니다. 평균화에 관해서는 상수 (인스턴스 수)로 나누기 만하므로 많은 문제가되지 않습니다. – Amro