В прошлый раз, в Части 1, мы обсуждали, как думать о градиентном спуске с нематематической точки зрения. Это мощный инструмент для специалистов по данным, но он может быть немного… громоздким. Как туман, сквозь который ты пытался пройти.

Помните, когда вы пытаетесь спуститься с горы во всем этом тумане, вы должны сделать следующее, чтобы не сбиться с пути:

  • Делайте маленькие шаги
  • Сделайте каждый шаг вниз
  • Продолжайте двигаться, не останавливайтесь

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

Когда мы подходим к математической стороне дела, на ум приходит фраза: «Наша модель работает, но… Она могла бы быть лучше».

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

Помните пример с Metro, где мы рассматривали возможность того, что Конгресс не заседал или был федеральный праздник? Вот что скажет математика:

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

Грубый математический беспорядок уравнения градиентного спуска на самом деле состоит из этого парня:

Это уравнение говорит, что мы пытаемся перебрать эти потенциальные значения (бета-один), чтобы попытаться найти наилучшее значение. «Следующее значение» находится слева от знака равенства; наше текущее значение — это то, что находится сразу справа. («i+1» означает следующее значение в ряду после значения «i».)

Затем у нас есть последний бит. Наш «размер шага» — это альфа-символ. Мы можем использовать это, чтобы продолжать угадывать и продолжать двигаться, пока не доберемся до места, где мы достигли минимума. Когда мы достигнем этого минимума, полностью вниз, мы найдем оптимальное значение. И это именно то, где мы хотим быть.

Когда мы делаем это для всех наших переменных, которые мы хотим оптимизировать, у нас есть сценарий до и после для нашей модели.

Перед градиентным спуском:

  • Производительность модели хорошая, но могла бы быть и лучше
  • Не уверен, правильно ли взвешены параметры
  • Спросите: как мы можем ограничить потери производительности модели?

После градиентного спуска:

  • Параметры взвешены оптимально для модели
  • Потери сведены к минимуму
  • Модель работает намного точнее

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

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

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

Дайте мне знать, что вы думаете об этой маленькой прогулке в страну градиентного спуска!