شبکه عصبی بازگشتی با حافظه‌ی طولانی کوتاه مدت (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) چیست؟”

تفاوت یادگیری عمیق (Deep Learning) با یادگیری ماشین کلاسیک

همان‌طور که در دوره‌های گذشته مطالعه کردیم، یادگیری عمیق یک زیر حوزه از یادگیری ماشین بوده و یادگیری ماشین نیز خود، زیر حوزه‌ای از هوش مصنوعی است. اما به دلیل عملکرد خوبِ الگوریتم‌های یادگیری عمیق بر روی برخی از مسائل و همچنین دخالتِ کمتر انسان در فرآیند یادگیری، این الگوریتم‌ها به نوعی یه زیر حوزه‌ی جدا را تشکیل داده‌اند.

ادامه خواندن “تفاوت یادگیری عمیق (Deep Learning) با یادگیری ماشین کلاسیک”