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