Читать книгу Нейросети. Основы онлайн

3. Память для опыта:

– Используется `deque` для хранения недавних переходов, что позволяет повторно использовать их в процессе обучения.

4. Инициализация сети и оптимизатора:

– Инициализируются две сети: `policy_net` для предсказания Q-значений и `target_net` для стабильного обучения.

– `target_net` копирует веса из `policy_net` каждые несколько эпизодов.

5. Функция для выбора действия:

– Выбирается действие на основе ε-жадной стратегии.

6. Функция для обновления памяти:

– Сохраняются переходы (состояние, действие, следующее состояние, вознаграждение) в памяти.

7. Функция для обучения сети:

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

– Вычисляются текущие Q-значения и целевые Q-значения.

– Обновляются параметры сети путем минимизации ошибки MSE.

8. Основной цикл обучения:

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

– Периодически обновляются веса целевой сети.

– Постепенно уменьшается вероятность случайного действия.

9. Тестирование агента:

– После завершения обучения агент тестируется в среде, используя политику, основанную на максимальных Q-значениях.

– Выводится общее вознаграждение, полученное агентом.

Глава 4. Основные алгоритмы обучения

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

Градиентный спуск

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

1. Инициализация параметров

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