دوره یادگیری شبکه های عصبی (Deep Learning with Python)
امروزه هوش مصنوعی مبتنی بر استفاده از شبکههای عصبی است، زیرا این شبکهها به رایانه امکان میدهند فکر کند، یعنی روابط بین دادههای ورودی و خروجی را درک کند، و تصمیم بگیرد. شبکههای عصبی مصنوعی میتوانند دادههای بدون ساختار را نیز درک کنند.
شبکههای عصبی در صنایع و حوزههای مختلف کاربرد دارند. در پزشکی از شبکههای عصبی برای تحلیل بیماری و آسیب اندامهای داخلی بدن استفاده میشود. بینایی رایانه حوزهٔ دیگری است که در آن از شبکههای عصبی برای استخراج و پردازش دقیق اطلاعات استفاده میشود. خودروهای خودران به کمک شبکههای عصبی وضعیت جادهها را تحلیل میکنند و بهترین مسیر را مییابند. از این شبکهها در پردازش زبان طبیعی، پیشنهاد هوشمندانهٔ محصول، تشخیص گفتار و تبدیل صدا به متن استفاده میشود. در کل شبکههای عصبی پردازش اطلاعات را سریعتر و بهینهتر کردهاند.
شبکههای عصبی مصنوعی چگونه کار میکنند؟
هر شبکهٔ عصبی مصنوعی سه لایهٔ اصلی دارد. در لایهٔ اول اطلاعات را دریافت میکند و گرههای این لایه اطلاعات ورودی را پردازش و دستهبندی میکنند و به لایهٔ دوم میفرستند. در لایهٔ دوم که به آن لایهٔ پنهان میگویند اطلاعاتی که از لایهٔ اول آمدهاند تحلیل و پردازش میشوند. در لایهٔ سوم تا لایهٔ خروجی اطلاعات پردازششده دستهبندی و ارائه میشوند. ممکن است یک مدل هوش مصنوعی چندین لایهٔ پنهان داشته باشد که تحلیل اطلاعات پیچیده را انجام دهند.
برای درک معماری شبکههای عصبی مصنوعی باید به ساختار مغز انسان توجه کنیم. مغز ما حدود ۸۰میلیارد سلول عصبی دارد که به هم متصل هستند. در بدن به این سلولها نورون میگوییم، اما در مدلهای هوش مصنوعی این سلولها همان گرهها یا نودهای شبکهٔ عصبی هستند. گرههای شبکهٔ عصبی به کمک رشتههایی به هم متصل میشوند. این گرهها کار پردازش و انتقال اطلاعات را برعهده دارند و به همین دلیل باید دائماً با هم مرتبط باشند.
انواع شبکههای عصبی مصنوعی
در شبکههای عصبی مصنوعی هیچ محدودیتی برای تعداد گرهها یا لایهها وجود ندارد و این گرهها میتوانند به اشکال بیشمار با هم تعامل کنند. به همین دلیل است که انواع شبکههای عصبی هوش مصنوعی هر روز در حال افزایش است. اما در حالت کلی میتوان آنها را به این دو دسته تقسیم کرد:
- شبکههای عصبی کمعمق که یک لایهٔ پنهان دارند.
- شبکههای عصبی عمیق که چندین لایهٔ پنهان دارند.
شبکههای عصبی کمعمق سریعتر هستند، اما قدرت پردازش کمتری دارند. به همین دلیل وظایف پیچیدهتر به شبکههای عصبی عمیق سپرده میشوند. برخی از مهمترین شبکههای عصبی هوش مصنوعی عبارتاند از:
- شبکههای عصبی پرسپترون
این شبکههای عصبی ساده و کمعمق هستند و تنها از یک لایهٔ ورودی و یک لایهٔ خروجی تشکیل شدهاند. این شبکهها که از قدیمیترین مدلهای شبکههای عصبی هستند پس از دریافت ورودیها آنها را تجمیع میکنند، تابع فعالسازی را روی آنها اعمال میکنند و به لایهٔ خروجی میفرستند.
- شبکههای عصبی پرسپترون چندلایه
در این شبکههای عصبی لایهٔ پنهان اضافه شده است و درنتیجه دستکم سه لایه دارند.
- شبکههای عصبی پیشخور (Feed-forward)
گرههای این شبکهها تنها میتوانند اطلاعات را به گره بعدی منتقل کنند. این شبکهها میتوانند اطلاعات را در یک جهت منتقل کنند و در فناوریهای تشخیص چهره و بینایی رایانه کاربرد دارند.
- شبکههای عصبی مکرر
این شبکهها پیچیدهتر هستند و میتوانند به عقب حرکت کنند. در این شبکهها گرههای پردازششده در لایهٔ خروجی ذخیره شده و به مدل بازگردانده میشود تا بتواند نتیجهٔ لایه را پیشبینی کند. این شبکهها یادگیرنده هستند و میتوانند پیشبینی خود را در طول انتشار اطلاعات بهتر کنند.
- شبکههای عصبی مدولار
این شبکهها درواقع ترکیب دو یا چند شبکهٔ عصبی هستند که جداگانه محاسبات را انجام میدهند و در مرحلهٔ خروجی با هم ادغام میشوند.
- شبکههای عصبی پایه شعاعی
این شبکهها از تابع شعاعی پایهٔ ریاضی استفاده میکنند و برای دستهبندی و تصمیمگیری مناسب هستند، اما در مقادیر پیوسته عملکرد خوبی ندارند.
- شبکههای عصبی کانولوشنال یا CNN
این شبکهها از محبوبترین شبکههای عصبی هوش مصنوعی هستند و در تشخیص چهره، دیجیتالکردن متن، پردازش سیگنال و دستهبندی تصویر مورد استفاده قرار میگیرند.
مزایا و معایب شبکههای عصبی مصنوعی
مهمترین مزایای شبکههای عصبی مصنوعی عبارتاند از:
- توانایی پردازش موازی و همزمان
- ذخیرهٔ اطلاعات در کل شبکه
- توانایی یادگیری و مدلسازی روابط پیچیده و غیرخطی
- توانایی تحمل خطا در یک یا چند گره
- تصمیمگیری مبتنی بر یادگیری ماشین
- پردازش و دستهبندی مقادیر زیاد داده
- کشف روابط پنهان دادهها
- توانایی استنتاج روابط و تعمیم آنها
اما مهمترین معایب شبکههای عصبی مصنوعی عبارتاند از:
- نبود ساختار قانونمند شبکهسازی
- اتکاء به روش آزمون و خطا و تجربه برای افزایش دانش شبکهٔ عصبی مصنوعی و جلوگیری از خطا
- وابستگی شبکههای عصبی مصنوعی به سختافزارهای پردازنده
- شبکههای عصبی مصنوعی تنها میتوانند با اطلاعات عددی کار کنند.
- این شبکهها در توضیح چرایی و چگونگی راه حلهایی که ارائه میکنند ناتواناند.
- وابستگی درستی نتایج شبکه به درستی شیوهٔ آموزش آن
جمعبندی
شبکههای عصبی مصنوعی یا ANN نوعی مدل یادگیری ماشین هستند که میتوانند دادهها را به شیوهای شبیه شیوهٔ فکر و پردازش انسانی پردازش کنند. استفاده از شبکههای عصبی مصنوعی جزء فرایند یادگیری عمیق است. درواقع این شبکههای عصبی براساس سازوکار نورونهای مغز در موجودات زنده عمل میکنند. مهمترین کارکرد شبکههای عصبی مصنوعی دریافت، پردازش و انتقال سیگنالهاست. هر رشتهٔ عصبی سیگنالهای مربوط به خود را دریافت میکند و سپس با استفاده از گرههای خود دادههای ورودی را پردازش میکند و درنهایت در اختیار سایر رشتههای عصبی قرار میدهد.
عناوین درس | توضیحات درس |
مروری بر یادگیری ماشین و شبکه های عصبی |
|
انواع Optimizationها در محاسبه گرادیان شبکه های عصبی |
o گرادیان چیست o Gradient Descent o Mini-batch Gradient Descent o Stochastic Gradient o Stochastic Gradient Descent
o Momentum o Nesterov Momentum
|
مقدمات شبکه های عصبی عمیق |
o مروری بر PCA و روش های کاهش بعد
o Random o Xavier o HE
o بررسی روال تغییرات learning rate o Monitor and visualize the accuracy o Monitor and visualize the loss
o L1 / L2 regularization o Dropout
|
شبکه های عمیق پیچشی Convolutional Neural Network |
o لایه Fully connected o لایه Convolutional o لایه Polling o لایه Softmax
o Alexnet o VGG o GoogleNet o ResNet
|
معماری یادگیری انتقالی Transfer Learning |
|
شبکه های عمیق بازگشتی Recurrent Neural Network |
o بیان ساختار سلول شبکه های بازگشتی o معرفی انواع مختلف شبکه های بازگشتی o محو شدگی و انفجار گرادیانها در شبکههای بازگشتی
|
معماری ترتیب به ترتیب Seq2Seq |
|
تبدیل شونده ها Transformers |
|
شبکه های عمیق Variation Autoencoders |
|
شبکه های عمیق Generative Adversarial Networks |
|
ساعت:60 ساعت
پیش نیاز: یادگیری ماشین