ML Vault
All notes

Backpropagation

Chain rule — взятие производной сложной функции:
Алгоритм:

  1. Выполняется прямой проход, вычисляются все промежуточные значения функций (от слоя к слою), промежуточные значения сохраняются.
  2. Выполняется обратный проход, вычисляются частные производные функции потерь по параметрам в каждом слое. Производная на выходном (n) слое будет простой, а при взятии частной производной по параметрам предыдущего слоя (n-1), мы получим производную сложной функции, часть которой будет уже вычисленной производной выходного (n) слоя. Так мы идем от последнего слоя к первому, дифференцируя лосс по параметрам на каждом слое и сохраняя эти вычисленные производные для вычисления производных в следующих слоях.

    Высчитываем производную в узле (производная функции ошибки по выходу узла) далее эту производную используем для вычисления градиента по параметрам слоя (частные производные функции ошибки по параметрам) и для вычисления производных по входам узла (передача градиента для последующего вычисления градиентов параметров), далее повторяем со следующим слоем (чат с chatgpt про пример backpropagation)
  3. Обновляем параметры с помощью вычисленных градиентов:
    Матричное вычисление градиентов в бекпроп: