浏览代码
RU - documentation localization (#4529)
RU - documentation localization (#4529)
* Create README.md * Create Установка.md * Create Начало работы.md * Update Начало работы.md * Update README.md * Update Установка.md * Update Начало работы.md * Update Установка.md * Update Установка.md * Update README.md * Update README.md/MLA-1734-demo-provider
GitHub
4 年前
当前提交
9cd822e3
共有 5 个文件被更改,包括 572 次插入 和 0 次删除
-
160docs/localized/RU/README.md
-
258docs/localized/RU/docs/Начало работы.md
-
154docs/localized/RU/docs/Установка.md
|
|||
<img src="https://github.com/Unity-Technologies/ml-agents/blob/master/docs/images/image-banner.png" align="middle" width="3000"/> |
|||
|
|||
# Unity ML-Agents Toolkit Version Release 7 |
|||
|
|||
[![docs badge](https://img.shields.io/badge/docs-reference-blue.svg)](https://github.com/Unity-Technologies/ml-agents/tree/release_7_docs/docs/) |
|||
[![license badge](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE) |
|||
|
|||
([latest release](https://github.com/Unity-Technologies/ml-agents/releases/tag/latest_release)) |
|||
([all releases](https://github.com/Unity-Technologies/ml-agents/releases)) |
|||
|
|||
**The Unity Machine Learning Agents Toolkit (ML-Agents)** - open-source проект, |
|||
предназначенный для обучения искусственного интеллекта (агента) через взаимодействие со средой, - |
|||
игрой или симуляцией, - используя различные методы машинного обучения: |
|||
обучение с подкреплением (reinforcement learning), имитационное обучение (imitation learning), |
|||
нейроэволюция (neuroevolution) и др. средствами Python API. В проекте реализованы также и современные |
|||
алгоритмы (на основе TensorFlow), чтобы дать возможность как разработчикам игр так и любым другим, |
|||
кто увлечен темой AI, обучать искусственный интеллект для 2D, 3D и VR/AR игр. Применение таких агентов |
|||
бесчисленно: например, вы можете использовать их для управления NPC (опций также много - будь то |
|||
обучение действиям в кооперативе или друг против друга), для тестирования различных версий сборок |
|||
игры, а также для оценки гейм дизайнерских решений. ML-Agents объединяет разработчиков игр и |
|||
исследователей AI, так как предоставляет единую платформу, в рамках которой новые разработки |
|||
в сфере искусственного интеллекта могут быть протестированы через движок Unity и, как следствие, |
|||
стать доступнее большему количеству и тех, и других. |
|||
|
|||
## Особенности: |
|||
|
|||
- Более [15 примеров на Unity](docs/Learning-Environment-Examples.md). |
|||
- Большие возможности по конфигурации среды и тренировочных сценариев. |
|||
- Unity SDK, который легко встроить в код вашей игры или в кастомную сцену в Unity |
|||
- Два алгоритма глубинного обучения с подкреплением (deep reinforcement learning): |
|||
Proximal Policy Optimization (PPO) и Soft Actor-Critic (SAC). Первый алгоритм старается узнать, |
|||
какой будет наилучший шаг в конкретной ситуации, тогда как второй - узнать в целом правила |
|||
игры/системы/симуляции, их закон и действовать согласно этому усвоенному закону изменения среды. |
|||
- Встроенная поддержка для имитационного обучения (Imitation Learning), которое можно сделать |
|||
либо через клонирование поведения (Behavioral Cloning), либо через генеративно-состязательное |
|||
имитационное обучение (Generative Adversarial Imitation Learning - GAIL), когда одна часть алгоритма |
|||
генерирует поведение, а другая определяет, похоже данное поведение на то, которое было дано как исходное, |
|||
например, самим пользователем в виде записи его действий. Генерация происходит до тех пор, пока |
|||
сгенерированное поведение не будет определено как неотличимое или очень близкое к исходному. |
|||
- Возможность для агента игры с самим собой, если агент обучается в контексте сценария “состязание”: |
|||
например, игра в футбол, где есть две команды. |
|||
- ML-Agents позволяет настроить череду сцен, где каждая новая сцена - это усложнение сцены предыдущей, |
|||
например, добавление новой преграды. Не всегда поставленную задачу агент сможет научиться |
|||
выполнять, если среда слишком сложная изначально. Дайте ему сначала сценку попроще, когда |
|||
он научиться ее проходить, его перенесет на уровень посложнее. |
|||
- Обучение агента, устойчивого к изменениям, с помощью возможности случайного генерации элементов сцены |
|||
- Гибкий контроль агента: демонстрация выученного поведения только при определенных условиях. |
|||
Например, NPC входит в контекст “атака” - атакует так, как научился ранее в рамках обучающего сценария. |
|||
- Обучение агента сразу на множестве сцен одновременно. Представьте, как он играет в футбол сразу |
|||
на десяти стадионах, набираясь опыта одновременно на них всех. Выглядит это в Unity также, |
|||
как и представляется. |
|||
- Использование [Unity Inference Engine](docs/Unity-Inference-Engine.md) для поддержки кроссплатформенности. |
|||
- Контроль через [Python API](docs/Python-API.md) сцен. |
|||
- Возможность обернуть Unity среду для обучения как [gym](gym-unity/README.md). |
|||
|
|||
Для более детального ознакомления с данными особенностями см. [Обзор ML-Agents] (docs/ML-Agents-Overview.md). |
|||
|
|||
## Релизы и Документация |
|||
|
|||
**Наш последний стабильный релиз - это `7-ой Релиз` (Release 7). |
|||
См. [здесь](https://github.com/Unity-Technologies/ml-agents/tree/release_7_docs/docs/Readme.md), |
|||
чтобы начать работать с самой последней версий ML-Agents.** |
|||
|
|||
Таблица внизу - список всех наших релизов, включая master ветку, над которой мы ведем активную работу |
|||
и которая может быть нестабильной. Полезная информация: |
|||
|
|||
[Управление версиями](docs/Versioning.md) - описание того, как мы работам с GitHub. |
|||
[Релизы](https://github.com/Unity-Technologies/ml-agents/releases) - об изменениях между версиями |
|||
[Миграция](docs/Migrating.md) - как перейти с более ранней версии ML-Agents на новую. |
|||
Ссылки на **документацию** - как установить и начать пользоваться ML-Agents в зависимости от версии. |
|||
Всегда используйте только ту документацию, которая относится к той версии, которую вы установили: |
|||
|
|||
| **Version** | **Дата релиза** | **Source** | **Документация** | **Загрузка** | |
|||
|:-------:|:------:|:-------------:|:-------:|:------------:| |
|||
| **master (unstable)** | -- | [source](https://github.com/Unity-Technologies/ml-agents/tree/master) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/master/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/master.zip) | |
|||
| **Release 7** | **16 Сентября, 2020** | **[source](https://github.com/Unity-Technologies/ml-agents/tree/release_7)** | **[docs](https://github.com/Unity-Technologies/ml-agents/tree/release_7_docs/docs/Readme.md)** | **[download](https://github.com/Unity-Technologies/ml-agents/archive/release_7.zip)** | |
|||
| **Release 6** | 12 Августа, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_6) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_6_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_6.zip) | |
|||
| **Release 5** | 31 Июля, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_5) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_5_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_5.zip) | |
|||
| **Release 4** | 15 Июля, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_4) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_4_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_4.zip) | |
|||
| **Release 3** | 10 Июня, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_3) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_3_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_3.zip) | |
|||
| **Release 2** | 20 Мая, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_2) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_2_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_2.zip) | |
|||
| **Release 1** | 30 Апреля, 2020 | [source](https://github.com/Unity-Technologies/ml-agents/tree/release_1) | [docs](https://github.com/Unity-Technologies/ml-agents/tree/release_1_docs/docs/Readme.md) | [download](https://github.com/Unity-Technologies/ml-agents/archive/release_1.zip) | |
|||
|
|||
## Цитирование |
|||
|
|||
Если вас интересует Unity как платформа для изучения AI, см. [нашу работу Unity и ML-Agents](https://arxiv.org/abs/1809.02627). |
|||
Если вы используете Unity или ML-Agents для исследовательской работы, пожалуйста, указывайте |
|||
в списке используемой литературы следующую работу: |
|||
Juliani, A., Berges, V., Teng, E., Cohen, A., Harper, J., Elion, C., Goy, |
|||
C., Gao, Y., Henry, H., Mattar, M., Lange, D. (2020). Unity: A General Platform for |
|||
Intelligent Agents. _arXiv preprint |
|||
[arXiv:1809.02627].(https://arxiv.org/abs/1809.02627)._ |
|||
https://github.com/Unity-Technologies/ml-agents. |
|||
|
|||
## Дополнительные источники: |
|||
|
|||
Мы опубликовали серию статей на нашем блоге про ML-Agents (**пока без перевода на русский**): |
|||
|
|||
- (12 Мая, 2020) |
|||
[Announcing ML-Agents Unity Package v1.0!](https://blogs.unity3d.com/2020/05/12/announcing-ml-agents-unity-package-v1-0/) |
|||
- (28 Февраля, 2020) |
|||
[Training intelligent adversaries using self-play with ML-Agents](https://blogs.unity3d.com/2020/02/28/training-intelligent-adversaries-using-self-play-with-ml-agents/) |
|||
- (11 Ноября, 2019) |
|||
[Training your agents 7 times faster with ML-Agents](https://blogs.unity3d.com/2019/11/11/training-your-agents-7-times-faster-with-ml-agents/) |
|||
- (21 Октября, 2019) |
|||
[The AI@Unity interns help shape the world](https://blogs.unity3d.com/2019/10/21/the-aiunity-interns-help-shape-the-world/) |
|||
- (15 Апреля, 2019) |
|||
[Unity ML-Agents Toolkit v0.8: Faster training on real games](https://blogs.unity3d.com/2019/04/15/unity-ml-agents-toolkit-v0-8-faster-training-on-real-games/) |
|||
- (1 Марта, 2019) |
|||
[Unity ML-Agents Toolkit v0.7: A leap towards cross-platform inference](https://blogs.unity3d.com/2019/03/01/unity-ml-agents-toolkit-v0-7-a-leap-towards-cross-platform-inference/) |
|||
- (17 Декабря, 2018) |
|||
[ML-Agents Toolkit v0.6: Improved usability of Brains and Imitation Learning](https://blogs.unity3d.com/2018/12/17/ml-agents-toolkit-v0-6-improved-usability-of-brains-and-imitation-learning/) |
|||
- (2 Октября, 2018) |
|||
[Puppo, The Corgi: Cuteness Overload with the Unity ML-Agents Toolkit](https://blogs.unity3d.com/2018/10/02/puppo-the-corgi-cuteness-overload-with-the-unity-ml-agents-toolkit/) |
|||
- (11 Сентября, 2018) |
|||
[ML-Agents Toolkit v0.5, new resources for AI researchers available now](https://blogs.unity3d.com/2018/09/11/ml-agents-toolkit-v0-5-new-resources-for-ai-researchers-available-now/) |
|||
- (26 Июня, 2018) |
|||
[Solving sparse-reward tasks with Curiosity](https://blogs.unity3d.com/2018/06/26/solving-sparse-reward-tasks-with-curiosity/) |
|||
- (19 Июня, 2018) |
|||
[Unity ML-Agents Toolkit v0.4 and Udacity Deep Reinforcement Learning Nanodegree](https://blogs.unity3d.com/2018/06/19/unity-ml-agents-toolkit-v0-4-and-udacity-deep-reinforcement-learning-nanodegree/) |
|||
- (24 Мая, 2018) |
|||
[Imitation Learning in Unity: The Workflow](https://blogs.unity3d.com/2018/05/24/imitation-learning-in-unity-the-workflow/) |
|||
- (15 Марта, 2018) |
|||
[ML-Agents Toolkit v0.3 Beta released: Imitation Learning, feedback-driven features, and more](https://blogs.unity3d.com/2018/03/15/ml-agents-v0-3-beta-released-imitation-learning-feedback-driven-features-and-more/) |
|||
- (11 Декабря, 2017) |
|||
[Using Machine Learning Agents in a real game: a beginner’s guide](https://blogs.unity3d.com/2017/12/11/using-machine-learning-agents-in-a-real-game-a-beginners-guide/) |
|||
- (8 Декабря, 2017) |
|||
[Introducing ML-Agents Toolkit v0.2: Curriculum Learning, new environments, and more](https://blogs.unity3d.com/2017/12/08/introducing-ml-agents-v0-2-curriculum-learning-new-environments-and-more/) |
|||
- (19 Сентября, 2017) |
|||
[Introducing: Unity Machine Learning Agents Toolkit](https://blogs.unity3d.com/2017/09/19/introducing-unity-machine-learning-agents/) |
|||
- Обзор обучения с подкреплением ( |
|||
[multi-armed bandit](https://blogs.unity3d.com/2017/06/26/unity-ai-themed-blog-entries/) |
|||
и |
|||
[Q-learning](https://blogs.unity3d.com/2017/08/22/unity-ai-reinforcement-learning-with-q-learning/)) |
|||
|
|||
Дополнительные материалы от других авторов: |
|||
- [A Game Developer Learns Machine Learning] (https://mikecann.co.uk/machine-learning/a-game-developer-learns-machine-learning-intent/) |
|||
- [Explore Unity Technologies ML-Agents Exclusively on Intel Architecture](https://software.intel.com/en-us/articles/explore-unity-technologies-ml-agents-exclusively-on-intel-architecture) |
|||
- [ML-Agents Penguins tutorial](https://learn.unity.com/project/ml-agents-penguins) |
|||
|
|||
## Community and Feedback |
|||
|
|||
ML-Agents Toolkit - open-source проект, поэтому мы рады любой помощи. Если вы хотите нам помочь, |
|||
ознакомьтесь, для начала, пожалуйста, для с [гайдом, как сделать это правильно](com.unity.ml-agents/CONTRIBUTING.md), |
|||
и [кодексом поведения](CODE_OF_CONDUCT.md). |
|||
|
|||
Если возникли проблемы с установкой и настройкой ML-Agents, если вы хотите обсудить как лучше всего |
|||
обучать агентов и пр., пожалуйста, посмотрите возможные решения на [форуме Unity ML-Agents](https://forum.unity.com/forums/ml-agents.453/). |
|||
Если вы не найдете нужной вам информации, начните новую тему, дав подробное описания вашей проблемы. Если вы обнаружили |
|||
какие-то баги или ошибки во время работы с ML-Agents, пожалуйста, сообщите об этом [здесь](https://github.com/Unity-Technologies/ml-agents/issues). |
|||
|
|||
Нам важно знать ваше мнение. Только на его основе проект Unity ML-Agents и продолжает развиваться. |
|||
Пожалуйста, уделите несколько минут и [поделитесь](https://github.com/Unity-Technologies/ml-agents/issues/1454) |
|||
с нами тем, что могло бы улучшить наш проект. |
|||
|
|||
По всем остальным вопросам или отзыву, пишите сразу на адрес команды разработчиков ML-Agents - ml-agents@unity3d.com. |
|||
|
|||
## Лицензия |
|||
|
|||
Apache License 2.0 |
|
|||
# Начало работы |
|||
|
|||
В данной статье мы разберем шаг за шагом один из [наших примеров](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Examples.md), |
|||
обучим в нем искусственный интеллект (агента - Agent) и применим |
|||
полученную модель в Unity сцене (scene). После прочтения статьи, вы сможете |
|||
обучить агента в любой другой сцене из наших примеров. Если вы не работали |
|||
с движком [Unity](https://unity.com/products), пожалуйста, ознакомьтесь с нашей статьей |
|||
[Background: Unity](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Background-Unity.md). |
|||
Также, если словосочетание “машинное обучение” вам ничего не говорит, |
|||
прочтите для быстрого ознакомления о нем здесь |
|||
[Background: Machine Learning](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Background-Machine-Learning.md). |
|||
|
|||
![Головы с мячами](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/images/balance.png) |
|||
|
|||
Нашей сценой будет **3D Balance Ball**. Агенты в ней - синие кубы-платформы, у каждого |
|||
на голове по мячу. Все они - копии друг друга. Каждый куб-агент пытается |
|||
предотвратить падение мячика, у каждого из них есть возможность двигать |
|||
головой вверх-вниз (кивать), вправо-лево (качать). В данной сцене, - или иначе, среде, |
|||
куб-платформа - это **Агент**, который получает награду за каждый момент времени, когда ему |
|||
удается удержать мяч на голове. Агент также наказывается (отрицательная награда), |
|||
если мяч падает с его головы. Цель обучения - научить агента удерживать мячик на голове. |
|||
|
|||
Все, начинаем! |
|||
|
|||
## Установка |
|||
Если вы еще не установили ML-Agents, следуйте этой |
|||
инструкции по установке(https://github.com/Unity-Technologies/ml-agents/tree/master/docs/localized/RU/docs/Установка.md). |
|||
|
|||
1. Далее, откройте в Unity Project, в котором находятся примеры: |
|||
1. Запустите Unity Hub |
|||
1. В Projects нажмите на **Add** вверху окна. |
|||
Перейдите в папку с ML-Agents Toolkit, найдите папку `Projects` и нажмите **Open**. |
|||
1. В окне **Project** перейдите на `Assets/ML-Agents/Examples/3DBall/Scenes` и откройте файл-сцену `3DBall`. |
|||
|
|||
## О среде/cцене Unity |
|||
|
|||
Агент - это автономный actor (официальное название в документации), который взаимодействует |
|||
со _средой_, собирая о ней данные. В Unity, среда это сцена (scene), в которой есть один |
|||
или более объектов - Агентов, а также, конечно, и другие объекты, с которыми взаимодействует агент. |
|||
|
|||
![Unity-Editor](https://raw.githubusercontent.com/Unity-Technologies/ml-agents/master/docs/images/mlagents-3DBallHierarchy.png) |
|||
|
|||
Обратите внимание: В Unity каждый объект сцены - это объект класса GameObject. GameObject это |
|||
буквально контейнер для всего, что касается объекта: его физики, графики, поведения и пр., |
|||
называемое компонентами. Чтобы посмотреть все компоненты, составляющие GameObject, |
|||
выберите GameObject в окне Scene и откройте окно Inspector. Inspector показывает |
|||
все компоненты GameObject. Первое, что мы можете заметить, открыв сцену 3D Balance Ball, |
|||
что она состоит не из одного, а нескольких кубов - агентов. Каждый такой агент в сцене |
|||
это независимый агент, но у них на всех одно Поведение (Behavior). Это сделано для ускорения |
|||
процесса обучения: все 12 агентов вносят свой вклад одновременно. |
|||
|
|||
## Агент |
|||
|
|||
Агент - это actor (действующие лицо), который делает наблюдения |
|||
(“видит/слушает/пр.” - принимает заданные сигналы) и совершает действия в среде. |
|||
В 3D Balance Ball компоненты Агента помещены в 12 "Агентов" - GameObjects. |
|||
Агент как объект обладает парой свойств, которые влияют на его поведение: |
|||
|
|||
- **Behavior Parameters (Параметры поведения)** — У каждого Агента должно быть Поведение. |
|||
Поведение определяет решения Агента. |
|||
- **Max Step (Максимальное количество шагов)** — Определяет, сколько шагов допускается |
|||
сделать в рамках одной симуляции до завершения эпизода, достижение максимального |
|||
значения также означает завершение. В 3D Balance Ball Агент перезапускается после |
|||
5000 шагов. Иными словами: каждый эпизод - это симуляция, в рамках которой куб |
|||
пытается удержать шарик. Симуляция заканчивается либо по прошествию 5000 шагов, |
|||
либо после определенного времени. |
|||
|
|||
#### Параметры поведения: Векторное пространство наблюдений (Vector Observation Space) |
|||
|
|||
Перед тем как принять тот или иной шаг/действие, агент собирает наблюдения о среде, |
|||
ее состоянии. Векторное пространство наблюдений это вектор со значениями типа |
|||
float (с плавающей точкой, например, 3.14), которые представляют собой информацию о мире, |
|||
позволяющими агенту принять решение о том или ином действии. |
|||
Параметры поведения в примере 3D Balance Ball использую `вектор размерностью 8`: |
|||
это значит, что в нем хранится 8 элементов наблюдения: `x` и `z` компоненты ротации агента, `x`, `y`, `z` |
|||
компоненты относительного местонахождения шарика, а также его `скорость` (состоящую из трех компонентов). |
|||
|
|||
#### Параметры поведения: Векторное пространство действий (Vector Action Space) |
|||
Действия Агента даны в форме массива с типом float. ML-Agents Toolkit классифицирует |
|||
действия на два типа: дискретные и непрерывные. Пример 3D Balance Ball использует |
|||
непрерывное пространство действий, представляющий собой вектор чисел, |
|||
которые могут меняться сколь угодно мало. Поясним: в примере размер |
|||
`вектора действий - 2`: контроль `x` and `z` компонент ротации, чтобы |
|||
удержать шарик на голове. Так вот, изменение (без учета выделенной памяти) |
|||
может быть равным 0,1. Может быть равным и 0.11, а может и на 0.1000001… |
|||
и так далее - это и есть свойство непрерывности. |
|||
Еще пример для понимания: скажем, ваш рост составляет 180 см. |
|||
Если мы его начнем измерять более точной линейкой, окажется, что он |
|||
на самом деле 180,01 cм. Если еще более точной линейкой, то 180,012345 см. |
|||
И так далее, при точности линейки, стремящейся к бесконечности, |
|||
уточнение вашего роста также стремиться к бесконечности. |
|||
|
|||
## Запуск заранее обученной (предтренированной) модели |
|||
|
|||
Мы включили в свои примеры заранее обученные модели (файлы с расширением `.nn`) |
|||
и использовали [Unity Inference Engine](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Unity-Inference-Engine.md), |
|||
чтобы запустить их в Unity. В этом разделе мы воспользуемся одной |
|||
из таких моделей для 3D Ball. |
|||
|
|||
1. В окне **Project** пройдите в папку `Assets/ML-Agents/Examples/3DBall/Prefabs`. |
|||
Раскройте `3DBall` и кликните на префаб (prefab) `Agent`. Вы должны будете |
|||
увидеть префаб `Agent` в окне **Inspector**. |
|||
|
|||
**Обратите внимание**: Кубы-платформы в сцене `3DBall` были сделаны используя префаб `3DBall`. |
|||
Поэтому при необходимости внести изменения в каждую из платформ, |
|||
вы можете просто изменить сам префаб вместо этого. |
|||
|
|||
![Platform Prefab](https://raw.githubusercontent.com/Unity-Technologies/ml-agents/master/docs/images/platform_prefab.png) |
|||
|
|||
1. В окне **Project**, перенесите модель (Model) поведения **3DBall**, находящуюся в `Assets/ML-Agents/Examples/3DBall/TFModels` |
|||
в свойство `Model` в компоненте `Behavior Parameters (Script)` в окне **Inspector** GameObject’a Agent. |
|||
|
|||
![3dball learning brain](https://raw.githubusercontent.com/Unity-Technologies/ml-agents/master/docs/images/3dball_learning_brain.png) |
|||
|
|||
1. Теперь каждый `Агент` на каждой платформе `3DBall` в окне **Hierarchy** |
|||
должен содержать модель поведения **3DBall** в `Behavior Parameters`. |
|||
**Обратите внимание** : Вы можете изменять разные игровые объекты на сцене, |
|||
выбрав их разом, используя строку поиска в Hierarchy сцены (Scene Hierarchy). |
|||
|
|||
1. В **Inference Device** для данной модели выберите CPU. |
|||
|
|||
1. Нажмите на кнопку **Play** в Unity - наши платформы будут удерживать мячик, используя ранее обученную модель. |
|||
|
|||
## Обучение новой модели с использованием обучения с подкреплением (Reinforcement Learning) |
|||
|
|||
В любой среде, которую вы сделаете сами, вам нужно будет обучить агентов с нуля, чтобы |
|||
у вас сгененировался файл модели (поведения). В данном разделе мы покажаем как использовать алгоритмы |
|||
обучения с подкреплением (reinforcement learning), являющиеся частью пакета ML-Agents |
|||
Python. Ниже представлена команда `mlagents-learn`, чтобы управлять как обучением, так и генерацией модели. |
|||
|
|||
### Обучение среды |
|||
|
|||
1. Откройте командную строку (терминал). |
|||
1. Выберите папку с клонированным репозиторием. |
|||
Обратите внимание: если вы использовали дефолтную установку, |
|||
вам должно быть доступно выполнение `mlagents-learn` из любой директории/папки. |
|||
1. Выполните `mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun`. |
|||
- `config/ppo/3DBall.yaml` - путь к файлу с дефолтной конфигурации обучения, который мы предоставили. |
|||
Папка config/ppo содержит файлы конфигов обучения для всех наших примеров, включая 3DBall. |
|||
- `run-id` - уникальное имя для данной обучающий сессии. |
|||
1. Когда отобразится сообщение _"Start training by pressing the Play button in the Unity Editor"_ |
|||
(_“Начните обучение нажатием кнопки “Play” в редакторе Unity”_) - |
|||
нажмите **Play** в Unity, чтобы начать обучение в Editor. |
|||
|
|||
Если `mlagents-learn` запущено корректно и начался процесс обучения, |
|||
вы должны будете увидеть что-то вроде этого: |
|||
|
|||
```console |
|||
INFO:mlagents_envs: |
|||
'Ball3DAcademy' started successfully! |
|||
Unity Academy name: Ball3DAcademy |
|||
|
|||
INFO:mlagents_envs:Connected new brain: |
|||
Unity brain name: 3DBallLearning |
|||
Number of Visual Observations (per agent): 0 |
|||
Vector Observation space size (per agent): 8 |
|||
Number of stacked Vector Observation: 1 |
|||
Vector Action space type: continuous |
|||
Vector Action space size (per agent): [2] |
|||
Vector Action descriptions: , |
|||
INFO:mlagents_envs:Hyperparameters for the PPO Trainer of brain 3DBallLearning: |
|||
batch_size: 64 |
|||
beta: 0.001 |
|||
buffer_size: 12000 |
|||
epsilon: 0.2 |
|||
gamma: 0.995 |
|||
hidden_units: 128 |
|||
lambd: 0.99 |
|||
learning_rate: 0.0003 |
|||
max_steps: 5.0e4 |
|||
normalize: True |
|||
num_epoch: 3 |
|||
num_layers: 2 |
|||
time_horizon: 1000 |
|||
sequence_length: 64 |
|||
summary_freq: 1000 |
|||
use_recurrent: False |
|||
memory_size: 256 |
|||
use_curiosity: False |
|||
curiosity_strength: 0.01 |
|||
curiosity_enc_size: 128 |
|||
output_path: ./results/first3DBallRun/3DBallLearning |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 1000. Mean Reward: 1.242. Std of Reward: 0.746. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 2000. Mean Reward: 1.319. Std of Reward: 0.693. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 3000. Mean Reward: 1.804. Std of Reward: 1.056. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 4000. Mean Reward: 2.151. Std of Reward: 1.432. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 5000. Mean Reward: 3.175. Std of Reward: 2.250. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 6000. Mean Reward: 4.898. Std of Reward: 4.019. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 7000. Mean Reward: 6.716. Std of Reward: 5.125. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 8000. Mean Reward: 12.124. Std of Reward: 11.929. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 9000. Mean Reward: 18.151. Std of Reward: 16.871. Training. |
|||
INFO:mlagents.trainers: first3DBallRun: 3DBallLearning: Step: 10000. Mean Reward: 27.284. Std of Reward: 28.667. Training. |
|||
``` |
|||
|
|||
Обратите внимание, что средняя награда (Mean Reward), увеличивается от одной |
|||
фазы обучения к другой. Это сигнал, что процесс обучения проходит успешно. |
|||
|
|||
**Примечание:** Вы можете обучать агента, используя вместо Editor’a исполняемые файлы. |
|||
См. инструкцию [Using an Executable](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Executable.md). |
|||
|
|||
### Наблюдение за тренировочным процессом |
|||
|
|||
Начав обучать модель с помощью `mlagents-learn` в директории `ml-agents` появится папка `results`. |
|||
Чтобы более детально посмотреть процесс обучения, вы можете использовать [TensorBoard](https://www.tensorflow.org/tensorboard). |
|||
Выполните в командной строке следующую команду: |
|||
|
|||
```sh |
|||
tensorboard --logdir results |
|||
``` |
|||
|
|||
В вашем браузере наберите `localhost:6006`, чтобы посмотреть статистики TensorBoard. |
|||
В рамках этого примера самой важной из них является `Environment/Cumulative Reward` |
|||
(среда/суммарная награда за эпизод), которая должно увеличиваться в процессе обучения, |
|||
приближаясь к 100 - максимально возможное значение, которого может достигнуть агент. |
|||
|
|||
![Example TensorBoard Run](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/images/mlagents-TensorBoard.png) |
|||
|
|||
## Внедрение модели в среду Unity |
|||
|
|||
Когда процесс обучения завершен и модель сохранена |
|||
(об этом будет специальное уведомление - `Saved Model`), |
|||
вы можете добавить ее в проект Unity и использовать ее в рамках |
|||
тех Agents, на базе которых она обучалась (иначе говоря, применить снова к тем же кубам-платформам). |
|||
**Обратите внимание:** Не закрывайте окно Unity, когда появится уведомление Saved Model`. |
|||
Подождите пока это не будет сделать автоматически или нажмите |
|||
`Ctrl+C` в командной строке. Если вы закроете окно вручную, `.nn` file с обученной моделью |
|||
не будет экспортирован в папку `ml-agents`. |
|||
|
|||
Если вы прервали обучение через `Ctrl+C` и хотите его продолжить, |
|||
выполните ту же команду, приписав к ней `--resume`: |
|||
|
|||
```sh |
|||
mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun --resume |
|||
``` |
|||
|
|||
Ваша обученная модель будет находится в каталоге вида `results/<run-identifier>/<behavior_name>.nn`, |
|||
где `<behavior_name>` это название поведения (`Behavior Name`) агента, на базе которого и |
|||
была обучена модель. Этот файл содержит в себе последнюю сгенерированную версию. |
|||
Теперь вы можете применить модель к вашим Агентам, следуя инструкции, |
|||
которая идентична той, что была [выше](#запуск-заранее-обученной-предтренированной-модели): |
|||
|
|||
1. Перенесите файл модели в `Project/Assets/ML-Agents/Examples/3DBall/TFModels/`. |
|||
1. Откройте Unity Editor (редактор Unity) и выберите **3DBall** с |
|||
цену как описано [выше](#запуск-заранее-обученной-предтренированной-модели). |
|||
1. Выберете **3DBall** префаб (prefab) объекта Агента. |
|||
1. Переместите `<behavior_name>.nn` файл из окна Project, |
|||
которых находится в Editor’e, в **Model** в **Ball3DAgent** в окне Inspector. |
|||
1. Нажмите кнопку **Play** вверху Editor’a. |
|||
|
|||
### Следующие шаги |
|||
|
|||
- Для дополнительной информации о ML-Agents Toolkit, |
|||
см. [Обзор ML-Agents Toolkit](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/ML-Agents-Overview.md). |
|||
- [Создание своих сцен](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Create-New.md) |
|||
для обучения агентов. |
|||
- Обзор более сложных сред обучения, которые есть в качестве |
|||
примера в [ML-Agents - Example Environments](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Examples.md) |
|||
- Информация про различные опции обучения - [Training ML-Agents](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-ML-Agents.md) |
|
|||
# Установка |
|||
|
|||
ML-Agents Toolkit состоит из нескольких компонентов: |
|||
|
|||
- Специальный пакет Unity ([`com.unity.ml-agents`](https://github.com/Unity-Technologies/ml-agents/tree/master/com.unity.ml-agents)) |
|||
с Unity C# SDK, который будет интегрирован в Unity сцену. |
|||
|
|||
- Три Python пакета: |
|||
- ([`mlagents`](https://github.com/Unity-Technologies/ml-agents/tree/master/ml-agents)) - пакет с алгоритмами машинного обучения, |
|||
которые позволяют обучить искусственный интеллект. Большинству пользователей ML-Agents достаточно напрямую установить mlagents. |
|||
- ([`mlagents_envs`](https://github.com/Unity-Technologies/ml-agents/tree/master/ml-agents-envs) содержит Python |
|||
API для взаимодействия с Unity сценой. Этот пакет управляет передачей данных между Unity сценой и алгоритмами |
|||
машинного обучения, реализованных на Python. Пакет mlagents зависит от mlagents_envs. |
|||
- ([`gym_unity`](https://github.com/Unity-Technologies/ml-agents/tree/master/gym-unity)) - позволяет обернуть вашу сцену |
|||
в Unity в среду OpenAI Gym. |
|||
- Unity [Project](https://github.com/Unity-Technologies/ml-agents/tree/master/Project), |
|||
содержащий [примеры сцены](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Examples.md), |
|||
где реализованы различные возможности ML-Agents для наглядности. |
|||
|
|||
Итого, чтобы установить и использовать ML-Agents, вам нужно: |
|||
- Установить Unity (2018.4 или более позднюю версию) |
|||
- Установить Python (3.6.1 или более позднюю версию) |
|||
- Клонировать этот репозиторий (Опционально) |
|||
- __Примечание:__ если вы не склонируете репозиторий, тогда у вас не будет доступа к примерам и конфигурациям обучения. |
|||
Также, раздел "Начало работы" подразумевает, что вы сделали клон репозитория. |
|||
- Установить пакет `com.unity.ml-agents` Unity |
|||
- Установить пакет `mlagents` Python |
|||
|
|||
### Установка **Unity 2018.4** или более поздней версии |
|||
|
|||
[Загрузите](https://unity3d.com/get-unity/download) и установите движок Unity. |
|||
Мы очень рекомендуем установить Unity через Unity Hub, так как последний позволяет управлять разными версиями движка. |
|||
|
|||
### Установка **Python 3.6.1** или более поздней версии |
|||
|
|||
Мы рекомендуем [установить](https://www.python.org/downloads/) Python 3.6 или 3.7. |
|||
Если вы используете Windows, пожалуйста, установите x86-64 версию, а не x86. |
|||
Если у вас нет системы управления пакетами `pip3` для Python, пожалуйста, |
|||
воспользуйтесь [этими инструкциями](https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers) |
|||
для ее установки. И хотя мы более не поддерживаем установку пакетов для Anaconda на Windows, |
|||
инструкция все еще доступна - [Windows Anaconda Installation (Deprecated)](Installation-Anaconda-Windows.md) |
|||
|
|||
### Клонирование репозитория ML-Agents Toolkit (Опционально) |
|||
|
|||
Теперь, когда вы установили Unity и Python, вы можете начать установку пакетов. |
|||
Для этого не обязательно клонировать репозиторий, но если вы хотите протестировать |
|||
наши примеры, сделать это будет необходимо (некоторые наши уроки и гайды этого требуют) |
|||
|
|||
```sh |
|||
git clone --branch release_7 https://github.com/Unity-Technologies/ml-agents.git |
|||
``` |
|||
Флаг `--branch release_7` установит последную стабильную рабочую версию. |
|||
Если ее не набрать, установится мастер версия, которая, возможно, будет работать нестабильно. |
|||
|
|||
#### Продвинутая локальная установка для разработки |
|||
|
|||
Вам нужно будет склонировать репозиторий, если вы планируете вносить изменения |
|||
или что-то добавлять в ML-Agents для своих целей. Или вы планируете сделать |
|||
эти изменения общедоступными, пожалуйста, склонируйте master branch |
|||
(без флага `--branch release_7` в команде выше). |
|||
Далее см. [гайд про публикацию правок](https://github.com/Unity-Technologies/ml-agents/blob/master/com.unity.ml-agents/CONTRIBUTING.md). |
|||
|
|||
### Установка пакета `com.unity.ml-agents` для Unity |
|||
Unity ML-Agents C# SDK это пакет Unity. Вы можете установить его прямо из пакетного менеджера, |
|||
Unity Package Manager. Пожалуйста, убедитесь, что вы нажали 'Preview Packages' в 'Advanced', |
|||
чтобы найти этот пакет. |
|||
|
|||
**ОБРАТИТЕ ВНИМАНИЕ:** Если вы не видите пакет ML-Agents в Package Manager, |
|||
пожалуйста, следуйте шагам, написанных [ниже](#продвинутая-локальная-установка-для-разработки-1) |
|||
|
|||
#### Продвинутая локальная установка для разработки |
|||
|
|||
Вы можете добавить самостоятельно com.unity.ml-agents (из репозитория, который вы склонировали) |
|||
к вашему проекту: |
|||
1. `Меню Window` -> `Package Manager`. |
|||
1. В `Package Manaer` кликнете на кнопку “+”. |
|||
1. Выберите `Add package from disk`... |
|||
1. Зайдите в папку `com.unity.ml-agents` |
|||
1. Выберите файл `package.json`. |
|||
|
|||
**ПРИМЕЧАНИЕ:** В Unity 2018.4 кпопка `+` находится внизу справа около списка пакетов. |
|||
А в Unity 2019.3 она - сверху слева. |
|||
|
|||
<p align="center"> |
|||
<img src="https://raw.githubusercontent.com/Unity-Technologies/ml-agents/master/docs/images/unity_package_manager_window.png" |
|||
alt="Unity Package Manager Window" |
|||
height="300" |
|||
border="10" /> |
|||
<img src="https://raw.githubusercontent.com/Unity-Technologies/ml-agents/master/docs/images/unity_package_json.png" |
|||
alt="package.json" |
|||
height="300" |
|||
border="10" /> |
|||
</p> |
|||
|
|||
Если вы собираетесь протестировать примеры из нашей документации, просто откройте папку `Projects` в Unity и вперед! |
|||
|
|||
### Установка пакета `mlagents` Python |
|||
|
|||
Установка `mlagents` Python требует установки и других Python пакетов, от которых зависит `mlagents`. |
|||
Поэтому если у вас установлены их более ранние версии, могут быть ошибки установки. |
|||
Чтобы этого избежать, мы рекомендуем использовать Python Virtual Environments. |
|||
Virtual Environments позволяет управлять ранее установленными версиями так, |
|||
что для одного проекта будут одни зависимости, а для другого - другие на каждой |
|||
из операционных систем - Mac / Windows / Linux. |
|||
Гайд по [Virtual Environments](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Using-Virtual-Environment.md). |
|||
|
|||
Чтобы установить `mlagents` Python, активируйте вашу виртуальную среду |
|||
и выполните следующее в командной строке: |
|||
|
|||
```sh |
|||
pip3 install mlagents |
|||
``` |
|||
|
|||
Обратите внимание, что эта команда установит `mlagents`, |
|||
используя PyPi, а не из клонированного репозитория. |
|||
Если установка прошла успешно, вы сможете выполнить |
|||
команду `mlagents-learn --help`, после |
|||
исполнения которой вы увидите набор доступных команд `mlagents-learn`. |
|||
Устанавливая mlagents, вы также устанавливаете и все то, на базе чего он сделан - |
|||
см. [setup.py file](https://github.com/Unity-Technologies/ml-agents/blob/master/ml-agents/setup.py). |
|||
В том числе [TensorFlow](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Background-TensorFlow.md) |
|||
(требует поддержки CPU w/ AVX). |
|||
|
|||
#### Продвинутая локальная установка для разработки |
|||
Если вы хотите снести изменения в пакеты `mlagents` или `mlagents_envs`, |
|||
вам следует установить их из клонированного репозитория, а не через PyPi. |
|||
Установить и тот и другой пакет нужно будет по отдельности. |
|||
Перейдите к корень репозитория, выполните следующие команды: |
|||
|
|||
```sh |
|||
pip3 install -e ./ml-agents-envs |
|||
pip3 install -e ./ml-agents |
|||
``` |
|||
|
|||
Выполняя команды с суффиксом `с -e`, вы вносите изменения в файлы Python напрямую. |
|||
Важно: установить данные пакеты надо ровно в таком порядке, как это указано выше, |
|||
так как `mlagents` зависит от `mlagents_envs`. В ином случае `mlagents_envs` |
|||
будут загружены и установлены через PyPi. |
|||
|
|||
### Следующие шаги |
|||
|
|||
Гайд ["Начало работы"](https://github.com/Unity-Technologies/ml-agents/tree/master/docs/localized/RU/docs/Начало-работы.md) |
|||
содержит в себе серию коротких обучающих уроков по настройке ML-Agents внутри Unity |
|||
и запуск предобученной модели, а также уроки по созданию и дополнению сцен, |
|||
где будет обучаться ваш агент. |
|||
|
|||
### Помощь |
|||
|
|||
Если у вас возникли трудности с ML-Agents, пожалуйста, обратитесь к [FAQ](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/FAQ.md) |
|||
и к странице [Limitations](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Limitations.md). |
|||
Если это не решило вашу проблему, создайте запрос [здесь](https://github.com/Unity-Technologies/ml-agents/issues), |
|||
предоставив информацию о операционной системе, версии Python и сообщение об ошибки (если оно есть). |
|||
|
|||
|
撰写
预览
正在加载...
取消
保存
Reference in new issue