Влияние числа обусловленности матрицы Гессе целевой функции на скорость обучения в градиентном спуске

Вопрос или проблема

Я изучаю книгу Иана Гудфеллоу и др. под названием “Глубокое обучение”, и в Главе 4 – Численные вычисления, на странице 87, он упоминает, что, используя приближение функции цели с помощью разложения Тейлора второго порядка, мы можем найти лучший коэффициент обучения $\epsilon^*$:
$$\text{Для градиентного спуска, описываемого как: }\mathbf{x}^{(n+1)} = \mathbf{x}^{(n)} – \epsilon \mathbf{g}^{(n)}$$
$$\text{где, } \mathbf{g}^{(n)} =\nabla f(\mathbf{x}^{(n)})$$

$$\text{Используя матрицу Гессе }\mathbf{H}^{(n)} = \left[\frac{\partial^2 f (\mathbf{x}^{(n)})}{\partial x_i \partial x_j}\right]_{ij}$$

$$\text{Лучший коэффициент обучения }\epsilon^{*(n)} = \frac{\mathbf{g}^{(n)\top} \mathbf{g}^{(n)}}{\mathbf{g}^{(n)\top} \mathbf{H}^{(n)} \mathbf{g}^{(n)}}$$

Теперь из этого я вывел, что если $\mathbf{g}^{(n)}$ является собственным вектором $\mathbf{H}^{(n)}$ с собственным значением $\lambda$, тогда:

$$\text{Лучший коэффициент обучения }\epsilon^{*(n)} = \frac{1}{\lambda}$$
Таким образом, по сути, величина коэффициента обучения в одном из направлений его собственного вектора больше, если его собственное значение меньше по величине (также отмечая, что собственное значение представляет вторую производную в этом направлении).

Мои ожидания были, что скачок обучения будет больше, когда вторая производная направления $\mathbf{g}^{(n)}$ мала, и меньше, когда $\mathbf{g}^{(n)}$ стремится к собственному направлению с большей второй производной.

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

Для проверки этого я попробовал с функцией:

$$f([x\; y]^{\top}) = x^2 + 0.01y^2$$
$$\text{с располагационно независимой матрицей Гессе } \mathbf{H} = \begin{bmatrix}2&0\\0&0.02\end{bmatrix}$$

и получил эту диаграмму градиентного спуска:
my work

Очевидно, что здесь вышеупомянутое наблюдение согласуется с тем, что коэффициент обучения невелик вдоль направления более крутого склона, однако диаграмма, приведенная в учебнике (используя аналогичную функцию цели, просто с другой ориентацией), кажется, говорит об обратном:

textbook

Что, кажется, делает противоположное: скачки обучения кажутся больше вдоль направлений более крутых склонов (больших вторых производных), даже если подписи к рисункам пытаются объяснить это наблюдение.

Когда я изначально попытался изменить свой код для построения собственной диаграммы, я понял, что моя диаграмма, по-видимому, согласуется с математикой.

Поэтому я хотел спросить, не упускаю ли я какой-нибудь факт, и верно ли наблюдение в учебнике.

Спасибо.

Приложение:

Код для градиентного спуска с использованием коэффициента обучения, корректируемого матрицей Гессе:

# Определение функции z = f(x, y)
def f(x, y):
    """
    Целевая функция
    """
    return (1*x**2 + 0.01*y**2)

def g(x, y):
    """
    Градиент целевой функции
    """
    return np.array([2*x, 0.02*y])

def H(x, y):
    """
    Матрица Гессе целевой функции
    """
    return np.array([[2, 0], [0, 0.02]])

def learningRate(x, y):
    """
    Коэффициент обучения epsilon для градиентного спуска
    на основе учета лучшего приближения второго порядка
    Тейлора
    """
    g_ = g(x, y)
    # print(type(g_), g_, sep='\n')
    H_ = H(x, y)

    gTg = np.dot(g_, g_)
    # print(type(gTg), gTg, sep='\n')
    Hg = H_@g_
    gTHg= np.dot(g_, Hg)
    return  gTg / gTHg

def gradientDescent(initialPoint, gradient, learningRate, steps = 5):
    path = [initialPoint]
    for i in range(1, steps+1):
        x0 = np.array(path[i-1])
        newPoint = tuple(x0 - learningRate(*x0)*gradient(*x0))
        path.append(newPoint)

    return path

Ответ или решение

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

### Число обусловленности гессиана и его влияние на обучение

Гессиан, обозначаемый как \(\mathbf{H}^{(n)}\), содержит вторые производные целевой функции и представляет собой матрицу, которая описывает кривизну функции. Число обусловленности гессиана – это отношение между его максимальным и минимальным собственными числами (\(\lambda_{\text{max}}\) и \(\lambda_{\text{min}}\)). Высокое число обусловленности указывает на большую анизотропию, то есть наличие «крутых» и «пологих» направлений в пространстве функции, что усложняет выбор универсального шага градиентного спуска.

### Формула для оптимальной скорости обучения

Оптимальная скорость обучения (\(\epsilon^{*(n)}\)) может быть вычислена по следующей формуле:

\[
\epsilon^{*(n)} = \frac{\mathbf{g}^{(n)\top} \mathbf{g}^{(n)}}{\mathbf{g}^{(n)\top} \mathbf{H}^{(n)} \mathbf{g}^{(n)}}
\]

где \(\mathbf{g}^{(n)}\) является градиентом функции в точке \(\mathbf{x}^{(n)}\).

Если \(\mathbf{g}^{(n)}\) совпадает с собственным вектором \(\mathbf{H}^{(n)}\) с собственным числом \(\lambda\), то оптимальная скорость обучения упрощается до:

\[
\epsilon^{*(n)} = \frac{1}{\lambda}
\]

### Интерпретация влияния собственных чисел

Собственные числа (\(\lambda\)) гессиана представляют собой скорости изменения функции во всех возможных направлениях. Большое собственное число указывает на крутой склон в соответствующем направлении, тогда как малое собственное число — на более пологий.

Таким образом, если \(\lambda\) велико, шаг градиентного спуска будет меньшим, чтобы предотвратить нестабильность, когда алгоритм сталкивается с крутыми участками. Это объясняет вашу наблюдаемую ситуацию, когда “прыжки” градиентного спуска малы в направлениях с большими собственными числами.

### Почему разные результаты в диаграммах

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

### Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...