В этой части ИНС мы попытаемся узнать, что такое функция потерь и как она используется для расчета функции стоимости и, наконец, градиентного спуска и его роли в оптимизации.

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

Журнал потерь:L(p, y) = -(ylogp + (1-y)log(1-p)); где y — фактическое значение, а p — прогнозируемое значение. Если y = 1, то L(p, y) =-logp. Если y = 0, то L(p, y) = -log(1-p)

Для обучения параметров w и b нам нужна функция стоимости. Функцию затрат можно рассматривать как сумму всех функций потерь в модели.

Градиентный спуск

Гиперпараметры используются для настройки обучения модели. Производная от (y-p)² по отношению к весам и смещениям, расскажите нам, как изменяется потери для данной выборки. Мы неоднократно делаем небольшие шаги в направлении, которое минимизирует потери, называемые градиентными шагами. Эта стратегия известна как градиентный спуск. Градиент — это не что иное, как наклон функции.

Вектор градиента имеет как направление, так и величину:

Градиент всегда указывает в направлении наибольшего увеличения функции потерь. Таким образом, движение в обратном направлении градиента дает нам самое резкое снижение функции потерь.

то есть веса обновляются следующим образом

Алгоритм градиентного спуска умножает градиент на скаляр, известный как скорость обучения, чтобы определить следующую точку, т. е. если величина градиента равна 1,5, а скорость обучения равна 0,01, то алгоритм градиентного спуска выберет следующую точку на расстоянии 0,015 от предыдущей точки.

Чтобы достичь точки минимальных потерь, мы уменьшаем веса, а что, если мы уменьшаем веса с меньшей или большей величиной?

Если мы уменьшаем веса с меньшей величиной, модели требуется больше времени на обучение, если мы уменьшаем веса с большей величиной, модель пересекает минимальную точку. Таким образом, нам нужно тщательно выбирать скорость обучения.

Идеальная скорость обучения для одномерных данных составляет 1/f ¹¹(x), а для двумерных данных — 1/матрица Гессе.

Таким образом, градиентный спуск можно реализовать следующим образом:

Для большего понимания посмотрите это видео