Линейная регрессия: градиентный спуск

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

Обучение модели начинается со случайных весов и смещений, близких к нулю, а затем повторяются следующие шаги:

  1. Рассчитайте потери при текущем весе и смещении.

  2. Определите направление перемещения весов и смещения, чтобы уменьшить потери.

  3. Слегка измените значения веса и смещения в направлении, которое уменьшит потери.

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

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

Рисунок 11. Иллюстрация процесса градиентного спуска.

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

Кривые сходимости модели и потери

При обучении модели часто используют кривую потерь , чтобы определить, сошлась ли модель. Кривая потерь показывает, как изменяется значение потерь в процессе обучения модели. Ниже показана типичная кривая потерь. По оси Y отложены потери, а по оси X — итерации:

Рисунок 12. График кривой убытков, показывающий резкое снижение, а затем плавное падение.

Рисунок 12. Кривая потерь, показывающая сходимость модели к отметке в 1000 итераций.

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

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

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

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

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

Рисунок 13. Кривая потерь и снимок модели в начале процесса обучения.

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

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

Рисунок 14. Кривая потерь и снимок модели примерно в середине обучения.

Примерно на 1000-й итерации мы видим, что модель сошлась, создав модель с наименьшей возможной функцией потерь.

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

Рисунок 15. Кривая потерь и снимок модели ближе к концу процесса обучения.

Упражнение: Проверьте свои знания

Какова роль градиентного спуска в линейной регрессии?
Градиентный спуск — это итеративный процесс, в ходе которого находятся оптимальные веса и смещения, минимизирующие потери.
Градиентный спуск помогает определить, какой тип функции потерь использовать при обучении модели, например, L1 или L2 .
Метод градиентного спуска не используется при выборе функции потерь для обучения модели.
Метод градиентного спуска удаляет выбросы из набора данных, что помогает модели делать более точные прогнозы.
Градиентный спуск не изменяет набор данных.

Функции сходимости и выпуклости

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

Если мы построим график поверхности потерь для модели с одним признаком, мы увидим её выпуклую форму. Ниже представлена ​​поверхность потерь для гипотетического набора данных о расходе топлива в милях на галлон. По оси x отложен вес, по оси y — смещение, а по оси z — потери:

Рисунок 16. Трехмерный график поверхности потерь.

Рисунок 16. Поверхность потерь, демонстрирующая свою выпуклую форму.

В этом примере вес -5,44 и смещение 35,94 дают наименьший убыток в 5,54:

Рисунок 17. Трехмерный график поверхности потерь, с точками (-5,44, 35,94, 5,54) внизу.

Рисунок 17. Поверхность потерь, показывающая значения веса и смещения, которые приводят к наименьшим потерям.

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

Рисунок 18. Выпуклая трехмерная поверхность потерь с точками градиентного спуска, движущимися к самой нижней точке.

Рисунок 18. График функции потерь, показывающий точки градиентного спуска, останавливающиеся в самой нижней точке графика.

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

Используя значения веса и смещения, которые дают наименьшую потерю — в данном случае вес -5,44 и смещение 35,94 — мы можем построить график модели, чтобы увидеть, насколько хорошо она соответствует данным:

Рисунок 19. График зависимости количества фунтов в тысячах от количества миль на галлон, с моделью, соответствующей данным.

Рисунок 19. Модель, построенная с использованием значений веса и смещения, обеспечивающих наименьшие потери.

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