Одна из основ машинного обучения и механизм, который нейронные сети используют для обратного распространения решений, называется градиентным спуском. Этот быстрый пример продемонстрирует, как использовать их в общей задаче машинного обучения. Всего за пару циклов градиентного спуска мы можем сопоставить наилучшее соответствие нашего уравнения y=mx+b с выборочными данными, показывающими цены на жилье (x) и квадратные футы (y).

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

Сначала мы выберем произвольные значения для m и b, не стесняйтесь изменять их в своей электронной таблице, и конечный результат будет таким же. Помните, что наша цель здесь — создать линию, которая лучше всего подходит для данных. Хороший способ измерить это — обычная формула среднеквадратичной ошибки:

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

Основополагающим шагом является получение суммы этих градиентных (производных) значений и умножение на нашу скорость обучения, чтобы мы знали, насколько нужно скорректировать наше первоначальное предположение для значений m и b. Формула для их обновления с помощью этих новых суммированных производных проста: M = шаг*градиент. В этом случае первое обновление для нашего значения M равно 4-(0,1*4,27) = 3,57.

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