После того как модель обучена, тестируем ее работоспособность на оставшихся тестовых вопросах. Нашей метрикой будет процент вопросов, на которые модель не смогла ответить в рамках каждого задания. Ответ — слово с наибольшим значением функции мягкого максимума на выходе, то есть наиболее вероятное слово. Считается, что ответ верный, если все слова в нем правильные. Если модель не смогла ответить более чем на 5% вопросов в задании, считается, что она не справилась. Процедуру тестирования можно найти в файле test_babi.py .
После обучения модели на примерно 500 тысяч итераций (это может занять очень много времени!) оказывается, что с большинством заданий она справилась очень хорошо. Но она плохо выполняет более сложные задачи, такими как ориентирование , где надо отвечать на вопросы о том, как попасть из одного места в другое. В нижеследующем отчете сравниваются результаты нашей модели со средними значениями из первой работы по DNC.
В этой главе мы рассмотрели проблемы переднего края науки о глубоком обучении — работу с NTM и DNC, завершив реализацией модели, которая может решать задачу понимания чтения.
В последней главе мы начнем изучать иную сферу: обучение с подкреплением. Мы познакомимся с новым классом задач и подготовим алгоритмические основы решения при помощи уже созданных нами инструментов глубокого обучения.
Глава 9. Глубокое обучение с подкреплением
Николас Локашо
[102]
В этой главе мы рассмотрим обучение с подкреплением — раздел машинного обучения, требующего взаимодействия и обратной связи. Это необходимо для создания агентов, которые будут не просто воспринимать и интерпретировать мир, но и взаимодействовать с ним. Мы расскажем, как внедрить глубокие нейронные сети в структуру обучения с подкреплением, и обсудим последние достижения и улучшения в этой области.
Глубокое обучение с подкреплением и игры Atari
Применение глубоких нейронных сетей к обучению с подкреплением стало важным прорывом в 2014 году, когда лондонский стартап DeepMind поразил специалистов по машинному обучению, представив глубокую нейронную сеть, которая справлялась с играми компании Atari лучше, чем люди. Эта сеть, получившая название Deep Q-Network (DQN), стала первым масштабным успешным применением обучения с подкреплением с глубокими нейронными сетями. Она оказалась особенно примечательной, потому что одна и та же архитектура без изменений смогла освоить 49 разных игр, различающихся правилами, целями и стратегиями. Создатели DeepMind свели воедино многие традиционные идеи обучения с подкреплением, разработав и несколько новаторских методов, которые оказались ключевыми для успеха. В этой главе мы рассмотрим реализацию DQN, как она представлена в публикации в журнале Nature под названием «Управление на уровне человека с помощью глубокого обучения с подкреплением» [103]. Но сначала подробнее рассмотрим суть метода (рис. 9.1).
Рис. 9.1. Агент глубокого обучения с подкреплением играет в Breakout. Изображение из агента DQN OpenAI Gym [104], который будет реализован в этой главе
Что такое обучение с подкреплением?
По сути, это обучение путем взаимодействия со средой. Процесс включает агента, среду и сигнал вознаграждения. Агент решает совершить действие в среде и за это получает соответствующее вознаграждение. Способ, которым он выбирает, что совершить, называется стратегией . Агент хочет увеличить вознаграждение, так что он должен научиться оптимальной стратегии взаимодействия со средой (рис. 9.2).
Рис. 9.2. Схема обучения с подкреплением
Обучение с подкреплением отличается от остальных типов, о которых мы говорили ранее. При традиционном подходе с учителем у нас есть данные и метки, а задача — предсказывать последние на основании данных. В освоении навыков без учителя у нас есть только данные, а задача — поиск структур в их основе. В обучении же с подкреплением нет ни данных, ни меток. Сигнал поступает от вознаграждений, получаемых от среды.
Читать дальше
Конец ознакомительного отрывка
Купить книгу