Учебники

AI с Python — обучение усилению

В этой главе вы узнаете подробно об изучении подкрепления понятий в 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

Вы можете создать другие среды аналогичным образом.

Построение учебного агента с 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

Построение учебного агента с Python

Обратите внимание, что тележка может уравновеситься.