از Pista Academy حمایت کنید
این اولین درس دوره است.
درس بعدی
آموزش جامع یادگیری عمیق از صفر تا پروژه | شبکههای عصبی، CNN، RNN و هوش مصنوعی - 8
←خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس مفهوم شبکههای عصبی فولی کانکتد (Fully Connected Network) و فید فوروارد (Feed Forward) را به طور مختصر توضیح میدهد. همچنین، مثالی از استفاده از دیتاست مینس (MNIST) برای کلاسیفیکیشن اعداد دو حروفه ارائه شده است. در ادامه، نحوه پردازش تصاویر به صورت ورودی یک بعدی، نرمالیزاسیون دادهها و تأثیر تغییرات در وزنها پس از ترینینگ مورد بحث قرار میگیرد. همچنین، اهمیت نرمالیزاسیون در کاهش گری اسکل و بهبود عملکرد مدل بررسی شده است.
نکات کلیدی
شبکههای عصبی فولی کانکتد در آن هر نورون در یک لایه به تمام نورونهای لایه قبلی متصل است.
نرمالیزاسیون دادهها به بهبود عملکرد مدل و کاهش گری اسکل کمک میکند.
پردازش تصاویر به صورت ورودی یک بعدی میتواند در مدلسازی شبکههای عصبی استفاده شود.
تغییرات در وزنها پس از ترینینگ بهبود عملکرد مدل را به همراه دارد.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
شبکههای عصبی فولی کانکتد در آن هر نورون در یک لایه به تمام نورونهای لایه قبلی متصل است.
نرمالیزاسیون دادهها به بهبود عملکرد مدل و کاهش گری اسکل کمک میکند.
تصاویر میتوانند به صورت ورودی یک بعدی پردازش شوند.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع، وارد دنیای 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
به این صحبت بکنیم اصلا یعنی چی؟
میگه توی فولی کانکتد نتورک هر نورون در
یک لایه به تمام نورونهای لایه قبلی
متصله. اینو تصویرشم با همدیگه دیدیم.
بذارید الان یه گوگل بکنم.
نگاه کنید هر نورون
که تو یه لایه قرار داره مثلاً اینو در
نظر بگیرید به تمام نورونهای لایه قبلیش
متصله به این میگن فولی کانکتد نورال
نتورک
اسمشم معلومه
میگه فرض کنید ورودی ما چار تا فیچر دارن
و هیدن لایر شامل سه تا نورونه یعنی اینو
فرض شما ورودیه ما یه دونه لایه ب بعدیش
که میشه هیدن لایرهامون یه دونه داریم ۳
تا نورون داره
هر هیدن نورون تمام چهار ورودی رو دریافت
میکنه چون به چار تاش وصله با یه وزن
دریافت میکنه و یه بایاس
همین اتفاق برای ا۲ و ا۳ هم رخ میده میگه توی پایتور شما بخواید یه فولی کانکت
لایر درست بکنید باید با این دستور درست
بکنید
یه همچین چیزی مثلاً یعنی ۱ این یعنی ۷۸۴ تا ورودی وصل میشن به ۱۲۸ و نورون
اما کلمه فیت فوروارد یعنی چی؟ یعنی اطلاعات فقط در یک جهت ارسال میشه از
ورودی به سمت خروجی هیچ لوپ یا فیدبکی
وجود نداریم
یعنی خروجی لایه بعدی دوباره به لایه قبلی
هیچوقت بر نمیگرده
ما توی شبکههایی مثل آر ان ان و السدی ام و جیآریو یه ارتباط بازگشتی هم داشتیم ولی
اینجا اینو نداریم
میگه فرض کنید ما ما یه تصویری رو به عنوان ورودی بدیم به این اف ما الان قراره
یه دیتاست خیلی مهمی کار بکنیم معروفی کار
کنیم به نام مینس دیتاست
این سرچ کنم اینو ایناش خود این یه دیتاست خیلی معروفیه به اسم ام
مینست حالا میگم من بهش
تصاویر مربوط به یه سری اعداد دو حروفه
البته فکر کنم همش عدده با قیافههای
مختلف میبینید با فونتهای مختلف اینا چش
اینو به عنوان ورودی قراره بهش بدیم و این
قراره دیتکت بکنه که مثلاً ما یک چیزی
بعداً بهش دادیم بر اساس اینو بتونه بفهمه
که چه عددیه
اندازه تصویرا ۲۸ در ۲۸ پیکسله یعنی میشه ۷۸۴ تا
ورودی ما قراره بدیم یعنی هر اون اون یه
دونه پیکسلش میشه یه دونه ورودی
د تا هیدن لایر داریم یه ۱۲۸ تایی یه ۶۴
تایی و لایه آخرم لایه خروجیمونه که ۱۰ تا
چرا ۱۰ تا خروجی چون ۱۰ تا رقم داریم صفر
تا ۹
میگه اف ان اف ان درکی از ساختار دو بعدی تصویر نداره یعنی اگه شما یه تصویر ۲۸ در
۲۸ بهش بدید
اونو تبدیل تبدیل میکنه به ۷۸۴ تا عدد.
میگه دتاست مینس شامل یکی از دتاست آموزشی دیپلنینگه. شامل تصاویر دستنویس اعداد صفر
تا ۹ه. هر تصویر ۲۸ در ۲۸ه
و هر پیکسل میگه شدتی بین صفر تا ۲۵ داره. صفر یعنی تار به سمت مشکی میره ۲۵۵ به سمت
روشنی میره که در حقیقت تش این اینو تشکیل
میده
اینم اینجا گفت میگه دیتا ست مینست کلاسیک شامل ۶۰ هزار
تا عکس برای ترینینگه و ۱۰ هزار تا برای
تست پس تقریباً ۷۰ هزار تا ما عکس داریم
برای هر تصویری یک لیول داریم مثلاً ایمیج ۷ یا ایمیج سه. پس اینجا مسئلهمون چیه؟
بحث کلاسیفیکیشن مولتی کلاسم هست. ۹ تا
کلاس داریم صفر تا ۹ ببخشید ۱۰ تا کلاس
داریم.
حالا میخوایم یه دونه اف ام بسازیم ورودی رو بدیم ترینش بکنیم و ازش تست بگیریم
ببینیم میتونه تشخیص بده اعداد داخل
تصویرو یا نه
۷۸۴ تا اینپوت داریم این د تا لایه
میانیمونه یا هیدن لایرونه اینم خروجمونه
خب بذار اول یه بار با هم بریم بعد کدشو با هم میبینیم
این لایه اولیهمونه
بعد این لایه میانی دوم اینم اکتیویشن
فانکشنه بعد این لایه میانی بعدی و اینم
لایه آخری هر ورودی هر لایه میشه خروج
لایه قبل
خب بریم جلوتر از این لاس فانکشن استفاده کرده اینجا
اپتیمایزرمونم گذاشته
بعد اولوشن این کد اولوشنمونه من خیلی وارد کدا نمیشم چون اصلاً واقعاً
اونقدر مسئله عادی نیست. مفهومشو میخوام
براتون جا بیفته. مفهوم دیپلینگ.
خب تو این چج میگه تصویرای مینسک رو باینلایز میکنیم. یعنی به جای پیکسلای
مثل این فقط داشته باشیم صف یک.
اینجا میگه که چرا نازماش مهمه آیا شدت دقیق پیکسل اهمیت داره یا فقط شکل کلی رقم
کافیه ممکن مدل همچنان اکریسی خوبی داشته
باشد چون شیپ کلی رقم حفظ شده
ما دفعه قبل اون بالا مثلاً میگما میومدیم شدت هر کدوم از اینا رو ذخیره میکردیم
مثلاً اونجاهایی که نزدیک صفر بود و مثلاً
اون روشن میشد و شدتشو میذاشتیم و یه
عددی اختصاص میدادیم مثلاً یه همچین چیزی
مثلاً این یعنی شدتش به سمت سیاهیه ولی
این به سمت سفیدیه الان اومدیم اینو صفر و
یکش کردیم گفتیم بالای نیمو بگیر یک یعنی
سفید پایین نیمو بگیر صفر یعنی سیاه یه
حالهای از اون تصویرو این دفعه یاد
میگیر ازش
خب حالا اینجا میگن اگه اکیروسیمون افت بکنه
اگه زیاد افت بکنه یعنی گری اسکل
اینفورمیشن خیلی نقش مهمی داشته یعنی اون
شدت سیاهی و سفیدی نقش مهمی داشته
میگه توی میس معمولاً پیکسلا صفر تا ۲۵۵ن اولین نرمالزیشن میتونه اینجوری باشه که
اون اون ایکس رو یعنی شدتو تقسیم بر ۲۵۵
کنیم پس صفر باشه میشه صفر ۲۵۵ باشه میشه
ی اون وسطم هر طیف رنگی دیگه باشه یه عدد
دیگه میگیره مثل این چیزی که اینجا
میبینید
میتونیم استانداردم بکنیم علاوه بر اسکر کردن
چرا نورمالیزیشن مهمه اینجا چون گردینت پایدار میشه ترندینگ سریعتر اپتیمایزیشن
راحتتر.
خب میخوایم ببینیم ویتا وزنهای بین لایهها قبل ترینینگ چه تغییری کرده.
میگه قبل از ترینگ ما معمولاً ویتا رو به
صورت رندم انتخاب میکنیم چون دیدی هنوز
نداریم
و توضیح اونا ممکنه نزدیک صفر باشه. بعد
از ترینینگ ویتا طبیعتاً تغییر کرده.
ممکنه توضیحشو گستردهتر، نامتقارنتر
و هر وی دارای دارای ویتهای بزرگتری بشه
از نسبت به اون رندمی که اول گذاشتیم.
مثلاً با این دستور شما میتونید ویت بیفور لایر و افت افتر هر لایه رو بتونید
ببینید.
بعد میتونید هیستوگرامو بکشید.
الان بچهها کل کد شما میان میزنن با هم میبینیما فقطم مرحله مرحله میرم جلو
خب بذار من اون چیزای مهمی که هستو بگم بعد بریم سراغ کدش
خب بذارید کل کدو با همدیگه بریم بگیریم و توی سیستممون اجراش بکنیم
اینجا مقایسه اپتیمایزرهای مختلفه کاری نداریم
میگه همه اپتیمایزر لزما نباید با یک لرنین ریت مقایسه بشه لینیشون نباید ثابت
باشه
آها میگه توی اسکربل میس میان جای پیکسلا رو به صورت ثابت شاپر میکنن یعنی به هم
میریزن
دیگه تصویره بچهها برای انسانم قابل تشخیص نیست چون همه چیش به هم ریخته دیگه
عدد هت مثلاً اون عدد هفته نیست میگه اما
اف ام ممکنه همچنان بتونه کلاسیفیکیشنو
انجام بده چرا
چون اف ام به ساختار مکانی پیکسلا اهمیت
نمیده برای اف ام فقط ورودی یک وکتوره یه
رشتهای از اعداد داده
اگر جای اینا رو عوض بکنیم شبکه میتونه مپینگ جدیدو یاد بگیره چون شافلی که کردیم
برای تمام تصاویر یکسانه میتونه اون الگو
یاد بگیرن
میگه اگر مثلاً به جای یه شاپل کردن بیایم پیکسلا رو یه ذره
جابهجا بکنیم ذره جلو عقب بکنیم
اف ول دچار مشکل میشه
چرا اینجوری که مینویسه خیلی بد میشه میگه که
هر اف ان
میگه ممکنه یاد بگیره که مثلاً این پیکسلا برای رقم مهمه اما اگه وقتی شیفت پیدا
بکنه یه ذره جابهجا بشه اونا شاید شده
باشه این
برای اف ان این فیچرا متفاوته
یعنی اف نسبت به جابهجا شدن حساسه اما
نسبت به شافل حساس نیست. نکته جالبیه.
بریم اینو پیادهسازی بکنیم. کدشو با هم بزنیم که خروجی رو ببینیم. خب.
خب بریم اینو پیادهسازی بکنیم بچهها کل کدش رو اول چیزایی که لازم داریمو نصب
بکنیم
کتابخانههایی که لازم داریمو ایمپورت بکنیم تو مرحله دوم
توی رندم سیت خیلی اینجا مسئلهمون نیست ولی حالا میذاریم بهش اشکال نداره.
اینجا مشخص میکنیم که آیا جی پی یو استفاده کنیم یا سی پی یو. من رو سیستمم
فکر نکنم جی پی یو داشته باشم ولی حالا من
اینو میذارم خودش سوئیچ میکنه. اگه جی
پی یو داشت جی پیو رو استفاده میکنه اگه
نبود میره سراغ سی پی یو.
خب این
یه دونه سمپل از ایمیجا رو بررسی میکنیم بهمون نشون بده چهجوریه
خب من بذار صبر کنیم نصب بشه خب این قسمت اولش نصب شد. من اینو اصلاً
برش دارم دیگه
اینو رانش میکنم ایمپورتو
خب من خطا رو به خودش دادم میگه که معمولاً به این معنی نیست که فایل این
وجود نداره برای اینکه وابستگی پایت هنگام
لود شدن در ویندوز دچار مشکل شده
دلیلشم نصب ناقص پایتکشه
حالا میگه اول بیا اینو اجرا کن میگم چشمش
بذار من سلولنگ بالا بردارم
احتمالاً یه چیز شبیه میبینید بله یعنی استفاده میشه که به خود مشکل ند بعد این
رو امتحان کنید
باشه
خیلی مراحلش طولانیه به نظرم اگه بیم تو گوگل کلم خیلی بهتر باشه
آره بیایم تو گوگل کلب بزنیم بهتره بذار
اصلاً برام گوگل کلب یه کار بکنیم بریم
جلسه بعدی بیایم همین کدو ببریم روی گوگل
کلب که از جی پیو استفاده بکنیم این
مشکلاتو نداشته باشیم فعلاً خداحافظ