Unity обновила плагин машинного обучения ML-Agents


plug-in ml-agent for unity

Most recently ml-agents have been updated to v0.4. For those who do not know this is an open source plugin, which is the medium for training agents in unity. They can be trained using reinforcement learning, imitation learning, neuroevolution, or other methods of machine learning using the Python API. It also provides a number of modern algorithms (based on TensorSlow), which allow you to create smarter NPCs for your games.

What do you need to implement machine learning in Unity?

You can download this plug-in by . You will need the unity-envonment folder. Before doing this, create an empty project. In the Assets folder, add the contents of the Assets folder to unity-envonment. Do this with ProjectSettings. Note that if you add this plug-in to an existing project, first create an empty project, follow the steps above, and create a package (Assets-ExportPackage) and then simply import it into your existing project. This is necessary so that you do not lose the existing ProjectSettings settings in your project.

TensorFlow . As for unity, then you need to specify in the Academy a punishment and a reward for each Brain.

It’s also worth pointing out Brain of its TypeBrain setting to External. They also come in the following types:

External — where decisions are made using the Python API. Here, the observations and rewards generated by Brain are redirected to the Python API via an external communicator. Next, the Python API returns the appropriate action that the agent must perform

Internal — where decisions are made using the built-in TensorFlow model. The nested TensorFlow model is a scientific policy, and Brain directly uses this model to determine the action for each Agent.

Player — where decisions are made using real keyboard or controller input. Here, the human player controls the Agent, and the observations and rewards collected by the Brain are not used to control the Agent.

Heuristic — where decisions are made using hard-coded behavior. This is similar to how the majority of character behavior is currently defined and can be useful for debugging or comparing how an Agent with hard-coded rules is compared to an Agent whose behavior was trained.

Unity обновила плагин машинного обучения ML-Agents

613 просмотра

1 ответ

669 Репутация автора

Последние несколько часов я безуспешно пытался запустить установку машинного обучения для ML-Agents для Unity 3D и запустить ее.

Сначала я посмотрел это видео, в котором рассказывается о первоначальных установках, которые также описаны в этом репозитории GitHub .

Затем я перешел ко второй части видеоряда ( здесь ), однако проблемы начались на минуте 4:48, когда я понял, что в руководстве использовалась версия v 0.2, а у меня была версия 0.3.

V 0.3 покончила с PPO.ipynb файлом, показанным в видео. Все делается через learn.py файл.

Затем я решил попробовать следовать официальному руководству по установке Unity:

и попал в раздел « Обучение с PPO », который мне не удалось решить.

проблема возникает здесь: в документации говорится:

Подводя итог, перейдите в командную строку, введите каталог ml-agents и введите:

Примечание. Если вы используете Anaconda, сначала не забудьте активировать среду ml-agents.

Я пытался бежать:

но меня встречают с рядом предупреждений:

Файл «learn.py», строка 9, из файла unitytrainers.trainer_controller import Файл TrainerController «C: \ Users **** \ Downloads \ ml-agents-master \ python \ unitytrainers__init __. Py», строка 1, из файла .buffer Импортировать *


Я пытался решить это сообщение об ошибке уже довольно давно. Кажется, что файл learn.py на самом деле находится, но как-то не правильно интерпретируется?

Первые 9 строк learn.py :

Любое руководство о том, как я могу решить эту проблему, будет оценено. С удовольствием бы дал больше информации, где это необходимо. Шаги, упомянутые выше, должны повторить проблему, с которой я столкнулся.

Ответы (1)

плюса

11 Репутация автора

Я не совсем уверен, решил ли я ту же проблему. Но где-то под моими ошибками он также рассказал мне о строке 9 в learn.py.

Тем не менее, я нашел этот https://github.com/tensorflow/tensorflow/issues/18503 Так что все, что я сделал, это установил тензор потока версии 1.5, выполнив:

После этого все прошло без ошибок, и тренировка работала нормально.

Unity3D Machine Learning Setup для ML-агентов на Windows 10 с Tensorflow

Я пытался получить настройки машинного обучения для ML-агентов для Unity 3D и работает в течение последних нескольких часов, не повезло.

Сначала я следовал этому видео, который идет в течение первоначальных установок , которые также описанные в данном GitHub хранилище.

