آشنایی کامل با الگوریتم یادگیری آلفازیرو AlphaZero

آلفازیرو AlphaZero الگوریتمی انقلابی در زمینه یادگیری تقویتی عمیق، توسط شرکت دیپمایند (DeepMind) توسعه یافته است. این الگوریتم قادر است بازیهای پیچیدهای مانند شطرنج، شوگی (نوع ژاپنی شطرنج) و گو را از صفر مطلق، بدون هیچ دانش انسانی یا دادههای آموزشی از بازیهای انسانی، به سطح فوقبشری برساند. برخلاف برنامههای سنتی که بر پایه قوانین دستساز انسانی و جستجوی گسترده بنا شدهاند، آلفازیرو تنها با دریافت قوانین پایه بازی شروع میکند و از طریق بازی با خودش (خودبازی) و ترکیب شبکههای عصبی عمیق با جستجوی درختی مونتکارلو (Monte Carlo Tree Search یا MCTS)، استراتژیهای نوآورانه و برتر از انسان را کشف میکند.
این الگوریتم در دسامبر ۲۰۱۷ معرفی شد و در مقالهای در مجله ساینس (Science) منتشر گردید. آلفازیرو در عرض ۲۴ ساعت آموزش، برنامههای قهرمان جهان مانند استاکفیش در شطرنج، المو در شوگی و نسخه سهروزه آلفاگو زیرو (AlphaGo Zero) در گو را شکست داد. قدرت آن نه تنها در عملکرد، بلکه در عمومیت است؛ همان الگوریتم و معماری شبکه عصبی بدون هیچ تغییر خاص برای هر بازی استفاده میشود. آموزش آلفازیرو بر پایه ۵۰۰۰ واحد پردازش تنسوری (TPU) نسل اول برای تولید بازیها و ۶۴ واحد TPU نسل دوم برای آموزش شبکه عصبی انجام میگیرد.
در قلب آلفازیرو، یک شبکه عصبی واحد قرار دارد که دو خروجی تولید میکند: احتمال حرکتها و ارزش موقعیت صفحه بازی. این شبکه با ورودی صفحه بازی (به صورت چندلایه) آموزش میبیند و خروجیهایش برای هدایت MCTS استفاده میشود. MCTS، جستجویی است که هزاران شبیهسازی را بر اساس پیشبینیهای شبکه انجام میدهد و سیاست بهینه را انتخاب میکند.
آلفازیرو چگونه بازیها را بدون داده انسانی یاد میگیرد؟
آلفازیرو بازیها را از طریق فرایند یادگیری تقویتی از خودبازی (self-play reinforcement learning) یاد میگیرد، بدون هیچ داده انسانی. فرایند به این صورت است: شبکه عصبی اولیه به طور تصادفی شروع میکند و با MCTS بازیهای خودبازی تولید میکند. هر بازی، دادهای از موقعیتها، سیاستهای MCTS و نتایج (برد، باخت یا مساوی) ایجاد میکند که برای آموزش شبکه استفاده میشود.
در هر گام آموزش:
- تولید داده با خودبازی: هزاران بازی موازی با شبکه فعلی و MCTS تولید میشود. MCTS سیاست و ارزش را بهبود میبخشد.
- آموزش شبکه: شبکه با دادههای اخیر (state, policy from MCTS, value from outcome) بهروزرسانی میشود. تابع زیان ترکیبی از زیان سیاست (cross-entropy) و زیان ارزش (MSE) است.
- تکرار: شبکه بهبودیافته برای خودبازیهای بعدی استفاده میشود، ایجاد حلقهای از بهبود مداوم.
این روش “tabula rasa” نامیده میشود، یعنی از صفحه سفید شروع میکند. در شطرنج، پس از ۴ ساعت، از سطح انسانی فراتر رفت و پس از ۹ ساعت، استاکفیش را ۲۸ برد، ۷۲ مساوی و ۰ باخت شکست داد. در شوگی، پس از ۲ ساعت از المو پیشی گرفت (۹۰ برد، ۸ باخت، ۲ مساوی از ۱۰۰ بازی).
مفهوم یادگیری از صفر (Tabula Rasa Learning)
یادگیری از صفر یا “tabula rasa”، مفهومی کلیدی در آلفازیرو است که به معنای شروع بدون هیچ دانش قبلی جز قوانین بازی است. این رویکرد، وابستگی به دادههای انسانی را حذف میکند و سیستم را قادر میسازد دانش اصیل کشف کند.
در آلفازیرو AlphaZero، صفحه سفید با شبکه عصبی تصادفی شروع میشود. خودبازی، دادههای آموزشی تولید میکند و MCTS جستجو را هدایت مینماید. این روش، محدودیتهای دانش انسانی را دور میزند؛ آلفازیرو در گو پس از ۱۳ روز، آلفاگو لی (AlphaGo Lee) را شکست داد، بدون دیدن حتی یک بازی انسانی.
مفهوم یادگیری از صفحه سفید
یادگیری از صفحه سفید یعنی شروع از هیچ، دقیقاً همان چیزی که آلفازیرو انجام میدهد. هیچ کتاب، هیچ مربی، هیچ بازی ذخیرهشده از قهرمانان. تنها چیزی که به او داده میشود، قوانین حرکت مهرههاست. بقیه را خودش باید کشف کند. این روش برخلاف تمام برنامههای قبلی شطرنج بود که میلیونها بازی انسانی را حفظ میکردند و از آنها تقلید میکردند. آلفازیرو هیچ تقلیدی نمیکند؛ خودش اختراع میکند. به همین دلیل است که سبک بازیاش گاهی کاملاً بیگانه به نظر میرسد و استادان بزرگ را شگفتزده میکند.
ساختار هوشمند آلفازیرو AlphaZero؛ انقلابی در یادگیری تقویتی
آلفازیرو دو بخش اصلی دارد: یک شبکه عصبی عمیق و یک روش جستجوی درختی به نام جستجوی درختی مونتکارلو. شبکه عصبی دو کار انجام میدهد؛ اول اینکه به هر موقعیت صفحه نگاه میکند و میگوید هر حرکت چقدر احتمال خوب بودن دارد، دوم اینکه تخمین میزند از این موقعیت، شانس برد چقدر است. جستجوی درختی مونتکارلو به جای اینکه میلیونها حرکت را کورکورانه بررسی کند، فقط مسیرهایی را دنبال میکند که شبکه عصبی به آنها امتیاز بالاتری داده است.
مقایسه آلفازیرو با آلفاگو و آلفاگو زیرو
آلفاگو اول، همان که لی صدول کرهای را شکست داد، از میلیونها بازی انسانی یاد گرفته بود و دو شبکه عصبی جدا داشت. آلفاگو زیرو قدم بعدی بود؛ دیگر از بازیهای انسانی استفاده نکرد و فقط با بازی با خودش در بازی گو به سطح فوقبشری رسید، اما فقط برای گو ساخته شده بود. آلفازیرو نسخه عمومیشده همان ایده است؛ همان روش آلفاگو زیرو را گرفت، اما آن را برای هر سه بازی شطرنج، شوگی و گو بدون هیچ تغییر خاصی به کار برد و در هر سه با فاصله بسیار زیاد بهترین شد. به عبارت دیگر، آلفازیرو نشان داد که این روش نه فقط برای گو، بلکه برای هر بازی استراتژیک کاملاطلاعاتی کار میکند.
راز اصلی قدرت آلفازیرو AlphaZero این است که هیچ پیشداوری انسانی ندارد. انسانها قرنها با یک سری اصول و قوانین بازی کردهاند و ناخودآگاه در همان چارچوب ماندهاند. آلفازیرو از اول این چارچوبها را نمیشناسد، پس آزاد است هر راهی را امتحان کند. گاهی قربانی وزیر میکند در موقعیتی که هیچ انسانی جرات نمیکند، گاهی مهرههایش را در گوشه صفحه جمع میکند و ناگهان حملهای ویرانگر راه میاندازد. آزادی کامل باعث شده استراتژیهایی کشف کند که انسان در هزاران سال به آنها نرسیده بود.
شبکه عصبی در آلفازیرو چگونه کار میکند؟
شبکه عصبی آلفازیرو شبیه مغز انسان عمل میکند، اما بسیار عمیقتر و سریعتر. صفحه بازی را به صورت لایههای مختلف میبیند؛ مثلاً یک لایه برای موقعیت شاه سفید، یک لایه برای اسبهای سیاه، یک لایه برای نوبت حرکت و لایههایی برای تاریخچه چند حرکت قبلی. این لایهها از میان دهها لایه محاسباتی عبور میکنند تا در نهایت دو جواب بدهند: کدام حرکتها امیدوارکنندهاند و شانس برد از این موقعیت چقدر است. هر چه بیشتر بازی میکند، وزنهای این شبکه دقیقتر تنظیم میشوند و پیشبینیهایش بهتر میشود.
جستجوی درختی مونتکارلو مثل یک کاوشگر هوشمند عمل میکند. به جای اینکه همه شاخههای ممکن را بررسی کند، فقط شاخههایی را دنبال میکند که شبکه عصبی به آنها امتیاز بالاتری داده است. در هر قدم، بین بهرهبرداری از مسیرهای شناختهشده خوب و کشف مسیرهای جدید تعادل برقرار میکند. این روش باعث میشود آلفازیرو با بررسی تعداد بسیار کمی موقعیت، عملاً میلیونها حرکت جلوتر را دیده باشد.
فرایند خودبازی در الگوریتم آلفازیرو AlphaZero
خودبازی قلب تپنده آلفازیرو است. سیستم همزمان هزاران بازی با خودش انجام میدهد؛ در هر بازی، نسخه فعلی خودش حریف خودش است. هر چه شبکه قویتر میشود، حریف سختتری برای خودش میسازد و مجبور میشود باز هم بهتر شود. این چرخه هیچوقت متوقف نمیشود و مثل ورزشکاری است که همیشه با کسی قویتر از خودش تمرین میکند، بنابراین همیشه پیشرفت میکند.
آیا آلفازیرو میتواند مسائل واقعی جهان را حل کند؟
آلفازیرو AlphaZero برای بازیهای دقیق و کاملاطلاعاتی ساخته شده، اما ایدههای پشت آن در حال حاضر در دنیای واقعی هم استفاده میشوند. نسخههای بعدی مانند آلفادِو توانستهاند الگوریتمهای مرتبسازی و محاسباتی را کشف کنند که از کدهای نوشتهشده توسط بهترین برنامهنویسان انسانی هم سریعترند و اکنون در کتابخانههای معروف جهان استفاده میشوند. در طراحی دارو، بهینهسازی مصرف انرژی، رباتیک و حتی بازارهای مالی، روشهای الهامگرفته از آلفازیرو در حال آزمایش و بهکارگیری هستند.
شبکه آلفازیرو از نوع شبکههای باقیمانده است؛ یعنی لایههایی دارد که اطلاعات را مستقیم از ابتدا به انتها منتقل میکنند تا مشکل محو شدن سیگنال در شبکههای خیلی عمیق حل شود. معمولاً بیست تا چهل بلوک باقیمانده دارد و هر بلوک چندین لایه محاسباتی پیچیده است. ورودی آن صفحه بازی به صورت لایهلایه است و خروجی دو سر جداگانه دارد؛ یکی برای پیشنهاد حرکت و یکی برای تخمین شانس برد. این شبکه روی واحدهای پردازش تنسوری گوگل اجرا میشود و در هر لحظه میلیونها موقعیت را ارزیابی میکند.
تفاوت با روشهای یادگیری عمیق معمولی
یادگیری عمیق معمولی نیاز به میلیونها نمونه برچسبدار دارد و فقط یاد میگیرد الگوهای موجود را تکرار کند. آلفازیرو AlphaZero خودش نمونههایش را تولید میکند، خودش برچسب میزند و خودش را نقد میکند. یادگیری عمیق معمولی معمولاً در یک نقطه بهینه محلی گیر میکند، اما آلفازیرو با ترکیب جستجوی درختی و خودبازی مدام از چالههای محلی بیرون میآید و به قلههای بالاتری میرسد.
روش آلفازیرو اکنون فراتر از بازی رفته است. در بهینهسازی کد کامپیوتری، طراحی پروتئین، کنترل رباتها، پیشبینی آبوهوا، بهینهسازی شبکههای برق، کشف مواد جدید و حتی معاملات مالی پیشرفته استفاده میشود. هر جا مسئلهای پیچیده با فضای جستجوی عظیم وجود داشته باشد، روشهای الهامگرفته از آلفازیرو میتوانند راهحلهایی کشف کنند که انسان هرگز به آنها فکر نکرده بود.







