AI

[tensorflow] 손실 함수란?

은구잇 2021. 12. 17. 14:13
728x90

1.  손실함수란?

neural network 예측이 얼마나 잘 맞는지 측정하는 역할을 합니다.

손실값은 훈련과정에서 훈련이 얼마나 잘 되었는지 확인 하는 지표가 됩니다.

 

Mean Squared Error 손실함수를 사용해서 모델의 손실값을 확인해보겠습니다.

 

Import tensorflow as tf

from tensorflow import keras

import numpy as np

 

tf.keras 모듈의 Sequential 클래스는 뉴럴 네트워크의 각 층을 순서대로 쌓는 기능.

 

2. neural network 구성하기

model = keras.Sequential([keras.layers.Dense(units = 3, input_shape = [1]])

 

3. neural network 컴파일 하기

loss 파라미터를 이용해서 손실함수는 mse로 지정했습니다.

mse는 평균 오차제곱을 계산하는 방식으로 아래와 같은 공식으로 계산됩니다.

오차의 제곱에 비례해서 손실함수로부터 계산되는 손실값이 커집니다.

 

model.compile(loss = 'mse')

 

4. Neural network 예측하기

predict 메서드를 이용해서 예측값을 얻을 수 있음.

 

pred = model.predict([0])

print(pred)

 

5. Neutral network 손실 계산하기

evaluate() 메서드는 예측값과 관측값 사이에의 손실값을 반환합니다.

 

model.evaluate([0], [[0, 1, 0]])

 

1/1 [==============================] - 0s 111ms/step - loss: 0.3333
Out[6]:
0.3333333432674408