یادگیری عمیق چیست؟
در یک تعریف کلی، یادگیری عمیق، همان یادگیری ماشین است، به طوری که در سطوح مختلف نمایش یا انتزاع (abstraction) یادگیری را برای ماشین انجام میدهد. با این کار، ماشین درک بهتری از واقعیت وجودی داده ها پیدا کرده و میتواند الگوهای مختلف را شناسایی کند. مدل های یادگیری عمیق به شکلی نه چندان روشن از الگوهای پردازش اطلاعاتی و ارتباطی در سیستم های عصبی زیستی الهام گرفته شده اند اما تفاوت های مختلفی در ویژگی های ساختاری و عملکردی با مغزهای زیستی (به ویژه مغز انسان) دارند، که باعث عدم همخوانی آنها با شواهد علوم اعصاب میشود. Deep Learning یا یادگیری عمیق به دنبال هوش مصنوعی پا به عرصه حضور گذاشته است. این یادگیری به یاری هوش مصنوعی آمده است تا به شکلی طبیعی تر به نیاز ها و خواست های بشر واکنش نشان دهد. هوش مصنوعی در جهت یاری رساندن به بشر امروزی روی کار آمده است. سالیان درازی از روی کار آمدن هوش مصنوعی نمی گذرد. اما در طی همین زمان کوتاه بشر در زمینه های متفاوتی از این تکنولوژی بهره برده است. یادگیری عمیق، دسته ای از الگوریتم های یادگیری ماشین است که:
- از آبشاری از لایه های چندگانهِ واحدهای پردازش غیرخطی برای استخراج و تبدیل ویژگی استفاده میکنند. هر لایه تالی، از خروجی لایه قبل به عنوان ورودی استفاده میکند.
- به شکلی نظارت شده (مثل طبقه بندی) و یا بدون نظارت (مثل تحلیل الگو) یادگیری میکنند.
- لایه های چندگانه ای از نمایش را یادگیری میکنند که متناظر با سطوح مختلفی از انتزاعات هستند؛ این سطوح سلسله ای از مفاهیم را تشکیل میدهند.
یادگیری عمیق یک نوع شبکه عصبی بوده که فراداده (Metadata) را به عنوان یک ورودی جذب میکند و دادهها ورودی را از طریق برخی لایههای تبدیل غیرخطی پردازش و محاسبه کرده و به عنوان دادههای خروجی برمیگرداند. این الگوریتم دارای یک ویژگی منحصربفرد بوده که آن ویژگی استخراج خودکار محسوب میشود. این بدین معنی است که الگوریتم ویژگیهای موردنیاز و مرتبط را جهت حل مشکل درک میکند. این موجب کاهش وظیفه برنامه نویسان شده تا به انتخاب صریح ویژگیها بپردازند. این الگوریتم حتی برای حل چالش ها تحت نظارت، بدون نظارت به کار گرفته می شود. در یادگیری عمیق هر لایه پنهان مسئول آموزش مجموعهای از ویژگیهای منحصربفرد بوده که براساس خروجی لایه پیشین عمل می کند. با افزوده شدن بر تعداد لایه های پنهان، پیچیدگی دادهها بیشتر شده و مشکلات را افزایش میدهد. همچنین این نوع یادگیری سلسله مراتبی، ویژگیهای سطح پایین را به ویژگیهای سطح بالا تبدیل میکند. با چنین کاری الگوریتم یادگیری عمیق مورد استفاده قرار گرفته و به حل مشکلات پیچیده که لایه های غیرخطی متعددی را دربرمی گیرد، می پردازد. در یادگیری عمیق، هر سطح یاد میگیرد که داده های ورودی خود را به یک نمایش اندکی مجردتر و ترکیبی تر تبدیل کند. در یک کاربرد شناسایی تصویر، ورودی خام میتواند ماتریسی از پیکسل ها باشد؛ اولین لایه نمایشی ممکن است پیکسل ها را مجرد کند و لبه ها را کدگذاری کند؛ لایه دوم ممکن است چینش لبه ها را بسازد و کدگذاری کند؛ لایه سوم ممکن است بینی و چشم ها را کدگذاری کند؛ و لایه چهارم ممکن است تشخیص دهد که تصویر، شامل یک چهره است. چیزی که اهمیت دارد، این است که یک پروسه یادگیری عمیق، به خودی خود میتواند یاد بگیرد که کدام ویژگی ها بطور بهینه در کدام سطح قرار دهد. در سال های اخیر، یادگیری عمیق، تحول بزرگی را در یادگیری ماشین و هوش مصنوعی ایجاد کرده است. از سال ۲۰۱۲ تا کنون، تمامی رتبه های برتر چالش شناسایی بصری ImageNet، که به جام جهانی بینایی ماشین معروف است، از شبکه های عصبی عمیق استفاده کرده اند. همچنین، تمام روش های برتر در رقابت های دسته بندی تصاویر اعداد دست نویس MNIST (با ۲۱ خطا در ۱۰,۰۰۰ تصویر) و تصاویر طبیعی CIFAR (با خطای کمتر از ۵%) نیز به مدل های شبکه عصبی عمیق تعلق دارد. از سال ۲۰۱۲ به بعد، شرکت های بزرگ نرم افزاری و سخت افزاری مانند Google, Microsoft, NVIDIA نیز بخش مهمی از فعالیت های پژوهشی و تجاری خود را به یادگیری عمیق اختصاص داده اند. به دلیل وجود لایه های متفاوت و سطح های متفاوتی از اطلاعات از واژه عمیق استفاده می شود. شبکه عصبی از دو یا نهایتا سه لایه تشکیل شده است. در حالی که شبکه عصبی عمیق از بیش از ۱۵۰ لایه تشکیل شده است. یادگیری عمیق به گونه ای طراحی شده است که قادر باشد بدون دستور العمل هایی که توسط اپراتور صادر می شود، اطلاعات مورد نیاز خود را از میان حجم وسیعی از اطلاعات استخراج کرده و مورد استفاده قرار دهد.
کتابخانه Keras چیست؟
کراس کتابخانه ای است که با آن و تنها با چند خط کد میتوانیم برای ساختن شبکههای عصبی استفاده کنیم. البته کراس همه این کارها را خودش به تنهایی انجام نمیدهد، در حقیقت کراس یک فرانتاند (front-end) برای فریمورک های یادگیری عمیق تنسرفلو، CNTK و (مرحوم) تیانو است و آنها پشت شبکههای عصبی را میسازند و آموزش میدهند و برای همین به آن یک چهارچوب سطح بالا می گوییم چون کراس پیچیدگی استفاده از این کتابخانهها را تا حد خوبی حذف میکند. یک ویژگی خاص دیگر کراس این است که محدود به یک کتابخانه یادگیری عمیق نیست و همانطور که گفتیم میتوانیم از تنسرفلو، CNTK و یا تیانو برای محاسبات پشت پرده آن استفاده کنیم. Keras یک کتابخانه یادگیری عمیق برای آموزش سریع و کارآمد مدل های یادگیری عمیق است و همچنین می تواند با Tensorflow و Theano کار کند. از آنجا که سبک وزن و بسیار آسان برای استفاده است، Keras در یک زمان بسیار کم محبوبیت زیادی به دست آورده است. ساده ترین کتابخانه در این حوزه را میتوان ار پایتون کراس (Keras) نام برد. کراس از رنج گسترده ایی از شبکه های عصبی پشتیبانی میکند و ساختن نمونه های اولیه را بسیار ساده میکند. و از همه مهمتر تحلیل کد آن هم بسیار ساده است. البته به عنوان یکی از نقاط قوت آن میتوان به این نکته اشاره کرد که این کتابخانه از چند GPU پشتیبانی میکند. Keras یک شبکه عصبی با سطح بالا است که به زبان Python نوشته شده و قادر به اجرا در بالای TensorFlow ، CNTK یا Theano است. این برنامه با تمرکز بر فعال کردن سریع آزمایش انجام شد. توانایی رفتن از ایده به نتیجه با حداقل تاخیر ممکن برای انجام تحقیقات خوب مهم است. Keras بهترین اقدامات را برای کاهش بار محسباتی دنبال می کند: API های سازگار و ساده را ارائه می دهد ، تعداد اقدامات کاربر مورد نیاز برای موارد استفاده معمولی را به حداقل می رساند و بازخورد واضح و عملی را در مورد خطای کاربر فراهم می کند. به طور خاص ، لایه های عصبی ، توابع هزینه ، بهینه سازها ، برنامه های اولیه سازی ، توابع فعال سازی و برنامه های منظم سازی ، همه ماژول های مستقل هستند که می توانید برای ایجاد مدل های جدید در کراس ترکیب کنید. Keras با زبانهای یادگیری عمیق سطح پایین تر (به ویژه TensorFlow) ادغام می شود ، این امکان را برای شما فراهم می کند تا بتوانید هر چیزی را که می توانستید به زبان پایه ساخته باشید ، پیاده سازی کنید. به طور خاص ، به عنوان tf.keras ، API Keras یکپارچه با گردش کار TensorFlow شما ادغام می شود.
مزیت های کتابخانه قدرتمند Keras ؟
- آسان نسبت به اغلب فریمورک ها
- تحلیل کد آن هم ساده
- قابلیت استفاده از چند GPU
- ماژولاریتی بالا
- انعطاف پذیری بالا
- پشتیبانی همزمان از چندین backend
- قابلیت ایجاد مدل های ترتیبی و تابعی
- دیتاست های آماده
- مدل های اماده زیاد
- اجرای همزمان روی چند GPU و چند سیستم
- …
هدف از این دوره آموزشی؟
هدف از این دوره آموزشی، معرفی کامل یادگیری عمیق و کتابخانه قدرتمند keras می باشد. ابتدا یادگیری عمیق به صورت کامل بحث می شود و بعد الگوریتم های یادگیری عمیق با استفاده از کتابخانه قدرتمند کراس پیاده سازی می شوند. در آموزش تمامی قابلیت های کتابخانه keras گفته شده است و کامل پیاده سازی می شوند. همچنین کدهای پیاده سازی در هر مرحله خط به خط توضیح داده می شوند. در این دوره به صورت کامل کار با داده های یک بعدی، دو بعدی و سه بعدی براساس کتابخانه کراس آموزش داده می شود. همچنین انواع مختلف شبکه های عمیق (کانولوشنی – بازگشتی – مولد – خودرمزنگار) کامل توضیح داده شده و با کراس پیاده سازی می شوند. جزئیات این دوره آموزشی در زیر لیست شده است. بدون شک یکی از بهترین دوره های یادگیری عمیق با keras می باشد که با زبان فارسی بصورت روان توضیح داده شده است. امیدواریم که این آموزش از “بیگ لرن” هم مثل سایر آموزش ها مورد تایید و رضایت شما مخاطبان گرامی قرار گیرد.
مشاهده پیش نمایش اول این دوره در آپارات
مشاهده پیش نمایش دوم این دوره در آپارات
برای دیدن محتوای هر بخش روی آن کلیک کنید
بخش صفر: مرور کامل روی پایتون
نصب و راه اندازی پایتون و محیط مجازی در ویندوز
نصب و راه اندازی پایتون و محیط مجازی در لینوکس
کار با عملگرها و متغیرها در پایتون
کار با توابع و کلاس ها در پایتون
کار با ماژول ها و کتابخانه ها در پایتون
کار با انواع ساختمان دادها در پایتون
کار با زمان و تاریخ در پایتون
مدیریت استثنائات در پایتون
شی گرایی و ارث بری در پایتون
کار با دیتابیس MySQL در پایتون
برنامه نویسی چندنخی در پایتون
برنامه نویسی چندنخی در پایتون
دریافت اطلاعات از کاربر با ماژول در پایتون
بخش اول: یاگیری ماشین و یادگیری عمیق
معرفی هوش مصنوعی ویدئو
معرفی یادگیری ماشین ویدئو
معرفی یادگیری عمیق ویدئو
مزایا و معایب یادگیری ماشین و یادگیری عمیق نسبت به هم ویدئو
شروع جذابیت در یادگیری عمیق ویدئو
شبکه های عمیق روی Image-NET ویدئو
ویژگی های لایه ای عمیق ویدئو
چالش های یادگیری عمیق ویدئو
تفاوت شبکه های عمیق با یادگیری عمیق ویدئو
بخش دوم : یادگیری عمیق و شبکه های عصبی
معرفی شبکه پرسپترون عصبی ساده ویدئو
توابع فعال ساز مشهور در شبکه عصبی ویدئو
هر نورون یک جداساز ویدئو
شبکه عصبی کم عمق و عمیق ویدئو
یادگیری در شبکه عصبی ویدئو
بهینه سازی تابع خطا شبکه ویدئو
بهینه سازی تابع خطا شبکه با روش گرادیان نزولی ویدئو
قاعده پس انتشار خطا برای بروزرسانی وزن های شبکه ویدئو
مشکل بیش برازش و کم برازش در شبکه عصبی ویدئو
مقابله با بیش برازش و کم برازش در شبکه عصبی عمیق ویدئو
عملکرد Dropout در یادگیری عمیق ویدئو
عملکرد Early stoping در یادگیری عمیق ویدئو
عملکرد Vanishing gradient در یادگیری عمیق ویدئو
عملکرد Exploding gradient در یادگیری عمیق ویدئو
عملکرد Regularization در یادگیری عمیق ویدئو
عملکرد Regularization در یادگیری عمیق
تولید داده مصنوعی با یادگیری عمیق ویدئو
بخش سوم: انواع شبکه های عمیق (نطارت شده و بدون نظارت)
ویژگی های تنسورفلو ویدئو
مقایسه تنسورفلو و پای تورچ ویدئو
اجزای تنسورفلو و گراف های محاسباتی ویدئو
عملگرها و متغیرها در تنسورفلو ویدئو
معرفی شبکه های عمیق کانولوشنی مشهور ویدئو
عملیات کانولوشن در CNN ویدئو
عملیات Pooling در CNN ویدئو
عملیات Batch Normalization در CNN ویدئو
کاربردهای شبکه های کانولوشنی عمیق ویدئو
شبکه های عمیق رمزنگار AE ویدئو
معرفی ساختار شبکه های عمیق رمزنگار AE ویدئو
کاربرد شبکه های رمزنگار ویدئو
شبکه های عمیق بازگشتی RNN ویدئو
شبکه های عمیق بازگشتی LSTM ویدئو
کاربرد شبکه های بازگشتی عمیق ویدئو
مدل های مختلف شبکه های بازگشتی عمیق ویدئو
شبکه های عمیق مولد GAN ویدئو
کاربرد شبکه های مولد ویدئو
بخش چهارم: معرفی کامل کتابخانه keras
معرفی کتابخانه های یادگیری عمیق پایتون ویدئو
معرفی محبوبیت فریمورک ها یادگیری عمیق ویدئو
مزیت های Keras نسبت به سایر فریمورک ها ویدئو
Backend های کتابخانه keras ویدئو
مدل های کراس (Keras Sequential - Keras functional) ویدئو
مراحل کدنویسی در keras ویدئو
ابعاد داده در کراس (keras) ویدئو
بخش پنجم: پیاده سازی عملی با کتابخانه keras
نصب کامل پایتون روی ویندوز و ایجاد محیط مجازی برای پایتون ویدئو
نصب کامل پایتون روی لینوکس و ایجاد محیط مجازی برای پایتون ویدئو
استفاده از google colab برای پایتون ویدئو
کار با داده های یک بعدی در keras ویدئو
کار با داده های 2 بعدی در keras ویدئو
کار با داده های 3 بعدی در keras ویدئو
ابعاد مختلف ورودی ها در کراس ویدئو
وارد نمودن ماژول های مختلف keras برای ساخت شبکه عمیق ویدئو
نحوه دریافت ورودی (تصویر - داده - ...) در keras ویدئو
نحوه تغییر شکل و ابعاد داده در keras ویدئو
پیکربندی مدل در keras ویدئو
نحوه آموزش مدل با keras ویدئو
پیش بینی با مدل آموزش دیده در keras ویدئو
ارزیابی مدل آموزش دیده با keras ویدئو
تولید داده مصنوعی با keras ویدئو
نحوه اجرای یک مدل عمیق روی چند GPU با keras ویدئو
نحوه اجرای یک مدل عمیق روی چند دستگاه با keras ویدئو
ذخیره (ساختار- وزن ها) مدل با keras ویدئو
خواندن (ساختار- وزن ها) مدل ذخیره شده با keras ویدئو
گرفتن خروجی یک لایه در keras ویدئو
حذف یک لایه از مدل در keras ویدئو
کار با مدل های Sequential در keras ویدئو
کار با مدل های functional در keras ویدئو
استفاده از مدل های عمیق آماده در keras ویدئو
استفاده از دیتاست های آماده در keras ویدئو
آموزش کامل کار با لایه های شبکه در keras ویدئو
آموزش کامل کار با لایه های کانولوشنی در keras ویدئو
آموزش کامل کار با لایه های pooling در keras ویدئو
آموزش کامل کار با لایه های بازگشتی در keras ویدئو
آموزش کامل کار با لایه های Merge در keras ویدئو
آموزش کامل کار با لایه های noise در keras ویدئو
کار با مدل های چند ورودی - چند خروجی در keras ویدئو
پیش پردازش تصاویر در keras ویدئو
پردازش متن با keras ویدئو
تبدیلات خطی روی داده ها در keras ویدئو
معرفی و استفاده از loss functions در keras ویدئو
معرفی و استفاده از metric ها در keras ویدئو
معرفی و استفاده از activations ها در keras ویدئو
معرفی و استفاده از optimizers ها در keras ویدئو
آموز ش کامل نحوه کار با callbacks در keras ویدئو
نحوه کار با initializers در keras ویدئو
نحوه کار با regularizers در keras ویدئو
نحوه کار با constraints در keras ویدئو
نحوه آموزش مدل با keras ویدئو
بخش ششم: مثال های عملی یادگیری عمیق با پایتون در keras
طبقه بندی داده های 1 بعدی با شبکه عمیق کانولوشنی در keras ویدئو
طبقه بندی تصاویر خاکستری با شبکه عمیق کانولوشنی در keras ویدئو
طبقه بندی تصاویر رنگی با شبکه عمیق کانولوشنی در keras ویدئو
تولید داده مصنوعی با شبکه عمیق کانولوشنی در keras ویدئو
طبقه بندی تصاویر با شبکه عمیق LSTM در keras ویدئو
طبقه بندی احساسات (متن) با شبکه عمیق LSTM در keras ویدئو
تولید داده با شبکه عمیق GAN در keras ویدئو
رفع نویز تصاویر با شبکه عمیق خودرمزنگار در keras ویدئو
بخش هفتم: شبکه های عمیق پرکاربرد
معرفی شبکه عمیق LeNet ویدئو
معرفی کامل شبکه عمیق AlexNet ویدئو
معرفی کامل شبکه عمیق VGGNet ویدئو
معرفی کامل شبکه عمیق GoogleNet ویدئو
معرفی کامل شبکه عمیق InceptionNet ویدئو
معرفی کامل شبکه عمیق ResNet ویدئو
معرفی کامل شبکه عمیق SqueezeNet ویدئو
معرفی کامل شبکه عمیق MobileNet ویدئو
استخراج ویژگی عمیق با شبکه های عمیق معرفی شده ویدئو
طبقه بندی داده با شبکه های عمیق معرفی شده ویدئو
بخش هشتم: تنظیم پارامترهای شبکه عمیق با keras_tuner
کار کردن با متدهای مقداردهی نوعی ویدئو
استفاده از tuner های قدرتمند (random_search- grid search - bayesian) ویدئو
پیدا کردن بهترین ابرپارامترهای شبکه با tuner ها ویدئو
ارزیابی tuner ها برای تنظیم ابرپارامترهای شبکه ویدئو
موارد مرتبط
قیمت 180,000 تومان
اساتید بیگ لرن
دکتری کامپیوتردکترای مهندسی کامپیوتر (گرایش هوش مصنوعی و رباتیکز) هستم. عمده فعالیت من در حوزه یادگیری عمیق، علم داده، پردازش تصویر و پردازش متن با زبان های برنامه نویسی پایتون و جاوا است.
پارسا
خیلی خوب گفته شده بود و قابل فهم. ممنون
شیوا
بخش تئوری و عملی خوب تدریس شد. فقط کاش مثال عملی بیشتر حل می کردید. با تشکر
شاهین
نکات مفیدی در این دوره مطرح شد و دید من رو نسبت به یادگیری عمیق تغییر داد. ممنون از عوامل بیگ لرن
پارسا
دوره خوبی بود. با تشکر از آقای دکتر