پیاده سازی و برنامه نویسی MATLAB یادگیری عمیق

این فیلم آموزشی قسمت دوم بسته آموزشی جامع یادگیری عمیق می‌باشد. این قسمت اختصاص به پیاده سازی و برنامه نویسی مدلهای یادگیری عمیق در متلب MATLAB دارد.

متلب در سال 2020 نام جعبه ابزار شبکه عصبی خود را به یادگیری عمیق تغییر داد. این تغییر نشان از انگیزه بالای متلب برای ارائه یک جعبه ابزار قوی برای کاربران خود دارد.

یادگیری عمیق در متلب یک ابزار مناسب برای طراحی و پیاده سازی شبکه‌های عصبی عمیق با الگوریتم‌ها و مدلهای از پیش آموزش یافته برای شما فراهم می‌کند. شما می‌توانید از شبکه‌های عصبی کانولوشن (ConvNet , CNN) و حافظه ترم-کوتاه بلند long short-term memory (LSTM) برای دسته بندی و رگرسیون روی تصویر و سریهای زمانی و داده‌های متنی استفاده کنید.

شما می‌توانید ساختارهای شبکه مانند شبکه‌های مخالف مولد generative adversarial networks (GANs) و شبکه‌های سیامی‌Siamese networks با استفاده از تفاضل گیری اتوماتیک و حلقه‌های آموزش سفارشی و وزنهای تقسیم شده ایجاد کنید.
با ابزار طراحی کننده شبکه عمیق شما می‌توانید بدون کدنویسی شبکه‌های عصبی عمیق را به صورت اتوماتیک طراحی و آنالیز و آموزش دهید.
با استفاده از ابزار مدیریت تجارب (Experiment Manager app) شما می‌توانید چندین تجارب یادگیری عمیق را مدیریت کنید و پارامترهای آموزش را در هر تجربه دنبال کنید و نتایج را آنالیز کنید و کدهای تولید را با هم مقایسه کنید و بهترین مدل را انتخاب کنید. این ابزار به کاربران قابلیت بسیار خوبی می‌دهد که یک کار کنترل نسخه version control را انجام بدهند. در یک کار واقعی یادگیری عمیق ، پیداکردن پارامترهای مناسب یک مدل بسیار زمانبر است و نیاز هست که پارامترهای هر بار اجرای کد ذخیره شد تا در نهایت با مقایسه اجراهای مختلف بهترین پارامتر پیدا شود. با کمک ابزار مدیریت تجارب به راحتی شما می‌توانید این کار را انجام دهید.
با ابزار یادگیری عمیق شما می‌توانید مدل یادگیری عمیق را مشاهد کنید و لایه‌های مختلف و توابع تبدیل هر لایه را ببینید. بنابراین شما به راحتی می‌توانید ساختار مدل خود را مشاهده کنید و درک خوبی از مدل یادگیری عمیق پیدا کنید.
شما می‌توانید با ابزار یادگیری عمیق متلب بین دیگر ابزارهای برنامه نویسی یادگیری عمیق مثل TensorFlow™ و PyTorch با متلب ارتباط برقرار کنید. آموزش TensorFlow ایران متلب را می‌توانید در این لینک مشاهده کنید. اکنون برنامه نویسان پایتون از TensorFlow™ و PyTorch استفاده می‌کنند، لذا شما می‌توانید مدلهایی که در این کتابخانه‌ها ساخته می‌شود را وارد متلب کنید و به عنوان یک مدل متلب استفاده کنید. فرمت ارتباطی از نوع ONNX™ می‌باشد که می‌تواند مدلهایی از TensorFlow-Keras و Caffe را وارد متلب کنید.

این تولباکس یادگیری انتقال (Transfer Learning) را با DarkNet-53 و ResNet-50 و NASNet و SqueezeNet و مدلهای پیش آموزش یافته دیگری پشتیبانی می‌کند. همانطور که در فیلم آموزش یادگیری عمیق ایران متلب گفته می‌شود، این قابلیت باعث می‌شود که شما چرخ را از اول اختراع نکنید و به راحتی مدلهای پیشرفته ایجاد کنید و به راندمان‌های بسیار بالایی برسید.

