شبکههای عصبی توالی به توالی یا همان sequence to sequence که به اختصار Seq2Seq نیز نامیده میشود ابتدا توسط گوگل جهت انجام عملیات ترجمهی ماشینی (machine translation) ارائه شد. این شبکهها که به نوعی همان شبکههای عصبی بازگشتی (RNN) هستند، توانایی دریافت توالی از ورودیها و تبدیل آنها به توالی از خروجیها را دارند.
ادامه خواندن “شبکههای عصبی عمیق توالی به توالی (Seq2Seq)”شبکه عصبی واحد بازگشتی دروازهدار (GRU)
در دروس قبلیِ دورهی جاری با شبکههای عصبی بازگشتی (RNN) ساده و LSTMها آشنا شدیم. شبکههای RNN ساده، مشکل محوشدگی گرادیان را داشتند و شبکههای LSTM نیز با این مشکل محوشدگی گرادیان را برطرف میکردند، ولی از لحاظ محاسبات سنگین و پیچیده بودند. شبکههای عصبی واحد بازگشتیِ دروازهدار یا همان Gated Recurrent Unit که به اختصار GRU گفته میشود، مشکل محوشدگی گرادیان را ندارند و از لحاظ محاسبات نیز ساده و سبک هستند.
ادامه خواندن “شبکه عصبی واحد بازگشتی دروازهدار (GRU)”شبکه عصبی بازگشتی با حافظهی طولانی کوتاه مدت (LSTM)
در دروس قبلی در مورد شبکههای عصبی بازگشی RNN صحبت کردیم. این شبکهها کاربردی هستند و البته مشکلاتی نیز دارند. یکی از مشکلات RNNها، محوشدگی گرادیان در هنگام یادگیری از توالیهای بلند مدت است که توانایی یادگیری را در الگوریتم کاهش میکند.
ادامه خواندن “شبکه عصبی بازگشتی با حافظهی طولانی کوتاه مدت (LSTM)”انواع شبکههای عصبی بازگشتی (RNN) و کاربرد آنها
در درس قبلی در مورد شبکههای عصبی بازگشتی صحبت کردیم. این شبکهها به دلیل استفاده گسترده در صنعت، رشد زیادی داشتهاند و انواع مختلفی از آنها ایجاد شده است. در این درس به انواع معماریهای مشهورِ موجود در RNNها خواهیم پرداخت و کاربرد هر کدام را با هم مرور میکنیم.
ادامه خواندن “انواع شبکههای عصبی بازگشتی (RNN) و کاربرد آنها”شبکه عصبی بازگشتی (Recurrent Neural Network)
هنگامی که دادهها به صورت ترتیبی (sequential) یا مبتنی بر سری زمانی (time series) باشند، شبکههای عصبیِ ساده کارایی بالایی نخواهند داشت. از این رو بهتر است که به سراغ معماریهایی برویم که توانایی پردازش دادههای مبتنی بر ترتیب را داشته باشند. شبکههای عصبی بازگشتی که به اختصار به آنها RNN نیز گفته میشود، توانایی شناسایی الگو و یادگیری را از مجموعه دادههای ترتیبی دارند.
ادامه خواندن “شبکه عصبی بازگشتی (Recurrent Neural Network)”شبکه عصبی پیچشی (Convolutional Neural Network) در یادگیری عمیق
شبکهی عصبی پیچشی یا به اختصار CNN که به آن شبکهی عصبی کانولوشنی نیز گفته میشود، نوعی از شبکههای عصبی است که عموماً برای یادگیری بر روی مجموعه دادههای بصری (مانند تصاویر و عکسها) استفاده میشود. از لحاظ مفهوم این شبکهها مانند شبکههای عصبی ساده هستند یعنی از فازهای پیشخور (feed forward) و پسانتشار خطا (back propagation of error) استفاده میکنند ولی از لحاظ معماری تفاوتهایی با شبکههای عصبی ساده دارند. این شبکهها در دستهی یادگیری عمیق قرار میگیرند زیرا لایههای موجود در این شبکهها، زیاد است.
ادامه خواندن “شبکه عصبی پیچشی (Convolutional Neural Network) در یادگیری عمیق”توابع فعالسازی (Activation Functions) در شبکههای عصبی عمیق
در مورد مزیت استفاده از توابع فعالسازی یا همان activation functions در درس مربوط به آن در دورهی آشنایی با شبکههای عصبی عمیق صحبت کردیم. به صورت خلاصه، توابع فعالسازی در هر نورون، خروجی آن نورون را تغییر میدهند و به نوعی خروجی نورنها را در شبکههای عصبی کنترل میکنند.
ادامه خواندن “توابع فعالسازی (Activation Functions) در شبکههای عصبی عمیق”مشکل انفجار گرادیان (Exploding Gradients) در شبکههای عصبی عمیق
در درس قبلی از دورهی جاری در مورد محوشدگی گرادیان (gradient vanishing) صحبت کردیم. نقطهی مقابل محوشدگی گرادیان، مشکل انفجار گرادیان یا همان exploding gradients است که به جای اضمحلال و محوشدن گرادیان، ممکن است آن را بیش از اندازه بزرگ نماید و به خاطر همین الگوریتم نتواند به یک همگرایی (converge) در میان وزنها دست پیدا کند.
ادامه خواندن “مشکل انفجار گرادیان (Exploding Gradients) در شبکههای عصبی عمیق”مشکل محوشدگی گرادیان (Gradient Vanishing) در شبکههای عصبی عمیق
در دورهی آشنایی با شبکههای عصبی، فهمیدیم که یک شبکهی عصبی چگونه یادگیری را انجام میدهد. این شبکهها با استفاده از عملیات پیشخور (feed forward) و پس انتشار خطا (back propagation)، وزنها را آپدیت کرده و یادگیری را انجام میدهند.
ادامه خواندن “مشکل محوشدگی گرادیان (Gradient Vanishing) در شبکههای عصبی عمیق”تفاوت شبکههای عصبی (Neural Networks) با یادگیری عمیق (Deep Learning) چیست؟
شبکههای عصبی عمیق (deep neural networks) منجر به یادگیری عمیق (deep learning) میشود. در واقع به عنوان تعریف ساده میتوان گفت الگوریتمهای یادگیری عمیق همان شبکههای عصبی هستند که تعداد لایههای آنها زیاد است. این تعریف از یادگیری عمیق ساده و درست است اما اگر بخواهیم به معنای دقیقتر تفاوت بین یادگیری عمیق و شبکههای عصبی را درک کنیم، بایستی به این نکته توجه کنیم که یادگیری عمیق حالت یادگیری بوده در حالی که شبکههای عصبی نوعی الگوریتم در بین یادگیری ماشین است.
ادامه خواندن “تفاوت شبکههای عصبی (Neural Networks) با یادگیری عمیق (Deep Learning) چیست؟”