منطق نورانی! شبکه‌های دروازه‌ای قابل یادگیری (DLGN) و داستان فشرده‌سازی و سرعت بیشتر

Fall Back

تا حالا اسم شبکه‌های منطقی قابل متفاوت یادگیری (DLGN) به گوشتون خورده؟ اگه نه، بذار براتون با یه زبان خودمونی توضیح بدم. این DLGNها در واقع مدل‌هایی هستن که به جای اینکه شبیه یه شبکه عصبی معمولی رفتار کنن، از منطق گیت‌ها (اون دروازه‌های منطقی که توی الکترونیک کارشون AND و OR و NOT و این چیزاست) برای تصمیم‌گیری و محاسبه استفاده می‌کنن. نکته جالبشون اینه که وقتی آموزش دیدن، توی پیش‌بینی و نتیجه دادن خیلی سریع و کم‌مصرف هستن، اما دقتشون هم رقابتی باقی می‌مونه!

ولی خب، دنیای هوش مصنوعی هیچ وقت بدون دردسر نیست! این شبکه‌های DLGN چند تا دردسر اساسی هم داشتن ـــ مثل مشکل gradient که همین باعث میشه یادگیری خوب پیش نره (vanishing gradient یعنی موقع آموزش، سیگنال خطای یادگیری خیلی سریع کم و ناچیز می‌شه و مدل گیر می‌کنه)، یا مثلاً اتفاق بد دیگه discretization error هست (یعنی وقتی بخوای منطقی بودن رو به‌صورت عددی مدل کنی، دقت کارت ضربه میخوره)، یا هزینه آموزشی زیاد (Training Cost یا همون مقدار زمان و انرژی لازم برای یادگیری مدل). به‌خصوص هرچی این شبکه‌ها عمیق‌تر و بزرگ‌تر می‌شدن، دقتشون افت پیدا می‌کرد و آموزششون هم کم‌جان‌تر می‌شد.

تحقیقات قبلی سعی کرده بودن با انواع حقه‌ها مثل روش مخصوص برای مقداردهی اولیه پارامترها (Parameter Initialization Scheme یعنی روش اینکه پارامترها اولش با چه مقداری شروع کنن)، مشکل رو کمی حل کنن. اما با وجود این تکنیک‌ها، وقتی عمق مدل (تعداد لایه‌ها) زیاد می‌شد، همچنان accuracy یا همون دقت واقعی پایین میومد و کسی واقعا قانع نشده بود.

حالا محقق‌ها نشستن مشکل رو از ریشه بررسی کردن و فهمیدن ریشه این بدبختی‌ها توی خود نحوه نمایش و مدل‌سازی گیت‌های منطقیه؛ یعنی همون جایی که داریم به این گیت منطقی می‌گیم تو ورودی X چی کار کن.

اینجاست که اونا اومدن یه حقه جدید زدن! یه parametrization جدید (یعنی روشی تازه برای تعریف و تنظیم پارامترهای هر دروازه منطقی) که کمک می‌کنه اندازه پارامترها رو برای هر گیت خیلی جمع‌وجورتر و باهوش‌تر نگه داریم؛ اونم جوری که وقتی ورودی‌های هر گیت زیاد میشه فقط به صورت لگاریتمی به تعداد پارامترها اضافه کنیم نه خطی. (حسابتون رو راحت کنم: کندتر از معمول رشد می‌کنه!)

برای ورودی دودویی (binary inputs یعنی ورودی‌هایی که فقط صفر و یک دارن درست مثل همون چیپ‌های اولیه)، اندازه مدل یه‌دفعه تا چهار برابر کوچیک‌تر می‌شه! سرعت یادگیری پس‌رفت (backward pass یعنی بخش آموزش که مدل خودش رو تنظیم می‌کنه) تا نزدیک دو برابر سریع‌تر می‌شه. تازه اینطوری به جای اینکه معمولاً لازم باشه هشت بار بیشتر آموزش بدیم، توی همون هشت و نیم برابر آموزش کمتر، مدل به نتیجه می‌رسه! حالا این یعنی چی؟ یعنی مدل با صرف کمتر زمان و انرژی و منابع، خیلی سریع‌تر از قبل درست یاد می‌گیره و آماده کار می‌شه.

یه نکته اضافیِ خیلی مهم هم اینه که روی دیتاست معروف CIFAR-100 (این دیتاست شامل صد تا دسته‌بندی عکس از اشیاء مختلفه و توی دنیای شناسایی تصویر معروفه)، این روش جدید باعث شده دقت مدل یا ثابت بمونه یا حتی بعضی وقت‌ها بهتر بشه نسبت به مدل‌های معمول DLGN.

جمع‌بندی: اگه دنبال شبکه‌ای هستی که هم سرعت پیاده‌سازیش بالاست، هم حافظه کمتری نیاز داره و هنوز کارایی خوبی داره، این مدل جدید DLGN با پارامترای نورانی (!) می تونه گزینه جذابی باشه، مخصوصا برای آموزش سریع. خلاصه: با کمی هوش و خلاقیت، همیشه جا برای بهتر شدن هست!

منبع: +