یادگیری ماشین در بازی‌های ویدیویی

در بازی‌های ویدیویی، تکنیک‌های مختلف هوش مصنوعی به روش‌های مختلف استفاده شده است، از کنترل شخصیت‌های غیر بازیکن (NPC) گرفته، تا تولید محتوای رویه‌ای (PCG) . یادگیری ماشینی زیرمجموعه‌ای از هوش مصنوعی است که بر استفاده از الگوریتم‌ها و مدل‌های آماری تمرکز دارد تا ماشین‌ها را وادار کند که بدون برنامه‌نویسی خاصی عمل کنند. این در تضاد شدید با روش های سنتی هوش مصنوعی مانند درختان جستجو و سیستم های خبره قرار دارد .

اطلاعات درمورد تکنیک‌های یادگیری ماشین در زمینه بازی‌ ها، عمدتاً از طریق پروژه‌های تحقیقاتی برای عموم مردم شناخته می‌شود، به این خاطر  بیشتر شرکت‌های بازی تصمیم می‌گیرند که اطلاعات خاصی در مورد حق مالکیت معنوی خود منتشر نکنند. شناخته شده ترین کاربرد عمومی یادگیری ماشین در بازی ها، احتمالاً استفاده از عوامل یادگیری عمیق است که با بازیکن های حرفه‌ای انسانی در بازی های ژانر استراتژی پیچیده رقابت می‌کنند. کاربرد قابل توجهی از یادگیری ماشین در بازی هایی مانند Atari /ALE، *[[دوم (بازی ویدئویی ۱۹۹۳)|Doom]]* ، *[[ماینکرفت|Minecraft]]* ، *[[استارکرافت (بازی ویدئویی)|StarCraft]]* و مسابقات اتومبیل‌رانی وجود داشته است.  سایر بازی‌هایی که در ابتدا به عنوان بازی ویدیویی وجود نداشتند، مانند شطرنج و Go همچنین تحت تأثیر یادگیری ماشینی قرار گرفته‌اند.  

## بررسی اجمالی تکنیک های یادگیری ماشین
[بندانگشتی| شبکه عصبی مصنوعی یک گروه به هم پیوسته از گره ها است که شبیه به شبکه وسیع [نورون ها در مغز است. در اینجا، هر گره دایره ای نشان دهنده یک نورون مصنوعی و یک فلش، یک اتصال از خروجی یک نورون مصنوعی به ورودی نورون دیگر را نشان میدهد.]]

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

#### شبکه های عصبی پیچشی
شبکه‌های عصبی پیچشی (CNN) شبکه‌های عصبی مصنوعی تخصصی هستند که اغلب برای تجزیه و تحلیل داده‌های تصویر استفاده می‌شوند. این نوع شبکه ها قادر به یادگیری الگوهای انتقال پایا هستند که الگوهایی هستند که به موقعیت مکانی وابسته نیستند. CNN ها قادرند این الگوها را در یک سلسه مراتب بیاموزند، به این معنی که لایه های پیچشی قبلی، الگوهای محلی کوچک تری را یاد می گیرند در حالی که لایه های بعدی الگوهای بزرگتری را بر اساس الگوهای قبلی یاد می گیرند.  توانایی یک CNN برای یادگیری داده های بصری، آن را به ابزاری رایج برای یادگیری عمیق در بازی ها تبدیل کرده است.   

### شبکه عصبی بازگشتی
شبکه‌های عصبی بازگشتی نوعی ANN هستند که برای پردازش متوالی داده‌ها به ترتیب، یک قسمت در یک زمان به جای همه در یک زمان طراحی شده‌اند. یک RNN روی هر قسمت از یک دنباله اجرا می شود و از قسمت فعلی دنباله به همراه  حافظه قسمت های قبلی دنباله فعلی استفاده میکند تا یک خروجی تولید کند. این نوع ANN در کارهایی مانند تشخیص گفتار و مشکلات دیگری که به شدت به ترتیب زمانی وابسته هستند، بسیار موثرند. انواع مختلفی از RNN با تنظیمات داخلی مختلف وجود دارد. پیاده سازی اولیه به دلیل مشکل محو شدگی گرادیان از کمبود حافظه طولانی مدت مواجه میشود، بنابراین به ندرت بر روی پیاده‌سازی های جدیدتر استفاده می شود. بندانگشتی|در یادگیری تقویتی، عامل با توجه به مشاهدات خود در هر لحظه حالتی را به خود تخصیص می‌دهد.
### یادگیری تقویتی
یادگیری تقویتی پروسه آموزش یک عامل با استفاده از پاداش یا تنبیه می‌باشد. نحوه تعیین پاداش یا تنبیه کاملا به مسئله ربط دارد، مانند پاداش برای بردن یک بازی یا تنبیه برای باختن. یادگیری تقویتی به شدت در یادگیری ماشینی استفاده می‌شود و در روش‌های کیو-یادگیری و یادگیری با سیاست و ... دیده می‌شود. یادگیری تقویتی کارایی بسیار خوبی در هر دو زمینه‌ی بازی ها و روباتیک دارد.

