شبکه‌ عصبی بازگشتی چیست ؟

شبکه‌ عصبی بازگشتی چیست ؟

Siri اپل و Alexa  آمازون ، جدا از این که دستیاران شخصی باشند ، یک وجه اشتراک دارند : هر دو آن ها برای درک گفتار انسان و ارائه پاسخ ، از شبکه های عصبی بازگشتی استفاده می کنند. نه تنها این دو، بلکه تقریباً هر شرکتی از شبکه ‌های عصبی بازگشتی استفاده می کند. 

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

معرفی شبکه های عصبی بازگشتی

شبکه عصبی بازگشتی چیست؟

شبکه عصبی بازگشتی نوعی شبکه عصبی است که در آن یک ارتباط بین گره ها طی یک توالی زمانی وجود دارد. این ارتباط ، یک گراف جهت دار است. منظور از توالی زمانی ، داده هایی است که با گذر زمان انتقال می یابند.

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

چرا RNN ؟

شبکه های عصبی قدیمی ، توانایی پرداختن به ورودی های بعدی براساس موارد قبلی را ندارند. برای مثال ، یک شبکه عصبی معمولی نمی تواند بر اساس دنباله های قبلی ، کلمه بعدی را در دنباله پیش بینی کند. در حالیکه ، یک شبکه عصبی بازگشتی ( RNN ) قطعا می تواند این کار را انجام دهد.

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

شبکه عصبی بازگشتی چیست

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

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

شبکه های عصبی بازگشتی چگونه کار می کنند؟

در شبکه های عصبی قدیمی ، یک لایه مخفی با مجموعه ای از وزن ها و بایاس های مخصوص به خود وجود دارد. بگذارید این وزن و بایاس را به ترتیب برای وزن ۱ و بایاس ۱ ، w1 و b1 فرض کنیم. به همین ترتیب w2 ، b2 و w3 ، b3 را برای لایه های دوم و سوم خواهیم داشت. این لایه ها همچنین از یکدیگر مستقل هستند ، به این معنی که آن ها خروجی قبلی را نمی دانند.

فرض کنید یک شبکه عمیق تر با یک لایه ورودی، سه لایه مخفی، و یک لایه خروجی داشته باشیم.

شبکه عصبی بازگشتی چگونه کار می کند

شبکه عصبی بازگشتی بصورت زیر اجرا می شود :

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

برای محاسبه حالت فعلی 

ht = f ( ht-1 , x)

  • ht : حالت فعلی
  • ht-1 : حالت قبلی
  • xt : حالت ورودی

به منظور اعمال تابع فعالساز tanh، داریم:

ht = tanh ( Whh ht-1 + Wxh x)

که در آن:

  • Whh : وزن نورون فعلی
  • Wxh : وزن نورون ورودی

فرمول محاسبه خروجی:

yt = Why ht

  • yt : خروجی
  • Why : وزن در لایه خروجی

آموزش از طریق RNN :

  • این شبکه یک واحد گام زمانی از ورودی می گیرد.
  • حالت فعلی را از طریق ورودی فعلی و حالت قبلی محاسبه می کنیم.
  • حالا خروجی حالت ht تبدیل به ورودی حالت ht-1 می گردد.
  • این اتفاق برای n گام مختلف می تواند اتفاق بیفتد و در انتها، تمام اطلاعات به هم متصل می شود.
  • پس از تکمیل تمام مراحل ، مرحله آخر محاسبه خروجی است.
  • در آخر ، با محاسبه اختلاف بین خروجی واقعی و خروجی پیش بینی شده ، خطا را محاسبه می کنیم.
  • خطا برای تنظیم وزن ها و تولید یک نتیجه بهتر به شبکه برگشت داده می شود.

کاربرد های شبکه عصبی بازگشتی

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

۱- ترجمه ماشینی

ما از شبکه های عصبی بازگشتی در موتورهای ترجمه استفاده می کنیم تا متن را از یک زبان به زبان دیگر ترجمه کنیم. آن ها می توانند این کار را با ترکیبی از مدل های دیگر مانند حافظه طولانی کوتاه مدت ( LSTM ) انجام دهند.

ترجمه ماشینی با شبکه های عصبی بازگشتی

۲- تشخیص گفتار

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

تشخیص گفتار با شبکه های عصبی

۳- برچسب زنی خودکار تصویر

RNN ها همراه با شبکه های عصبی کانولوشنی می توانند تصاویر را شناسایی کرده و توصیف آن ها را در قالب برچسب ها ارائه دهند. برای مثال، تصویر روباهی که از روی پرچین می پرد ، بهتر است با استفاده از RNN ها توصیف شود.

برچسب زنی خودکار تصاویر با شبکه عصبی بازگشتی

۴-تحلیل احساسات

برای درک احساسات کاربر ، از تجزیه و تحلیل احساسات برای تشخیص مثبت بودن ، منفی بودن یا خنثی بودن جمله استفاده می کنیم. بنابراین ، RNN ها در پردازش داده های متوالی به منظور یافتن احساسات جمله ، مهارت بالایی دارند.

تحلیل احساسات با شبکه های عصبی بازگشتی

خلاصه

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

Leave a Reply

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