زمان تخمینی مطالعه: 8 دقیقه
آموزش استدلال با شبکههای ماژول عصبی (Neural Module Networks) موضوعی مهم در مبحث یادگیری مبتنی بر شبکههای عصبی را در بر میگیرد. فرض کنید ما در حال ساخت یک ربات خانگی هستیم و میخواهیم این ربات بتواند به سؤالات پیرامون خود پاسخ دهد. ممکن است سوالاتی مانند این بپرسیم:
چگونه میتوانیم اطمینان حاصل کنیم که ربات میتواند به این سوالات به درستی پاسخ دهد؟ رویکرد استاندارد در یادگیری عمیق جمعآوری مجموعه دادههای بزرگی از سؤالات، تصاویر و پاسخها و آموزش یک شبکه عصبی منفرد برای نگاشت مستقیم از سؤالات و تصاویر به پاسخ است. اگر بیشتر سؤالات مانند سؤال سمت چپ به نظر می رسند، ما یک مسئله آشنای شناسایی تصویر داریم و این نوع رویکردهای یکپارچه کاملاً مؤثر خواهد بود:
اما برای سوالاتی مانند سوال سمت راست تصویر اول، همه چیز خیلی خوب پیش نمیرود:
در اینجا شبکهای که ما آموزش دادیم تسلیم شد و رایجترین رنگ را در تصویر حدس زد. چه چیزی پاسخگویی به این سوال را دشوار میکند؟ به نظر میرسد پاسخ به این سوال به مراحل زیادی از استدلال نیاز دارد: مدل به جای تشخیص ساده شی اصلی در تصویر، ابتدا باید استوانه آبی را پیدا کند، جسم دیگر را با همان اندازه پیدا کند و سپس رنگ آن را تعیین کند. این یک محاسبات پیچیده است و محاسباتی خاص برای سؤالی است که پرسیده شد. سوالات مختلف برای حل به دنبالههای متفاوتی از مراحل نیاز دارند.
الگوی غالب در یادگیری عمیق، رویکرد “یک اندازه متناسب با همه” است: برای هر مشکلی که میخواهیم حل کنیم، یک معماری مدل ثابت داریم و امیدواریم این مدل بتواند همه چیز را در مورد رابطه بین ورودی و خروجی نمایش داده و پارامترهای آن مدل ثابت را از دادههای آموزشی برچسبگذاری شده یاد بگیرد.
اما استدلال دنیای واقعی به این شکل کار نمیکند: دنیای واقعی استدلال شامل انواع قابلیتهای مختلف است که برای هر چالش جدیدی که در طبیعت با آن مواجه میشویم، به روشهای جدیدی ترکیب و سنتز میشوند. آنچه ما نیاز داریم مدلی است که بتواند به صورت پویا تعیین کند که چگونه در مورد مشکل پیش روی خود استدلال کنیم در واقع شبکهای که بتواند ساختار خود را به صورت همزمان انتخاب کند. در این مقاله، ما در مورد دسته جدیدی از مدلها صحبت خواهیم کرد که به آنها شبکههای ماژول عصبی (NMNs) میگویند. این شبکهها رویکردی انعطافپذیرتر را برای حل مسئله و در عین حال حفظ قدرت بیانی که یادگیری عمیق را بسیار مؤثر میسازد، ارائه میدهند.
قبلاً متوجه شدیم که سه مرحله مختلف برای پاسخ به سؤال مطرح شده در بالا وجود دارد: یافتن یک استوانه آبی، یافتن چیزی به همان اندازه و تعیین رنگ آن. ما میتوانیم این را به صورت شماتیک مانند تصویر زیر نشان دهیم:
یک سوال متفاوت ممکن است شامل یک سری مراحل متفاوت باشد. اگر بپرسیم “چند چیز به اندازه توپ هستند؟”، ممکن است چیزی شبیه به این داشته باشیم:
عملیات اساسی مانند “مقایسه اندازه” بین دو سوال بالا مشترک هستند، اما آنها به روشهای مختلف در دو مورد بالا استفاده شدهاند. ایده کلیدی پشت NMN ها این است که این اشتراکگذاری را صریح کنیم: یعنی از دو ساختار شبکه متفاوت برای پاسخ به دو سوال بالا استفاده کنیم، اما وزنها را بین قطعات شبکههایی که شامل عملیاتهای اساسی یکسانی هستند به اشتراک بگذاریم:
چگونه یک مدل را مثل این یاد بگیریم؟ به جای آموزش یک شبکه بزرگ روی تعداد زیادی جفت ورودی/خروجی، در واقع تعداد زیادی از شبکههای مختلف را همزمان آموزش میدهیم، در عین حال پارامترهای آنها را در صورت لزوم به هم گره میزنیم:
این روش استفاده فراوانی دارد چنانکه چندین چارچوب یادگیری عمیق اخیر، از جمله DyNet و TensorFlow Fold، به صراحت با در نظر گرفتن این نوع محاسبات پویا طراحی شده اند.
با این تکنیک چیزی که در پایان فرآیند آموزش به دست میآوریم یک شبکه عمیق واحد نیست، بلکه مجموعهای از “ماژولهای” عصبی است که هر یک از آنها یک مرحله استدلال را پیادهسازی میکنند. وقتی میخواهیم از مدل آموزشدیده خود در یک نمونه مسئله جدید استفاده کنیم، میتوانیم این ماژولها را به صورت پویا جمع کنیم تا یک ساختار شبکه جدید متناسب با آن مشکل تولید کنیم. یکی از چیزهای قابل توجه در مورد این فرآیند این است که ما نیازی به ارائه هیچ نظارت سطح پایینی برای ماژولهای جداگانه نداریم و مدل هرگز نمونهای جدا شده از شی آبی یا یک رابطه “سمت چپ” را نمیبیند. ماژولها فقط در ساختارهای بزرگتر، با جفت (سوال، پاسخ) به عنوان ناظر، یاد میگیرند. اما روش آموزش قادر است به طور خودکار رابطه صحیح بین قطعات ساختار و محاسباتی که آنها مسئول آن هستند را استنباط کند:
همین فرآیند برای پاسخ دادن به سوالات مربوط به عکسهای واقعیتر و حتی سایر منابع دانش مانند پایگاههای داده هم کار میکند:
عنصر کلیدی در کل این فرآیند مجموعهای از “طرحهای(blueprints) استدلال” سطح بالا مانند موارد بالا است. این طرحها به ما میگویند که چگونه شبکه برای هر سؤال باید چیده شود، و چگونه سؤالات مختلف به یکدیگر مرتبط هستند. اما طرحها از کجا میآیند؟ زبان شناسان مدتها مشاهده کردهاند که دستور زبان یک سوال ارتباط نزدیکی با توالی مراحل محاسباتی مورد نیاز برای پاسخ به آن دارد. به لطف پیشرفتهای اخیر در پردازش زبان طبیعی، میتوانیم از ابزارهای آماده برای تجزیه و تحلیل گرامری استفاده کنیم تا نسخههای تقریبی این طرحها را بهطور خودکار ارائه دهیم.
اما یافتن نگاشت درست از ساختار زبانی به ساختار شبکه هنوز یک مشکل چالش برانگیز است و فرآیند تبدیل مستعد خطا است. با یادگیری تقلید از انسانها، مدل توانست کیفیت پیشبینیهای خود را به میزان قابل توجهی بهبود بخشد. شگفتآورتر از همه، زمانی است که مدلی را انتخاب کنیم که برای تقلید از متخصصان آموزش دیده باشد، و به آن اجازه دهیم تا تغییرات خود را در این پیشبینیهای متخصص بررسی کند، این مدل میتواند راهحلهایی حتی بهتر از متخصصان در مورد سؤالات مختلف را پیدا کند.
با وجود موفقیت قابل توجه روشهای یادگیری عمیق در سالهای اخیر، بسیاری از مشکلات از جمله یادگیری چند مرحلهای و استدلال پیچیده همچنان یک چالش هستند. اما اینها دقیقاً همان مشکلاتی هستند که در آن تکنیکهای کلاسیک ساختار یافتهتر مانند تجزیه معنایی(semantic parsing) و القاء برنامه(program induction) واقعاً در آن عالی هستند. استدلال با شبکههای ماژول عصبی بهترینهای هر دو حوزه را برای ما به ارمغان میآورد: انعطافپذیری و کارایی داده ترکیببندی گسسته، همراه با قدرت بازنمایی شبکههای عمیق. استدلال با شبکههای ماژول عصبی قبلاً موفقیتهایی در حوزه استدلال بصری و متنی داشتهاند، و ما هیجان زدهایم که شروع به استفاده از آنها در سایر مشکلات هوش مصنوعی کنیم.