손실 함수

Python으로 시작하는 TensorFlow

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

손실 함수 소개

  • 핵심 tensorflow 연산
    • 모델 학습에 사용
    • 모델 적합도 측정
  • 값이 클수록 -> 적합도 나쁨
    • 손실 함수를 최소화하십시오
Python으로 시작하는 TensorFlow

TensorFlow의 대표 손실 함수

  • TensorFlow는 대표 손실 함수를 제공합니다

    • 평균제곱오차(MSE)
    • 평균절대오차(MAE)
    • Huber 손실
  • 손실 함수는 tf.keras.losses()에서 사용

    • tf.keras.losses.mse()
    • tf.keras.losses.mae()
    • tf.keras.losses.Huber()
Python으로 시작하는 TensorFlow

손실 함수를 왜 신경 써야 할까요?

이 그림은 -2부터 2 구간에서 mse, mae, huber 손실 함수를 그린 것입니다.

  • MSE
    • 이상치에 강한 패널티
    • 최소점 부근에서 민감도(기울기) 높음
  • MAE
    • 오차 크기에 선형 비례
    • 최소점 부근에서 민감도 낮음
  • Huber
    • 최소점 근처는 MSE와 유사
    • 멀리서는 MAE와 유사
Python으로 시작하는 TensorFlow

손실 함수 정의

# 표준 별칭으로 TensorFlow 임포트
import tensorflow as tf

# MSE 손실 계산
loss = tf.keras.losses.mse(targets, predictions)
Python으로 시작하는 TensorFlow

손실 함수 정의

# 선형 회귀 모델 정의
def linear_regression(intercept, slope = slope, features = features):
    return intercept + features*slope
# MSE를 계산하는 손실 함수 정의
def loss_function(intercept, slope, targets = targets, features = features):
    # 선형 모델 예측값 계산
    predictions = linear_regression(intercept, slope)

    # 손실 반환
    return tf.keras.losses.mse(targets, predictions)
Python으로 시작하는 TensorFlow

손실 함수 정의

# 테스트 데이터 입력에 대한 손실 계산
loss_function(intercept, slope, test_targets, test_features)
10.77
# 기본 데이터 입력에 대한 손실 계산
loss_function(intercept, slope)
5.43
Python으로 시작하는 TensorFlow

연습해 봅시다!

Python으로 시작하는 TensorFlow

Preparing Video For Download...