یک بازی دوتا ۲ در حال انجام است که تیم ریدینت را در داخل پایگاه خود در ابتدای یک مسابقه نشان می دهد
برنامه کامپیوتری **OpenAI Five** یک هوش مصنوعی توسعه یافته است که توسط OpenAI برای بازی کامپیوتری Dota 2 توسعه یافته است. این برنامه برای اولین بار سال 2017 رونمایی شد. در مراسم رونمایی این هوش مصنوعی در یک بازی تک به تک مقابل Dendi بازیکن حرفه ای اوکراینی و برنده The International قرار گرفت و باخت. در همان سال این هوش مصنوعی به گونه ای توسعه یافت که بتواند یک تیم کامل 5 نفره را هدایت کند. سپس شروع به رقابت در مقابل تیم های حرفه ای کرد و قابلیت خود را برای شکست دادن آن ها را نمایان کرد.
شرکت OpenAI با این هدف به سراغ توسعه این هوش مصنوعی رفت تا نشان دهد که یادگیری ماشین می‌تواند در بازی پیچیده ای چون Dota 2 نیز عملکرد خوبی داشته باشد. این مورد خود لازم تصمیم‌گیری در شرایط عدم قطعیت و اعمال اکشن های پیوسته بر خلاف گسسته است. به نوعی این مسئله با اکثر مسائل دنیای واقعی همپوشانی بالایی دارد. در دنیای واقعی اکثر تصمیمات پیوسته هستند و در شرایطی تصمیمات گرفته می شوند که عدم قطعیت و اطلاعات ناقص وجود دارد. این هوش مصنوعی با این ایده که در آینده یادگیری ماشین بتواند مسئله ها را به‌طور کلی تری حل کند توسعه یافت. 
شرکت OpenAI اقدام به ساخت شبکه عصبی برای کنترل یک دست رباتیک فیزیکی می‌کند. کد ها و الگوریتم های این هوش مصنوعی خود وامدار از همان شبکه عصبی هستند.
هوش مصنوعی OpenAI Five با هوش مصنوعی های دیگری همچون AlphaStar در بازی StarCraft 2 و AlphaGo در بازی Go و Deep Blue در بازی شطرنج و Watson در مسابقه تلویزیونی Jeopardy! مقایسه می‌شود.

مسابقه ها
---------

ایجس قهرمانان
پول جایزه تورنمنت هر سال The international ( یا به اختصار TI ) از 2013 به بعد از محل سود حاصل فروش آیتم های بازی به نام "Compendium" به شکل کراد فاندینگ تامین میشود.والو به رقابت کنندگان مسابقات 2015 و 2016 که به سطح 1000 یا بالاتر رسیدند ایجس (Aegis : تندیسی مانند سپر ) قهرمانان جایزه داد.

تاریخچه
-------

توسعه این الگوریتم در سال 2016 آغاز شد. این شرکت به دلایلی همچون محبوبیت بالای این بازی، پشتیبانی از Linux و وجود API های قابل توسعه، بازی Dota 2 که یک بازی رقابتی 10 نفره است را انتخاب کرد. (5 نفر در مقابل 5 نفر)
قبل از اینکه این هوش مصنوعی اقدام به کنترل 5 بازیکن کند، اولین رونمایی عمومی این هوش مصنوعی در The International 2017 رخ داد. در این رونمایی، Dendi بازیکن حرفه ای اوکرانی در یک بازی زنده تک به تک به هوش مصنوعی OpenAI باخت. پس از این بازی Greg Brockman مدیر ارشد فناوری OpenAI توضیح داد که این هوش مصنوعی در طی 2 هفته با خود بازی کرده است و بدین شکل آموزش دیده است. همچنین وی خاطرنشان کرد که این هوش مصنوعی قدمی رو به جلو در سوی ساختن هوش مصنوعی هایی برای انجام دادن فعالیت های فوق پیشرفته نظیر جراحی بر روی انسان است.
این هوش مصنوعی با استفاده از روش یادگیری تقویتی ساخته شده است. بدین معنا که این هوش مصنوعی از طریق هزاران بازی در طی روز با خود، به مرور زمان یاد می‌گیرد که بازی اش را ارتقا بخشد. 
در تاریخ ژوئن 2018 این هوش مصنوعی قادر گردید که یک تیم کامل 5 نفره از هوش مصنوعی ها را هدایت کند. در همین برهه توانست تیم های مبتدی و نیمه حرفه ای را شکست دهد. در The International 2018، این هوش مصنوعی دو بازی در مقابل تیم حرفه ای برزیلی paiN Gaming و تیمی شامل ستارگان چینی انجام داد. با وجود باخت در هر دو بازی، این هوش مصنوعی نمونه یک هوش مصنوعی موفق از دید تحلیلگران شمرده شد و بسیاری از تحلیلگران معتقد بودند که این هوش مصنوعی به آن ها این قابلیت را می‌دهد که استراتژی های پنهان و موفقی را از این هوش مصنوعی یاد بگیرند. آخرین حضور عمومی این هوش مصنوعی در آوریل 2019 رخ داد که طی این رونمایی، OpenAI Five موفق شد یک سری بازی را از قهرمان The International 2018 یعنی تیم OG را در یک رویداد زنده ببرد. همچنین شرکت OpenAI اقدام به برگزاری رویدادی 4 روزه کرد که طی آن بازیکنان مختلف از سرتاسر جهان می‌توانستند به رقابت در مقابل این هوش مصنوعی بپردازند. در طی این 4 روز OpenAI Five از 42729 بازی که انجام داد موفق شد 90.43% از بازی ها را برنده شود که آمار بسیار موفقی به‌شمار می‌آید.

نحوه کارکرد
-----------

OpenAI Five به واسطه یک تکنیک یادگیری ماشین یعنی **یادگیری تقویتی** آموزش داده شده است. یادگیری تقویتی به این شکل است که مدل از طریق سعی و خطا و بازخوردی که از کنش ها و تجربه های خود کسب می‌کند، آموزش می‌بیند. یک سیستم یادگیری تقویتی به شکل زیر است:

یادگیری تقویتی
عامل: واحد قابل کنترل که میتواند کنش های خاصی را انجام دهد.
کنش: مجموعه ای از کنش ها که می‌تواند انجام شود.
محیط: دنیای فیزیکی بازی
حالت: وضعیت فعلی که توسط عامل مشاهده می‌شود.
پاداش: بازخوردی که از محیط دریافت می‌شود. مثبت به معنای پاداش و منفی به معنای مجازات است.

انواع پاداش:

**صفر و یک:** به خروجی هایی که به صورت "من بردم" یا "تو باختی" گفته می‌شود. مجموع خروجی نهایی صفر خواهد بود. برای مثال اگر یک برج (از 9 برجی که داخل بازی وجود دارد) توسط تیم حریف نابود شود، تیم حریف 1 امتیاز بدست آورده و تیم دیگر 1 امتیاز از دست خواهد داد. 

**پاداش تیمی:** از آنجایی که بازی Dota یک بازی تیمی است، برای پیروز شدن نیازمند همکاری و کار تیمی هست. به همین دلیل یک معیار ارزیابی مبتنی بر کار تیمی در بازی وجود دارد که هر عامل توسط وضعیت باقی عامل ها نیز سنجیده می‌شود. این کار باعث می‌شود تا هر عامل وضعیت هم تیمی های خود را نیز در نظر بگیرد و سپس کنش خود را انجام دهد. برای مثال اگر در یک درگیری تیمی، یک عامل انتخاب این را داشته باشد که یار خود را نجات دهد یا به قهرمان حریف حمله کند، ترجیح خواهد داد یار خود را نجات دهد. 

**پاداش بر اساس زمان:** بازی Dota بر اساس زمانی به 3 زمان تقسیم می‌شود: اول بازی، وسط بازی و آخر بازی. در هر یک از بازه های زمانی عامل ها نوع خاصی از تاکتیک ها را برمیگزینند. مثلاً در آخر بازی، همه قهرمان ها قوی تر شده و قابلیت های بیشتری به دست آورده اند. به همین دلیل در آخر بازی بازیکننان ترجیح میدهند تا با هم درگیر شوند و برج های همدیگر را تخریب کنند. از طرفی به این دلیل که بازیکن ها در اول بازی ضعیف هستند، پاداش بیشتری به ازای تخریب برج ها و کشتن قهرمان های حریف بدست می‌آورند. این باعث می‌شود که عامل ها بتوانند استراتژی های خود را بر اساس زمان بازی اولویت بندی کنند و با توجه به زمان، استراتژی بهینه را انتخاب کنند.

  

نکتهٔ مهمی که در اینجا وجود دارد این است که برای مسائلی که در آن‌ها بیشترین سود در کوتاه مدت تضمین کنندهٔ بیشترین سود در دراز مدت نیست بسیار مناسب است. دلیل وجود این برتری در روش یادگیری تقویتی نیز این است که عامل در هر مرحله لزوماً بهترین راه را انتخاب نمی‌کند و در نهایت هم سعی دارد مجموع پاداش. این روش به شکل موفقیت‌آمیزی بر روی مسائل مختلفی نظیر: کنترل ربات‌ها، برنامه‌ریزی آسانسورها، مخابرات، تخته نرد، چکرز(Sutton and Barto 1998, Chapter 11) و بازی گو (آلفاگو) استفاده شده‌است.

دو عامل مهم هستند که باعث برتری این روش می‌شوند: استفاده از نمونه‌ها برای بهینه‌سازی کارایی و استفاده از تخمین توابع برای تعامل با محیط‌های پیچیده در هریک از حالات زیر:

* برای مسئله یک مدل وجود دارد اما راه حل تحلیلی‌ای وجود ندارد.
* فقط یک محیط شبیه‌سازی شده از مسئله در دسترس است (موضوع بحث بهینه‌سازی بر مبنای شبیه‌سازی)
* هنگامی که تنها راه برای به دست آوردن اطلاعات از محیط تعامل با آن باشد.

دو حالت اول را می‌توان تحت عنوان مسائل برنامه‌ریزی بررسی کرد. (با توجه به این که مدل‌هایی از مسئله موجود است)، در حالی که سومی را باید به عنوان یک مسئلهٔ یادگیری صرف در نظر گرفت. در هر حال در چهارچوب یادگیری نیروافزوده هر سه مسئله به یک مسئلهٔ یادگیری ماشین تبدیل می‌شوند.

OpenAI Five جوری آموزش دیده است که پاداش بلند مدت را بیشینه کند و نگاه کوتاه مدت ندارد. آخرین مدل، پاداش های آینده را با نیمه عمر 5 دقیقه ای ارزش گذاری می‌کند.

یادگیری به واسطه بازی کردن با خود
---------------------------------

یکی از بزرگ‌ترین مشکلاتی که متوجه این سیستم است، این است که چگونه OpenAI Five میخواهد داده های لازم برای آموزش دادن این مدل را فراهم کند؟ جواب این مسئله در یادگیری به واسطه بازی کردن با خود نهفته است.
این مکانیزم مدل را قادر می‌سازد تا بدون اینکه نیازمند داده های حجیمی از جانب انسان ها باشد، خودش به طریق بازی کردن با خود، آموزش ببیند و یاد بگیرد چگونه خود را شکست دهد. در ابتدای پروسه یادگیری، عامل ها بی هدف در اطراف نقشه بازی می‌چرخیدند و همدیگر را میزدند. ولی به مرور یاد گرفتند که باید هدف دار بازی کنند و هدف غاییشان باید نابودی چشمه Fountain حریف باشد. از طرفی اجرا کردن این شبیه‌سازی ها مسئله ساده ای از نظر فنی نیست. OpenAI از 256 کارت گرافیک P100 استفاده کرده است برای هر عامل که میتواند 180 سال بازی را در هر روز انجام دهد.

معماری
------

هوش مصنوعی OpenAI Five شامل 5 ربات است که هرکدام نقش یک بازیکن را نقشه ایفا می‌کند. هرکدام از این ربات ها یک شبکه عصبی یک لایه 4096 واحدی از LSTM را دارند. وظیفه این واحد ها، بررسی حالت State بازی است. این شبکه عصبی کنش های (Action) خود را از طریق سرکنش (Action Head) های متفاوتی انجام می‌دهد که هر کدام معنای خاصی دارند. برای مثال Action Head های داریم برای اینکه کدام کنش را از میان کنش های ممکن انجام بدهد، چند واحد زمانی کنش خود را به تأخیر بندازد یا کدام مختصات را برای حرکت انتخاب کند و ... 
هرکدام از این سرکنش ها به صورت مستقل محاسبه می‌شوند. این سامانه هوش مصنوعی دنیای بازی را به صورتی لیستی از 20000 عدد می‌بیند و کنش خود را استفاده از یک لیست 8 مقداره انجام می‌دهد. همچنین این هوش مصنوعی کنش ها و هدف های مختلفی را انتخاب می‌کند تا بفهمد که چگونه می‌تواند هر کنش را بر اساس مشاهده اش از جهان بازی کدگذاری کند.
هوش مصنوعی OpenAI Five به عنوان یک یادگیر تقویتی عمومی، بر پایه زیرساخت Rapid توسعه یافته است. زیرساخت Rapid شامال دو لایه است: لایه اول وظیفه دارد تا هزاران ماشینی که وجود دارند را به هم متصل کند تا بتوانند با هم اطلاعات رد و بدل کنند و لایه دوم نیز نرم‌افزار را اجرا می‌کند. تا سال 2018 این هوش مصنوعی چیزی معادل 180 سال بازی را تجربه کرده است. روی 256 GPU و 128000 هسته CPU اجرا شده است. با استفاده از الگوریتم های Proximal Policy Optimization و Policy Gradient متد یاد می گیرد.
معماری یادگیری Open AI Five

مقایسه با دیگر سامانه های هوش مصنوعی برای بازی ها
-------------------------------------------------

قبل از OpenAI Five هوش مصنوعی هایی همچون Jeopardy! با Watson و شطرنج با Deep Blue و Go با Alpha Go وجود داشته اند که در مقابل انسان ها به موفقیت هایی رسیده اند. اما OpenAI Five تفاوت هایی جدی با این هوش مصنوعی ها دارد که در پایین ذکر شده است.

**دید بلند مدت:** ربات ها در 30 فریم بر ثانیه برای هر بازی که به‌طور متوسط 45 دقیقه طول می‌کشد اجرا می‌شوند. این باعث می‌شود که 80000 داده بر دقیقه ورودی داشته باشیم. این هوش مصنوعی هر 4 فریم کنشی انجام می‌دهد و در نهایت 20000 حرکت تولید می‌کند. برای مقایسه شطرنج معمولاً در کمتر از 40 حرکت و بازی گو در کمتر از 150 حرکت تمام می‌شود. این نشانگر پیچیدگی بسیار بالای بازی Dota 2 است.

**دید جزئی از حالت بازی**: هر بازیکن و هم تیمی هایش فقط بخش هایی از نقشه که در محدوده دیدشان هست را می‌توانند مشاهده کنند و بقیه نقشه توسط مه احاطه شده است که دشمنان و حرکت هایشان را مخفی نگه می‌دارد. به همین دلیل بازی کردن Dota 2 نیازمند نتیجه‌گیری و تصمیم‌گیری بر اساس اطلاعات ناقص است و از طرفی باید حرکات و کنش های دشمنان را نیز همزمان پیش‌بینی کرد. به عنوان مثال شطرنج و Go دو بازی هستند که هردو تمام اطلاعات بازی در اختیار هر دو بازیکن است.

**فضای کنش پیوسته**: هر کاراکتر در Dota 2 که به آن قهرمان گفته می‌شود می‌تواند کنش های مختلفی در بازی داشته باشد. در این بازی برای هر قهرمان فضای کنشمان شامل 170000 کنش به ازای هر قهرمان می‌باشد. برای مثال در شطرنج متوسط کنش های 35 و در Go متوسط کنش ها 250 می‌باشد. 

**فضای مشاهده پیوسته**: بازی Dota 2 در یک نقشه بزرگ با 10 بازیکن بازی می‌شود که در هر تیم 5 بازیکن وجود دارد و چندین ساختمان و موجود غیرقابل کنترل نیز موجود هست. سامانه OpenAI Five بازی را از طریق یک لیست 20000 تایی که شامل استیت و حالت بازی است نظاره می‌کند. این ها اطلاعاتی هستند که هر انسان زمانی که بازی می‌کند می‌تواند به آن دسترسی داشته باشد. برای مثال بازی شطرنج توسط 70 لیست و بازی Go توسط 400 لیست نظاره می‌شود.

تقدیرات
-------

هوش مصنوعی OpenAI Five توسط بسیاری از بزرگان هوش مصنوعی، تکنولوژی و صنعت سرگرمی تحویل گرفته شده است. برای مثال بیل گیتس مؤسس شرکت مایکروسافت آن را یک "قضیه مهم" خواند زیرا پیروزی در این بازی "نیازمند کار تیمی و همکاری است". بازیکن مطرح شطرنج گری کاسپاروف که در سال 1997 به Deep Blue باخت، گفته است که علیرغم باخت آن ها در The International 2018 ربات ها در نهایت "به آن حد خواهند رسید، زودتر از آنچه فکرش را می‌کنیم".
در مصاحبه ای با MIT Technology Review، متخصصان هوش مصنوعی سامانه OpenAI Five را به عنوان دستاوردی قابل توجه توصیف کرده اند. با توجه به اینکه Dota 2 یک "بازی بسیار پیچیده" است، حتی شکست دادن بازیکنان غیرحرفه ای نیز تحسین‌برانگیز است. نشریه PC Gamer نیز نوشت که پیروزی آن ها مقابل بازیکنان حرفه ها یک رویداد قابل توجه در یادگیری ماشین است. در مقابل نشریه Motherboard نوشت که پیروزی آن ها "رسما تقلب" بوده است زیرا ربات ها دسترسی مستقیم به API بازی دارند به جای اینکه از طریق بینایی کامپیوتر و تفسیر پیکسل های بازی اطلاعات خود را کسب کنند. 
در سال 2019، شرکت DeepMind از یک هوش مصنوعی مشابه برای بازی Starcraft 2 به اسم AlphaStar رونمایی کرد که همانند OpenAI Five از هوش مصنوعی تقویتی و بازی کردن با خود یاد می‌گیرد. نشریه The Verge نوشت که "هدف از این تحقیقات فقط این نیست که انسان ها را در بازی های مختلف شکست دهد بلکه ثابت می‌کند که با زمان و منابع و تلاش مناسب، نرم افزار های هوش مصنوعی می‌توانند انسان ها را در هر چالش شناختی خواه بازی رومیزی باشد یا بازی ویدیویی شکست دهند." همچنین خاطرنشان کرد که موفقیت های DeepMind و OpenAI در این زمینه ها خود اثباتی بر قدرت روش های یادگیری تقویتی است. 
شرکت OpenAI امید دارد که این تکنولوژی کاربردی های خارج از دنیای دیجیتال نیز داشته باشد. در سال 2018 آن ها بخش هایی از الگوریتم یادگیری تقویتی و کد های OpenAI Five را برای Dactyl استفاده کردند. Dactyl یک دست رباتی است که با استفاده از شبکه عصبی ساخته شده است تا بتواند با اشیای فیزیکی تعامل داشته باشد. در سال 2019 Dactyl توانست که مکعب روبیک را حل کند.

جستار‌های وابسته
----------------

* یادگیری تقویتی
* جستجوی معماری عصبی
* دوتا ۲

منابع
-----

