آموزشیادگیری ماشین

درس ۷۸ از ۹۹، هوش مصنوعی، حدود ۹ دقیقه خواندن

نقشه‌ی خانواده‌های شبکه‌ی عصبی

جواب کوتاه

شبکه‌ی عصبی یه شکل نداره؛ شکلش رو داده تعیین می‌کنه. برای جدول، تمام‌متصل: هر نورون به همه‌ی نورون‌های لایه‌ی بعد وصله. برای عکس، کانولوشنی: یه پنجره‌ی کوچیک با چند تا وزن روی همه‌جای عکس سر می‌خوره. برای دنباله، مثل جمله یا صدا، بازگشتی: تیکه به تیکه می‌خونه و یه حافظه با خودش می‌بره. و ترنسفورمر، که همه‌ی تیکه‌ها رو یه‌جا می‌بینه و هر تیکه به بقیه نگاه می‌کنه؛ امروز برای متن غالبه و برای عکس و صدا هم به کار می‌ره. چند تا خانواده‌ی دیگه هم هست: گرافی برای چیزای وصل به هم، خودرمزگذار برای فشرده کردن، و دو شبکه‌ی رقیب برای ساختن عکس تازه.

داده شکل داره

تا این‌جا یه جور شبکه دیدیم: چند تا لایه، هر نورون به همه‌ی نورون‌های بعدی وصل. ولی همه‌ی داده‌ها یه شکل نیستن. این سه تا رو ببینید:

جدول: هر ستون یه چیز جدا؛ سن، شهر، قیمت
عکس: پیکسل‌های کنار هم به هم ربط دارن
دنباله: ترتیب مهمه؛ جای کلمه‌ها عوض بشه، معنی عوض می‌شه

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

نقشه

کل این درس توی یه نقشه:

هر ردیف این نقشه یه درس کامل خودش رو داره. این‌جا فقط می‌خوایم بفهمیم هر کدوم چرا این شکلیه و کجا به کار میاد.

تمام‌متصل

همون شبکه‌ای که تا حالا دیدیم. هر نورون یه لایه به همه‌ی نورون‌های لایه‌ی بعد وصله. بهش تمام‌متصل یا چگال هم می‌گن. تعداد وزن‌هاش ساده حساب می‌شه: ورودی ضرب در خروجی، به‌علاوه‌ی بایاس‌ها:

۳ × ۲ = ۶ وزن، به‌علاوه‌ی ۲ بایاس
یه نورون: ۱۰٬۰۰۰ وزن، فقط برای یه عکس کوچیک

برای یه ردیف جدول، این عالیه؛ برای داده‌ی جدولی هنوز پابه‌پای روش‌های تخصصی هست. ولی عکس رو ببینید: یه عکس کوچیک ۱۰۰ در ۱۰۰ پیکسل، برای فقط یه نورون ۱۰٬۰۰۰ وزن می‌خواد. وزن زیاد یعنی محاسبه‌ی زیاد، و با داده‌ی کم، خطر حفظ کردن.

کانولوشنی

راه حل عکس: به جای اینکه هر نورون کل عکس رو ببینه، یه پنجره‌ی کوچیک داریم، مثلا ۵ در ۵ پیکسل، یعنی فقط ۲۵ وزن. همین پنجره روی همه‌جای عکس سر می‌خوره:

به این پنجره می‌گن هسته یا فیلتر، و شبکه وزن‌هاش رو خودش یاد می‌گیره. چون همون ۲۵ وزن همه‌جای عکس مشترکه، وزن‌ها خیلی کمتر می‌شن. لایه‌های بالاتر هم از پنجره‌های پهن‌تری می‌بینن.

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

بازگشتی

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

توی طراحی، چهار تا سلول نیست؛ یه سلوله که چهار بار، برای هر کلمه یه بار، کار می‌کنه. این حافظه رو می‌گن حالت پنهان. این‌جوری «میاد» می‌دونه قبلش «مریم» اومده بود.

مشکلش: توی دنباله‌ی بلند، گرادیان محو می‌شه و چیزای خیلی قبل‌تر یادش می‌ره. نسخه‌های بهترش، مثل LSTM، این رو خیلی بهتر کردن. درس کاملش: شبکه‌ی بازگشتی.

ترنسفورمر

ترنسفورمر یکی‌یکی نمی‌خونه. ورودی رو تیکه‌تیکه می‌کنه (به هر تیکه می‌گن توکن)، هر تیکه رو یه بردار می‌کنه، و بعد هر تیکه به همه‌ی تیکه‌های دیگه نگاه می‌کنه:

به این نگاه کردن می‌گن توجه: تیکه‌های مهم‌تر پررنگ‌تر می‌شن، کم‌اهمیت‌ها کم‌رنگ‌تر. چون خود توجه ترتیب رو نمی‌فهمه، جای هر تیکه هم بهش اضافه می‌شه.

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

بقیه‌ی خانواده

سه تا خانواده‌ی دیگه هم زیاد اسمشون رو می‌شنوید:

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

کدوم رو بردارم

اول ببینید داده‌تون چه شکلیه:

  1. جدوله؟ تمام‌متصل؛ ولی اول روش‌های ساده‌تر رو هم امتحان کنید (کدوم الگوریتم برای کدوم کار).
  2. عکسه؟ کانولوشنی؛ یا ترنسفورمر، که گاهی جاش رو گرفته.
  3. متن یا دنباله‌ست؟ امروز بیشتر ترنسفورمر. بازگشتی وقتی که سبکی، کار هم‌زمان یا ذات قدم‌به‌قدم داده مهمه.
  4. چیزای وصل به همه؟ گرافی.
  5. می‌خواید چیز تازه بسازید؟ دو شبکه‌ی رقیب، یا خودرمزگذار.

یه نکته هم: لازم نیست شبکه رو از صفر بسازید. خیلی وقت‌ها یه مدل آماده از همون خانواده هست که می‌شه با یادگیری انتقالی برای کار خودتون تنظیمش کرد.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

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

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس