شبکه عصبی چیست ؟
شبکههای عصبی، مجموعهای از الگوریتمها هستند که شباهت زیادی به مغز انسان دارند و برای شناسایی الگوها طراحی شدهاند. این شبکهها، دادههای حسی را از طریق ادراک ماشین (machine perception)، با برچسب گذاری یا خوشه بندی ورودی خام تفسیر میکنند. این شبکهها میتوانند الگوهای عددی موجود در بردارها را با توجه به این که همه دادههای دنیای واقعی (تصاویر، صدا، متن یا سریهای زمانی) باید به شکل بردار دربیایند، تشخیص دهند. شبکههای عصبی مصنوعی از تعداد زیادی عنصر پردازشی متصل به هم (نورون) تشکیل شده است که برای حل یک مشکل، با هم کار میکنند.
یک شبکه عصبی مصنوعی (ANN) معمولاً شامل تعداد زیادی پردازنده است که به طور موازی عمل میکنند و ردیف بندی شدهاند. ردیف اول، اطلاعات خام ورودی را دریافت میکند – مشابه اعصاب بینایی در سیستم پردازش بینایی انسان. هر ردیف بعدی، خروجی ردیف قبلی را دریافت میکند نه ورودی خام – همانطور که نورونهای دورتر از عصب بینایی، سیگنالها را از نورونهای نزدیک خود دریافت میکنند. ردیف آخر، خروجی سیستم را تولید میکند.
هم رویش منتشر کرده است:
آموزش شبکه عصبی مصنوعی -- از صفر به زبان ساده
شبکه عصبی بازگشتی (RNN) چیست ؟
شبکه عصبی بازگشتی (Recurrent Neural Network)، تعمیمی از شبکه عصبی پیشخور (feedforward) است که دارای یک حافظه داخلی است. این شبکه، ماهیتی بازگشتی دارد، زیرا برای هر داده ورودی، تابع یکسانی را اجرا میکند در حالی که خروجی ورودی فعلی، به محاسبه قبلی بستگی دارد. پس از تولید خروجی، این خروجی کپی شده و مجدداً به شبکه بازگشتی ارسال میشود. برای تصمیم گیری، ورودی فعلی و خروجی که از ورودی قبلی آموزش دیده است، در نظر گرفته میشود.
برخلاف شبکههای عصبی پیشخور، شبکههای عصبی بازگشتی میتوانند از حالت (حافظه) داخلی خود برای پردازش دنبالهای از ورودیها استفاده کنند. این موضوع باعث میشود که این شبکهها در کارهایی مانند تشخیص دستخط به هم متصل و تکه تکه نشده یا تشخیص گفتار قابل استفاده باشند. در سایر شبکههای عصبی، تمام ورودیها از یکدیگر مستقل هستند. اما در شبکه عصبی بازگشتی، همه ورودیها با یکدیگر مرتبط هستند.
ابتدا X(0) را از دنباله ورودی گرفته و سپس h(0) را به عنوان خروجی تحویل میدهد که همراه با X(1)، ورودی مرحله بعدی محسوب میشود. بنابراین، h(0) و X(1) ورودیهای مرحله بعدی هستند. به طور مشابه، h(1) از مرحله بعدی به همراه X(2) ورودی مرحله بعدتر به حساب میآیند و این روند همین طور ادامه دارد. به این ترتیب، محتوا را در حین آموزش بطور مداوم به یاد میآورد.
فرمول وضعیت فعلی به این صورت است:
اعمال تابع فعالسازی:
W نشاندهنده وزن است و h بیانگر یک بردار پنهان است. Whh وزن در حالت پنهان قبلی و Whx وزن در حالت ورودی فعلی است. tanh تابع فعال سازی است که غیرخطی بودن را پیاده سازی میکند. این غیرخطی گری، فعال سازیها را در بازه [-1,1] فشرده میکند.
خروجی:
Yt حالت خروجی است. Why بیانگر وزن در حالت خروجی است.
پیش از این در همرویش فیلم شبکه عصبی کانولوشنی به زبان ساده منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل این آموزش بر روی لینک زیر کلیک کنید:
شبکه عصبی کانولوشن به زبان ساده
مزایای شبکه عصبی بازگشتی
- شبکه عصبی بازگشتی میتواند دنباله دادهها را به نحوی مدل کند هر نمونه، وابسته به نمونههای قبلی فرض شود.
- شبکه عصبی بازگشتی حتی با لایههای کانولوشنی برای گسترش همسایگی موثر پیکسلی مورد استفاده قرار میگیرد.
هم رویش منتشر کرده است:
آموزش ساخت شبکه عصبی با پایتون (و دیگر زبانها) از صفر
معایب شبکه عصبی بازگشتی
- مشکل محوشوندگی تدریجی (Gradient vanishing) و انفجار (exploding).
- آموزش این نوع شبکه کار بسیار دشواری است.
- اگر از tanh یا relu به عنوان یک تابع فعال سازی استفاده کند، نمیتواند دنبالههای بسیار طولانی را پردازش کند.
حافظه طولانی کوتاه مدت (LSTM) چیست ؟
شبکههای حافظه طولانی کوتاه مدت (Long Short-Term Memory) یک نسخه بهبود یافته از شبکههای عصبی بازگشتی هستند که باعث میشوند به خاطر سپردن دادههای گذشته در حافظه، آسان تر شود. مشکل محوشوندگی تدریجی شبکههای عصبی بازگشتی در اینجا برطرف شده است. LSTM برای طبقه بندی، پردازش و پیش بینی سریهای زمانی در حضور تأخیرهای زمانی با مدت نامشخص مناسب است. این شبکه، مدل را با استفاده از پس انتشار (back-propagation) آموزش میدهد. در یک شبکه LSTM، سه دروازه وجود دارد:
دروازه ورودی:
تشخیص میدهد که از کدام مقدار ورودی باید برای بهبود حافظه استفاده شود. تابع سیگموئید (Sigmoid) تصمیم میگیرد که کدام مقادیر را از 0و1 عبور دهد. تابع tanh به مقادیر عبور کرده، بر اساس اهمیت آنها، وزنی در بازه 1- تا 1 میدهد.
دروازه فراموشی:
تشخیص میدهد چه جزئیاتی را باید از بلوک دور انداخت. این موضوع توسط تابع سیگموئید تصمیم گیری میشود. تابع سیگموئید، به حالت قبلی (ht-1) و ورودی محتوا (Xt) نگاه میکند و برای هر عدد در وضعیت سلول Ct-1، عددی بین 0 (این را حذف کنید) و 1 (این را نگه دارید) به عنوان خروجی برمی گرداند.
دروازه خروجی:
از ورودی و حافظه بلوک برای تصمیم گیری در مورد خروجی استفاده میشود. تابع سیگموئید تصمیم میگیرد که کدام مقادیر را از 0و1 عبور دهد. تابع tanh به مقادیر عبور کرده، بر اساس اهمیت آنها، وزنی در بازه 1- تا 1 میدهد و با خروجی تابع سیگموئید ضرب میشود.
+ پیش از این آموزش شبکه عصبی LSTM برای پیش بینی قیمت بازار در همرویش منتشر شد. برای دیدن فیلم معرفی این بسته بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل آموزش اینجا(+) کلیک کنید.
در راستای این مقاله، مطالعه مقاله های زیر پیشنهاد میشود:
شبکه عصبی کانولوشن یا Convolutional چیست ؟ __ راهنمای جامع به روش ELI5
شبکه عصبی چیست ؟ ___ آشنایی با شبکه های عصبی مصنوعی
تاریخچه شبکه عصبی و یادگیری عمیق ___ (قسمت اول)
تاریخچه یادگیری عمیق و شبکه عصبی ___ (قسمت دوم)
شبکه های عصبی چیست __ تاریخچه شبکه عصبی و یادگیری ماشین (قسمت سوم)
شبکه عصبی بازگشتی چیست ؟ آشنایی با شبکههای عصبی بازگشتی (RNN) و (LSTM)
کلیدواژگان
شبکه های عصبی بازگشتی چیست – شبکه های عصبی بازگشتی چیست – شبکه عصبی بازگشتی دو طرفه – الگوریتم شبکه عصبی بازگشتی – شبکه عصبی بازگشتی rnn – شبکه عصبی lstm – شبکه های عصبی lstm – شبکه عصبی عمیق lstm – شبکه های عصبی بازگشتی lstm – شبکه عصبی چیست – شبکه های عصبی چیست – شبکه عصبی عمیق چیست – شبکه های عصبی – شبکه عصبی به زبان ساده – lstm چیست – شبکه عصبی lstm چیست – آموزش الگوریتم ISTM – حافظه طولانی کوتاه مدت چیست
منبع
دوره های آموزشی مرتبط
- آموزش تشخیص اشیای اختصاصی با YOLO ۷۵,۰۰۰ تومان
- آموزش YOLO - تشخیص اشیا با پایتون در OpenCV ۷۵,۰۰۰ تومان