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