شبکههای بازگشتی چیست؟
در این بخش قرار است به توضیح در مورد شبکههای بازگشتی (RNN)Recurrent Neural Network بپردازیم. کاربرد این شبکهها در بحث سریهای زمانی میباشد. مانند پردازش متن (NLP)، پردازش گفتار (speech processing)، تشخیص گفتار یا بازشناسی گفتار، تحلیلهای مالی و ناوبری سیستمهای مکانیکی مثل خودروهای خودران،کشتی، قطار و رباتها، و غیره.
تاریخچه شبکههای بازگشتی
در سال 1986 آقای David Rumelhart با استفاده از شبکههای Hopfield که توسط John Hopfield در سال 1982 ارائه شده بود. شبکههای بازگشتی (RNN) را معرفی کرد. این شبکهها نسبت به شبکههای عصبی مصنوعی یک تفاوت دارند.
تفاوت شبکههای عصبی مصنوعی با شبکههای بازگشتی
در یک شبکه عصبی مصنوعی نورونهای معمولی ابتدا ورودیها را میگیرند. سپس هر کدام از این ورودیها را در وزن ارزشگذاری مورد نظر خودش ضرب میکند. و با یک مقدار ثابت جمع میکند و در نهایت همه مقادیر به دست آمده با هم جمع میشوند. این مقدار از یک تابع فعال سازی عبور میکند که مشخص شود جواب مثبت است یا منفی، و در نهایت خروجی اعلام میشود.
اما نورونهای شبکههای بازگشتی به این صورت عمل نمیکنند. RNN ها یا Recurrent Neural Network به معنی شبکه عصبی بازگشتی میباشند. این بازگشت به این معنا میباشد که دادههای خروجی باز به ورودی باز گردانده میشود.
دلیل بازگشتی بودن RNN ها
این موضوع را با یک مثال بیان میکنیم. هنگامی که از عبارت “حال شما” استفاده میشود. مهم است که بدانیم کلمه سوم چه چیزی هست. برای تعیین کلمه سوم اگر از شبکه عصبی مصنوعی استفاده کنیم، برای تصمیمگیری در مورد انتخاب کلمه مورد نظر احتمالات زیادی وجود دارد. اما اگر از RNN ها استفاده کنیم، به دلیل اینکه دو کلمه قبلی به شبکه معرفی شده است، احتمال تشخیص اینکه کلمه بعدی چه خواهد بود افزایش پیدا میکند. وقتی از عبارت “حال شما” استفاده میکنیم معمولا کلمه بعدی “چه طوره” خواهد بود. پس با دانستن “حال شما” می توان راحتتر کلمه بعدی را حدس زد.
مزیت شبکههای بازگشتی
پس مزیت RNN ها در واقع ارزشگذاری این شبکهها به ورودیهای قبلی و تاریخچه آن میباشد. در واقع به این شبکهها حافظه نیز اضافه میشود که بتواند سریهای زمانی را به خوبی پیشبینی، تحلیل، جایگزینی و دستهبندی کند.
برای آشنایی بیشتر با مبحث شبکههای بازگشتی و نحوه کار با آن میتوانید به دوره جامع آموزش یادگیری عمیق در پایتون آکادمی رسا مراجعه کنید.