از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس به معرفی شبکههای عصبی (ANN) و پرسپترون به عنوان سادهترین شکل یک نورون مصنوعی میپردازد. پرسپترون شامل ورودیها، وزنها، بایاس و تابع فعالسازی است. همچنین، مفهوم لایههای مختلف شبکه عصبی (ورودی، میانی، خروجی) و نحوه محاسبه خروجی پرسپترون به طور کلی توضیح داده میشود. مفهوم پیشبینی، محاسبه خطا و تابع ارور (مثلاً میانگین مربعات خطا) به عنوان ابزاری برای بهبود عملکرد شبکه مطرح میشود.
نکات کلیدی
پرسپترون شامل ورودیها، وزنها، بایاس و تابع فعالسازی است.
شبکههای عصبی شامل لایههای ورودی، میانی و خروجی هستند.
تابع ارور مانند میانگین مربعات خطا به بهبود عملکرد شبکه کمک میکند.
هدف اصلی شبکههای عصبی کاهش خطا در پیشبینی است.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
پرسپترون به عنوان سادهترین شکل یک نورون مصنوعی، ورودیها، وزنها، بایاس و تابع فعالسازی را در بر میگیرد و خروجی آن را محاسبه میکند.
شبکههای عصبی شامل لایههای ورودی، میانی و خروجی هستند.
تابع ارور مانند میانگین مربعات خطا برای محاسبه خطا استفاده میشود.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع، وارد دنیای 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
مخفف اشرتفیشیاله
انش نوراله اون یکی انشم نتورکه شبکه عصبی
مصنوعی
میخوایم راجع بهش صحبت بکنیم.
اولین مفهومی که میخوایم صحبت کنیم بهش
میگن پرسپترون.
پرسپترون میگه سادهترین شکل یک نورون
مصنوعیه.
یک پرسپتورون میگه چند ورودی دریافت میکنه؟
هر ورودی هم یک وزن خاصی داره. سپس
ورودیها در هر وزنی ضرب میشه و در اینا
هر کدومشو با همدیگه جمع میشه. در نهایت
یک مقدار بایاس اضافه میشه
بعد اینو میدم به یه اکتیویشن فانکشنی
میشه مقدار خروجی ما
من یه شکلی براتون بکشم کار میزنم مطلب براتون جا بیفته
مثلاً اینجا نگاه کنید فرض کنید من یک لایه از شبکه عصبی رو میخوام اینجا الان
بکشم براتون
این ورودیاهای منه مثلاً فرض کنید ۳ تا ورودی دارم
فرض کنید چ۴ار تا ورودی دارم هر ورودی گفتم یه وزنی داره بذارید وزنو من با خط
بکشم اینجا
وض کنید هر ورودی دی
در نهایت به ما خروجی رو میده حالا اگر خروجیمون اون خروجی چیزی که
مدنظر بود نبود باید بیایم این ویتها رو
عوض بکنیم چیزی که ج تو جلسه قبلی راجع
بهش صحبت کردیم مفصل توی گرید ان دیسنت
میایم این وزنا رو تغییر میدیم دوباره خطا
رو محاسبه میکنیم و این فریند انقدر
ادامه میدیم تا جوابو دربیاریم
دقیقاً چیزی که اینجا کشیدم رو داره به یه
شکل دیگه نشون میده
بعد حالا اگه ما تعداد بذارید این مثال من یه مثال
واقعیتر بزنم مثلاً اینجا نگاه کنید
بذارید
یه عکس از اینترنت من بیارم
اینو نگاه کنید این الان یه نمونه از پرسپترونه ما یه سری ورودی دادیم ۸ و پ و
منفی ۴ یه سری وزنم به هر کدومشون دادیم
بعد اومدیم یه اکتیویشن فانکشن اینجا
گذاشتیم مثلاً اکتی اکتیویشن فانکشنی که
اینجا هست داره جمع میکنه هیچ کار خاصی
نمیکنه یعنی ۸ ضربدر ی و سه ددهم ۵ ضربدر
ی و سه ددهم و منفی ۴ ضربدر ی و سه ددهم
بعد جمع این سه تا رو حساب میکنه مثلاً
این میشه سه خروجیمون
همین سادگی این میشه یک پرسپتر
بریم جلوتر بچهها اینا رو من خیلی ساده ازش رد میشم مثلاً اکتیویشن فانکشن چون
جلوتر باهاش کار داریما میخوام الان خیلی
ساده بگم که پیچیده نباشه بریم جلوتر
مطمئنم جلوتر تعبیریم خیلی قشنگ براتون جا
بیفته.
معماری ای ان شبکهها بچهها به این سادگی
طبیعتاً نیستن که فقط یک لایه داشته باشن.
خب لایههای مختلف این وسط درگیرن. یعنی
وقتی ورودی میاد میره تو لایههای مختلف
هر لایه هم وزنی خودشو داره و در نهایت
میرسه به خروجی. یعنی لزماً ما با یک
لایه طرف نیستیم. ما سه نوع لایه اصلی هم
داریم. هیدن لایرها میشه اون لایههای
میانی. لایه ورودی و لایه خروجی
محاسباتم بچهها توی لایه هیدن لایر انجام میشه تو اون لایه میانی انجام میشه
خب ببینین میگه که میگه فرض کنید د تا فیچر داریم ما و میخوایم دادهها رو به
دو گروه تقسیم کنیم بذارید من اینو با یه
مثال خیلی ترتمیز بگم به نظرم
بیایم اینجا
بذار من یه وب سایت آنلاین پیدا کنم میخوام یه چیزی نشونتون بدم
خب یه ذره سایت پیدا نکردم ولی بذار
همینجا دستی میکشم فرض کنید من یه
نموداری دارم خب از
یه دیتایی دارم از میزان مطالعه یک سری
دانشآموز و میزان ساعت خوابشون مثلاً فرض
کنید که این محور مثلاً خوابشونه
و مثلاً بذار اینجا بزم اسلیپ
اینم مثلاً مقداری که درس خوندنه یه سری نمودار یه سری داده من دارم
مثلاً فرض کن یه همچین چیزی
خب یه چیز داده دارم مثلاً نشون میده که هر
دانشآموز چند تا چند ساعت درس خونده و
چند ساعت خوابیده بعد نتیجه امتحانشم دارم
که آیا موفق بوده یا موفق نبوده فعل شده
فرض کنید اون مشکیا اونایین که فعل شدن
اون قرمزا اونایین که پاس کردن الان یه
رابطهای که بین اینا وجود داره اینه که
هرچی میزان خواب و درس خوندن بیشتر باشه
احتمال قبولی بیشتره حالا شما میتونید
حتی یه خط بکشید اینا رو از همدیگه جدا
بکنید اینجوری
و همینو مفهومو بیاید اینجا فرض کنید من د تا ورودی دارم میزان مطالعه و میزان خواب
اینو میدمش به یه شبکه عصبی بعد خروجی به
من یه صفر و ۱ میده صفر یعنی پاس نشده یک
یعنی پاس شده بعد میام دیتاشو با دیتای
واقعی که خودم دارم مقایسه میکنم اگه
اوکی بود که هیچی اگه نبود باید برم وزنا
رو عوض بکنم اون وزنایی که تو اون
لایههای شبکه عصبی وجود داره
اون چیزی که باعث میشه شما بخواید این کلاسا رو از همدیگه جدا کنین اون گروهها
رو از هم جدا کنید اگر دو بعدی باشه میشه
یه خط مثالی که الان من زدم
اگر سه بعدی باشه یعنی ما س۳ تا فیچر
داشته باشیم میشه یک صفحه
و طبیعتاً هرچی تعداد فیچرا بیشتر بشه
دیگه تبدیل میشه به یک هایپر پلن
بریم ببینیم بعدی چیه. مبحث بعدیمون بحث فورد پروپگیشنه. یعنی حرکت به سمت جلو.
یعنی عبور اطلاعات از اینپوت به اوتپوت.
ورودی رو میدیم لایههای میانی بعد خروجی
رو دریافت میکنیم.
اینم فرمولشه که حالا مثالشو با همدیگه دیدیم الان
این وزن لایه اوله این وزن لایه دومه تو لایه اول د ضربدر وزن خودش میشه میشه
نیم به اضافه سه ضربدر
۱ به اضافه سه ضربدر دودهم این لایه اول
نتیجه میشه ی و۶دهم تو لایه دوم
د ضربدر وزن لایه دوم میشه میشه ۳۲ ضربدر
۳ هم ضربدر وزن لایه بعدی میشه ۷دهم میشه
۲ و۷دهم پس ما دو از د تا لایه ۲ تا مقدار
داریم ۱ و ششدهم د و۷دهم
بعد این خروجی میره تو لایه بعدی
[صدای خرناس] بعد میگه که بعد بعد از اینکه این مرحله تموم شد یعنی لایههای
میانیو رد کرد اونوقت یک خروجی ما داریم
یک پیشبینی داریم یک مقدار اصل در حقیقت
واقعی داریم یا پیشبینی شده داریم هرچقدر
اختلاف این بیشتر باشه طبیعتاً مقدار لاس
و خطای ما بیشتره باید بریم وزنامونو
تغییر بدیم یعنی باید بیایم تو لایههای
میانی این وزنامونو تغییر بدیم که
خروجیمون نزدیک بشه
لاستی میزان اشتباه مدل برای یک نمونه یا
مجموعهای از نمونهها
یکی از معروفترین لاست فانکشنها مین اسکوار اروره یعنی میاد مقدار پیشبینی رو
از مقدار واقعی کم میکنه به توان د
میرسونه همه رو جمع میکنه تقسیم بر
تعداد میکنه این میشه مین اسکور ارور فرض
کنید ما چند تا خروجی خواهیم داشت تو این
مثالشو نگاه کنید ما س۳ تا خروجی نیاز
داشتیم ۳ تا مقدار پیشبینی میاد اینا رو
از این کم میکنه بعد به توان ۲ میرسونه
بعد جمع میکنه تقسیم تعداد میگیم مین
اسکلرول ۵ و خوردهای هرچی این کمتر باشه
طبیعتاً بهتره یعنی میزار خطای ما کمتر
بوده
خب هدف ای ان ان چیه؟ اینکه طبیعتاً میزان
خطا رو کمتر بکنه. هرچی بتونه میزان خطا
رو کمتر بکنیم خروجون به خروجی واقعی
نزدیکتره.
پس دوستان توی طراحی شبکههای عصبی هدف نهایی اینه که ما بتونیم وزنهای موجود در
هر لایه رو به نحوی اینو پیادهسازی بکنیم
که خروجیمون میزان ارور خطهایی که داره
حداقل باشه.
بریم جلسه بعدی بیایم راجع به بک پروپگیشن
صحبت کنیم.