Затем я перешел к части 2 серии видео ( здесь ), однако проблемы начались в минуте 4:48, где я понял , что учебник использует V 0,2, в то время как я был против 0,3.

V 0,3 покончил с PPO.ipynb файлом , показанным на видео. Все это делается через learn.py файл.

Тогда я решил попробовать последовать официальное руководство по установке Unity:

и получил Обучение с РРО разделом , который я не сумел решить.

проблема возникает здесь: Документация гласит:

Подводя итог, перейдите в командную строку введите каталог мл-агентов и тип:

Примечание: Если вы используете Anaconda, не забудьте активировать среду мл-агенты первой.

Я пытался бежать:

питон learn.py мяч —run-ид = ballBalance —train

но я поздоровался с рядом предупреждений следующим образом:

Файл learn.py, строка 9, в unitytrainers.trainer_controller от импорта TrainerController файла C: \ Users **** \ Загрузки \ мл-агенты-мастер \ Python \ unitytrainers__init __ ру., Строка 1, в от .buffer Импортировать *

Я пытался решить это сообщение об ошибке в течение достаточно долгого времени. Кажется , что файл learn.py на самом деле был найден, но как — то не правильно интерпретировать?

Первые 9 строк learn.py :

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


Microsoft предоставила Unity инструменты AirSim для обучения и тестирования ИИ

Microsoft рассказала о сотрудничестве с Unity Technologies. Пользователи Unity смогут использовать набор инструментов AirSim для обучения и тестирования роботов с ИИ.

С помощью AirSim ИИ моделирует виртуальную реальность с учётом законов физики, в которой тестируют автономные транспортные средства. Этот подход гораздо дешевле и безопаснее как для компаний, так и для людей. Инструменты из магазина Unity или плагин ML-Agents поможет пользователям создать сценарии и обучить ИИ с помощью набора от Microsoft. Обе стороны считают, что совместными усилиями им удастся создать модели обучения искусственного интеллекта, которые будут работать в реальном мире.

Разработчики Unity уделяют развитию ИИ пристальное внимание и в середине сентября 2020 года обновили плагин машинного обучения ML-Agents. Нововведения коснулись количества одновременно обучаемых агентов и их дискретных действий в различных средах. Также компания предоставила свои ресурсы в качестве платформы для исследований ИИ.

ml-agents

Unity Machine Learning Agents Toolkit

Unity ML-Agents Toolkit (Beta)

The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source Unity plugin that enables games and simulations to serve as environments for training intelligent agents. Agents can be trained using reinforcement learning, imitation learning, neuroevolution, or other machine learning methods through a simple-to-use Python API. We also provide implementations (based on TensorFlow) of state-of-the-art algorithms to enable game developers and hobbyists to easily train intelligent agents for 2D, 3D and VR/AR games. These trained agents can be used for multiple purposes, including controlling NPC behavior (in a variety of settings such as multi-agent and adversarial), automated testing of game builds and evaluating different game design decisions pre-release. The ML-Agents toolkit is mutually beneficial for both game developers and AI researchers as it provides a central platform where advances in AI can be evaluated on Unity’s rich environments and then made accessible to the wider research and game developer communities.

Features

  • Unity environment control from Python
  • 10+ sample Unity environments
  • Support for multiple environment configurations and training scenarios
  • Train memory-enhanced agents using deep reinforcement learning
  • Easily definable Curriculum Learning scenarios
  • Broadcasting of agent behavior for supervised learning
  • Built-in support for Imitation Learning
  • Flexible agent control with On Demand Decision Making
  • Visualizing network outputs within the environment
  • Simplified set-up with Docker
  • Wrap learning environments as a gym
Мастер Йода рекомендует:  Введение в курс по PHP

Documentation

  • For more information, in addition to installation and usage instructions, see our documentation home.
  • If you are a researcher interested in a discussion of Unity as an AI platform, see a pre-print of our reference paper on Unity and the ML-Agents Toolkit. Also, see below for instructions on citing this paper.

  • If you have used a version of the ML-Agents toolkit prior to v0.5, we strongly recommend our guide on migrating from earlier versions.

Additional Resources

We have published a series of blog posts that are relevant for ML-Agents:

  • Overviewing reinforcement learning concepts (multi-armed bandit and Q-learning)
  • Using Machine Learning Agents in a real game: a beginner’s guide
  • Post announcing the winners of our first ML-Agents Challenge
  • Post overviewing how Unity can be leveraged as a simulator to design safer cities.

In addition to our own documentation, here are some additional, relevant articles:

Community and Feedback

The ML-Agents toolkit is an open-source project and we encourage and welcome contributions. If you wish to contribute, be sure to review our contribution guidelines and code of conduct.

You can connect with us and the broader community through Unity Connect and GitHub:

  • Join our Unity Machine Learning Channel to connect with others using the ML-Agents toolkit and Unity developers enthusiastic about machine learning. We use that channel to surface updates regarding the ML-Agents toolkit (and, more broadly, machine learning in games).
  • If you run into any problems using the ML-Agents toolkit, submit an issue and make sure to include as much detail as possible.

For any other questions or feedback, connect directly with the ML-Agents team at [email protected]

Translations

To make the Unity ML-Agents toolkit accessible to the global research and Unity developer communities, we’re attempting to create and maintain translations of our documentation. We’ve started with translating a subset of the documentation to one language (Chinese), but we hope to continue translating more pages and to other languages. Consequently, we welcome any enhancements and improvements from the community.

License

Citation

If you use Unity or the ML-Agents Toolkit to conduct research, we ask that you cite the following paper as a reference:

Juliani, A., Berges, V., Vckay, E., Gao, Y., Henry, H., Mattar, M., Lange, D. (2020). Unity: A General Platform for Intelligent Agents. arXiv preprint arXiv:1809.02627. https://github.com/Unity-Technologies/ml-agents.

Related Repositories

free-for-dev

A list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devo .

awesome-artificial-intelligence

A curated list of Artificial Intelligence (AI) courses, books, video lectures an .

awesome-deeplearning-resources

Deep Learning and deep reinforcement learning research papers and some codes .


machine-learning-curriculum

:computer: Make machines learn so that you don’t have to program them; The ultim .

logary

Logary is the best logging framework for .Net. It’s a high performance, multi-ta .

Machine Learning Agents.

Машинное обучение агентов в Unity.

Эта статья об агентах машинного обучения в Unity написана Майклом Лэнхемом — техническим новатором, активным разработчиком под Unity, консультантом, менеджером и автором многих игр на движке Unity, графических проектов и книг.

Разработчики Unity внедрили поддержку машинного обучения и в частности глубинного обучения с подкреплением ради создания SDK глубинного обучения с подкреплением (deep reinforcement learning, DRL) для разработчиков игр и симуляций. К счастью, команда Unity под руководством Дэнни Лэнджа успешно реализована надёжный и современный движок DRL, способный показывать впечатляющие результаты. В качестве основы движка DRL Unity использует модель proximal policy optimization (PPO); эта модель значительно сложнее и в некоторых аспектах может отличаться.

В этой статье я познакомлю вас с инструментами и SDK для создания агентов DRL в играх и симуляциях. Несмотря на новизну и мощь этого инструмента, его легко использовать и он имеет вспомогательные инструменты, позволяющие осваивать концепции машинного обучения на ходу. Для работы с туториалом необходимо установить движок Unity.

Установка ML-Agents

В этом разделе я вкратце расскажу о тех шагах, которые необходимо сделать для установки ML-Agents SDK. Этот материал пока находится в состоянии беты и может меняться от версии к версии. Выполните следующие шаги:

1 Установите на компьютер Git; он работает из командной строки. Git — это очень популярная система управления исходным кодом, и в Интернете есть множество ресурсов об установке и использовании Git на разных платформах. После установки Git, убедитесь, что она работает, создав клон любого репозитория.

2. Откройте командную строку или обычную оболочку. Пользователи Windows могут открыть окно Anaconda.

3. Перейдите в рабочую папку, в которую вы хотите поместить свой новый код, и введите следующую команду (пользователи Windows могут выбрать C:\ML-Agents):

4. Так вы клонируете репозиторий ml-agents на свой компьютер и создадите новую папку с тем же именем. Можно также добавить к названию папки номер версии. Unity, как и почти весь мир искусственного интеллекта, постоянно меняется, по крайней мере, сейчас. Это означает, что постоянно появляются новые изменения. На момент написания статьи мы клонируем репозиторий в папку ml-agents.6:

5. Создайте новую виртуальную среду для ml-agents и укажите версию 3.6, вот так:

#Windows
conda create -n ml-agents python=3.6

#Mac
Use the documentation for your preferred environment

6. Активируйте среду снова с помощью Anaconda:

7. Установите TensorFlow. В Anaconda это можно сделать следующей командой:

pip install tensorflow==1.7.1

8. Установите пакеты Python. В Anaconda введите следующее:

cd ML-Agents #from root folder
cd ml-agents or cd ml-agents.6 #for example
cd ml-agents
pip install -e . or pip3 install -e.

9. Так вы установите все необходимые для Agents SDK пакеты; это может занять несколько минут. Не закрывайте окно, скоро оно нам пригодится.

Так мы выполнили установку и настройку Unity Python SDK для ML-Agents. В следующем разделе мы узнаем, как настроить и обучить одну из множества сред, предоставляемых Unity.

Обучение агента


Теперь мы можем сразу приступить к делу и изучить примеры, в которых применяется глубинное обучение с подкреплением (DRL). К счастью, в составе тулкита нового агента есть несколько примеров для демонстрации мощи движка. Откройте Unity или Unity Hub, и выполните следующие действия:

1 Нажмите на кнопку Open project в верхней части диалогового окна Project.

2. Найдите и откройте папку проекта UnitySDK, как показано на скриншоте:

3. Дождитесь загрузки проекта, а затем откройте окно Project в нижней части редактора. Если откроется окно с запросом обновления проекта, то выберите yes или continue. На данный момент весь код агента имеет обратную совместимость.

4. Найдите и откройте сцену GridWorld, как показано на скриншоте:

5. Выберите в окне Hierarchy объект GridAcademy.

6. Перейдите к окну Inspector и рядом с полем Brains нажмите на значок, чтобы открыть диалоговое окно выбора Brain:

7. Выберите «мозг» GridWorldPlayer. Этот мозг принадлежит игроку, то есть игрок (вы) может управлять игрой.

8. Нажмите кнопку Play в верхней части редактора и понаблюдайте за средой. Так как игра сейчас настроена на управление игроком, вы можете использовать клавиши WASD для перемещения куба. Задача заключается в перемещении синего куба к зелёному символу +, избегая при этом красного X.

Освойтесь в игре. Заметьте, что игра работает только определённый промежуток времени и не является пошаговой. В следующем разделе мы узнаем, как запустить этот пример с агентом DRL.

Что в мозгу?

Один из потрясающих аспектов платформы ML-Agents заключается в возможности быстро и без проблем переключаться от управления игроком к управлению ИИ/агентом. Для этого Unity использует концепцию «мозга» (brain). Мозг может управляться или игроком, или агентом (обучающийся мозг). Самое потрясающее в том, что вы можете собрать игру и протестировать её как игрок, а затем отдать её под управление RL-агента. Благодаря этому любую написанную игру ценой небольших усилий можно заставить управляться с помощью ИИ.

Процесс настройки и запуска обучения RL-агента в Unity довольно прост. Для построения модели обучающегося мозга Unity использует внешний Python. Использование Python имеет огромный смысл, потому что уже существует несколько построенных на его основе библиотек глубинного обучения (DL). Для обучения агента среде GridWorld выполните следующие шаги:

1.Снова выберите GridAcademy и выберите в поле Brains вместо GridWorldPlayer мозг GridWorldLearning:

2. Поставьте справа флажок Control. Этот простой параметр сообщает, что мозг может контролироваться снаружи. Эта опция обязательно должна быть включена.

3. Выберите в окне Hierarchy объект trueAgent, а затем в окне Inspector измените свойство Brain в компоненте Grid Agent на мозг GridWorldLearning:

4. В этом примере нам нужно, чтобы и Academy, и Agent использовали одинаковый мозг GridWorldLearning. Переключитесь на окно Anaconda или Python и выберите папку ML-Agents/ml-agents.

5. Выполните в окне Anaconda или Python следующую команду, воспользовавшись виртуальной средой ml-agents:

mlagents-learn config/trainer_config.yaml — run- >

6. Так вы запустите модель обучения Unity PPO и пример агента с указанной конфигурацией. На определённом этапе окно командной строки попросит запустить редактор Unity с загруженной средой.

7. Нажмите Play в редакторе Unity, чтобы запустить среду GridWorld. Вскоре после этого вы должны будете увидеть обучение агента и вывод результатов в окно скрипта Python:

Мастер Йода рекомендует:  Выборка по дате в WordPress обзор

8. Заметьте, что скрипт mlagents-learn — это код на Python, который строит RL-модель для запуска агента. Как вы видите из выходных данных скрипта, существует несколько параметров (гиперпараметров), которые нужно сконфигурировать.

9. Позвольте агенту поучиться несколько тысяч итераций и заметьте, насколько быстро он обучается. Используемая здесь внутренняя модель под названием PPO проявила себя как очень эффективная для множества разных задач модель обучения, и она очень хорошо подходит для разработки игр. При достаточно мощном оборудовании агент может идеально обучиться менее чем за час.

Позвольте агенту обучаться дальше и изучите другие способы отслеживания процесса обучения агента, представленные в следующем разделе.

Мониторинг обучения с помощью TensorBoard


Обучение агента при помощи модели RL или любой модели DL часто является непростой задачей и требует внимания к деталям. К счастью, в TensorFlow есть набор инструментов построения графиков под названием TensorBoard, который можно использовать для мониторинга процесса обучения. Для запуска TensorBoard выполните следующие действия:

1 Откройте окно Anaconda или Python. Активируйте виртуальную среду ml-agents. Не закрывайте окно, в котором запущена модель обучения; нам нужно, чтобы оно продолжалось.

2. Перейдите в папку ML-Agents/ml-agents и выполните следующую команду:

3. Так мы запустим TensorBoard на собственном встроенном веб-сервере. Вы можете загрузить страницу при помощи URL, который показан после предыдущей команды.

4. Введите URL для TensorBoard, как показано в окне, или введите в браузере localhost:6006 или machinename:6006. Спустя примерно час вы должны увидеть нечто подобное:

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

  • Environment: в этом разделе показано, как агент проявляется себя в среде в целом. Ниже показан более подробный вид графиков с предпочтительным трендом:

6. Оставьте агента выполнять до завершения и не закрывайте TensorBoard.
7. Вернитесь в окно Anaconda/Python, которое обучало мозг, и выполните такую команду:

mlagents-learn config/trainer_config.yaml —run- >

8. Вас снова попросят нажать Play в редакторе; так и сделайте. Позвольте агенту начать обучение и провести несколько сессий. В процессе этого следите за окном TensorBoard и замечайте, как отображается на графиках secondRun. Можете позволить этому агенту выполняться до завершения, но при желании можно его и остановить.

В предыдущих версиях ML-Agents нужно было сначала собрать исполняемый файл Unity как среду обучения игры, а затем запустить его. Внешний мозг Python должен был работать так же. Этот способ очень усложнял отладку проблем в коде или в игре. В новой методике все эти сложности были устранены.

Теперь, когда мы увидели, как легко настроить и обучить агента, перейдём к следующему разделу, в котором узнаем, как можно запустить агента без внешнего мозга Python и выполнять его напрямую в Unity.

Запуск агента

Обучение Python проходит отлично, но в реальной игре его использовать нельзя. В идеале мы бы хотели построить график TensorFlow и использовать его в Unity. К счастью, была создана библиотека TensorFlowSharp, позволяющая .NET использовать графики TensorFlow. Это позволяет нам строить офлайновые модели TFModels, а позже инъектировать их в игру. К сожалению, мы можем использовать только обученные модели, но не обучать их таким образом, по крайней мере, пока.

Давайте посмотрим, как это работает, на примере графика, который мы только что обучили для среды GridWorld; используем его как внутренний мозг в Unity. Выполните действия из следующего раздела для настройки и использования внутреннего мозга:

1 Скачайте плагин TFSharp отсюда

2. В меню редактора выберите Assets | Import Package | Custom Package…

3. Найдите только что скачанный пакет ассета и используйте диалоговые окна импорта для загрузки плагина в проект.

4. В меню выберите Edit | Project Settings. Откроется окно Settings (появилось в версии 2020.3)

5. Найдите в Player options символы Scripting Define Symbols и измените текст на ENABLE_TENSORFLOW, а также включите Allow Unsafe Code, как показано на скриншоте:

6. Найдите объект GridWorldAcademy в окне Hierarchy и убедитесь, что он использует Brains | GridWorldLearning. Отключите в разделе Brains скрипта Grid Academy опцию Control.

7. Найдите мозг GridWorldLearning в папке Assets/Examples/GridWorld/Brains и убедитесь, что параметр Model в окне Inspector задан, как показано на скриншоте:

8. В качестве модели уже должна быть задана GridWorldLearning. В этом примере мы используем TFModel, поставляемую с примером GridWorld.

9. Нажмите Play, чтобы запустить редактор и посмотреть, как агент управляет кубом.

Сейчас мы запускаем среду с заранее обученным мозгом Unity. В следующем разделе мы узнаем, как использовать мозг, который мы обучили в предыдущем разделе.


Загрузка обученного мозга

Во всех примерах Unity есть заранее обученные мозги, которые можно использовать для исследования примеров. Разумеется, мы хотим иметь возможность загружать собственные графы TF в Unity и запускать их. Для загрузки обученного графа выполните следующие действия:

1 Перейдите в папку ML-Agents/ml-agents/models/firstRun-0. Внутри этой папки есть файл GridWorldLearning.bytes. Перетащите этот файл в папку Project/Assets/ML-Agents/Examples/GridWorld/TFModels внутри редактора Unity:

2. Так мы импортируем граф в проект Unity как ресурс и переименуем его в GridWorldLearning 1. Движок делает это, потому что модель по умолчанию уже имеет такое же имя.

3. Найдите в папке с мозгами GridWorldLearning, выберите его в окне Inspector и перетащите новую модель GridWorldLearning 1 в поле Model параметров Brain Parameters:

4. На этом этапе нам не нужно менять никаких других параметров, но уделите особое внимание тому, как сконфигурирован мозг. Пока нам подойдут стандартные настройки.

5. Нажмите Play в редакторе Unity и посмотрите, как агент успешно движется по игре.

6. Успешность агента в игре зависит от времени его обучения. Если вы позволите ему завершить обучение, то агент будет аналогичен к полностью обученному агенту Unity.

Deep Reinforcement Learning using Unity ml-agents

Last week I was doing some experimentations with two of my colleagues, Pedro Quintas, and Pedro Caldeira, using Unity ml-agents and I decided that this was a great moment to share our results with the community and show you how you can expand your knowledge of reinforcement learning.

If you don’t know what Unity ml-agents is, let me give you a brief introduction. Unity ml-agents is an “ open-source Unity plugin that enables games and simulations to serve as environments for training intelligent agents”. In my opinion, it’s a great framework to start learning about deep learning and reinforcement learning because it’s possible to actually see what’s happening instead of just seeing numbers and letters in a terminal.

Before I start showing our little project, let me show some of the scenarios already created by the framework.

Alright, now that you know what this tool does and how it looks, let’s talk about the project!

We used one of the agents created by Unity ml-agents. It is basically a spider but with only 4 legs. Then we created a platform for the little “spider” to move around.

That was just Unity building, let’s talk about reinforcement learning! In the beginning, as normal, the spider (agent) knew nothing beyond its position and direction on the platform. Since our goal was to have two spiders fighting each other (without telling them what to do), he had to somehow teach them. That’s when reinforcement learning comes into action. I’m going to assume if you are reading this article, you know the basic theory behind reinforcement learning. If you are new, here is a beginners guide!

So, like any normal “dumb agent”, we had to “teach” it. We taught our agents by giving good rewards when they had good behaviors and bad rewards when they had bad behaviors. After some trial and error, the agents finally knew how to stand up and walk! Basically, we gave bad rewards every time they touched with their body on the ground. Because if they have their body on the ground, it means that they don’t have their 4 legs on the ground or they are not making enough force on their legs. (Which they should do to be standing up). And by giving a bad reward, we were telling them that those behaviors weren’t good and they should avoid them.

Let’s recapitulate what we’ve so far:
— We created a Unity environment using ml-agents.
— We taught our spider to stand up, equilibrate on its foot and to walk.

The next step was to teach them to fight! To change the behavior of the spiders in order for them to fight, we had to change their rewards. So, if one of the spiders went out of the platform, or touched with the body on the ground it would receive a very bad reward.

Once again, if we didn’t give a good reward when they act as we wanted, they wouldn’t keep repeating those behaviors. So we gave them good rewards when one spider was facing the other and even a better reward when the spider was going in the direction of the other spider. This made the two spiders go in the direction of the other one and at some point, one of them would throw the other one out of the platform. (that’s just a simple example to demonstrate my point)

Мастер Йода рекомендует:  Асинхронность в программировании

In addition, they learned by themselves that by punching the other one against the ground would make it win. So at the same point, they started “wrestling” each other. Which was an observation quite interesting.

In addition, we also tested our agents with a moving platform to create a more difficult environment:

If you want to replicate my results, here is more information about my observable vectors and reward function:

Observable Vectors

Information of the agent regarding itself:
— Agent’s information about its joints
— Agent’s up and forward vectors of body
— Agent’s position in the platform

Information regarding the opponent:
— Up andforward vectors of the opponent’s body
— Opponent’s position in the platform

Reward Function


  • Agents should be penalized for not being able to stand and should be rewarded for forcing their opponent to fall, this is the main objective of the agents.
  • Agents should be penalized for falling off the platform, but not rewarded. We want the agents to learn ways of fighting that do not involve knocking down the platform in specific ways for the opponent to drop slightly earlier.
  • Agents should be rewarded for going and pushing the opponent and should be penalized for pulling away or for letting themselves be pushed. This rewards an active fighting style and penalizes more evasive styles that involve running away from the opponent.

Based on the previous points, we create the following rearward:

  • If the agent is on the floor: -1.0 points
  • If the opponent is on the ground: +1.0 points.
  • If the agent is not on the platform: -1.0 points
  • 0.003(normalized_velocity( opponent_position — agent_position)) + 0.001 (forward_normalized(opponent_position — agent_position))

In the end, we tried to go even further and by using humanoids as agents. The difficulty grew exponentially because while the spider has 8 joints and the walker has 12. Which increases the total number of possible combinations of the movements. So, we ended up not having amazing results but it was pretty fun to watch:

Concluding, Unity ml-agents allows you to build some interesting thing very easily. I think it is a great way to start learning this subject. Feel free to share your questions and results with me!

As a next project in this area, I would like to create an environment for drone simulations and autonomous driving. If you have some ideas, hit me up!

Unity ML Agents — простая логика «и» пример ворот «- эпизод не был завершен

Я пытаюсь создать действительно простой пример, когда я тренирую агента с «и» значениями затвора, т.е.

Я знаю, что это действительно странный тестовый проект, но мне нужно проверить, что я могу использовать ML для оценки данных, не требуя игровых объектов.

Я следил за примером «Basic», включенным в этот проект, но я не могу заставить его работать. Я разместил свой код ниже. Любая помощь приветствуется.

ОБНОВЛЕНИЕ Извините, что забыл упомянуть, я следил за руководством по установке на странице ml gitHub на моем маке и устанавливал файл python, поэтому я просто запускаю «mlagents-learn config/trainer_config.yaml —run- >

В окне терминала я получаю обратную связь в процессе обучения, сначала все работает нормально, так как я получаю распечатку с вознаграждением, но затем на следующей распечатке говорится, что «нет эпизода с момента последнего резюме», но у меня есть не знаю, что это значит или в чем проблема.

У меня есть мозг и академия на сцене по мере необходимости, поскольку я следовал примеру «Basic» в проекте ml ml, но по какой-то причине он не работает, но все примеры делают это, я предполагаю, что это что-то в моем коде, а не моя конфигурация, но я не могу понять, что.

Unity обновила плагин машинного обучения ML-Agents

613 просмотра

1 ответ

669 Репутация автора

Последние несколько часов я безуспешно пытался запустить установку машинного обучения для ML-Agents для Unity 3D и запустить ее.

Сначала я посмотрел это видео, в котором рассказывается о первоначальных установках, которые также описаны в этом репозитории GitHub .

Затем я перешел ко второй части видеоряда ( здесь ), однако проблемы начались на минуте 4:48, когда я понял, что в руководстве использовалась версия v 0.2, а у меня была версия 0.3.

V 0.3 покончила с PPO.ipynb файлом, показанным в видео. Все делается через learn.py файл.


Затем я решил попробовать следовать официальному руководству по установке Unity:

и попал в раздел « Обучение с PPO », который мне не удалось решить.

проблема возникает здесь: в документации говорится:

Подводя итог, перейдите в командную строку, введите каталог ml-agents и введите:

Примечание. Если вы используете Anaconda, сначала не забудьте активировать среду ml-agents.

Я пытался бежать:

но меня встречают с рядом предупреждений:

Файл «learn.py», строка 9, из файла unitytrainers.trainer_controller import Файл TrainerController «C: \ Users **** \ Downloads \ ml-agents-master \ python \ unitytrainers__init __. Py», строка 1, из файла .buffer Импортировать *

Я пытался решить это сообщение об ошибке уже довольно давно. Кажется, что файл learn.py на самом деле находится, но как-то не правильно интерпретируется?

Первые 9 строк learn.py :

Любое руководство о том, как я могу решить эту проблему, будет оценено. С удовольствием бы дал больше информации, где это необходимо. Шаги, упомянутые выше, должны повторить проблему, с которой я столкнулся.

Ответы (1)

плюса

11 Репутация автора

Я не совсем уверен, решил ли я ту же проблему. Но где-то под моими ошибками он также рассказал мне о строке 9 в learn.py.

Тем не менее, я нашел этот https://github.com/tensorflow/tensorflow/issues/18503 Так что все, что я сделал, это установил тензор потока версии 1.5, выполнив:

После этого все прошло без ошибок, и тренировка работала нормально.

Unity ML-Agents Tutorial | AI Truffle Pigs! ��

This tutorial is a bit stale… for a new tutorial built with the latest version of ML-Agents, check this out:

Unity ML Agents | Penguins

In this Unity ML Agents tutorial you’ll learn how to use machine learning, specifically reinforcement learning in Unity to train penguins to find fish and feed their babies.

If you still want to do the pig tutorial, there’s still value to be gained, but there are a few changes to ML-Agents that will require changing. I’ve noted them below.

�� Video updates further down the page!

Intro

Learn how to create AI truffle-seeking pigs with Unity ML-Agents and Tensorflow!

This page is a companion to the YouTube tutorial above on creating intelligent truffle pigs with Unity ML-Agents.

⚠Important!⚠

��The ENABLE_TENSORFLOW and Adding TensorFlowSharp are no longer necessary.

Unity updated ML-Agents to version 0.7.0 on February 26th, 2020 and there’s a small change that affects this tutorial. It now uses Unity Inference Engine. You should be able to skip the ENABLE_TENSORFLOW step.

As of August 2nd, 2020, Unity has updated ML-Agents again. If you are using version 0.9, you may need to update trainer_config.yaml to the latest format. (More details here)

After training, you will now have a .nn file instead of a .bytes file. This works the same way, you just drag it into your brain, uncheck “Control” in the Academy, and press play to run inference.

Note: If your .nn file doesn’t work, try allowing it to fully complete training (don’t exit early with Ctrl + C). I had some .nn files fail with unhelpful errors when I didn’t let it go all the way.

Setup

As mentioned in the video, the first thing you’ll need to do is follow the Installation instructions and the Basic Guide. These will get you up and running with Unity ML-Agents and ready to start the tutorial.

I highly encourage you to check out the ML-Agents Documentation, which will help you understand the project in more depth and provide a place to discuss issues that are not specific to the pig project.

3d Mesh Assets and Code

The free assets you will need for this project are here:

https://gumroad.com/l/NTzXT �� $0+ on Gumroad means you can get them *completely for free* by typing in a 0.

(however, if you want to give extra support, you’ll make me feel warm and fuzzy inside. ��)

ML-Agents Code

In this video, I’m using Release 0.6, which you can get here:

The latest version is likely very similar, but if you have trouble, you can always roll back to 0.6.

Helpful Additions

Training Command

The command I used to train (in my Anaconda Prompt) with curriculum was:

Note: If you get an error that a parameter is not present in the Environment, make sure to add Reset Parameters for «num_truffles», «num_stumps», and «spawn_range» in the Pig Academy.

Добавить комментарий