В этой главе вы узнаете подробно об изучении подкрепления понятий в AI с помощью Python.
Основы обучения армированию
Этот тип обучения используется для усиления или укрепления сети на основе критической информации. То есть сеть, обучаемая в рамках обучения с подкреплением, получает некоторую обратную связь от окружающей среды. Тем не менее, обратная связь носит оценочный характер и не является поучительной, как в случае контролируемого обучения. На основе этой обратной связи сеть выполняет корректировку весов, чтобы в будущем получить более качественную информацию о критике.
Этот процесс обучения похож на контролируемое обучение, но у нас может быть очень мало информации. На следующем рисунке приведена структурная схема обучения подкреплению —
Строительные блоки: окружающая среда и агент
Среда и агент являются основными строительными блоками обучения подкреплению в ИИ. Этот раздел обсуждает их подробно —
агент
Агент — это все, что может воспринимать окружающую среду через датчики и воздействовать на нее через эффекторы.
-
Агент человека имеет сенсорные органы, такие как глаза, уши, нос, язык и кожу, параллельные сенсорам, и другие органы, такие как руки, ноги, рот, для эффекторов.
-
Роботизированный агент заменяет камеры и инфракрасные дальномеры для датчиков, а также различные двигатели и исполнительные механизмы для эффекторов.
-
Программный агент закодировал битовые строки в качестве своих программ и действий.
Агент человека имеет сенсорные органы, такие как глаза, уши, нос, язык и кожу, параллельные сенсорам, и другие органы, такие как руки, ноги, рот, для эффекторов.
Роботизированный агент заменяет камеры и инфракрасные дальномеры для датчиков, а также различные двигатели и исполнительные механизмы для эффекторов.
Программный агент закодировал битовые строки в качестве своих программ и действий.
Терминология агентов
Следующие термины чаще используются в обучении с подкреплением в ИИ —
-
Показатель эффективности агента — это критерий, который определяет, насколько успешным является агент.
-
Поведение агента — это действие, которое агент выполняет после любой заданной последовательности восприятий.
-
Percept — это перцептивные данные агента в данном случае.
-
Последовательность восприятия — это история всего, что агент воспринял до настоящего времени.
-
Функция агента — это карта от последовательности предписаний к действию.
Показатель эффективности агента — это критерий, который определяет, насколько успешным является агент.
Поведение агента — это действие, которое агент выполняет после любой заданной последовательности восприятий.
Percept — это перцептивные данные агента в данном случае.
Последовательность восприятия — это история всего, что агент воспринял до настоящего времени.
Функция агента — это карта от последовательности предписаний к действию.
Среда
Некоторые программы работают в полностью искусственной среде, ограниченной вводом с клавиатуры, базой данных, компьютерными файловыми системами и выводом символов на экране.
Напротив, некоторые программные агенты, такие как программные роботы или программные роботы, существуют в богатых и неограниченных доменах программных роботов. Симулятор имеет очень подробную и сложную среду . Программный агент должен выбирать из множества действий в режиме реального времени.
Например, софт-бот, предназначенный для сканирования онлайн-предпочтений клиента и отображения интересных для покупателя предметов, работает как в реальной, так и в искусственной среде.
Свойства окружающей среды
Среда обладает множественными свойствами, как описано ниже —
-
Дискретный / Непрерывный — Если существует ограниченное количество четко определенных состояний среды, среда является дискретной, в противном случае она является непрерывной. Например, шахматы — это дискретная среда, а вождение — это непрерывная среда.
-
Наблюдаемый / Частично наблюдаемый — если возможно определить полное состояние окружающей среды в каждый момент времени из восприятия, это можно наблюдать; в противном случае это только частично наблюдается.
-
Статический / Динамический — если среда не изменяется во время действия агента, то она является статической; в противном случае это динамично.
-
Один агент / Несколько агентов — Среда может содержать другие агенты, которые могут быть того же или другого типа, что и агент.
-
Доступный / недоступный — если сенсорный аппарат агента может иметь доступ к полному состоянию среды, то среда доступна этому агенту; в противном случае он недоступен.
-
Детерминированный / недетерминированный — если следующее состояние среды полностью определяется текущим состоянием и действиями агента, то среда является детерминированной; в противном случае это недетерминированный.
-
Эпизодический / неэпизодический. В эпизодической среде каждый эпизод состоит из восприятия и действия действующего лица. Качество его действия зависит только от самого эпизода. Последующие эпизоды не зависят от действий в предыдущих эпизодах. Эпизодические условия намного проще, потому что агенту не нужно думать заранее.
Дискретный / Непрерывный — Если существует ограниченное количество четко определенных состояний среды, среда является дискретной, в противном случае она является непрерывной. Например, шахматы — это дискретная среда, а вождение — это непрерывная среда.
Наблюдаемый / Частично наблюдаемый — если возможно определить полное состояние окружающей среды в каждый момент времени из восприятия, это можно наблюдать; в противном случае это только частично наблюдается.
Статический / Динамический — если среда не изменяется во время действия агента, то она является статической; в противном случае это динамично.
Один агент / Несколько агентов — Среда может содержать другие агенты, которые могут быть того же или другого типа, что и агент.
Доступный / недоступный — если сенсорный аппарат агента может иметь доступ к полному состоянию среды, то среда доступна этому агенту; в противном случае он недоступен.
Детерминированный / недетерминированный — если следующее состояние среды полностью определяется текущим состоянием и действиями агента, то среда является детерминированной; в противном случае это недетерминированный.
Эпизодический / неэпизодический. В эпизодической среде каждый эпизод состоит из восприятия и действия действующего лица. Качество его действия зависит только от самого эпизода. Последующие эпизоды не зависят от действий в предыдущих эпизодах. Эпизодические условия намного проще, потому что агенту не нужно думать заранее.
Построение среды с помощью Python
Для построения обучающего агента подкрепления мы будем использовать пакет OpenAI Gym , который можно установить с помощью следующей команды:
pip install gym
В тренажерном зале OpenAI существуют различные среды, которые можно использовать для различных целей. Немногие из них — это Cartpole-v0, Hopper-v1 и MsPacman-v0 . Они требуют разных двигателей. Подробную документацию OpenAI Gym можно найти по адресу https://gym.openai.com/docs/#environments .
Следующий код показывает пример кода Python для среды cartpole-v0 —
import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample())
Вы можете создать другие среды аналогичным образом.
Построение учебного агента с Python
Для построения обучающего агента для подкрепления мы будем использовать пакет OpenAI Gym , как показано ниже:
import gym env = gym.make('CartPole-v0') for _ in range(20): observation = env.reset() for i in range(100): env.render() print(observation) action = env.action_space.sample() observation, reward, done, info = env.step(action) if done: print("Episode finished after {} timesteps".format(i+1)) break
Обратите внимание, что тележка может уравновеситься.