Читать книгу Нейросети. Основы онлайн
3. Память для опыта:
– Используется `deque` для хранения недавних переходов, что позволяет повторно использовать их в процессе обучения.
4. Инициализация сети и оптимизатора:
– Инициализируются две сети: `policy_net` для предсказания Q-значений и `target_net` для стабильного обучения.
– `target_net` копирует веса из `policy_net` каждые несколько эпизодов.
5. Функция для выбора действия:
– Выбирается действие на основе ε-жадной стратегии.
6. Функция для обновления памяти:
– Сохраняются переходы (состояние, действие, следующее состояние, вознаграждение) в памяти.
7. Функция для обучения сети:
– Проводится выборка случайного мини-пакета переходов из памяти.
– Вычисляются текущие Q-значения и целевые Q-значения.
– Обновляются параметры сети путем минимизации ошибки MSE.
8. Основной цикл обучения:
– В каждом эпизоде агент взаимодействует со средой, выполняя действия и обновляя память.
– Периодически обновляются веса целевой сети.
– Постепенно уменьшается вероятность случайного действия.
9. Тестирование агента:
– После завершения обучения агент тестируется в среде, используя политику, основанную на максимальных Q-значениях.
– Выводится общее вознаграждение, полученное агентом.
Глава 4. Основные алгоритмы обучения
Обучение моделей машинного обучения часто сводится к оптимизации функции потерь, чтобы улучшить предсказательные способности модели. В этой главе мы рассмотрим три ключевых алгоритма, которые широко используются для этой цели: градиентный спуск, обратное распространение ошибки и стохастический градиентный спуск.
Градиентный спускГрадиентный спуск – это метод оптимизации, который используется для минимизации функции потерь. Цель метода – найти значения параметров модели, которые минимизируют ошибку между предсказаниями модели и реальными значениями.
1. Инициализация параметров
Инициализация параметров является первым шагом в градиентном спуске. На этом этапе параметры модели (например, веса и смещения нейронной сети) устанавливаются в случайные значения. Инициализация случайными значениями помогает избежать симметричных решений и обеспечивает, что различные параметры начнут свое обновление с различных точек. Это важно для эффективного обучения, поскольку одинаковые начальные значения могут привести к тому, что параметры будут обновляться идентичным образом, что препятствует обучению модели. Часто используется инициализация из стандартного нормального распределения или других подходящих распределений.