ماشین هوشمند بدون کمک انسان موفق به حل مکعب روبیک شد
هوش و مهارت انسان توسط ماشین هوشمند (Machine Smart) به چالش کشیده شده است. تکنیک جدیدی از یادگیری عمیق ماشین و پیادهسازی آن باعث شده است، یک ماشین هوشمند با خودآموزی بدون کمک انسان موفق به حل مکعب روبیک شود. این رویداد میتواند نقطه عطفی برای رویکردی جدید در مقابله با مشکلات مهم، در علم کامپیوتر باشد. اینکه چگونه میشود مشکلات پیچیده را با کمترین کمک حل کرد.
طوفان روبیک و بسیج جهانی برای حل آن
مکعب روبیک (Rubik's Cube) یک پازل سهبعدی و مکانیکی است که در ۱۹۷۴ توسط یک معمار اهل بوداپست در مجارستان به نام ارنو روبیک (Erno Rubik) اختراع شد. ارنو سعی داشت دانشجویان خود را به یک فهم مبسوط از دنیای سهبعدی برساند. نتیجه این تلاش ساخت مکعب روبیک بود که در دنیای سرگرمی و دانش طوفانی به پا کرد. ارنو بهزودی متوجه شد حل مکعب جادوییاش از روی شانس و تصادف تقریباً غیرممکن است. یک مکعب روبیک ۳*۳*۳ میتواند ۴۳ تریلیون حالت را ایجاد کند. برای حل این مکعب جذاب باید تمام مربعهای هر وجه به یکرنگ دربیایند. حل همین مسئله بهظاهر ساده و جذاب باعث شد، این مکعب یکی از پرفروشترین اسباببازیهای دنیا لقب بگیرد و با رکود فروش بیشتر از ۳۵۰ میلیون جایگاه ویژهای برای خود دستوپا کند. ارنو نیز بعد از یک ماه تلاش، سرانجام توانست راهحلی برای مرتب کردن مکعب جادویی ارائه دهد.
دیوید ساینمستر (David Singmaster) یک ریاضیدان متولد امریکا است که در سال ۱۹۸۰ روش حل لایهای مکعب روبیک را بر اساس نظریه گروهها منتشر کرد و از همین زمان بود که مکعب جادویی ارنو به نام مکعب روبیک معروف شد. بعدازآن هم ریاضیدانان و علاقهمندان زیادی با انواع متدها و الگوریتمها مکعب روبیک را حل کردند که شاید معروفترین آن روش حل جسیکا فردریک (CFOP) است. البته برای حل مکعب روبیک نیازی نیست ریاضیدان باشید، تفاوت این روشهای حل در سرعت عمل و به خاطر سپاری حالتهای مختلف برای بهزانو درآوردن مکعب روبیک است. مثلاً در روش فردریک شما ابتدا یک وجه مکعب به یک رنگ درمیآورید و بعدازاینکه مربعهای وسط هر وجه نیز به رنگ درست و برابر همان وجه تنظیم شد، وارد مرحله بعدی میشوید. همین روشهای رسیدن از یک مرحلهبهمرحله بعد بهصورت تعدادی الگوریتم در اختیار شما قرار میگیرد. یک روش مانند روش فردریک درمجموع ۱۲۰ الگوریتم در اختیار شما قرار میدهد و روشهای دیگری هستند که بیش از ۱۷۰ الگوریتم در اختیار شما قرار میدهند تا در هر حالتی از این مکعب روبیک اسیر شدید بتوانید آن را به حالت روز اول و هنگامیکه خریدید، برگردانید. بهعبارتدیگر شما برای حل هر وضعیت روبیک یک الگوریتم در اختیاردارید. مثال بصری این مفهوم در دنیای اطراف ما درختان هستند. اگر شما سرشاخههای یک درخت را در نظر بگیرید و در امتداد آن حرکت کنید به تنه درخت و نهایتاً ریشه درخت میرسید. همه سرشاخهها (الگوریتم ها) با هر پیچ و خمی، دیر یا زود شمارا به تنه اصلی درخت میرساند. اینیک مفهوم ساده برای تسهیل در تصمیمگیری است که باعث میشود همه راهها سرانجام به حل مکعب روبیک ختم شود. حالا برای حل سریعتر، هرچه زودتر از سرشاخهها به شاخه اصلی برسید، موفقیت در زمان کمتری نصیب شما میشود. عموماً متدهای حل روبیک در پیدا کردن یکی از این شاخههای اصلی و هدایت به تنه درخت (حل مکعب روبیک) شکل میگیرند.
در بازی شطرنج حرکات مهرهها در فرمهای نمرات (scoresheets) به شیوه نمادگذاری جبری (Algebraic chess notation) ثبت میشود. بهنوعی اطلاعات هر بازی و نتایج هر حرکت در یک بازی در اختیار دیگران برای تجزیهوتحلیل و حتی تکرار گامبهگام قرار میگیرد. دنیای روبیک هم شیوه نمادینی برای ثبت حرکات و چرخش وجوه مکعب و ثبت الگوریتمها دارد. به این طریق تجربه مکعب بازها (کیوبرها) و اطلاعات ذیقیمت آنها به یکدیگر منتقل میشود و با تمرینات کیوبرها طبق این بانک اطلاعاتی، رکوردها شکسته میشود.امروزه روبیک پسرعموهایی نیز دارد؛ مانند روبیک جادویی (Rubik's Magic)، روبیک ماری (Rubik's Snake) و روبیک ۳۶۰ (Rubik's 360) که البته هیچکدام بهاندازه روبیک یا همان مکعب روبیک مشهور و محبوب نیستند. مکعب روبیک هم در چند سایز از قبیل روبیک جیبی (روبیک 2*2*2)، استاندارد (روبیک 3*3*3)، انتقام استاد (روبیک 4*4*4) و روبیک حرفهای (روبیک 5*5*5) و غیره ساخته میشود. مکعب روبیک مسابقات جهانی نیز دارد که در بیش از ۱۰ مدل و شیوه انجام میشود. مکعب روبیک از روزی که ساختهشده بارها حلشده و البته به تعداد بیشتری هم به دیوار کوبیده شده است. از کسانی که مکعب روبیک در میان انگشتان آنها اسیر است و به مکعب باز (cuber) معروف هستند، میتوان سئونگ بئوم چو (SeungBeom Cho) را نام برد که یک مکعب روبیک را در عرض ۴.۵۹ ثانیه حل میکند که در اصطلاح کیوبرها به مقام اسپید کیوبر (Speed cuber) رسیده است. برای یک فرد عادی این زمان بهاندازهای است که تشخیص دهد هر وجه مکعب سرانجام به چه رنگی درخواهد آمد.
مکعب روبیک و دانشمندان فناوری اطلاعات
پیچیدگی معمای مکعب روبیک باعث شده که هوش مصنوعی برخلاف موفقیت در بازی شطرنج در حل آن عاجر بماند.
موج جذابیت این پازل سهبعدی مکانیکی، دانشمندان کامپیوتر و طراحان هوش مصنوعی را نیز تحت تأثیر خود قرار داده است. آنها نیز به چالشی لذتبخش دچار شدند تا بفهمند، چگونه میشود مکعب روبیک را در هر وضعیتی با کمترین حرکت حل کرد؟ با تحقیق و محاسبات آنها به این نتیجه رسیدند که برای هر مدل از مکعبهای روبیک تعداد حرکات میتواند متفاوت باشد برای یک روبیک استاندارد با ۲۰ حرکت میتوان به نتیجه رسید و در یک روبیک انتقام استاد این تعداد به ۲۶ حرکت هم میرسد؛ ولی جذابیت معمای روبیک برای آنها به اینجا ختم نشد. مهندسان با ساخت یک ربات موفق شدند زمان حل مکعب روبیک را به کمتر از نیم ثانیه برسانند؛ اما یک چالش محبوب دیگر این بود آیا یک ماشین هوشمند میتواند بهطور خودآموز معمای روبیک را حل کند؟ برخلاف حرکات شطرنج، تحلیل حرکات مکعب روبیک کار سختی است، به همین دلیل یادگیری عمیق (Deep Learning) ماشینهای هوشمند تابهحال بهتنهایی قادر به حل مکعب روبیک نبوده است.
در هوش مصنوعی، یادگیری ماشین (Machine learning) یک روش تجزیهوتحلیل اطلاعات است که ماشین با افزایش اطلاعات دریافتی خود به تحلیل میپردازد و کارایی و کارآمدی خود را ارتقا میدهد. در این شیوه، ماشین با تجزیهوتحلیل داده تصمیمگیری میکند و این امر منجر به افزایش قدرت تشخیص و حل مسئله در ماشین میشود. از این طریق در هر بار مواجهه با مسئله قبلی ماشین میتواند راهحلهای بهینهتر و مفیدتری را ارائه دهد.
استفاده از پتانسیل یادگیری ماشین میتواند از افزایش مهارت راه رفتن برای یک روبات دوپا شروع شود تا استفاده از توانایی ماشین هوشمند در کشف و توسعه صنایع پیشرفته نفت یا هوافضا. هدف این کار کاهش چشمگیر مشکلات و بهبود استفاده از دادهها و بهتبع آن کاهش هزینهها و موفقیت سریعتر و باکیفیت بیشتر است. یادگیری ماشین تنها بخشی از مفهوم هوش مصنوعی (Artificial Intelligence) است. ازلحاظ تئوری Machine learning مفهوم خیلی سادهای دارد، ماشین دادهها را جمعآوری میکند و برای مشکلات خود، راهحلهای جدیدی میسازد.
هوش مصنوعی یک وضعیت در دستگاه است، یعنی وضعیتی که یک دستگاه میتواند، تشخیصی صحیح، مانند یک تصمیمگیری انسانی انجام دهد. پس مهم نیست که این ماشین اجزایی مانند دست و صورت داشته باشد میتواند همانند یک کامپیوتر ساده باشد. استفاده از یادگیری ماشین در زندگی روزمره بسیار مرسوم هست، حتی شاید در روز چندین بار از آن استفاده کنید. ما میتوانیم برای لحظاتی به تجربه مفهوم عمیق هوش مصنوعی (AI) نزدیک شویم، زمانی که چراغهای منزل با توجه به تعداد نفرات توسط یک سیستم اتوماتیک در یک خانه هوشمند روشن میشوند و یا هنگامی از که سیری (Siri) در گوش همراه خود استفاده میکنیم؛ ولی در حقیقت ما از هوش مصنوعی انتظاری فراتر از حل این مسائل داریم. ما میخواهیم هوش مصنوعی با متدهای یادگیری ماشین دقیقاً همانند مغز انسان کار کند و اگر کسی مخالفتی نداشته باشد، شاید هوش مصنوعی را به سطح برسانیم که از مغز انسان نیز بهتر کار کند. طراحان هوش مصنوعی سعی کردند با حل چالش مکعب روبیک به دنبال روشهای جدید برای شکوفایی ماشینهای هوشمند و ارتقا شیوه یادگیری ماشینها پیدا کنند.
یکی از بحثهای مطرح در یادگیری ماشینی، یادگیری عمیق (Deep learning) است. یادگیری عمیق سعی دارد مفاهیم پیچیده را به قسمتهای کوچکتر و سادهتر تقسیم کند و با این اطلاعات روشن و ساده ماشین بتواند بدون نیاز به انسان، تصمیمگیری کند. برای دریافت بهترین نتیجه باید دادههای اصلی به شیوهای ارائه شود که مفاهیم اصلی و پایه با سرعت در اختیار ماشین قرار بگیرد. این اطلاعات برای ما میتواند همان زبان نمادین در شطرنج یا مکعب روبیک باشد اما در مورد یادگیری ماشین و البته یادگیری عمیق این کار اغلب اوقات بهراحتی ممکن نیست؛ مثلاً فرض کنید تجزیهوتحلیل گفتار انسان در وهله اول دیگر کار چندان سختی نیست ولی وقتی عواملی مثل لهجه یا جنسیت به آن اضافه میشوند، تشخیص همان مفاهیم پایه، بسیار پیچیده و خارج از تصور است. در بعضی مواقع تشخیص مفاهیم در لهجهها برای انسان هم سخت است. استفاده از مزایای یادگیری عمیق نیز از وقایع روزمره زندگی ما زیاد دور نیست اگر با گوگل کار میکنید ناخواسته آن را تجربه کردهاید مثلاً در بخش جستجوی عکس شما از تواناییها و یادگیری ماشین و البته یادگیری عمیق استفاده میکنید.
هوش مصنوعی و چالشی به نام مکعب روبیک
در یادگیری عمیق که از مباحث یادگیری ماشین است، دادهها و اطلاعات بهصورت لایهلایه تحلیل میشوند و با تجزیه دقیق هر لایه و جمعبندی آنها یک تحلیل خروجی به دست میآید که باعث میشود یک ماشین بتواند بهطور خودکار اشیا و دادههای جدید را با دقت بالا تشخیص دهد. هر چه این لایههای تحلیل در یادگیری عمیق بیشتر باشند، یادگیری عمیقتر و دقیقتر اتفاق میافتد. با ارتقا یادگیری عمیق دنیای ما بسیار متحول و متفاوتتر از زمانی خواهد شد که گوشیهای هوشمند وارد زندگی ما شدند. فرض کنید تبلیغات یک نمایشگر تبلیغاتی با تحلیل و درک احساسات شما بهسرعت تغییر میکند و تبلیغاتی که شما بیشتر راغب به دیدن و حتی خرید و استفاده از آن رادارید، به شما نمایش داده میشود. یک ماشین هوشمند تنها با تجزیهوتحلیل حالات چهره و تشخیص خرسندی و ناخرسندی شما هنگام دیدن تبلیغات، این کار را مدیریت میکند. اگر خرید شما یک سری محصولات مشخص است؛ مثلاً محصولات لبنی، ماشین هوشمند بهجای اینکه به شما پیشنهاد دهد که یک محصول لبنی دیگر و متفاوت بخرید، به تحلیل خریدهای دیگر مشتریان که مشابه شما خرید کردهاند، میپردازد و با بررسی خرید آنها به شما یک پیشنهاد مناسب میدهد. شاید برای خرید در بازار آینده و حفظ پول در کیف پول خود باید بیشتر مواظب بروز احساسات خود باشید ولی این تکنولوژی جنبههای مثبت فراوانی نیز دارد؛ مانند تشخیص و تحلیل معاینات پزشک با دقت بالا و پیشگیری از بیماریهای صعبالعلاج یا حتی کشف داروهای جدید. پس در هوش مصنوعی (Artificial intelligence) و بهتبع آن یادگیری ماشین دو نکته مهم باهم مشارکت دارند یک بخش تحلیل و آنالیز قدرتمند و بخشی دیگر اطلاعات درست و مناسب است. این دو بخش با مشارکت هم میتوانند یک نتیجه و خروجی درست را در هوش مصنوعی به ما بدهند.
هوش مصنوعی و یادگیری ماشین مخصوصاً یادگیری عمیق و متدهای مختلف اجرای آن بر پایه توانایی انسان در حل مسئله ایجاد شد. از شیوههای علمی و با شناخت ابزار فکر و درک انسان این متدها الهام گرفته میشوند و در دنیای هوش مصنوعی با کمک تکنولوژی در یادگیری عمیق پیاده میشوند. در دنیای روبیک و انسانها شیوههای علمی و تحلیلی ریاضیدانان باعث شده که متدهای حل روبیک بهطور استاندارد گسترش پیدا کند. در گذشته هم ماشینها با کمک مهندسان تبدیل به شطرنجبازان قهاری شدند که توانستند غولهای شطرنج جهان را به چالش بکشند و حال زمان ورود ماشین هوشمند برای حل مکعب روبیک بود. دانشمندان این ایده به ذهنشان رسید که از شیوه پاداش و تنبیه که در انسانها مرسوم است برای یادگیری هوش مصنوعی استفاده کنند.
ایده خلاقانه برای حل روبیک توسط ماشین هوشمند
در این سناریو ساخت هوش مصنوعی به ماشین هوشمند با متدهای یادگیری عمیق، قوانین بازی آموزش داده میشود تا این بار ماشین شروع به حل مکعب روبیک کند. نکته بسیار مهم، پاداشی است که در هر گام با توجه به چگونگی انجام آن داده میشود. این روند پاداش دهی در یادگیری ماشین بسیار مهم است چراکه به کمک آن متوجه شود که حرکت درستی را انجام داده است یا نه. بهعبارتدیگر، به ماشین کمک میکند تا یاد بگیرد؛ اما این ایده در دنیای واقعی چندان کارآمد نیست زیرا پاداشها برای ماشین اغلب کمیاب هستند و سخت به دست میآیند.
مثلاً یادگیری عمیق چرخاندن تصادفی مکعب روبیک چگونه میتواند یک پاداش در پی داشته باشد؟ چگونه میشود فهمید که این آرایش جدید مربعهای رنگی میتواند به حل مسئله کمک کند؟ یا حل مسئله را سختتر میکند. چرخاندن تصادفی میتواند مدتها مدید حل مسئله را به تعویق بیندازد، نکتهای که خالق روبیک (ارنو روبیک) در همان آغاز به آن پی برد، بنابراین پاداشها نیز بهندرت نصیب ماشین هوشمند در حین یادگیری ماشین میشود. تجربه ماشین هوشمند و شطرنج نیز یک بازی در زمینی کاملاً متفاوت بود. بازی شطرنج بهعنوان یک پازل، گستره زیادی از حرکات را در برمیگیرد ولی به ازای هر حرکتی میتوان یک ارزیابی داشت و پاداشی یا تنبهی نیز در انتظار خواهد بود، این شرایط درباره مکعب روبیک صدق نمیکند.
استفان مک آلیر (Stephen McAleer) و همکارانش در دانشگاه کالیفرنیا (UC Irvine) در جنوب شهر لسآنجلس تکنیک جدیدی را برای حل این مشکل مطرح کردند. این تکنیک جدید در یادگیری ماشین به نام Autodidactic iteration باعث میشود که ماشین خودآموز شود و بدون کمک انسان بتواند مکعب روبیک را بهمانند روز اولی که از جعبه درآمده است، تحویل دهد. تکنیک مک آلیر یکراه جایگزین و مناسب برای متد پاداشها در یادگیری عمیق است.
حل مکعب روبیک و تکنیک Autodidactic iteration
یک مکعب حلنشده به ماشین داده میشود و ماشین باید تشخیص دهد چه حرکتی را روی مکعب انجام دهد تا معمای روبیک حل شود. برای این کار ماشین باید بتواند حرکت را ارزیابی کند. این ارزیابی از محل دادهای ثبتشده یا همان الگوریتمهای حل مکعب در ماشین به دست میآید. البته این وظیفه یک ماشین هوشمند است که خود دادههای درست را جمعآوری کند تا در حل مکعب روبیک از آنها استفاده کند.
در تکنیک Autodidactic iteration یادگیری و حل مسئله با مکعب حلشده انجام میشود؛ یعنی ماشین با یک مکعب حلشده شروع به تست انواع حرکات روی مکعب میکند و سعی میکند متوجه شود، روال معکوس کدام حرکات، مکعب را به حالت اول برمیگرداند. تمام این حرکات درون ساختار دادهای بهعنوان راه نجات و ایدههای حل مسئله ضبط و دستهبندی میشوند. این فرآیند مکرر آزمونوخطا به ماشین کمک میکند تا تشخیص دهد کدام حرکت بهطورکلی از حرکت دیگر بهتر است. هنگام حل مکعب درهمریخته، ماشین خودآموز شروع میکند به جستجو در بانک اطلاعاتی خود تا برای هر وضعیت حرکت مناسب را برای حل مکعب روبیک پیدا کند. این ساختار داده و بانک اطلاعاتی در ماشین بهصورت همان مفهوم درخت و شاخهها در حل مسئله روبیک است که به آن درخت تصمیم (Decision Tree) میگویند. نتیجه این تکنیک در حل معمای روبیک توسط ماشین موفقیتآمیز بوده است. مک آلیر که از نتیجه تلاش خود و همکارانش با اجرای این تکنیک در یادگیری عمیق راضی است و میگوید:
الگوریتم ما قادر به حل کامل مکعب روبیک در هر وضعیتی است. ماشین با این الگوریتم بهطور متوسط با ۳۰ حرکت مکعب روبیک را حل میکند بدون نیاز به کمک انسان.
اجرای این تکنیک جالب و مفید در یادگیری عمیق میتواند ثمرات فراوانی دیگری نیز داشته باشد. ماشین هوشمند با این تکنیک میتواند به حل پازلهایی همچون سکوبان (Sokoban) نیز دست بزند. همانطور که شما در سکوبان باید در یک فضای محدود مثلاً چند جعبه را به نحوه درست چیدمان کنید، هوش مصنوعی (AI) نیز با این تکنیک میتواند در آخر سال و چیدمان مبلها در جریان خانهتکانی، یک راهکار نجاتدهنده و محبوب باشد. احتمالاً این ماشین میتواند در بازی همچون ماریو، او را از میان هزاران سرزمین با موجودات عجیبالخلقه، صحیح و سالم به معشوقه خود برساند. این تکنیک به ماشین هوشمند کمک میکند وارد ریاضیات هم بشود و بتواند به تجزیه اعداد همدست بزند. مشابه همان کاری که ما با استفاده از ساختار درختی برای تجزیه یک عدد اول انجام میدهیم. همان شیوه درخت تصمیم که برای اطمینان از رسیدن به هدف راههای گوناگون را پیش پای ما میگذاشت. مک آلیر و همکارانش به تکنیک خود خیلی اعتماد دارند و اهداف دیگری نیز برای استفاده ماشین هوشمند در چشمانداز خود قرار دادهاند. آنها معتقدند باکار و گسترش این تکنیک حتی میتوانند وارد مسائلی همچون پیشبینی و تحلیل ساختار سهبعدی پروتئینها را نیز بشوند.
باوجوداین خوشبینیها هنوز نتیجه استفاده از این رویکرد در حل مشکلات دیگر واضح نیست. لزوماً اینکه آنها توانستهاند در حل مکعب روبیک با این تکنیک موفق شوند دلیل موفقیت آنها در حل مسائل دیگر با ماشین هوشمند نمیشود؛ ولی بدون شک این رویکرد تا بدین جا در مورد حل روبیک با کمترین تعداد حرکت مفید و مؤثر بوده است.مک آلیر و همکارانش ادعا میکند که تکنیک آنها یک فرم استدلال در حل مسئله است. آنها میگویند که یکی از تعاریف استدلال این استفاده و الگوبرداری از دانش بهدستآمده برای حل مسئلههای جدید و ابهامات است. آنها الگوریتم خود را که در دنیای ماشینهای هوشمند با روشی ساده موفق به تشخیص الگوهای خاص شده DeepCube نامیدند. مک آلیر و تیم او به این موضوع افتخار میکند که با الگوریتم DeepCube میتواند تنها با یک جایزه برای تقویت یادگیری ماشین به مقابله با مسائل پیچیده بروند.
درنهایت آزمایشها واقعی به ما نشان خواهند داد که الگوریتم DeepCube در دنیای ماشین هوشمند چگونه میتواند از پس مسائلی پیچیده همچون پروتئینها سربلند بیرون بیاید. شاید هم DeepCube به ما نشان دهد که دنیای ماشینها هوشمند و یادگیری ماشین را چگونه متحول کنیم؟ این محققان هوش مصنوعی که از جستجو و کوشش خود بسیار راضی هستند.