Функции потерь

Введение в TensorFlow на Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Введение в функции потерь

  • Базовая операция tensorflow
    • Используется для обучения модели
    • Мера качества подгонки модели
  • Чем выше значение — тем хуже подгонка
    • Цель — минимизировать функцию потерь
Введение в TensorFlow на Python

Распространённые функции потерь в TensorFlow

  • TensorFlow поддерживает распространённые функции потерь

    • Среднеквадратичная ошибка (MSE)
    • Средняя абсолютная ошибка (MAE)
    • Ошибка Хубера
  • Функции потерь доступны через tf.keras.losses()

    • tf.keras.losses.mse()
    • tf.keras.losses.mae()
    • tf.keras.losses.Huber()
Введение в TensorFlow на Python

Зачем нам нужны функции потерь?

На графике показаны функции потерь MSE, MAE и Huber на интервале от -2 до 2.

  • MSE
    • Сильно штрафует за выбросы
    • Высокая чувствительность (градиента) вблизи минимума
  • MAE
    • Растёт линейно с величиной ошибки
    • Низкая чувствительность вблизи минимума
  • Huber
    • Ведёт себя как MSE вблизи минимума
    • Ведёт себя как MAE вдали от минимума
Введение в TensorFlow на Python

Определение функции потерь

# Import TensorFlow under standard alias
import tensorflow as tf

# Compute the MSE loss
loss = tf.keras.losses.mse(targets, predictions)
Введение в TensorFlow на Python

Определение функции потерь

# Define a linear regression model
def linear_regression(intercept, slope = slope, features = features):
    return intercept + features*slope
# Define a loss function to compute the MSE
def loss_function(intercept, slope, targets = targets, features = features):
    # Compute the predictions for a linear model
    predictions = linear_regression(intercept, slope)

    # Return the loss
    return tf.keras.losses.mse(targets, predictions)
Введение в TensorFlow на Python

Определение функции потерь

# Compute the loss for test data inputs
loss_function(intercept, slope, test_targets, test_features)
10.77
# Compute the loss for default data inputs
loss_function(intercept, slope)
5.43
Введение в TensorFlow на Python

Давайте потренируемся!

Введение в TensorFlow на Python

Preparing Video For Download...