Перейти к основному содержимому

Классы точек стационарности

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

Мы минимизируем функцию потерь L(w)L(\mathbf{w}) по весам модели wRK\mathbf{w}\in\mathbb{R}^K:

L(w)minwL(\mathbf{w})\to\min_\mathbf{w}

Разложение Тейлора 2-го порядка для L(w)L(\mathbf{w}) имеет вид:

L(w^)L(w)+ΔwTL(w)+12ΔwT2L(w)Δw,L(\hat{\mathbf{w}})\approx L(\mathbf{w}) + \Delta \mathbf{w}^T \nabla L(\mathbf{w})+\frac{1}{2}\Delta \mathbf{w}^T \nabla^2 L(\mathbf{w}) \Delta \mathbf{w},

где

  • Δw=w^w\Delta \mathbf{w} = \hat{\mathbf{w}}-\mathbf{w},

  • L(w)RK\nabla L(\mathbf{w})\in\mathbb{R}^K - градиент функции (вектор из частных производных по каждому весу);

  • 2L(w)RK×K\nabla^2 L(\mathbf{w})\in\mathbb{R}^{K\times K} - матрица Гессе (Гессиан) из вторых производных {L(w^)wiwj}i,j\left\{\frac{L(\hat{\mathbf{w}})}{\partial w_i\partial w_j}\right\}_{i,j}.

Если раскладывать функцию потерь в стационарной точке w\mathbf{w}^* (в которой градиент равен нулю, т.е. L(w)=0\nabla L(\mathbf{w})=0), то разложение Тейлора примет вид:

L(w^)L(w)+12ΔwT2L(w)Δw,(2)L(\hat{\mathbf{w}})\approx L(\mathbf{w}^*)+\frac{1}{2}\Delta \mathbf{w}^T \nabla^2 L(\mathbf{w}^*) \Delta \mathbf{w}, \tag{2}

Гессиан, будучи симметричной матрицей, имеет ортонормированный базис из собственных векторов u1,...uK\mathbf{u}_1,...\mathbf{u}_K с собственными значениями λ1,...λK\lambda_1,...\lambda_K:

2L(w)ui=λiui,i=1,2,....K.\nabla^2 L(\mathbf{w}^*) \mathbf{u}_i = \lambda_i \mathbf{u}_i,\quad i=1,2,....K. uiTuj={1, если i=j,0, если ij.\mathbf{u}_i^T \mathbf{u}_j = \begin{cases} 1, \text{ если } i=j, \\ 0, \text{ если } i\ne j. \end{cases}

Разложим Δw=w^w\Delta \mathbf{w} = \hat{\mathbf{w}}-\mathbf{w}^* по базису из собственных векторов:

Δw=kαkuk\Delta \mathbf{w} = \sum_k \alpha_k \mathbf{u}_k

Подставив это разложение в (2), получим:

L(w^)L(w)12(kαkuk)T2L(w)(kαkuk)=12(kαkuk)T(kαkλkuk)=12kλkαk2.\begin{align*} L(\hat{\mathbf{w}})-L(\mathbf{w}^*)&\approx\frac{1}{2}\left(\sum_k \alpha_k \mathbf{u}_k\right)^T \nabla^2 L(\mathbf{w}^*) \left(\sum_k \alpha_k \mathbf{u}_k\right) \\ &=\frac{1}{2}\left(\sum_k \alpha_k \mathbf{u}_k\right)^T \left(\sum_k \alpha_k \lambda_k \mathbf{u}_k\right) \\ &=\frac{1}{2}\sum_k \lambda_k \alpha_k^2. \end{align*}

Отсюда видно, что точка стационарности w\mathbf{w}^* может быть:

  • точкой минимума, когда все λi\lambda_i положительны (Гессиан - положительно определённая матрица);

  • точкой максимума, когда все λi\lambda_i отрицательны (Гессиан - отрицательно определённая матрица);

  • точкой перегиба, когда часть собственных значений положительна, а часть отрицательна.

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