Словарь ИИ
Что такое градиентный спуск
Коротко
Градиентный спуск это способ обучения модели, при котором ее внутренние числа шаг за шагом сдвигают туда, где ошибка уменьшается быстрее всего.
Машинное обучение · gradient descent
Михаил МозгПроверено: 1 минута чтения
Ребенку
Представь, что ты в густом тумане спускаешься с горы и не видишь, где низ. Ты ощупываешь землю ногой, находишь, куда склон идет вниз круче, и делаешь маленький шаг туда. Потом снова пробуешь и снова шагаешь. Так, шаг за шагом, ты доходишь до долины. Компьютер учится похожим способом, только вместо горы у него ошибки.
Простыми словами
Модель учится на примерах и поначалу часто ошибается. Ошибку можно выразить одним числом: чем оно больше, тем хуже ответы. Градиентный спуск подсказывает, как поменять настройки модели, чтобы это число стало меньше. Компьютер смотрит, в какую сторону ошибка растет, и немного сдвигает каждую настройку в обратную сторону. Затем берет новые примеры и повторяет. После тысяч таких маленьких поправок модель отвечает заметно точнее. Похоже на настройку старого радиоприемника: вы крутите ручку туда, где шум тише, пока не поймаете чистый звук.
Для бизнеса
Почти все нейросети, которые компании покупают или заказывают, обучены этим методом, поэтому от него зависят счет за вычисления и сроки проекта. Каждый шаг требует расчетов на видеокартах, а шагов нужны тысячи или миллионы, так что цена обучения растет вместе с объемом данных и размером модели. Для бизнеса это важно в двух случаях: при дообучении модели на своих данных и при оценке сметы подрядчика. Спросите, сколько часов видеокарт заложено, как команда поймет, что обучение пора остановить, и на каких данных проверят результат. Если ошибка на проверочных данных перестала падать, дальнейшие шаги только тратят бюджет. Такие расчеты удобно сделать на пилоте, до закупки серверов.
Для специалиста
Градиентный спуск (gradient descent) это итерационный метод минимизации дифференцируемой функции потерь (loss function): параметры обновляют по правилу θ := θ - η·∇L(θ), где η скорость обучения (learning rate). Полный вариант (batch gradient descent) считает градиент по всей выборке, стохастический (SGD) по одному примеру, мини-батчевый (mini-batch) по небольшой группе примеров; в глубоком обучении почти всегда используют последний. Градиент по весам сети получают обратным распространением ошибки (backpropagation). Чистый метод медленно идет по узким оврагам поверхности потерь, поэтому применяют модификации: момент (momentum), ускоренный градиент Нестерова (Nesterov accelerated gradient), адаптивные методы RMSProp и Adam, который Kingma и Ba предложили в 2014 году. Обзор вариантов спуска и популярных оптимизаторов дал Sebastian Ruder в 2016 году. Для невыпуклых функций нейросетей метод не обязательно находит глобальный минимум и сходится к одному из локальных решений, а итог зависит от инициализации, размера батча и расписания шага.
Пример
Банк обучает модель оценивать риск невозврата по истории заемщиков. На первых шагах градиентного спуска модель путает надежных и рискованных клиентов почти наугад, а после нескольких проходов по данным ошибка на проверочной выборке падает и перестает меняться, и обучение останавливают.
Связанные термины
Вопросы и ответы
Зачем нужен градиентный спуск?
Чем стохастический градиентный спуск отличается от обычного?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений