امروزه استفاده از الگوریتمهای یادگیری عمیق (Deep Learning) در حل مسائل یادگیری ماشین (Machine Learning ) بسیار پرکاربرد شده است. با افزایش حجم دادهها و کیفیت بالای به دست آمده و قدرتمندتر شدن سیستمهای پردازشی، استفاده از روشهای یادگیری عمیق قابل توجیهتر شده است. به طور کلی گفته میشود که آموزش مدل در روشهای یادگیری عمیق نیاز به حجم دادهی آموزش بالایی دارد. ( البته در برخی مواقع با استفاده از راهکارهایی میتوان این نیازمندی را کاهش داد!) در برخی مسائل حجم بزرگی از این داده قابل دسترس است. الگوریتمهای یادگیری ماشین گوناگونی وجود دارد که هر کدام بر روی نوعی از مسائل و نوعی از داده به خوبی کار میکنند.
یکی از انواع دیتا، دیتای دنبالهدار (Sequence Data) است که در مسائل مختلف نمایان میشود. از جمله این مسائل میتوان به پردازش صوت (Speech Recognition)، تحلیل احساسات (Sentiment Analysis)، ترجمه ماشینی (Machine Translation)، شناسایی موجودیتهای اسمی (Name Entity Recognition)، شناسایی فعالیت در ویدیو (Video Activity Recognition) و … اشاره کرد. به طور مثال در داده برچسبگذاری شده برای تشخیص موجودیتهای اسمی، یک دنباله از دیتا وجود دارد که هر کدام برچسب موجودیت را دارا هستند.
مثال بالا دنبالهای از کلمات را نمایش میدهد. هر کلمه میتواند بنا به تعریف قسمتی از یک موجودیت اسمی باشد.در تصویر بالا عبارت (“میرزا محمدتقیخان فراهانی”) یک موجودیت اسمی است که از ترکیب چهار توکن به صورت یک دنباله تشکیل شده است.
یکی از شبکههای رایج برای این گونه از دیتا شبکه (RNN (Recurrent Neural Network است. شبکه RNN میتواند به انواع مختلفی دستهبندی شود. براساس معماری مسئله انواع شبکه RNN به صورت زیر دستهبندی میشوند:
- شبکه چند به چند (many-to-many)
- چند به یک (many-to-one)
- یک به یک (one-to-one)
- یک به چند (one-to-many)
معماری شبکه چند به چند خود میتواند به دو قسمت تقسیم شود. به عنوان مثال تشخیص موجودیت اسمی یک شبکه چند به چند است که به تعداد دنباله ورودی، دنباله خروجی داریم؛ بدین معنی که به هر کلمه ورودی یک برچسب در خروجی تعلق میگیرد. شکل زیر نمایش این معماری است:
معماری دیگر چند به چند، حالتی است که تعداد دنباله ورودی با خروجی متفاوت است. از جمله مثالهای این قسمت میتوان به ترجمه ماشینی اشاره کرد که در آن طول جمله ورودی با طول جمله در خروجی میتواند متفاوت باشد. شکل زیر نمایش این معماری است:
همانگونه که گفته شد، معماریهای دیگری نظیر چند به یک، یک به یک، یک به چند وجود دارد که در زیر میتوان شمای معماریهای هر یک را مشاهده کنید:
ما در دیتاک از شبکههای RNN برای حل مسائل مختلفی نظیر تشخیص موجودیتهای اسمی، طبقهبندی، تحلیل احساسات و … استفاده میکنیم. با توجه به حجم دیتای متنی بزرگی که بالغ بر چند صد میلیارد کلمه است و نیاز روشهای یادگیری عمیق به حجم بالای دیتا جهت آموزش مدل، این امکان برای ما به وجود آمده که بتوانیم مدلهای خود را به خوبی آموزش دهیم. آموزش مدلها بر روی متون رسمی، نیمه رسمی و محاوره این امکان را برای ما به وجود آورده است که کیفیت بالایی در بسترهای مختلف از جمله بسترهای شبکههای اجتماعی دست پیدا کنیم.
برای مطالعه بیشتر میتوانید به لینکهای زیر مراجعه کنین:
یک cheatsheet خوب در سایت استنفورد
یک مقاله دیگه که همراه با ویدیو و تصاویر گیف میتونه کمک کنه به درک بهتر 😀
در صورت تمایل به استفاده از ابزارهای توسعه داده شده توسط ما میتوانید با لینک زیر با ما در ارتباط باشید:
1 دیدگاه روشن انواع شبکههای RNN و کاربردهای آن در دیتاک
ممنون