با استفاده از یادگیری عمیق در متلب شما می‌توانید فرایند آموزش مدل خود را روی یک GPU یا چندین GPU انجام دهید و سرعت را افزایش دهید. این قابلیت به کمک جعبه ابزار پردازش موازی متلب انجام می‌شود. همچنین شما می‌توانید از فضای ابری (cloud) شامل NVIDIA® GPU Cloud و Amazon EC2® GPU نیز استفاده کنید. این قابلیت با جعبه ابزار سرور موازی MATLAB (MATLAB® Parallel Server™)انجام می‌شود.

 

 

 

سرفصل‌ها :

شبکه‌های از پیش آموزش یافته
ابزار Add-On Explorer
نصب یک شبکه یادگیری عمیق در متلب
فراخوانی AlexNet در متلب
مقایسه شبکه‌های یادگیری عمیق از پیش آموزش یافته از نظر سرعت و حجم محاسبات و دقت
نکات مهم در انتخاب مدل یادگیری عمیق
شروع به برنامه نویسی با یک کد ساده
پارامتر Layers
چاپ ساختار یک شبکه
محاسبه اندازه مناسب تصویر ورودی
تغییر اندازه تصویر ورودی
اسم لایه‌های مختلف شبکه
پارامترهای هر لایه شبکه
استخراج پارامترهای لایه اول
استخراج پارامترهای لایه‌های بعدی
FilterSize و NumChannels و Stride
پارامتر‌های Learnable Parameters
پارامترهای لایه Pooling
کلاس maxPooling2dLayer
لایه FullyConnectedLayer
عمق و اندازه و تعداد پارامترها و اندازه تصویر ورودی شبکه‌های squeezenet و googlenet و inceptionv3 و densenet201 و mobilenetv2 و resnet18 و resnet50 و resnet101 و xception وinceptionresnetv2 و shufflenet و nasnetmobile و nasnetlarge و darknet19 و darknet53 و alexnet و vgg16 وvgg19

