Машинное обучение (5) — анализ ошибок функции стоимости

машинное обучение искусственный интеллект алгоритм регулярное выражение

Введение в функции стоимости

  функция стоимости(Cost Function), также обычно именуемыйфункция потерь(Loss Function). Этот тип функции является наиболее важным типом функциональной модели в машинном обучении и даже во всей дисциплине науки о данных, Он интуитивно представляет степень соответствия данных перед нами. Цель машинного обучения — минимизировать ошибку, то есть минимизировать функцию стоимости. Процесс обучения модели - это процесс оптимизации функции стоимости.Частная производная функции стоимости по каждому параметру представляет собой градиент, упомянутый в градиентном спуске.После функции стоимости также добавляется член регуляризации, добавленный для предотвращения переобучения. Поэтому я чувствую необходимость потратить некоторое время на обсуждение этого.

  Сначала мы даем простое определение функции стоимости, функции стоимости: предположим, что есть выборочные данные(x_i,y_i), функциональная модельf, параметр\omega. для подгонки кривойf(\omega^Tx)Выражать. Функция стоимости немного абстрактна и теоретически может отражать функцию подгонки.f(\omega^Tx)с истинной стоимостьюyФункцию разности можно использовать в качестве функции стоимости. Обычно функция стоимости записывается какC(\theta), но мы обычно усредняем, пишемJ(\theta). Функция затрат – это\thetaФункцию , это легко понять, потому что мы знаем, что для данного алгоритма ожидание ошибки должно быть определенным, но изменение параметров подгоночной функции повлияет на ошибку. Алгоритм находится в процессе поиска оптимальных параметров, которые мы записываем как:

\underset{\theta}{min}J(\theta)

Несколько общих функций стоимости

  Средняя абсолютная ошибка (функция ошибки L1):средняя абсолютная ошибка (MAE) на самом деле похож на стандартное отклонение в статистике, и его конкретная формула выглядит следующим образом:

MAE=\frac{\sum_{m=0}^m {\left |y-y_i  \right |}}{m}

   Его изображения:

MAE.png
  Функция среднеквадратичной ошибки (функция ошибки L2):функция среднеквадратичной ошибки (MSE) - хорошо известная дисперсия. Она широко используется в некоторых линейных задачах. 2 внизу следующей формулы для удобства вывода и не имеет практического значения. Ее формула выглядит следующим образом:

MSE=\frac{\sum_{m=0}^m (y-y_i)^2}{2m}

   Его изображения:

MSE.png
  Гладкая средняя абсолютная ошибка (потери Хьюбера):Потери Хьюбера менее чувствительны к выбросам, чем квадратичные потери, но также сохраняют дифференцируемые свойства. Он основан на абсолютной ошибке, но становится квадратом ошибки, когда ошибка мала. Мы можем использовать гиперпараметры\deltaнастроить порог для этой ошибки. когда\delta\rightarrow 0Он вырождается в МАЭ, и когда\delta\rightarrow\inftyЗатем она вырождается в MSE, и ее выражение выглядит следующим образом, что является непрерывно дифференцируемой кусочной функцией:

L_\delta(y,f(x))=\left\{\begin{matrix} \frac{1}{2}(y-f(x))^2,&\left |y-f(x)\right|<\delta\\  \delta\left |y-f(x)\right|-\frac{1}{2}\delta^2,&otherwise \end{matrix}\right.

   Его изображения:

Huber.png
   Для потери Хубера,\deltaВыбор важен, так как он определяет, как модель обрабатывает выбросы. Когда остаток превышает\deltaКогда он мал, используйте потери L1, а когда они малы, используйте для оптимизации более подходящие потери L2.

Функция потерь Хьюбера преодолевает недостатки MAE и MSE. Она может не только поддерживать непрерывную производную функции потерь, но также использовать характеристику уменьшения градиента MSE с ошибкой для получения более точного минимального значения. более устойчивы к выбросам. Хорошая производительность функции потерь Хубера достигается за счет тщательно обученных гиперпараметров.\delta.

  Логарифмическая функция потерь Коша:Функция потерь Log-Cush является более гладкой функцией потерь, чем L2, и использует гиперболический косинус для вычисления ошибки прогнозирования:

L(y,y^p)={\sum_{i=1}^n}log(cosh(y_i^p-y_i))

   Его изображения:

Log-Cosh.png
   Его преимущество в том, что при небольших ошибкахlog(cosh(x))\approx\frac{x^2}{2}, а для больших ошибок с|x|-log2очень близко. Это означает, что функция логарифмических потерь может иметь преимущества MSE без слишком сильного влияния выбросов. Он обладает всеми преимуществами Хубера и квадратично дифференцируем в каждой точке.

   Но логарифмическая потеря не идеальна, она по-прежнему имеет большую ошибку в градиенте иhessianстановится константой.   Функция стоимости CrossEntropy CrossEntropy:Мы подробно рассмотрели понятие кросс-энтропии ранее, Кросс-энтропия обычно используется как функция стоимости в задачах классификации, особенно в логистической регрессии, и больше используется в нейронных сетях.

J(\omega)=-\frac{1}{m}[{\sum_{i=1}^my^i}logh_\omega(x^i)+(1-y^i)log(1-f_\omega(x^i))]

Небольшое сравнение:

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

   Таким образом, когда обучающие данные содержат больше выбросов, средняя абсолютная ошибка (MAE) более эффективна. Когда мы обрабатываем все наблюдения, если мы оптимизируем с помощью MSE, мы получаем среднее значение всех наблюдений, а с помощью MAE мы получаем медиану всех наблюдений. По сравнению со средним значением медиана более устойчива к выбросам, что означает, что средняя абсолютная ошибка более устойчива к выбросам, чем среднеквадратическая ошибка.

Но у MAE тоже есть проблема, особенно для нейросети, ее градиент будет иметь большой скачок в крайней точке, и даже небольшое значение потерь вызовет большую ошибку, что очень неблагоприятно для процесса обучения. Для решения этой задачи скорость обучения необходимо динамически снижать в процессе решения экстремальных точек. MSE имеет хорошие характеристики в крайней точке, а также может сходиться даже при фиксированной скорости обучения. Градиент MSE уменьшается по мере уменьшения функции потерь, что делает его более точным в финальном процессе обучения.

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

Reference

5 Regression Loss Functions All Machine Learners Should Know MachineLearning CostFunction

Мои самородки:WarrenRyan

Моя краткая книга:WarrenRyan

Добро пожаловать в мой блог, чтобы получить первое обновлениеblog.tity.online

Мой гитхаб:StevenEco