본문 바로가기
Artificial intelligence

[AI] 평균 제곱 오차(MSE), 교차 엔트로피 오차(CEO), 로그우도(NLL) 계산 방법

by @__100.s 2021. 12. 3.
반응형

평균 제곱 오차 (MSE, Mean Squared Error)

  • 추가 설명
    • yi : 예측값
    • ti : 정답값
  • 예제 코드
    import torch
    predicted = torch.tensor([[0.001, 0.9, 0.001, 0.098]])
    label_mse = torch.tensor([0, 0, 0, 1])
    
    criterion = torch.nn.MSELoss()
    loss  = criterion(predicted, label_mse)
    print('MSE loss', loss.item())

교차 엔트로피 오차(CEE, Cross Entropy Error)

  • 추가 설명
    • yi : 예측값
    • ti : 정답값
    • 해당 공식에서 ln 은 밑이 e 인 자연로그이므로, ln(x) = log(x) 이다.
  • 예제 코드
import torch
predicted = torch.tensor([[0.001, 0.9, 0.001, 0.098]])
label_mse = torch.tensor([0, 0, 0, 1])

criterion = torch.nn.CrossEntropyLoss()

import math
loss = -1 * (math.log(0.098))
print('Cross entropy loss', loss)

 

로그 우도 (Log Likelihood)

  • 추가 설명
    • 마지막 층의 활성화함수로 softmax 가 사용됐을 경우, 목적함수로 사용되기도 한다.
    • 모든 노드를 고려하는 평균 제곱 오차나 교차 엔트로피와는 달리, 정답에 해당하는 노드만 확인한다.
    • Oy 는 정답에 해당하는 노드의 예측값을 의미한다.
  • 예제 코드
import torch
predicted = torch.tensor([[0.001, 0.9, 0.001, 0.098]])
label_mse = torch.tensor([0, 0, 0, 1])
label = torch.tensor([3])

criterion = torch.nn.NLLLoss()
loss = criterion(torch.log(predicted), label)
print('NLL loss', loss.item())

 

참고

반응형