نصب googlenet
چک نسخه متلب
بررسی لایه‌های googlenet
نام کلاس‌های خروجی شبکه
معرفی مدلهای Caffe
معرفی App Network Designer
کار با یادگیری عمیق درمتلب بدون هیچ گونه برنامه نویسی
صفحه شروع ابزار طراحی شبکه
گزینه‌های Designer
معرفی Layer Library
Auto arrange
معرفی Analyze
یافتن خطا‌ها و هشدارهای طراحی
معرفی Export
رنگ‌های هر لایه
بارگذاری داده
داده‌های validation و داده‌های Training
Augmentation options
تغییر داده‌های آموزش
تعیین درصد داده‌های validation
یک مثال از یادگیری انتقالی
تنظیم لایه fully connected
تنظیم لایه Output
گزارش حاصل از چک شبکه
گزینه‌های تنظیمی‌آموزش
انتخاب تابع آموزش یا solver
معرفی قسمت‌های مختلف پنجره آموزش
Accuracy, Loss function
نمودارهای حاصل از آموزش
دلایل توقف آموزش
Training Cycle
Hardware resource
گزینه Export
تولید‌های کد متلب یک طراحی در ابزار ساخت شبکه
مثال
گرفتن خروجی از شبکه آموزش یافته
چه کارهایی می‌توانید با ابزار ساخت شبکه یادگیری عمیق در متلب انجام دهید؟
مقدار داده مورد نیاز در یادگیری انتقالی چقدر است؟
مزایای یادگیری انتقالی
مثالی از یادگیری انتقالی
گزینه NumFilters
ValidationFrequency
MaxEpochs
MiniBatchSize
تولید کد با پارامترهای اولیه
دستور predict
ساختار شبکه‌های یادگیری عمیق
نوع و تعداد لایه‌ها به چه پارامتری بستگی دارد؟
تفاوت لایه‌های دسته بندی و رگرسیون
لایه Softmax
شبکه کوچک یا بزرگ
مفهوم sequential
تعریف لایه‌های یک شبکه به صورت کدنویسی
لایه imageInputLayer
ساخت شبکه‌های پیچیده
مفهوم Directed Acyclic Graph (DAG)
دستور layerGraph
دستور addLayers
دستور connectLayers
مثال برنامه نویسی متلب
نمایش ساختار شبکه با plot
آموزش گزینه‌های آموزش در برنامه نویسی
انواع حل کننده در آموزش sgdm و adam و rmsprop
دستور trainNetwork
اجرای آموزش یک شبکه یادگیری عمیق
گزینه TrainingCycle
توقف فرایند آموزش
مفهوم Epoch
نقطه Final
استخراج وزن و بایاس از شبکه آموزش یافته
اعمال داده‌های تست
مثال دسته بندی با شبکه CNN
چگونه داده‌ها را وارد متلب کنیم؟
چگونه ساختار یک شبکه را تعریف کنیم؟
چگونه شبکه را آموزش دهیم؟
چگونه داده‌های تست را به شبکه اعمال کنیم؟
معرفی imageDataStore
مزایای imds
چگونه همه تصاویر یک فولدر را بدون خواندن همه تصویرها به متلب شناسایی کنیم؟
دستور fullfile
مثال از imageDataStore
استخراج یک تصویر از imds
دستور countEachLabel
دستور readimage
تقسیم داده‌ها به دو بخش آموزش و تست با دستورات متلب
ماتریس confusion
تشخیص خطاهای شبکه
کانال در لایه‌های شبکه
آموزش لایه کانولوشن
مفهوم فیلتر در لایه کانولوشن و filterSize
Stride در لایه کانولوشن
مفهوم downsampling
تعداد وزن‌ها در یک فیلتر
کانولوشن نوع Dilated
DilationFactor
مفهوم Feature Map
فرمول تعداد پارامترهای یک لایه کانولوشن
Zero Padding
فرمول تعداد نرونها
فرمول اندازه خروجی
لایه نرمالسازی دسته ای
مزیت‌های نرمالسازی در یادگیری عمیق
موقعیت بهینه لایه نرمالسازی
تئوری لایه ReLU
لایه‌های فعالسازی فعال
لایه leaky ReLU
لایه clipped ReLU
لایه نرمالسازی در طول کانال
آموزش Pooling ماکزیمم
آموزش pooling میانگین
مثال Pooling
وظیفه pooling
لایه Dropout
لایه Fully Connected
دلیل استفاده از Softmax در خروجی دسته بندی
آشنایی با لایه‌های یادگیری عمیق موجود در متلب 2020
لایه‌های ورودی
ورودی sequence
مفهوم ROI
لایه کانولوشن 2 بعدی
لایه کانالوشن 3 بعدی
لایه کانولوشن grouped
لایه کانالوشن transposed
لایه fullyconnected
لایه sequence
لایه LSTM و لایه bidirectional LSTM و لایه GRU
مفهوم flatten در یادگیری عمیق
لایه global pooling
لایه 2 بعدی unpooling
لایه‌های ترکیبی
لایه جمع کننده
لایه concatenation
لایه جمع کننده وزن دار
لایه‌های شناسایی شی
لایه GAN
لایه دسته بندی پیکسل
مثال عملی شناسایی شی جلوی دوربین وب کم متصل به کامپیوتر
شناسایی عینک آفتابی و خودکار و ماوس با یادگیری عمیق
مثال عملی یادگیری انتقالی Transfer Learning
تغییر کلاسهای خروجی شبکه یادگیری عمیق
مشخص کردن نام برای هر لایه
دستور imageDataAugmenter
دستور augmentedImageDataStore
مثال شناسایی چهره
مثال تشخیص بیماری کرونا
ابزار مدیریت تجربه
Experiment Manager
مقایسه مدلهای یادگیری عمیق
Version control در متلب
بهینه سازی پارامترهای یک مدل یادگیری عمیق
ایجاد experiment
قسمت Experiment Browser
تعیین پارامتر تغییر کننده
تعریف یک Experiment
Hyperparameter Table
Setup Function
تست چند شبکه یادگیری عمیق با هم
مرتب کردن نتایج حاصل از مدیریت تجربه

 

 

لینک سفارش

 

این فیلم آموزشی قسمت دوم از بسته آموزشی یادگیری عمیق می‌باشد. برای تهیه به بسته آموزشی جامع یادگیری عمیق بر روی تصویر زیر کلیک کنید:

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *