پس از دیدن این آموزش میتوانید با درکی درست و عمیق به ساخت شبکه های عصبی مصنوعی بپردازید. ما در همرویش این دوره را نیز تهیه کردهایم.
پس از تألیف کتاب مهندسی انفجار با هوش مصنوعی متوجه شدیم اغلب کسانی که از این کتاب استفاده میکنند نگاه عمیقی به کاری که میکنند، ندارند. دانشجویان اغلب هنگام استفاده از کتابخانههای پایتون یا رابط کاربری متلب برای ساخت یک شبکه عصبی، از مقادیر پیشفرض بدون آگاهی لازم استفاده میکنند. دانشجویان متعددی تماس میگرفتند که در فلان زمینه فلان مدل را ساختیم ولی نتیجه خوب نیست. حالا کدام پارامتر را بالا و پایین کنیم تا خروجی بهتر شود؟! تصمیم گرفتم یک آموزش ساخت شبکه عصبی از صفر و عمیق تولید کنم. شما باید عمیقا بیاموزید که شبکههای عصبی مصنوعی چگونه رفتار میکنند! آموزشی به زبان ساده که اتفاقاً به جای پرش سریع به یک سورس کد یا کتابخانه و ایجاد یک شبکه به صورت ناآگاهانه، به بیان عمیق مفاهیم بپردازد. یک سال پیش با کتاب Make Your Own Neural Network نوشته Tariq Rashid برخورد کردم. نویسنده این کتاب چقدر ساده مطالب پیچیده را باز میکند. آیا من باید چرخ را از نو اختراع میکردم؟ با ایشان تماس گرفتم. اجازه خواستم تا از سرفصل و محتوای کتاب خوبشان به عنوان مرجع اصلی در تولید یک مجموعه فیلمهای آموزشی در ایران استفاده کنم. ایشان با آغوش باز پذیرفتند.
کتاب شبکه عصبی خودت را بساز نوشته طارق رشید - مرجع اصلی آموزش با اجازه رسمی نویسنده
شروع کردم. درس به درس مطالعه میکردم. مطالب لازم را اضافه میکردم. ضبط و سپس در شبکههای آپارات و اینستاگرام همرویش منتشر میکردم. در نیمه راه (شاید پس از انتشار درس ۱۱) متوجه شدم که روند انتشار تدریجی باعث آزار مخاطبان شده و مخاطبان مشتاق هستند که آموزش را یکباره بگذرانند تا بخشهای قبلی را فراموش نکنند. پس یک فرآیند مطالعه و ضبط فشرده در همرویش آغاز شد. و اکنون این آموزش به صورت یکجا از طریق سرورهای همرویش به شما تقدیم میشود. هدف ما آموزش شبکه عصبی از صفر بود تا حتی مخاطبان نوجوان، با سوادی در حد دوره اول متوسطه هم بتوانند استفاده کنند. بنابراین مفاهیم ریاضی و محاسباتی گاه تا حد بسیار پایهای شکافته شدهاند. لطفاً اگر مشکلی در بیان مفاهیم نظری مشاهده کردید در بخش نظرات آموزش اطلاع دهید تا بررسی کنیم.
رامون کاخال (Ramón y Cajal) زیستشناس در ۱۸۹۹ تصویری از ساختار شبکه عصبی مغز کبوتر را منتشر کرد. یک تحول بنیادی! کاخال اعلام کرد که توانایی یادگیری موجود زنده به دلیل اتصالهای تازهای است که نورونها (سلولهای عصبی) با هم ایجاد میکنند.
رامون کاخال - زیست شناس اسپانیایی اتصال نورونهای مغز را دلیل یادگیری دانست.
حدود نیم قرن بعد، فرانک روزنبلات (Frank Rosenblatt) روانشناس، یک مدل ریاضی ساده از عملکرد نورونها به نام پرسپترون (Perceptron) پیشنهاد کرد.
فرانک رونبلات ابداع کننده پرسپترون و سازنده نخستین شبکه عصبی سخت افزاری!
پس از کار روزنبلات، حدود سه دهه زمان برد تا یک شبکه عصبی مصنوعی چندلایه از اتصالات نورونی بتواند یادگیری را تجربه کند. الگوریتم پس-انتشار خطا که در این آموزش شبکه عصبی هم به صورت ژرف به آن پرداختیم این معجزه را محقق کرد. البته فرآیند تولید علم معمولاً گسسته نیست. هر کس چوب را از دیگری میگیرد و پیش میبرد. در این حوزه هم محققان بسیاری نقش داشتند که در اینجا مجال معرفی آنها را نداریم. برای اطلاع بیشتر توصیه میکنیم مجموعه مقالات تاریخچه شبکه عصبی (+) را بخوانید. امروز به لطف تلاش این محققان، ما شاهد شبکههای عصبی عمیق و متنوع هستیم. بینایی کامپیوتر را هم حتی با شبیهسازی اعصاب بینایی ممکن کردهایم. اکنون کامپیوترها حتی بهتر از انسانها میبینند و چهرهها را تشخیص میدهند. هوش مصنوعی و در قلب آن شبکههای عصبی مصنوعی به دست راست انسانها تبدیل میشوند. به یاد داشته باشید که همه این پیشرفتها را کسانی به بار آوردند که موضوع را عمیق بررسی میکردند. شما نیز با درک شبکههای عصبی به صورت عمیق شاید از کاشفان نسلهای بعدی شبکههای عصبی مصنوعی باشید.
ما از صفر شروع کردیم و سعی کردیم مفاهیم پیچیده را آسان بیان کنیم. در درس ۱ فهمیدیم که کامپیوترها لزوما هوشمند نیستند. درسهای ۲ تا ۵ آموختیم که اگر بنا باشد یک ماشین یادگیرنده داشته باشیم باید چه کنیم. ماشینی که بتوانید پیشبینی خطی انجام دهد. یا ماشینی که بتواند کلاسبندی دادهها بیاموزد. از درس ۶ وارد بحث اصلی شدیم. نخست با هم دیدیم که نورونها و ساختار شبکه عصبی موجود زنده چه نقشی در یادگیری دارد. سپس یک مدل ریاضی از نورون ساختیم. این یعنی یک نورون مصنوعی! در درسهای ۸ تا ۱۰ توانستیم نورونها را به هم وصل کنیم. شبکه ما اکنون میتوانست یک ورودی بگیرد و آن را به خروجی تبدیل کند. در اینجا نیاز به مبانی محاسبات ماتریسی داشتیم. به زبان ساده دیدیم که ماتریس چیست و چه نقشی در ساده شدن محاسبات شبکه عصبی دارد. از درس ۱۱ تا ۱۴ به خطای شبکه پرداختیم. از الگوریتم پس انتشار خطا (Back-propagation) گفتیم. اینکه اگر خروجی شبکه ما نسبت به خروجی مورد انتظار دارای خطا باشد، چگونه این خطا باید در شبکه تسهیم شود. یعنی سهم هر نورون و هر اتصال از خطای ایجاد شده چقدر است؟ درسهای ۱۵ تا ۲۱ به راهکار اصلاح وزن در شبکه عصبی پرداختیم. پس از آنکه هر نورون سهم خود را از خطا گردن گرفت، حالا اتصالهای خود را باید با چه وزنی تصحیح کند که خروجی بهتر شود؟ در اینجا به مبانی حسابان و مشتق نیاز داشتیم. توضیح دادیم. سپس به شرح الگوریتم گرادیان کاهشی (Gradient Descent) پرداختیم. روشی که سه دهه شبکههای عصبی منتظر آن در زمستان هوش مصنوعی در حال فراموشی بودند. سرانجام در درس ۲۲ حالا که ریاضیات شبکه را آموخته بودیم، به خودمان تلنگر زدیم که مغرور نشویم. ما به سادگی نمیتوانیم هر مسالهای و هر دادهای را به شبکه عصبی بدهیم و انتظار نتیجه خوب داشته باشیم. در این درس از اصول تعریف مساله و انتخاب متغیرها و مقدار دادهها و وزنها گفتیم. شما در پایان این دوره شما آماده ساخت هوشمندانه شبکههای عصبی هستید. ما در بستهای جداگانه به ساخت یک شبکه عصبی با کدنویسی از صفر میپردازیم. همچنین شما ممکن است بخواهید از سورس کدهای آماده استفاده کنید. یا شاید بخواهید با یک کتابخانه پایتون یا رابط کاربری در متلب اقدام به ساخت شبکه کنید. مهم این است که شما آگاهانه و با درک عمیق شبکه عصبی خواهید ساخت!
مشتق چیست و چه کاربردی دارد؟ -- مفهوم حسابان از صفر
گرادیان کاهشی چیست؟ — مفهوم و اجرا در توابع تک متغیره تا چند متغیره
ندارد ** پیش از این در همرویش فیلم شبکه عصبی کانولوشنی به زبان ساده منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل این آموزش بر روی لینک زیر کلیک کنید:
شبکه عصبی کانولوشن به زبان ساده
+ حال نوبت آن رسیده است که آموزش کدنویسی کانولوشن (+) که فصل دوم از آموزش بینایی کامپیوتر با تنسورفلو (+) است را ببینید.
فیلم آموزش شبکه عصبی از صفر | شبکه عصبی از صفر | شبکه عصبی به زبان ساده | شبکه عصبی مصنوعی | artificial neural networks | آموزش ساخت شبکه عصبی چندلایه | کتاب make your own neural networks | شبکه عصبی پیشخور | الگوریتم پس انتشار خطا | روش گرادیان کاهشی | مبانی نظری ANN | مفهوم نورون | ساختمان شبکه عصبی مصنوعی | نرمال سازی و استانداردسازی | طراحی و پردازش NN
درس ۰: معرفی دوره
درس ۱: کامپیوتر و هوش
درس ۲: ماشین پیش بینی ساده
درس ۳: تعریف کلاس بندی و شباهت آن با پیش بینی
درس ۴: ماشین کلاس بندی ساده
درس ۵: مساله های منطقی و نیاز به چند کلاسیفایر
درس ۶: نورونها: ماشین محاسبات طبیعت
درس ۷: مدلسازی ریاضی نورون و شبکه عصبی
درس ۸: محاسبات درونی شبکه عصبی
درس ۹: ماتریس و کاربرد آن در شبکه عصبی
درس ۱۰: محاسبه شبکه عصبی سه لایه و چندلایه
درس ۱۱: نقش وزنها در یادگیری شبکه
درس ۱۲: پس انتشار خطای چند نورون خروجی
درس ۱۳: پس انتشار خطا در شبکه چند لایه
درس ۱۴: پس انتشار خطا به کمک ریاضیات ماتریسی
درس ۱۵: روشهای اصلاح وزنهای شبکه
درس ۱۶: مقدمهای به حسابان و مشتق از صفر
درس ۱۷: گرادیان کاهشی چیست؟
درس ۱۸: انتخاب تابع خطا یا هزینه شبکه
درس ۱۹: رابطه اصلاح وزن شبکه عصبی
درس ۲۰: مثالی برای اصلاح وزنهای شبکه عصبی
درس ۲۱: معماری و خوراک دهی مناسب
درس ۲۰: پایانی برای آغاز!