Машинное обучение стало мощным инструментом для извлечения закономерностей, прогнозирования и решения сложных проблем в различных областях, от анализа структурированных данных, обработки естественного языка и компьютерного зрения до генеративного ИИ. По своей сути все алгоритмы машинного обучения можно описать как процесс оптимизации. Модели используют входные данные (и умножают выходные данные) для изучения сложных функций, которые минимизируют или максимизируют стоимость или целевую функцию с дополнительными ограничениями на параметры модели. Выбор целевой функции играет решающую роль в формировании поведения и производительности моделей машинного обучения.

В статье представлены целевые функции, используемые в области методов контролируемого обучения регрессии на структурированных данных. Понимая нюансы и компромиссы, связанные с различными целевыми функциями, специалисты-практики и исследователи могут принимать обоснованные решения при разработке и обучении своих моделей машинного обучения.

Регрессия

Регрессия — это контролируемый метод обучения для прогнозирования непрерывных числовых значений на основе входных данных. Целевые функции, используемые в рамках регрессии, следующие:

На приведенном ниже графике показана величина целевых функций по мере изменения разницы между прогнозируемыми и фактическими значениями. Это иллюстрирует, как целевая функция ведет себя вблизи нулевых значений и как обрабатываются выбросы в каждой из целевых функций.

Случаи использования

  • Среднеквадратическая ошибка (MSE) — это общий выбор по умолчанию для большинства задач регрессии.
  • Средняя абсолютная ошибка (MAE) подходит, если в наборе данных много выбросов.
  • Потери среднеквадратичной логарифмической ошибки (MSLE) предпочтительнее, когда целевые значения охватывают несколько порядков величины.
  • Huber-loss сочетает в себе преимущества как MSE, так и MAE — устойчивость к выбросам и плавный переход между квадратичным и линейным поведением.
  • LogCosh — логарифм гиперболического косинуса предлагает аналогичные преимущества гладкой функции с меньшей чувствительностью к выбросам.

Целевые функции регрессии в Python — SciKit-Learn

from sklearn.linear_model import LinearRegression
from sklearn.neural_network import MLPRegressor
from sklearn.linear_model import SGDRegressor

# Mean Squared Error (MSE)
mse_model = LinearRegression()

# Mean Absolute Error (MAE)
mae_model = SGDRegressor(loss='epsilon_insensitive', epsilon=0.0, random_state=42)

# Mean Squared Logarithmic Error (MSLE)
msle_model = MLPRegressor(loss='squared_log')

# Huber Loss
huber_model = MLPRegressor(loss='huber')

# Log-cosh
logcosh_model = MLPRegressor(loss='logcosh', random_state=4

Целевые функции регрессии в R — GLM

# Mean Squared Error (MSE)
mse_model <- glm(y ~ X, family = gaussian(link = "identity"))

# Mean Absolute Error (MAE)
mae_model <- glm(y ~ X, family = gaussian(link = "identity"), loss = "absolute")

# Mean Squared Logarithmic Error (MSLE)
msle_model <- glm(y ~ log(X + 1), family = gaussian(link = "identity"), loss = "squared")

# Huber Loss
huber_model <- glm(y ~ X, family = gaussian(link = "identity"), loss = "huber")

# Log-cosh
logcosh_model <- glm(y ~ X, family = gaussian(link = "identity"), loss = "log-cosh")

Как выбрать лучшую функцию потерь для вашей модели?

Выбор правильной функции потерь для ваших данных и потребностей в прогнозировании — это многогранное решение. Чтобы сделать лучший выбор, необходимо учитывать несколько важных факторов. Прежде всего, вы должны определить цель вашего прогноза и оценки модели. В зависимости от ваших конкретных потребностей, вы можете стремиться к наиболее точному прогнозу, или для вашей модели может быть другое нисходящее приложение. Чтобы определить, какая целевая функция лучше всего подходит для вашего набора данных и потребностей, важным инструментом является перекрестная проверка.

Еще одним важным фактором, который следует учитывать, является почти нулевое поведение. Вы должны определить соответствующий штраф для вашей модели, когда величина ошибки низка. Кроме того, если ваш набор данных включает большое количество выбросов, необходима более надежная целевая функция для эффективной обработки этих выбросов.

Наконец, важно помнить о предположениях, сделанных различными функциями потерь. Например, RMSE оптимален для нормальных (гауссовских) ошибок, а MAE лучше всего подходит для ошибок Лапласа [1]. Учитывая все эти важные факторы, вы можете с уверенностью выбрать правильную функцию потерь, чтобы обеспечить точные прогнозы и эффективную модель.

Ссылки:

  1. Ходсон, Т.О., 2022. Среднеквадратическая ошибка (RMSE) или средняя абсолютная ошибка (MAE): когда их использовать или нет. Разработка геонаучных моделей, 15(14), стр. 5481–5487.
  2. Scikit Learn MLPRegressor — https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html
  3. Регрессионные потери Keras — https://keras.io/api/losses/regression_losses/
  4. Обобщенные линейные модели R — https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/glm