Среднеквадратичное распространение (RMSProp) - Лена Капаца
Среднеквадратичное распространение (RMSProp) by Лена Капаца Nov. 6, 2024 Основы

RMSProp (Root Mean Square Propagation) — это адаптивный алгоритм оптимизации, который помогает при обучении нейронных сетей. Он особенно эффективен для работы с нестабильными и изменчивыми функциями потерь, что делает его популярным выбором в глубоких обучающих задачах.

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

Преимущества RMSProp

 

- Адаптивное управление шагами: Позволяет избежать проблем с выбором фиксированной скорости обучения.

- Устойчивость: Работает хорошо в условиях изменения динамики градиентов.

- Простота реализации: Не требует сложных вычислений.

 

Пример кода

 

В этом примере мы реализуем RMSProp с использованием библиотеки numpy. Мы будем минимизировать простую функцию потерь — квадратичную функцию.

 

 

import numpy as np




def quadratic_function(x):

    return x**2




def gradient(x):

    return 2*x




# RMSProp оптимизатор

def rmsprop(gradient, initial_x, learning_rate=0.1, beta=0.9, epsilon=1e-8, epochs=100):

    x = initial_x

    average_squared_grad = 0




    for epoch in range(epochs):

        grad = gradient(x)

        average_squared_grad = beta * average_squared_grad + (1 - beta) * (grad ** 2)

        x -= (learning_rate / (np.sqrt(average_squared_grad) + epsilon)) * grad

        

        # Вывод информации о процессе

        if epoch % 10 == 0:

            print(f'Epoch {epoch}: x = {x}, f(x) = {quadratic_function(x)}')




    return x




# Начальная точка

initial_x = 10.0




# Запуск оптимизации

optimal_x = rmsprop(gradient, initial_x)

print(f'Оптимальное значение x: {optimal_x}, функция потерь: {quadratic_function(optimal_x)}')

 

© Лена Капаца. Все права защищены.