رفتن به نوشته‌ها

بعضی از اولین‌ها…

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

 

  • استفاده از شبکه RNN برای مدل seq2seq (یا همان Encoder – decoder): در این مقاله برای اولین بار چارچوب Encoder-decoder معرفی شد. این مقاله از دو شبکه RNN مجزا استفاده کردند که یکی را encoder و دیگری را decoder نامگذاری شد. به ازای هر عبارت ورودی (phrase) یک ویژگی (feature) به دست می‌آورند که از آن به عنوان یک ویژگی در مدل خود اضافه کردند. مدلی که اصلی آنها log-linear بود که یکی از ویژگی‌های مدل از طریق Encoder-Decoder به دست می‌آمد و سایر ويژگی‌ها از مدل‌های آماری استخراج می‌شد.
  • استفاده از شبکه LSTM برای مدل seq2seq و استفاده از ایده‌ی شبکه بازگشتی دو طرفه (Bidirectional) با سلول  LSTM: این مقاله در کنفرانس NIPS سال ۲۰۱۴ منتشر شد. تا قبل از این مقاله اکثرا از شبکه بازگشتی ساده استفاده می‌شد. همچنین در این مقاله برای اولین بار از شبکه بازگشتی دو جهته با سلول LSTM استفاده کردند و ادعا کردند که شبکه‌های بازگشتی دو طرفه باعث میشه الگوریتم بهینه‌سازی سریعتر همگرا شود. به عبارت دقیق‌تر گفتند که backpropagation بین کلمات جملات مبدا و مقصد راحت‌تر صورت میگیرد. البته استفاده از شبکه بازگشتی دو طرفه چیز خیلی جدیدی نبود و در سال ۱۹۹۷ مطرح شده بود [bidirectional rnn].
  • مکانیزم اتنشن (Attention mechanism): از سیستم بینایی انسان الهام گرفته شده است و هدفش این بوده به قسمت‌هایی از عکس توجه بشه که برای تسک‌ مورد نظر اهمیت بیشتری دارند. این مکانیزم ابتدا در بینایی کامپیوتر [اینجا] و سپس در پردازش زبان طبیعی[اینجا] توسط آقای Bengio و تیم‌اش ارائه شد.  این سازوکار یکی از تاثیرگذارترین کارهایی بوده است که در طی چندسال اخیر در حوزه یادگیری عمیق و پردازش زبان طبیعی انجام شده است. توضیحات دقیق‌تر آن را در این پست می‌تونید مشاهده کنید.
  • حذف تصادفی (Dropout): یک تکنیک برای تنظیم (regularization) پارامترهای شبکه است تا از بیش‌پردازش (overfitting) شبکه بکاهد. این روش با خاموش کردن (صفر کردن) درصدی از نورون‌ها به صورت تصادفی در هر مرحله از آموزش (training iteration) از یادگرفتن آنها جلوگیری میکند. این روش ابتدا برای شبکه‌های کانولوشن [اینجا] مطرح شد و سپس برای بردارهای نهفته و شبکه‌ بازگشتی عصبی هم ارائه شد [اینجا].
  • بردارهای نهفته (embedding vectors): بردارهای نهفته یک نگاشت هستند که ورودی خود (مثلا کلمه یا جمله) را به یک بردار تبدیل می‌کنند. بردارهای نهفته، که در بحث زبان‌شناسی اصلاحا بهشون distributional semantic models گفته میشه و با نام‌های دیگری از جمله Distributed representaion , semantic vector space, word vector, word space اطلاق می‌شوند،  ابتدا در دهه ۱۹۵۰ و طی کارهای که توسط Harris و Flirt به صورت جداگانه پایه‌ریزی شد [اینجا]. این ایده بعدها توسط دیگران توسعه پیدا کرد و الگوریتم‌هایی مثل LSA/LSI ، HAL و… مطرح شدند. در ۲۰۱۳ و با گسترش یادگیری عمیق ورد۲وک که برپایه شبکه عصبی بود ارائه شد که در واقع توسعه یافته همون مدلهای قدیمی بود.dense representation
  • شبکه‌های کانولوشن یا پیچشی (CNN): تاریخچه‌ی شبکه‌های پیچشی رو مثل خیلی کارهای دیگه باید در بینایی کامپیوتر جستجو کرد. اولین مقاله با استفاده استفاده شبکه‌های پیچشی توسط آقای Bengio و Lecun معرفی شدند[اینجا]. استفاده از شبکه‌های کانولوشن یا پیچشی در پردازش زبان طبیعی اما اولین بار در سال ۲۰۰۸ و برای تسک برچسب‌زنی نقش‌های معنایی (semantic role labeling) در کنفرانس ICML معرفی شد [A Unified Architecture for Natural Language Processing]. نسخه توسعه یافته این مقاله بعدها در ژورنال JMLR به چاپ رسید که تقریبا یکی از معروف‌ترین مقالات یادگیری عمیق در پردازش زبان طبیعی است [اینجا].
  • ادامه دارد 🙂
منتشر شده در پردازش زبان طبیعییادگیری عمیقیادگیری ماشین

اولین باشید که نظر می دهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *