از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه آموزشی، مدرس به مفهوم شبکههای عصبی و فرایند یادگیری آنها در مدلهای هوش مصنوعی میپردازد. به طور خاص، ساختار شبکه عصبی، وزنها، بایاس، اکتیویشن فانکشن، فرایند پیشرو (فورد پروپگیشن) و پسرو (بک پروپگیشن) توضیح داده میشود. همچنین، اهمیت آزمایش و تجربه در یادگیری عمیق مطرح میگردد و تأکید بر نیاز به آزمایش با پارامترهای مختلف مانند لرنت، اکتیویشن فانکشن و تعداد لایهها میکند.
نکات کلیدی
شبکه عصبی از نورونهایی تشکیل شده است که با استفاده از وزن، بایاس و اکتیویشن فانکشن به یادگیری میپردازند.
فرایند یادگیری شبکه عصبی شامل فورد پروپگیشن و بک پروپگیشن است که با استفاده از گرادیان و الگوریتم گرادیان نزولی انجام میشود.
یادگیری عمیق یک حوزه تجربی است و نیاز به آزمایش و تحلیل دارد.
تغییر پارامترهای مختلف مانند لرنت، اکتیویشن فانکشن و تعداد لایهها میتواند تأثیر زیادی بر نتیجه داشته باشد.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
در ساختار شبکه عصبی، نورونها با استفاده از وزن، بایاس و اکتیویشن فانکشن به یادگیری میپردازند.
فرایند یادگیری شبکه عصبی شامل فورد پروپگیشن (پیشرو) و بک پروپگیشن (پسرو) است که با استفاده از گرادیان و الگوریتم گرادیان نزولی انجام میشود.
یادگیری عمیق یک حوزه تجربی است و نیاز به آزمایش و تحلیل دارد تا نتایج بهتری به دست آید.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع، وارد دنیای Deep Learning (یادگیری عمیق) میشویم و مفاهیم اصلی، الگوریتمها و تکنیکهای مورد استفاده در ساخت مدلهای هوش مصنوعی را از پایه یاد میگیریم. این دوره برای افرادی طراحی شده که میخواهند درک عمیقی از شبکههای عصبی، معماریهای مدرن یادگیری عمیق و نحوه پیادهسازی مدلهای هوش مصنوعی با Python و PyTorch داشته باشند. در طول این دوره ابتدا با مفاهیم پایه Deep Learning آشنا میشویم و سپس قدمبهقدم به سمت ساخت و آموزش مدلهای واقعی حرکت میکنیم. در این دوره یاد میگیرید: 🔹 مفاهیم پایه یادگیری عمیق و نحوه عملکرد شبکههای عصبی 🔹 کار با Python، NumPy و PyTorch برای توسعه مدلهای Deep Learning 🔹 ساخت و آموزش Artificial Neural Networks (ANNs) 🔹 مفهوم Gradient Descent و نحوه بهینهسازی مدلها 🔹 جلوگیری از Overfitting با روشهایی مانند Regularization و Cross Validation 🔹 انتخاب Activation Function، Optimizer و Hyperparameterها 🔹 ساخت Feed Forward Neural Networks 🔹 ارزیابی عملکرد مدلهای یادگیری ماشین 🔹 کار با پروژههای عملی Deep Learning 🔹 آشنایی با Autoencoderها 🔹 اجرای مدلهای Deep Learning روی GPU 🔹 طراحی و پیادهسازی Convolutional Neural Networks (CNNs) 🔹 پروژههای مرتبط با تصاویر و Computer Vision 🔹 Transfer Learning و استفاده از مدلهای از پیش آموزشدیده 🔹 Neural Style Transfer 🔹 Generative Adversarial Networks (GANs) 🔹 Recurrent Neural Networks (RNNs) و مدلهای GRU/LSTM 🔹 مباحث اخلاقی و آینده Deep Learning همچنین در بخشهای ابتدایی دوره، مباحث ضروری Python شامل: ✅ ساختار دادهها در Python ✅ Indexing و Slicing ✅ Functions ✅ Flow Control ✅ کار با Text و Plotها بررسی میشود تا بتوانید بدون نیاز به پیشنیازهای پیچیده وارد دنیای Deep Learning شوید. این دوره مناسب چه کسانی است؟ این دوره برای: 🎯 دانشجویان و علاقهمندان هوش مصنوعی 🎯 برنامهنویسانی که میخواهند وارد حوزه Machine Learning و Deep Learning شوند 🎯 Data Scientistها و تحلیلگرانی که میخواهند مهارتهای خود را ارتقا دهند 🎯 افرادی که قصد ساخت پروژههای واقعی AI دارند مناسب است. پیشنیازهای دوره برای شروع این دوره بهتر است با موارد زیر آشنایی اولیه داشته باشید: ✔ مفاهیم پایه برنامهنویسی ✔ آشنایی مقدماتی با Python ✔ آشنایی اولیه با ریاضیات پایه اما تمام مباحث مورد نیاز در طول دوره مرور و توضیح داده خواهد شد. اگر به دنبال یادگیری Deep Learning به صورت اصولی و پروژهمحور هستید، این دوره میتواند مسیر شما را برای ورود به دنیای هوش مصنوعی هموار کند. 📌 برای مشاهده تمام جلسات این دوره، کانال Pista Academy را دنبال کنید. 🌐 وبسایت: https://pistaacademy.ir
هدف اینه که بچهها بفهمیم شبکه عصبی چیه. یه مدل دقیقاً چهجوری داره یاد میگیره؟
چرا دیپلینگ اصلاً مهمه و چگونه با آزمایش
کردن رفتار شبکههای عصبی رو بهتر بفهمیم
آیا واقعاً شبکههای عصبی مصنوعی شبیه مغز
انسان کار میکنن؟ میخوایم اینا رو یاد
بفهمیم.
خب بیایم پایین. اول ببینیم شبکه عصبی
مصنوعی چیه؟
آرتیفیشال نورال نتورک یا به اختصار بهش
میگن ا ان ان یعنی اصطلاح ای ان انو هر
جای دیدید منظور اینه یه مدل محاسباتی که
تلاش میکنه از روی دادهها
یه رابطهای بین ورودی و خروجی رو یاد
بگیره
برای مثال فرض کنید میخوایم یه مدلی
بسازیم که با دریافت اطلاعات یک خونه
قیمتو بتونه پیشبینی بکنه
ورودیا چیه مثلاً متراژ خونهست تعداد اتاق
سن ساختمون، منطقهای که اون خونه داخلشه
و تعداد طبقات.
خروجون قیمت خونهست.
پس ما ویژگیهای خونه رو میدیم به
شبکههای عصبی.
اون قیمتو برا ما تخمین بزنه.
مثلاً فرض کن یه خونه ۱۲۰ متری
س تا اتاق
۵ سال ساخت قیمتش مثلاً فرض کنید باشه ۸.
۲ودهم بیلیون مثلاً یه عددی
بعد که شما مثلاً یه سری خونههای دیگه هم
بهش بدید از این فیچرها و قیمت نهایی
میتونه تشخیص بده که یه الگویی رو پیدا
بکنه بین ورودی و خروجی
چرا حالا بهش اصلاً شبکههای عصبی میگن؟ شبکه عصبی از واحده کوچکتری به نام نورون
تشکیل میشه یا آرتیفشیال نورون.
چند تا نورون وقتی کنار هم قرار میگیرن
یک لایه رو تشکیل میدن. حالا ما تو فصل
بعدی راجع به این لایه صحبت خواهیم کرد.
وقتی لایهها کنار همدیگه قرار میگیرن یک
شبکه عصبی رو تشکیل میدن.
در اصل بچهها شما وقتی ورودی رو میدید به یه شبکههای عصبی این اطلاعات ورودی از
لایههای مختلف رد میشه و در نهایت تبدیل
میشه به اون خروجی ما.
شبکههای عصبی اجزای مختلفی دارن. اولیش ورودیه دادهایه که وارد شبکه میشه. میشه
همون فیچرهایی که الان صحبتشو کردیم
بعد وزن هر ورودیه بالاخره
همه و پارامترهای ورودی رو در دقون خروج
ما به یک اندازه اثر ندارن وزنی مختلف
دارن
مثلاً متراژ خونه اثر خیلی زیادی رو قیمت
خونه داره
تعداد اتاقم همچنین سن مثلاً اثر معکوس
داره پس اینا نباید به یه شکل دیده بشه
بایاس
میگه علاوه بر وزن هر نورون یه بایاسی هم
داره
در اصل میگه بایاس به مدل کمک میکنه
انعطاف بیشتری در پیدا کردن رابطه بین
دادهها داشته باشه
پول نهاش بچهها یه همچین چیزیه
ز برابرست با ایک د W1 به اضافه ایک د W۲
به اضافه ایک س دبلیو س و به اضافه بی بی
میشه اون بایا سه
ایک میشه وزنمون دبلی میشه فیچرامون
میگه یه مثالی فرض کنیم ایک ۱ ایک د هم سه وزنامونم که داریم بایاسمونم یکه
در اون صورت اون میشه د و شده حالا این د
و شدهم چیه تو فاصلهای بعدی میبینیم
بچهها
یه مفهوم دیگه داریم به نام اکتیویشن فانکشن که راجع بهش مفصل صحبت خواهیم کرد.
میگه خروجی اون لایه قب ق ق قبلی که محاسبه کردیم میگم د و شدهمه
وارد یه فانکشنی میشه بهش میگن اکتیویشن
فانکشن معروفترینشم مثلاً آی ال یو
مثلاً میگه که یکی از اکتیوش اینه که ماکسیموم صفر تا
اون مقداره مثلاً شما بهش ورودی ۵ بدید
دید ماکسیموم صفر و۵ میشه ۵ اما اگه بهش
منفی س۳ بدید میشه صفر حالا چرا اینجوریه
رو بعداً مفصل صحبت میکنم پس فرمولش اینه
اعداد منفی بدیم میشه صفر
اعداد مثبت بدیم میشن خودشون
چرا اکتیویشن فانکشن مهمه بدون اکتیویشن فانکشن شبکه عصبی عملاً فقط مجموعهای از
محاسبات خطی خواهد بود راست میگه دیگه هر
لایه محاسبه رو انجام میده میده لایه بعدی
میگه اکتیویشن فانکشنا باعث میشن که روابط غیرخطی و پیچیده رو بتونن درک بکنن بفهمن
مثلاً تشخیص چهره ترجمه تشخیص سرطان و کلی
چیز دیگه
شبکههای عصبی معمولاً س نوع لایه دارن لایه ورودی که میشه اطلاعات ورودی
لایههای میانی که بهش میگن هیدن لایر هر
تعدادی امکان امکان داره باشه
و لایه نهاییمون
سؤال دوم که پیش میاد اینه که شبکههای عصبی یا مدلهامون چهجوری یاد میگیرن یه
چیزی رو
از کجا میفهمن وزنشون باید چقدر باشه
میگه مدل در ابتدا تقریباً چیزی نمیدونه
هیچ اطلاعاتی نداره اولش
و وزنا رو یه مقدار اولیه در نظر میگیرم
کاملاًم رندم اصلاً دلایل خاصی نداره
بعد مدل بارها دادهها رو مشاهده میکنه یعنی ورودی خروجی رو میبینه
بر اساس اون میاد وزن رو تغییر میده و
میرسه به اون وزن ایدآلش
یعنی پیشبینی رو انجام میده محاسبه خطا رو محاسبه میکنه نسبت به مقدار واقعی بعد
میاد گردینت حساب میکنه بعد وزنا رو
آپدیت میکنه دوباره همین روندو تکرار
میکنه
برای اندازهگیری میزان اشتباه از لاست فانکشن استفاده میکنه بچهها
که میشه تفاوت بین مقدار واقعی و مقدار
پیشبینی شده.
مدلم تلاش میکنه که لاسو بیاره پایین.
هدف از ترینگ اینه که میزان لاس رو ما بتونیم کم بکنیم. یعنی ویتها رو انقدر
تغییر بدیم تا برسیم به حداقل خطای ممکن.
خب مفهوم بعدی که میخوام راجع صحبت کنیم بهش میگن فورد پروپگیشن.
داده از ورودی شبکه حرکت میکنن تا به
خروجی برسه. خب به این فرید میگن فوروارد
پروپگیشن یعنی داره به سمت جلو حرکت
میکنه یعنی ورودی میاد میره تو لایههای
مختلف و در نهایه تبدیل میشه به خروجی
مرحله دوم کلکولتد لاز در نهایت که خروجی ما مشخص شد مقدار
پیشبینی ما مشخص شد با مقدار واقعی
مقایسه میشه
مرحله سوم
یه بک پروپگیشنم ما داریم
شبکه بعد از اینکه میزان خطا رو محاسبه کرد باید بفهمه که کدوم ویتا باعث این
اشتباه شده برای این کار میده از بک
پروپگیشن استفاده میکنه یعنی یه بار دیگه
برمیگرده مسیرو
بک پروکشن گرادیان هر ویتو محاسبه میکنه یعنی مشخص میکنه که اگر این ویت کمی
تغییر بکنه
لاسما چقدر تغییر میکنه
حالا باید ویتا در جهتی تغییر بکنن که لاس کاهش پیدا بکنه. برای این کار میان از
الگوریتم گریدین دیسنت استفاده میکنن.
فروشم اینه وزن جدید برابر است با وزن قدید منهای یه پارامتری به نام لینون ریت
ضربدر گردینت. اینا رو بچهها الان دارم
یه کلی توضیح میدما. ما بعداً جلوتر بریم
ریز واردشون میشیم عجله نکنید
میگه لرنینگ مشخص میکنه که مدل در هر مرحله چقدر مجازه که ویتا رو تغییر بده
اگه خیلی بزرگ باشه
مدل ممکنه که جواب مناسبو رد بکنه اگرم
خیلی کم باشه
چی میشه وزنمون خیلی دیر تغییر میکنه تو
این فرمول نگاه کنید وقتی این عدد صفر
باشه عملاً مقدار جدید و مقدار قدیم خیلی
تفاوتی نمیکنه.
یعنی هرچی این کمتر باشه فرایند یادگیری و
تغییر ویتا کند جلو میره. هرچقدرم بیشتر
باشه خب سریعتر ویتا تغییر میکنه و
عملاً انگار داره از اون آموزشه فرار
میکنه.
اگر مدل تمام ترنینگ دیتاها رو یک بار مشاهده کنه میشه یه اپوک مثلاً فرض کنید
شما ۱۰۰۰ تا سمپل داره
و شبکه کل داده رو ۲۰ مرتبه ببیند میشه ۲۰
تا اپک یعنی ۲۰ تا ترینینگ انجام شده پس
به هر بار آیند ترینینگ که کل دیتا رو یک
بار زیر رو بکنیم میگن یه اپک
هرچی تعداد اپکها بیشتر بشه طبیعتاً تعداد لاسمون مقدار لاسمون میاد پایین چون هی
داره آموزش میبینه هی داره وزن رو تغییر
میده تا برسه به مقدار ایدا
البته یه نکتهای رو یادمون نره
لزوماً اپو که بیشتر به معنی لاس کمتر
نیست یه مواقع اورفیت اتفاق میفته
میگه کل فرند یادگیری شبکه عصبی رو میشه اینجوری خلاصه کرد اول یه وزن اولیه میده
بعد دیتا رو میده به نتورک
پیشبینی انجام میشه بعد لاس محاسبه میشه
گردینت محاسبه میشه ویتال آپدیت میشن و
دوباره این مرحله تکرار میشه
خب ما فریند یادگیری شبکهها عصبی رو فهمیدیم چهجوریه کلیتشو جزئیاتشو فصلا
بعدی صحبت میکنیم
میگه که یکی از جنبههای مهم دیپلینگ این نیست که کاربردون فقط یه چیزی شبیه چت جی
بیتی باشه و یا تولید تصویر
دیپلینگ به یک ابزار مهم در پژوهشهای
علمی تبدیل شده.
فرض کنید دانشمندا میلیونها نمونه داده
دارند.
ممکن است انسان نتواند رابطه موجود بین
این دادهها رو ببینه
اما شبکه عصبی میتواند الگوهای بسیار
پیچیده رو استخراج بکند. داده.
[صدای خرناس]
یکی از مهمترین زمینهها و کاربرد در حوزه پزشکی بحث مدیکال ایمیجینگه یا
تصویبرداری. پزشکی
مدل دیپلی میتونن عکسهای امآرآی و سیتی
اسکن و اکسر و تصاویر چشم و تصاویر بافت
بدن رو به راحتی تحلیل بکنن
و البته با سرعت بالا تو زیستشناسی هم کاربرد داره
تو نجوم که خب مشخصاً عکسی آسمونو خیلی راحت میتونه تحلیل بکنه تو
فیزیک هم
برای تحلیل دادههای بسیار پیچیده استفاده
میشه مثلاً آزمایشهای ذرات
و حالا تو حوزههای مختلف ازش استفاده
میشه
میگه چه تغییری دیپلینگ توی روش علمی ایجاد کرده میگه تو روش سنتی
اول یه فرضیهای وجود داره بعد برای اون
فرضیه یه سری آزمایشات انجام میشه بعد
دیتا میاد آنالیز میشه یعنی دیتای خروجی
آرزماینشات میاد آنالیز میشه اما ماشینگ
امکان رویکرد دیگری رو فراهم کرده حجم
زیادی دیتا رو میدی به مدل
پترنا رو پیدا میکنه و در حقیقت
فرضیههای جدید رو جنریت میکنه یعنی
اصلاً نیاز از اول یه فرضیهای باشه حتی
میگه که شهر عصبی ممکنه بتونه پیشبینی رو بسیار خوب انجام بده اما لزوماً به معنی
فهم علمی نیست.
مثلاً مدل ممکنه بتونه بیماری رو از یک
تصویر با دقت بالا تشخیص بده
ولی اینکه چه دقیقاً این الگوی زیستی باعث
بیماری شده رو نمیدونه. این یه سؤال
دیگهست.
بنابراین میان پیشبینی و توضیح یه تفاوتی
باید قائل باشه.
خب یکی از روشهای مهم یادگیری دیپلنی این
نیست که فقط فرمول و کد رو ببینیم.
باید آزمایش کنیم.
دیپرینی یک حوزه بسیار تجربیه بچهها
مثلاً این سؤا رو همیشه باید بپرسیم اگه
تعداد آیا رو تغییر بدیم چی میشه اگر
لرنینگ ریتمونو تغییر بدیم چی میشه
اکتیویشن فانکشن رو تغییر چی میشه و و
سؤلای زیادی که وجود داره یه آب بخورم
[گلویش را صاف میکند] ببخشید
خب میگم داره یه مثالی میزنه که الان خیلی مسئلهای نیست
خب
مثلاً با لرینتهای مختلف شما بیاید مدلتون رو بررسی بکنید مثلاً اکتیویشن فانکشن
مختلف دارین
میگه اگه شما در یک آزمایشتون بیاد پارامتر مخ زیادی رو تغییر بدید اونوقت
نمیتونید بفهمید کدوم پارامتر اثر گذاشته
روی در حقیقت خروجیتون متوجه این موضوع
نمیشید
خب بیسین چیه؟ میگه قبل از انجام آزمایش باید یک مدل اولیه ما داشته باشیم طبیعیه
مثلاً میگیم که مدل اولیهمون د تا لایه
داشته باشه از اکتیویشن فانکشن آی ال یو
استفاده بکنه لیدینگ ریتمونم بزنه رو ۱
هزارم و بج سایزمونم ۳۲ یعنی ۳۲ تا دیتا
در هر لحظه داده بشه بهش
این میشه اصلاً به اسلاین اولیهم خب
بریم بیایم جلسات بریم سراغ مبحث بعدی. فعلاً خداحافظ.
تغییر پارامترهای مختلف مانند لرنت، اکتیویشن فانکشن و تعداد لایهها میتواند تأثیر زیادی بر نتیجه داشته باشد.