Numerical Methods
Автоматическое дифференцирование в ML
Цели урока
- Понять разницу между прямым и обратным режимами AD и когда каждый выгоден
- Освоить backpropagation как применение правила цепочки к вычислительному DAG
- Разобраться в производных высших порядков, гессиан-векторных произведениях и adjoint method для Neural ODE
Предварительные знания
- Параллельные вычисления в линейной алгебре
JAX (Google): градиенты функций с 540B параметров - основа обучения Gemini
- JAX (Google): градиенты функций с 540B параметров - основа обучения Gemini
- PyTorch: каждый шаг Adam в GPT-4 - обратный AD через граф из миллионов узлов
- Neural ODE: normalizing flows и time-series модели через дифференцируемые ODE-решатели
- Differentiable physics: оптимизация траектории робота через симуляцию физики с AD
История backpropagation
Алгоритм переоткрывался четырежды: Kelley (1960, теория управления), Bryson (1961, аэронавтика), Dreyfus (1962, динамическое программирование), Linnainmaa (1970, численный анализ). Rumelhart, Hinton и Williams (1986, Nature) сделали его известным в нейросетях - и забыли процитировать предшественников. Seppo Linnainmaa в 1970 году в дипломной работе описал полный алгоритм reverse-mode AD. JAX (2018) сделал его программной нормой.
Прямой и обратный режимы: когда что применять
В 2023 году JAX (Google) обрабатывал градиенты функций с 540 миллиардами параметров. Обратный режим AD вычисляет весь градиент за 2 прохода через граф. Прямой режим потребовал бы 540 миллиардов проходов. Это разница между обучением GPT-4 за несколько месяцев и несколькими тысячелетиями.