1. ↑
2. ↑  «Introducing the Interactive Compendium | Dota 2». *web.archive.org*. ۲۰۱۶-۰۹-۱۹. بایگانی‌شده از اصلی در ۱۹ سپتامبر ۲۰۱۶. دریافت‌شده در ۲۰۲۱-۰۵-۰۷.
3. ↑  «How Exactly Does Dota 2 Come Up With Over $20 Million In Prizes For Its Biggest Event?». *web.archive.org*. ۲۰۱۷-۰۷-۱۴. بایگانی‌شده از اصلی در ۱۴ ژوئیه ۲۰۱۷. دریافت‌شده در ۲۰۲۱-۰۵-۰۷.
4. ↑  «Virtual reality and DotA 2 fan? We have the VR headset for you». *web.archive.org*. ۲۰۱۶-۰۸-۲۳. بایگانی‌شده از اصلی در ۲۳ اوت ۲۰۱۶. دریافت‌شده در ۲۰۲۱-۰۵-۰۷.
5. ↑  «The Collector's Aegis of Champions | Dota 2». *web.archive.org*. ۲۰۱۶-۰۷-۱۰. بایگانی‌شده از اصلی در ۱۰ ژوئیه ۲۰۱۶. دریافت‌شده در ۲۰۲۱-۰۵-۰۷.
6. ↑  Gosavi, Abhijit (2003). *Simulation-based Optimization: Parametric Optimization Techniques and Reinforcement*. Springer. ISBN 1-4020-7454-9.

| * ن
* ب
* و
رایانش تشخیص‌پذیر |
| --- |
| تابع دیفرانسیل‌پذیر | 
* Differentiable programming
* ماشین تورینگ عصبی
* Differentiable neural computer
* Automatic differentiation
* نورومورفیک
* Cable theory
* بازشناخت الگو
* نظریه یادگیری محاسباتی
* حساب تنسوری

 |  |
| Concepts | 
* گرادیان کاهشی
	+ گرادیان کاهشی تصادفی
* خوشه‌بندی
* تحلیل رگرسیون
	+ بیش‌برازش
* یادگیری ماشین خصمانه
* توجه (یادگیری ماشین)
* هم‌گشت
* Loss functions
* پس‌انتشار
* Normalization
* Activation
	+ بیشینه هموار
	+ تابع سیگموئید
	+ یکسوساز (شبکه عصبی)
* Regularization
* آموزش، اعتبارسنجی و مجموعه‌های آزمایشی
	+ افزایش داده

 |
| Programming languages | 
* پایتون (زبان برنامه‌نویسی)
* جولیا

 |
| Application | 
* یادگیری ماشینی
* شبکه عصبی مصنوعی
	+ یادگیری عمیق
* علم محاسبه
* هوش مصنوعی

 |
| Hardware | 
* IPU
* واحد پردازشی تنسور
* VPU
* ممریستور
* SpiNNaker

 |
| Software library | 
* تنسورفلو
* پای‌تورچ
* کرس (نرم‌افزار)
* ثینو

 |
| Implementation | 

|  |  |
| --- | --- |
| Audio-visual | 
* AlexNet
* ویونت
* Human image synthesis
* تشخیص دست خط
* نویسه‌خوان نوری
* متن به گفتار
* بازشناسی گفتار
* سیستم تشخیص چهره
* AlphaFold
* دال-ای

 |
| Verbal | 
* Word2vec
* ترنسفورمر
* برت (مدل زبانی)
* NMT
* پروژه مناظره‌کننده
* واتسون (رایانه)
* GPT-2
* جی‌پی‌تی-۳

 |
| Decisional | 
* آلفاگو
* کیو-یادگیری
* SARSA
* OpenAI Five
* خودرو خودران
* MuZero
* انتخاب کنش
* Robot control

 |

 |
| People | 
* Alex Graves
* یان گودفلو
* یوشوا بنجیو
* جفری اورست هینتون
* یان لی کان
* اندرو ان‌جی
* Demis Hassabis
* David Silver
* فی-فی لی

 |
| Organizations | 
* دیپ‌مایند
* اوپن‌ای‌آی
* MIT CSAIL
* میلا
* گوگل برین
* FAIR

 |
| 
* Portals
	+ درگاه:برنامه‌نویسی
	+ درگاه:فناوری
* Category
	+ رده:شبکه‌های عصبی مصنوعی
	+ رده:یادگیری ماشینی

 |



* مشارکت‌کنندگان ویکی‌پدیا. «Dota 2». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۳۰ نوامبر ۲۰۱۴.اخبار دوتا ۲
* مشارکت‌کنندگان ویکی‌پدیا. «Dota». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۱۱ جون ۲۰۱۹.
* سایت مرجع دوتا ۲ در ایران