یادگیری عمیق چیست؟
در یک تعریف کلی، یادگیری عمیق، همان یادگیری ماشین است، به طوری که در سطوح مختلف نمایش یا انتزاع (abstraction) یادگیری را برای ماشین انجام میدهد. با این کار، ماشین درک بهتری از واقعیت وجودی داده ها پیدا کرده و میتواند الگوهای مختلف را شناسایی کند. مدل های یادگیری عمیق به شکلی نه چندان روشن از الگوهای پردازش اطلاعاتی و ارتباطی در سیستم های عصبی زیستی الهام گرفته شده اند اما تفاوت های مختلفی در ویژگی های ساختاری و عملکردی با مغزهای زیستی (به ویژه مغز انسان) دارند، که باعث عدم همخوانی آنها با شواهد علوم اعصاب میشود. Deep Learning یا یادگیری عمیق به دنبال هوش مصنوعی پا به عرصه حضور گذاشته است. این یادگیری به یاری هوش مصنوعی آمده است تا به شکلی طبیعی تر به نیاز ها و خواست های بشر واکنش نشان دهد. هوش مصنوعی در جهت یاری رساندن به بشر امروزی روی کار آمده است. سالیان درازی از روی کار آمدن هوش مصنوعی نمی گذرد. اما در طی همین زمان کوتاه بشر در زمینه های متفاوتی از این تکنولوژی بهره برده است. یادگیری عمیق، دسته ای از الگوریتم های یادگیری ماشین است که:
- از آبشاری از لایه های چندگانهِ واحدهای پردازش غیرخطی برای استخراج و تبدیل ویژگی استفاده میکنند. هر لایه تالی، از خروجی لایه قبل به عنوان ورودی استفاده میکند.
- به شکلی نظارت شده (مثل طبقه بندی) و یا بدون نظارت (مثل تحلیل الگو) یادگیری میکنند.
- لایه های چندگانه ای از نمایش را یادگیری میکنند که متناظر با سطوح مختلفی از انتزاعات هستند؛ این سطوح سلسله ای از مفاهیم را تشکیل میدهند.
یادگیری عمیق یک نوع شبکه عصبی بوده که فراداده (Metadata) را به عنوان یک ورودی جذب میکند و دادهها ورودی را از طریق برخی لایههای تبدیل غیرخطی پردازش و محاسبه کرده و به عنوان دادههای خروجی برمیگرداند. این الگوریتم دارای یک ویژگی منحصربفرد بوده که آن ویژگی استخراج خودکار محسوب میشود. این بدین معنی است که الگوریتم ویژگیهای موردنیاز و مرتبط را جهت حل مشکل درک میکند. این موجب کاهش وظیفه برنامه نویسان شده تا به انتخاب صریح ویژگیها بپردازند. این الگوریتم حتی برای حل چالش ها تحت نظارت، بدون نظارت به کار گرفته می شود. در یادگیری عمیق هر لایه پنهان مسئول آموزش مجموعهای از ویژگیهای منحصربفرد بوده که براساس خروجی لایه پیشین عمل می کند. با افزوده شدن بر تعداد لایه های پنهان، پیچیدگی دادهها بیشتر شده و مشکلات را افزایش میدهد. همچنین این نوع یادگیری سلسله مراتبی، ویژگیهای سطح پایین را به ویژگیهای سطح بالا تبدیل میکند. با چنین کاری الگوریتم یادگیری عمیق مورد استفاده قرار گرفته و به حل مشکلات پیچیده که لایه های غیرخطی متعددی را دربرمی گیرد، می پردازد. در یادگیری عمیق، هر سطح یاد میگیرد که داده های ورودی خود را به یک نمایش اندکی مجردتر و ترکیبی تر تبدیل کند. در یک کاربرد شناسایی تصویر، ورودی خام میتواند ماتریسی از پیکسل ها باشد؛ اولین لایه نمایشی ممکن است پیکسل ها را مجرد کند و لبه ها را کدگذاری کند؛ لایه دوم ممکن است چینش لبه ها را بسازد و کدگذاری کند؛ لایه سوم ممکن است بینی و چشم ها را کدگذاری کند؛ و لایه چهارم ممکن است تشخیص دهد که تصویر، شامل یک چهره است. چیزی که اهمیت دارد، این است که یک پروسه یادگیری عمیق، به خودی خود میتواند یاد بگیرد که کدام ویژگی ها بطور بهینه در کدام سطح قرار دهد. در سال های اخیر، یادگیری عمیق، تحول بزرگی را در یادگیری ماشین و هوش مصنوعی ایجاد کرده است. از سال ۲۰۱۲ تا کنون، تمامی رتبه های برتر چالش شناسایی بصری ImageNet، که به جام جهانی بینایی ماشین معروف است، از شبکه های عصبی عمیق استفاده کرده اند. همچنین، تمام روش های برتر در رقابت های دسته بندی تصاویر اعداد دست نویس MNIST (با ۲۱ خطا در ۱۰,۰۰۰ تصویر) و تصاویر طبیعی CIFAR (با خطای کمتر از ۵%) نیز به مدل های شبکه عصبی عمیق تعلق دارد. از سال ۲۰۱۲ به بعد، شرکت های بزرگ نرم افزاری و سخت افزاری مانند Google, Microsoft, NVIDIA نیز بخش مهمی از فعالیت های پژوهشی و تجاری خود را به یادگیری عمیق اختصاص داده اند. به دلیل وجود لایه های متفاوت و سطح های متفاوتی از اطلاعات از واژه عمیق استفاده می شود. شبکه عصبی از دو یا نهایتا سه لایه تشکیل شده است. در حالی که شبکه عصبی عمیق از بیش از ۱۵۰ لایه تشکیل شده است. یادگیری عمیق به گونه ای طراحی شده است که قادر باشد بدون دستور العمل هایی که توسط اپراتور صادر می شود، اطلاعات مورد نیاز خود را از میان حجم وسیعی از اطلاعات استخراج کرده و مورد استفاده قرار دهد.
کتابخانه پایتورج چیست؟
PyTorch، یک بسته محاسبات علمی مبتنی بر پایتون است که از توان پردازشی پردازندههای گرافیکی بهره میگیرد. این کتابخانه یکی از پلتفرمهای تحقیق جامع در زمینه یادگیری عمیق محسوب میشود که انعطافپذیری و سرعت قابل قبولی را ارائه میکند. PyTorch به دلیل دو قابلیت سطح بالای منحصربهفرد خود معروف شده که شامل محاسبات تانسور با بهرهگیری از توان شتابدهنده پردازنده گرافیکی و ساخت شبکههای عصبی عمیق در یک سیستم Autograd است. کتابخانههای پایتون زیادی وجود دارند که چگونگی عملکرد و کار با یادگیری عمیق و هوش مصنوعی را تغییر میدهند و این یکی از این کتابخانهها است. یکی از عوامل کلیدی موفقیت PyTorch این است که کاملا بر پایه پایتون آمادهسازی شده و هر کسی میتواند بهسادگی مدلهایی از شبکه عصبی را با آن تولید کند. این کتابخانه در مقايسه با سایر رقبای خود قدمت کمتری دارد، اما بهسرعت در حال پیشرفت است. PyTorch ساختار داده اصلی یا همان Tensor را فراهم میکند. برخی از دلایل ترجیح داده شدن پایتورچ نسبت به دیگر کتابخانههای یادگیری عمیق در ادامه بیان شدهاند.
- برخلاف دیگر کتابخانهها، مانند «تنسورفلو» (TensorFlow) که در آن کاربر بایدکل گراف کامپیوتری را پیش از اجرای مدل تعریف کند، پایتورچ امکان تعریف گراف را به صورت «پویا» نیز فراهم میکند.
- پایتورچ، یک ابزار خوب برای پژوهشهای یادگیری عمیق است و انعطافپذیری و سرعت بالا را تامین میکند.
مزیت های کتابخانه قدرتمند پایتورچ؟
- آسان نسبت به اغلب فریمورک ها
- تحلیل کد آن هم ساده
- قابلیت استفاده از چند GPU
- ماژولاریتی بالا
- انعطاف پذیری بالا
- پشتیبانی همزمان از چندین backend
- قابلیت ایجاد مدل های ترتیبی و تابعی
- دیتاست های آماده
- مدل های اماده زیاد
- اجرای همزمان روی چند GPU و چند سیستم
- …
هدف از این دوره آموزشی؟
هدف از این دوره آموزشی، معرفی کامل یادگیری عمیق و کتابخانه قدرتمند پایتورچ است. ابتدا یادگیری عمیق به صورت کامل بحث می شود و بعد الگوریتم های یادگیری عمیق با استفاده از کتابخانه قدرتمند پایتورچ پیاده سازی می شوند. در آموزش تمامی قابلیت های کتابخانه پایتورچ گفته شده است و کامل پیاده سازی می شوند. همچنین کدهای پیاده سازی در هر مرحله خط به خط آموزش داده می شوند. در این دوره به صورت کامل کار با داده های یک بعدی، دو بعدی و سه بعدی براساس کتابخانه پایتورچ آموزش داده می شود. همچنین انواع مختلف شبکه های عمیق (کانولوشنی – بازگشتی – مولد – خودرمزنگار) کامل توضیح داده شده و با پایتورچ پیاده سازی می شوند. در آخر یک پروژه تشخیص کامل پلاک خودرو با پایتورچ پیاده سازی می شود. جزئیات این دوره آموزشی در زیر لیست شده است. بدون شک یکی از بهترین دوره های یادگیری عمیق با پایتورچ است که با زبان فارسی و روان توضیح داده شده است. امیدواریم که این آموزش از “بیگ لرن” هم مثل سایر آموزش ها مورد تایید و رضایت شما مخاطبان گرامی قرار گیرد.
بخش صفر: مرور کامل روی پایتون
نصب و راه اندازی پایتون و محیط مجازی در ویندوز
نصب و راه اندازی پایتون و محیط مجازی در لینوکس
کار با عملگرها و متغیرها در پایتون
کار با توابع و کلاس ها در پایتون
کار با ماژول ها و کتابخانه ها در پایتون
کار با انواع ساختمان دادها در پایتون
کار با زمان و تاریخ در پایتون
مدیریت استثنائات در پایتون
شی گرایی و ارث بری در پایتون
کار با دیتابیس MySQL در پایتون
برنامه نویسی چندنخی در پایتون
برنامه نویسی چندنخی در پایتون
دریافت اطلاعات از کاربر با ماژول در پایتون
بخش اول: یاگیری ماشین و یادگیری عمیق
معرفی هوش مصنوعی ویدئو
معرفی یادگیری ماشین ویدئو
معرفی یادگیری عمیق ویدئو
مزایا و معایب یادگیری ماشین و یادگیری عمیق نسبت به هم ویدئو
شروع جذابیت در یادگیری عمیق ویدئو
شبکه های عمیق روی Image-NET ویدئو
ویژگی های لایه ای عمیق ویدئو
چالش های یادگیری عمیق ویدئو
تفاوت شبکه های عمیق با یادگیری عمیق ویدئو
بخش دوم : یادگیری عمیق و شبکه های عصبی
معرفی شبکه پرسپترون عصبی ساده ویدئو
توابع فعال ساز مشهور در شبکه عصبی ویدئو
هر نورون یک جداساز ویدئو
شبکه عصبی کم عمق و عمیق ویدئو
یادگیری در شبکه عصبی ویدئو
بهینه سازی تابع خطا شبکه ویدئو
بهینه سازی تابع خطا شبکه با روش گرادیان نزولی ویدئو
قاعده پس انتشار خطا برای بروزرسانی وزن های شبکه ویدئو
مشکل بیش برازش و کم برازش در شبکه عصبی ویدئو
مقابله با بیش برازش و کم برازش در شبکه عصبی عمیق ویدئو
عملکرد Dropout در یادگیری عمیق ویدئو
عملکرد Early stoping در یادگیری عمیق ویدئو
عملکرد Vanishing gradient در یادگیری عمیق ویدئو
عملکرد Exploding gradient در یادگیری عمیق ویدئو
عملکرد Regularization در یادگیری عمیق ویدئو
عملکرد Regularization در یادگیری عمیق
تولید داده مصنوعی با یادگیری عمیق ویدئو
بخش سوم: انواع شبکه های عمیق (نطارت شده و بدون نظارت)
معرفی ساختار شبکه عمیق کانولوشنی ویدئو
معرفی شبکه های عمیق کانولوشنی مشهور ویدئو
عملیات کانولوشن در CNN ویدئو
عملیات Pooling در CNN ویدئو
عملیات Batch Normalization در CNN ویدئو
کاربردهای شبکه های کانولوشنی عمیق ویدئو
شبکه های عمیق رمزنگار AE ویدئو
معرفی ساختار شبکه های عمیق رمزنگار AE ویدئو
کاربرد شبکه های رمزنگار ویدئو
شبکه های عمیق بازگشتی RNN ویدئو
شبکه های عمیق بازگشتی LSTM ویدئو
کاربرد شبکه های بازگشتی عمیق ویدئو
مدل های مختلف شبکه های بازگشتی عمیق ویدئو
شبکه های عمیق مولد GAN ویدئو
کاربرد شبکه های مولد ویدئو
بخش چهارم: معرفی کامل کتابخانه pytorch
معرفی کتابخانه های یادگیری عمیق پایتون ویدئو
معرفی محبوبیت فریمورک ها یادگیری عمیق ویدئو
مقایسه تنسورفلو و پایتورچ ویدئو
مزیت های pytorch نسبت به سایر فریمورک ها ویدئو
مولفه های اصلی پایتورچ ویدئو
مراحل کدنویسی در pytorch ویدئو
خواندن دیتاست در پایتورچ ویدئو
آموزش و ساخت مدل در پایتورچ ویدئو
ماژول های پایتورچ ویدئو
بخش پنجم: پیاده سازی عملی با کتابخانه pytorch
نصب کامل پایتون روی ویندوز و ایجاد محیط مجازی برای پایتون ویدئو
نصب کامل پایتون روی لینوکس و ایجاد محیط مجازی برای پایتون ویدئو
استفاده از google colab برای پایتون ویدئو
کار با تنسورهای یک بعدی در پایتورچ ویدئو
کار با تنسورهای دو بعدی در پایتورچ ویدئو
کار با تنسورهای سه بعدی در پایتورچ ویدئو
کار با تنسورهای چهار بعدی در پایتورچ ویدئو
ابعاد مختلف ورودی ها در پایتورچ ویدئو
وارد نمودن ماژول های مختلف pytorch برای ساخت شبکه عمیق ویدئو
نحوه دریافت ورودی (تصویر - داده - ...) در pytorch ویدئو
نحوه تغییر شکل و ابعاد داده در pytorch ویدئو
پیکربندی مدل در pytorch ویدئو
نحوه آموزش مدل با pytorch ویدئو
پیش بینی با مدل آموزش دیده در pytorch ویدئو
ارزیابی مدل آموزش دیده با pytorch ویدئو
نحوه اجرای یک مدل عمیق روی GPU با pytorch ویدئو
خواندن (ساختار- وزن ها) مدل آماده با pytorch ویدئو
گرفتن خروجی یک لایه در pytorch ویدئو
حذف یک لایه از مدل در pytorch ویدئو
کار با مدل های Sequential در pytorch ویدئو
استفاده از مدل های عمیق آماده در pytorch ویدئو
استفاده از دیتاست های آماده در pytorch ویدئو
آموزش کامل کار با لایه های شبکه در pytorch ویدئو
آموزش کامل کار با لایه های کانولوشنی در pytorch ویدئو
آموزش کامل کار با لایه های pooling در pytorch ویدئو
آموزش کامل کار با لایه های بازگشتی در pytorch ویدئو
کار با مدل های چند ورودی - چند خروجی در pytorch ویدئو
پیش پردازش تصاویر در pytorch ویدئو
تبدیلات خطی روی داده ها در pytorch ویدئو
معرفی و استفاده از loss functions در pytorch ویدئو
معرفی و استفاده از activations ها در pytorch ویدئو
معرفی و استفاده از optimizers ها در pytorch ویدئو
نحوه کار با initializers در pytorch ویدئو
نحوه کار با constraints در pytorch ویدئو
طبقه بندی تصاویر رنگی با pytorch ویدئو
دسته بندی داده های آماری با یادگیری عمیق در pytorch ویدئو
بخش ششم: تشخیص پلاک خودرو با یادگیری عمیق در پایتورچ
خواندن تصاویر پلاک و نمایش آنها
خواندن لیبل های هر پلاک و نمایش آنها از فایل xml
ایجاد یک custom class برای دریافت داده های (تصویری و لیبل)
هم مقیاس کردن تصویر و bounding box ها
ایجاد یک DataLoader مشخص برای بچ بندی داده
تقسیم بندی داده ها به آموزش و تست
ایجاد مدل عمیق با کلاس مشخص پایتورچ
آموزش مدل Mobile Net باناظر عمیق
آموزش شبکه عمیق روی دیتاست مشخص
تست مدل روی داده های دلخواه
بخش هفتم: پیش بینی سری زمانی با پایتورچ (قیمت در بازارهای مالی)
خواندن داده های قیمتی و تقسیم بندی
ایجاد یک DataLoader مشخص برای بچ بندی داده
تقسیم بندی داده ها به آموزش و تست
ایجاد مدل عمیق با کلاس مشخص پایتورچ
آموزش شبکه عمیق روی دیتاست سری زمانی
تست مدل روی داده های دلخواه
موارد مرتبط
قیمت 160,000 تومان
اساتید بیگ لرن
دکتری کامپیوتردکترای مهندسی کامپیوتر (گرایش هوش مصنوعی و رباتیکز) هستم. عمده فعالیت من در حوزه یادگیری عمیق، علم داده، پردازش تصویر و پردازش متن با زبان های برنامه نویسی پایتون و جاوا است.
شقایق
دوره خیلی خوبی بود. من راضی بودم
کشاورز
تشکر ویژه از آقای دکتر بخاطر این دوره جذاب. منتظر دوره های بعدی هستیم
پارسا
من این دوره را خریداری کردم. ساده و قابل فهم و خوب گفته شده بود. فقط کاش پردازش متن هم می گفتید
mohamad
خیلی دوره خوبی بود و برای پایان نامه ام خیلی کمک کرد. حتی آموزش خارجی هم انقدر کامل نبود