ММООЗЗГГ.ru

Словарь ИИ

Что такое градиент

Коротко

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

Математика ИИ · gradient

Михаил МозгПроверено: 1 минута чтения

Ребенку

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

Простыми словами

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

Для бизнеса

Расчет таких поправок составляет основную часть затрат на обучение и дообучение моделей. На каждом шаге видеокарта прогоняет данные вперед, затем считает поправки для всех весов, и для этого ей нужно держать в памяти промежуточные результаты. Поэтому обучение требует заметно больше видеопамяти, чем работа готовой модели, а значит, и более дорогого сервера. Это важно, когда вы выбираете между дообучением своей модели и настройкой готовой через инструкции и поиск по документам. Методы вроде LoRA замораживают исходные веса и обучают лишь небольшие добавочные матрицы, поэтому требования к оборудованию ниже. Конфигурацию под обучение подбирают отдельно от конфигурации для ответов.

Для специалиста

Градиент (gradient) дифференцируемой функции многих переменных это вектор ее частных производных по каждой переменной. Он указывает направление наискорейшего роста функции, поэтому методы оптимизации сдвигают параметры против него. В нейросетях функция это потери (loss), а переменные это миллионы или миллиарды весов. Все частные производные за один обратный проход дает обратное распространение ошибки (backpropagation), описанное Rumelhart, Hinton и Williams в Nature в 1986 году. Сегодня его считает автоматическое дифференцирование в обратном режиме (reverse-mode automatic differentiation); обзор Baydin и др. (JMLR, 2018) описывает это семейство методов как более общее, чем обратное распространение. В глубоких и рекуррентных сетях градиенты могут затухать (vanishing gradients) или взрываться (exploding gradients); Pascanu, Mikolov и Bengio (2012) разобрали обе проблемы и предложили против взрыва обрезку нормы (gradient clipping). На практике используют стохастическую оценку по мини-батчу, а адаптивные оптимизаторы масштабируют ее по истории прошлых шагов.

Не путать. Не путать с градиентом в дизайне, плавным переходом одного цвета в другой.

Пример

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

Связанные термины

Вопросы и ответы

Что такое градиент в машинном обучении?

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

Чем градиент отличается от градиентного спуска?

Первый это направление, подсказка. Спуск это метод обучения, который раз за разом делает шаг против этого направления.

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram