اوپن‌ای‌آی فایو

بندانگشتی|یک بازی دوتا ۲ در حال انجام است که تیم ریدینت را در داخل پایگاه خود در ابتدای یک مسابقه نشان می‌دهد

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

## مسابقه‌ها
بندانگشتی|ایجس قهرمانان
پول جایزه تورنمنت هر سال The international (یا به اختصار TI) از ۲۰۱۳ به بعد از محل سود حاصل فروش آیتم‌های بازی به نام "Compendium" به شکل کراد فاندینگ تأمین می‌شود.والو به رقابت کنندگان مسابقات ۲۰۱۵ و ۲۰۱۶ که به سطح ۱۰۰۰ یا بالاتر رسیدند ایجس (Aegis: تندیسی مانند سپر) قهرمانان جایزه داد.

## تاریخچه
توسعه این الگوریتم در سال ۲۰۱۶ آغاز شد. این شرکت به دلایلی همچون محبوبیت بالای این بازی، پشتیبانی از لینوکس و وجود واسط برنامه‌نویسی کاربردی‌های قابل توسعه، بازی Dota 2 که یک بازی رقابتی ۱۰ نفره است را انتخاب کرد. (۵ نفر در مقابل ۵ نفر)
قبل از اینکه این هوش مصنوعی اقدام به کنترل ۵ بازیکن کند، اولین رونمایی عمومی این هوش مصنوعی در The International 2017 رخ داد. در این رونمایی، Dendi بازیکن حرفه ای اوکرانی در یک بازی زنده تک به تک به هوش مصنوعی OpenAI باخت. پس از این بازی Greg Brockman مدیر ارشد فناوری OpenAI توضیح داد که این هوش مصنوعی در طی ۲ هفته با خود بازی کرده‌است و بدین شکل آموزش دیده‌است. همچنین وی خاطرنشان کرد که این هوش مصنوعی قدمی رو به جلو در سوی ساختن هوش مصنوعی‌هایی برای انجام دادن فعالیت‌های فوق پیشرفته نظیر جراحی بر روی انسان است.
این هوش مصنوعی با استفاده از روش یادگیری تقویتی ساخته شده‌است. بدین معنا که این هوش مصنوعی از طریق هزاران بازی در طی روز با خود، به مرور زمان یادمی‌گیرد که بازی اش را ارتقا بخشد.
در تاریخ ژوئن ۲۰۱۸ این هوش مصنوعی قادر گردید که یک تیم کامل ۵ نفره از هوش مصنوعی‌ها را هدایت کند. در همین برهه توانست تیم‌های مبتدی و نیمه حرفه ای را شکست دهد. در The International 2018، این هوش مصنوعی دو بازی در مقابل تیم حرفه ای برزیلی paiN Gaming و تیمی شامل ستارگان چینی انجام داد. با وجود باخت در هر دو بازی، این هوش مصنوعی نمونه یک هوش مصنوعی موفق از دید تحلیلگران شمرده شد و بسیاری از تحلیلگران معتقد بودند که این هوش مصنوعی به آن‌ها این قابلیت را می‌دهد که استراتژی‌های پنهان و موفقی را از این هوش مصنوعی یاد بگیرند. آخرین حضور عمومی این هوش مصنوعی در آوریل ۲۰۱۹ رخ داد که طی این رونمایی، OpenAI Five موفق شد یک سری بازی را از قهرمان The International 2018 یعنی تیم OG را در یک رویداد زنده ببرد. همچنین شرکت OpenAI اقدام به برگزاری رویدادی ۴ روزه کرد که طی آن بازیکنان مختلف از سرتاسر جهان می‌توانستند به رقابت در مقابل این هوش مصنوعی بپردازند. در طی این ۴ روز OpenAI Five از ۴۲۷۲۹ بازی که انجام داد موفق شد ۹۰٫۴۳٪ از بازی‌ها را برنده شود که آمار بسیار موفقی به‌شمار می‌آید.

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

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

انواع پاداش:

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

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

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

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

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

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

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

## معماری
هوش مصنوعی OpenAI Five شامل ۵ ربات است که هرکدام نقش یک بازیکن را نقشه ایفا می‌کند. هرکدام از این ربات‌ها یک شبکه عصبی یک لایه ۴۰۹۶ واحدی از حافظه طولانی کوتاه-مدت را دارند. وظیفه این واحدها، بررسی حالت State بازی است. این شبکه عصبی کنش‌های (Action) خود را از طریق سرکنش (Action Head)های متفاوتی انجام می‌دهد که هر کدام معنای خاصی دارند. برای مثال Action Headهای داریم برای اینکه کدام کنش را از میان کنش‌های ممکن انجام بدهد، چند واحد زمانی کنش خود را به تأخیر بندازد یا کدام مختصات را برای حرکت انتخاب کند و …
هرکدام از این سرکنش‌ها به صورت مستقل محاسبه می‌شوند. این سامانه هوش مصنوعی دنیای بازی را به صورتی لیستی از ۲۰۰۰۰ عدد می‌بیند و کنش خود را استفاده از یک لیست ۸ مقداره انجام می‌دهد. همچنین این هوش مصنوعی کنش‌ها و هدف‌های مختلفی را انتخاب می‌کند تا بفهمد که چگونه می‌تواند هر کنش را بر اساس مشاهده اش از جهان بازی کدگذاری کند.
هوش مصنوعی OpenAI Five به عنوان یک یادگیر تقویتی عمومی، بر پایه زیرساخت Rapid توسعه یافته‌است. زیرساخت Rapid شامال دو لایه است: لایه اول وظیفه دارد تا هزاران ماشینی که وجود دارند را به هم متصل کند تا بتوانند با هم اطلاعات رد و بدل کنند و لایه دوم نیز نرم‌افزار را اجرا می‌کند. تا سال ۲۰۱۸ این هوش مصنوعی چیزی معادل ۱۸۰ سال بازی را تجربه کرده‌است. روی ۲۵۶ واحد پردازش گرافیکی و ۱۲۸۰۰۰ هسته واحد پردازش مرکزی اجرا شده‌است. با استفاده از الگوریتم‌های Proximal Policy Optimization و Policy Gradient متد یادمی‌گیرد.

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

**دید بلند مدت:** ربات‌ها در ۳۰ فریم بر ثانیه برای هر بازی که به‌طور متوسط ۴۵ دقیقه طول می‌کشد اجرا می‌شوند. این باعث می‌شود که ۸۰۰۰۰ داده بر دقیقه ورودی داشته باشیم. این هوش مصنوعی هر ۴ فریم کنشی انجام می‌دهد و در نهایت ۲۰۰۰۰ حرکت تولید می‌کند. برای مقایسه شطرنج معمولاً در کمتر از ۴۰ حرکت و بازی گو در کمتر از ۱۵۰ حرکت تمام می‌شود. این نشانگر پیچیدگی بسیار بالای بازی Dota 2 است.

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

**فضای کنش پیوسته**: هر کاراکتر در Dota 2 که به آن قهرمان گفته می‌شود می‌تواند کنش‌های مختلفی در بازی داشته باشد. در این بازی برای هر قهرمان فضای کنشمان شامل ۱۷۰۰۰۰ کنش به ازای هر قهرمان می‌باشد. برای مثال در شطرنج متوسط کنش‌های ۳۵ و در Go متوسط کنش‌ها ۲۵۰ می‌باشد.

**فضای مشاهده پیوسته**: بازی Dota 2 در یک نقشه بزرگ با ۱۰ بازیکن بازی می‌شود که در هر تیم ۵ بازیکن وجود دارد و چندین ساختمان و موجود غیرقابل کنترل نیز موجود هست. سامانه OpenAI Five بازی را از طریق یک لیست ۲۰۰۰۰ تایی که شامل استیت و حالت بازی است نظاره می‌کند. این‌ها اطلاعاتی هستند که هر انسان زمانی که بازی می‌کند می‌تواند به آن دسترسی داشته باشد. برای مثال بازی شطرنج توسط ۷۰ لیست و بازی Go توسط ۴۰۰ لیست نظاره می‌شود.

