꾸준하고 즐겁게

Classification의 문제에서 Compile에 쓰이는 Loss function의 사용 본문

Machine Learning

Classification의 문제에서 Compile에 쓰이는 Loss function의 사용

wj9183 2021. 4. 30. 16:01
728x90

위 코드는  y = (2 * x) - 1  을 찾아내기 위한 딥러닝 모델이다.

 

loss 함수는, 예측한 값과 실제 값을 비교해 얼마나 맞고 틀렸는지의 차이를 수치로 나타내주는 역할을 한다.
keras 모델의 Classification에서는 loss function들을 모델링의 문제에 적합한 것으로 골라 사용해야한다.
  • binary_crossentropy : 0 또는 1과 같이 2개의 클래스로 분류하는 문제에서 쓴다. 결과값이 하나로 나온다.
  • sparse_categorical_crossentropy : 3개 이상의 클래스를 정수로 분류하는 문제에서 쓴다. 역시 결과값이 하나로 나온다.
  • categorical_crossentropy : 3개 이상의 클래스로 분류하는 문제에서 쓰는데, 결과값이 One Hot Encoding의 형태로 여러 개로 나온다.

 

 

※ 코드를 복사하려면 더보기를 누르세요.

더보기

 

import tensorflow as tf      

import numpy as np

from tensorflow import keras  

 

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

model.compile(optimizer = 'sgd', loss = 'mean_squared_error')

 

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype = float)

ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype = float)

 

model.fit(xs, ys, epochs=10)

 

model.predict( [10.0] )

 

 

 

 

728x90