Telegram: @ninachely


Постановка задачи

Уже сталкивались с линейными моделями: $a(x) = \omega_0 + \omega_1 x_1 + \dots + \omega_n x_n = f(x, \omega)$

Теперь у нас будут модели сложнее, чем линейная

$f(x, \omega)$ — произвольная функция, которая параметризуется какими-то весами

$\{ (x_i, y_i) \}^{\ell}_{i=1}$ — выборка

Learning — минимизация функционала ошибки:

$$ ⁍ $$

Мы хотим дифференцировать нашу произвольную функцию по весам (градиентный спуск). Иными словами, нам подходят не совсем произвольные функции, а хотя бы дифференцируемые:

$\nabla_\omega L(f(x_i, \omega), y_i); \nabla_\omega f(x_i, \omega)$ — differentiable

Chain Rule

Знаем из курса матанализа:

$$ ⁍ $$

Формула, которая описывает весь deep learning:

$$ f = f(g_1(x), \dots, g_n(x)) \Rightarrow \frac{df}{dx} = \sum\limits_{i=1}^{n} \frac{df}{dg_i} \cdot \frac{dg_i}{dx} $$

Пример для n = 4

$f_i, \, i \in \{1, 2, 3, 4\}$ — “простые” функции, которые мы умеем дифференцировать

$$ f = f_4(f_3(f_2(f_1(w)))) $$