## تقدیرات
هوش مصنوعی OpenAI Five توسط بسیاری از بزرگان هوش مصنوعی، تکنولوژی و صنعت سرگرمی تحویل گرفته شده‌است. برای مثال بیل گیتس مؤسس شرکت مایکروسافت آن را یک «قضیه مهم» خواند زیرا پیروزی در این بازی «نیازمند کار تیمی و همکاری است». بازیکن مطرح شطرنج گری کاسپاروف که در سال ۱۹۹۷ به Deep Blue باخت، گفته‌است که علیرغم باخت آن‌ها در The International 2018 ربات‌ها در نهایت «به آن حد خواهند رسید، زودتر از آنچه فکرش را می‌کنیم». در مصاحبه ای با ام‌آی‌تی تکنالجی ریویو، متخصصان هوش مصنوعی سامانه OpenAI Five را به عنوان دستاوردی قابل توجه توصیف کرده‌اند. با توجه به اینکه Dota 2 یک «بازی بسیار پیچیده» است، حتی شکست دادن بازیکنان غیرحرفه ای نیز تحسین‌برانگیز است. نشریه پی‌سی گیمر نیز نوشت که پیروزی آن‌ها مقابل بازیکنان حرفه‌ها یک رویداد قابل توجه در یادگیری ماشین است. در مقابل نشریه Motherboard نوشت که پیروزی آن‌ها «رسما تقلب» بوده‌است زیرا ربات‌ها دسترسی مستقیم به API بازی دارند به جای اینکه از طریق بینایی کامپیوتر و تفسیر پیکسل‌های بازی اطلاعات خود را کسب کنند.
در سال ۲۰۱۹، شرکت دیپ‌مایند از یک هوش مصنوعی مشابه برای بازی Starcraft 2 به اسم AlphaStar رونمایی کرد که همانند OpenAI Five از هوش مصنوعی تقویتی و بازی کردن با خود یادمی‌گیرد. نشریه ورج (وبگاه) نوشت که «هدف از این تحقیقات فقط این نیست که انسان‌ها را در بازی‌های مختلف شکست دهد بلکه ثابت می‌کند که با زمان و منابع و تلاش مناسب، نرم افزار‌های هوش مصنوعی می‌توانند انسان‌ها را در هر چالش شناختی خواه بازی رومیزی باشد یا بازی ویدیویی شکست دهند.» همچنین خاطرنشان کرد که موفقیت‌های DeepMind و OpenAI در این زمینه‌ها خود اثباتی بر قدرت روش‌های یادگیری تقویتی است.
شرکت OpenAI امید دارد که این تکنولوژی کاربردی‌های خارج از دنیای دیجیتال نیز داشته باشد. در سال ۲۰۱۸ آن‌ها بخش‌هایی از الگوریتم یادگیری تقویتی و کدهای OpenAI Five را برای Dactyl استفاده کردند. Dactyl یک دست رباتی است که با استفاده از شبکه عصبی ساخته شده‌است تا بتواند با اشیای فیزیکی تعامل داشته باشد. در سال 2019 Dactyl توانست که مکعب روبیک را حل کند.

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

## منابع

__بافهرست__

رده:شبکه‌های عصبی مصنوعی
رده:مدل انتخاب
رده:یادگیری بی‌نظارت
رده:یادگیری ماشین
رده:یادگیری نظارت‌شده
* اخبار دوتا ۲
* 
* سایت مرجع دوتا ۲ در ایران
رده:نرم‌افزارهای ۲۰۱۷ (میلادی)
رده:کاربردهای هوش مصنوعی
رده:یادگیری ماشین کاربردی
رده:دوتا ۲
رده:اوپن‌ای‌آی