본문 바로가기
Data Science/머신러닝&딥러닝 기초 이론

[딥러닝 실습] Loss function

by titaniumm 2020. 4. 24.

좋은 신경망이란 무엇일까? loss function이 작은것도 하나의 답이 될 수 있을것같다.

1. MSE(평균 제곱 오차)

2. 교차 엔트로피 오차

에 대해서 공부했다. 수식은 생략하겠다.

import numpy as np
#평균 제곱 오차 MSE
def mean_squared_error(y,t):
        return 0.5 * np.sum((y-t)**2)

#y는 나의 예측값 t는 실제값이라고 볼 수 있다.
t = [0,0,1,0,0,0,0,0,0,0]
y = [0.1,0.05,0.1,0.1,0.1,0.1,0.1,0.1,0.0,0.5]

ans = mean_squared_error(np.array(y),np.array(t))
print(ans) #0.56125

#교차 엔트로피 오차 cross entropy error
# 1.데이터 하나인 경우, 정답이 숫자인경우를 고려해서 수
def cross_entropy_error(y,t):
    if y.ndim ==1:
            t = t.reshape(1,t.size)
            y = y.reshape(1,y.size)
    if t.size ==y.size:
        t = t.argmax(axis =1)
    data_size = y.shape[0]
    return -np.sum(np.log(y[np.arange(data_size),t]+1e-7)) /data_size

t = [0,0,1,0,0,0,0,0,0,0]

y = [0.1,0.05,0.6,0.0,0.05,0.1,0.0,0.1,0.0,0.0]
ans2 = cross_entropy_error(np.array(y),np.array(t))
print(ans2) #0.51087

댓글