### تکامل عصبی
تکامل عصبی به استفاده الگوریتم‌های تکاملی و شبکه‌های عصبی گفته می‌شود. تکامل عصبی به جای استفاده از گرادیان کاهشی، از الگوریتم‌های تکاملی برای به‌روز‌رسانی نورون‌های شبکه استفاده می‌کند. محققین ادعا می‌کنند که این روش کمتر در بیشینه یا کمینه محلی گیر ‌می‌کند و سریع‌تر از بهترین مدل‌های روز است.

## عامل‌های یادگیری عمیق
امروزه از عامل‌های یادگیری عمیق به عنوان بازیکن استفاده می‌شود در صورتی که در گذشته به عنوان بخشی از گیم‌پلی استفاده می‌شدند. عامل‌های یادگیری عمیق نتایج تحیرآمیزی چه در بازی با انسان و چه در بازی با دیگر عامل‌های هوش مصنوعی به دست آورده‌اند.  

### شطرنج
شطرنج یک بازی با استراتژی نوبتی می‌باشد که به دلیل پیچیدگی محاسباتی یک مسئله سخت در هوش مصنوعی در نظر گرفته می‌شود. بازی‌های مشابه با نوعی از درخت جستجوی مینیماکس حل‌ می‌شوند. این نوع از عامل‌های هوش مصنوعی توانسته‌اند بهترین بازیکن‌های انسانی را شکست بدهند مانند دیب بلو در مقابل گری کاسپارف. از آن زمان، عامل‌های یادگیری ماشین موفقیت‌های بزرگتری نیز به دست آورده‌اند.

### گو
گو یک بازی دیگر با استراتژی نوبتی است که حتی از شطرنج نیز پیچیده‌تر در نظر گرفته می‌شود. فضای حالات گو از مرتبه ۱۷۰^۱۰ می‌باشد که بسیار بیشتر از ۱۲۰^۱۰ حالت مربوط به شطرنج است. تا قبل از مدل‌های یادگیری عمیق اخیر، عامل‌های هوش مصنوعی فقط می‌توانستند در حد یک بازیکن انسانی تازه‌کار بازی کنند.

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

### دوتا ۲
دوتا ۲ یک بازی میدان‌ جنگ برخط چندنفره است. مانند سایر بازی‌های پیچیده، عامل‌های هوش مصنوعی موفق به هم‌ترازی با بازیکن‌های انسانی با مهارت نشده‌اند. تنها اطلاعاتی که به طور عمومی راجع به عامل‌های هوش مصنوعی برای دوتا ۲ منتشر شده‌ است، مربوط به OpenAI Five می‌باشد.

### نقاط قوت و ضعف عامل‌های یادگیری ژرف
در اکثر دروس طراحی بازی راجع به یادگیری ژرف صحبتی نمی‌شود. استفاده‌های پیشین یادگیری ژرف در طراحی بازی آنچنان کاربردی نبودند، حتی نسخه ۲۰۱۵ از AlphaGo نیز به صدها جی‌پی‌یو و سی‌پی‌یو برای آموزش نیاز داشتند. این مورد محدودیتی برای خلق عامل‌های کاربردی یادگیری ژرف به حساب می‌آید. زمانی که صرف آموزش روش‌های مبتنی بر شبکه‌های عصبی می‌شود حتی با استفاده از کامپیوتر‌های قدرتمند می‌تواند به چند هفته ختم شود.

## منابع

رده:بازی هوش مصنوعی
رده:یادگیری ماشین