
یادگیری عمیق چیست؟
در یک تعریف کلی، یادگیری عمیق، همان یادگیری ماشین است، به طوری که در سطوح مختلف نمایش یا انتزاع (abstraction) یادگیری را برای ماشین انجام میدهد. با این کار، ماشین درک بهتری از واقعیت وجودی داده ها پیدا کرده و میتواند الگوهای مختلف را شناسایی کند. مدل های یادگیری عمیق به شکلی نه چندان روشن از الگوهای پردازش اطلاعاتی و ارتباطی در سیستم های عصبی زیستی الهام گرفته شده اند اما تفاوت های مختلفی در ویژگی های ساختاری و عملکردی با مغزهای زیستی (به ویژه مغز انسان) دارند، که باعث عدم همخوانی آنها با شواهد علوم اعصاب میشود. Deep Learning یا یادگیری عمیق به دنبال هوش مصنوعی پا به عرصه حضور گذاشته است. این یادگیری به یاری هوش مصنوعی آمده است تا به شکلی طبیعی تر به نیاز ها و خواست های بشر واکنش نشان دهد. هوش مصنوعی در جهت یاری رساندن به بشر امروزی روی کار آمده است. سالیان درازی از روی کار آمدن هوش مصنوعی نمی گذرد. اما در طی همین زمان کوتاه بشر در زمینه های متفاوتی از این تکنولوژی بهره برده است. یادگیری عمیق، دسته ای از الگوریتم های یادگیری ماشین است که:
- از آبشاری از لایه های چندگانهِ واحدهای پردازش غیرخطی برای استخراج و تبدیل ویژگی استفاده میکنند. هر لایه تالی، از خروجی لایه قبل به عنوان ورودی استفاده میکند.
- به شکلی نظارت شده (مثل طبقه بندی) و یا بدون نظارت (مثل تحلیل الگو) یادگیری میکنند.
- لایه های چندگانه ای از نمایش را یادگیری میکنند که متناظر با سطوح مختلفی از انتزاعات هستند؛ این سطوح سلسله ای از مفاهیم را تشکیل میدهند.
یادگیری عمیق یک نوع شبکه عصبی بوده که فراداده (Metadata) را به عنوان یک ورودی جذب میکند و دادهها ورودی را از طریق برخی لایههای تبدیل غیرخطی پردازش و محاسبه کرده و به عنوان دادههای خروجی برمیگرداند. این الگوریتم دارای یک ویژگی منحصربفرد بوده که آن ویژگی استخراج خودکار محسوب میشود. این بدین معنی است که الگوریتم ویژگیهای موردنیاز و مرتبط را جهت حل مشکل درک میکند. این موجب کاهش وظیفه برنامه نویسان شده تا به انتخاب صریح ویژگیها بپردازند. این الگوریتم حتی برای حل چالش ها تحت نظارت، بدون نظارت به کار گرفته می شود. در یادگیری عمیق هر لایه پنهان مسئول آموزش مجموعهای از ویژگیهای منحصربفرد بوده که براساس خروجی لایه پیشین عمل می کند. با افزوده شدن بر تعداد لایه های پنهان، پیچیدگی دادهها بیشتر شده و مشکلات را افزایش میدهد. همچنین این نوع یادگیری سلسله مراتبی، ویژگیهای سطح پایین را به ویژگیهای سطح بالا تبدیل میکند. با چنین کاری الگوریتم یادگیری عمیق مورد استفاده قرار گرفته و به حل مشکلات پیچیده که لایه های غیرخطی متعددی را دربرمی گیرد، می پردازد. در یادگیری عمیق، هر سطح یاد میگیرد که داده های ورودی خود را به یک نمایش اندکی مجردتر و ترکیبی تر تبدیل کند. در یک کاربرد شناسایی تصویر، ورودی خام میتواند ماتریسی از پیکسل ها باشد؛ اولین لایه نمایشی ممکن است پیکسل ها را مجرد کند و لبه ها را کدگذاری کند؛ لایه دوم ممکن است چینش لبه ها را بسازد و کدگذاری کند؛ لایه سوم ممکن است بینی و چشم ها را کدگذاری کند؛ و لایه چهارم ممکن است تشخیص دهد که تصویر، شامل یک چهره است. چیزی که اهمیت دارد، این است که یک پروسه یادگیری عمیق، به خودی خود میتواند یاد بگیرد که کدام ویژگی ها بطور بهینه در کدام سطح قرار دهد. در سال های اخیر، یادگیری عمیق، تحول بزرگی را در یادگیری ماشین و هوش مصنوعی ایجاد کرده است. از سال ۲۰۱۲ تا کنون، تمامی رتبه های برتر چالش شناسایی بصری ImageNet، که به جام جهانی بینایی ماشین معروف است، از شبکه های عصبی عمیق استفاده کرده اند. همچنین، تمام روش های برتر در رقابت های دسته بندی تصاویر اعداد دست نویس MNIST (با ۲۱ خطا در ۱۰,۰۰۰ تصویر) و تصاویر طبیعی CIFAR (با خطای کمتر از ۵%) نیز به مدل های شبکه عصبی عمیق تعلق دارد. از سال ۲۰۱۲ به بعد، شرکت های بزرگ نرم افزاری و سخت افزاری مانند Google, Microsoft, NVIDIA نیز بخش مهمی از فعالیت های پژوهشی و تجاری خود را به یادگیری عمیق اختصاص داده اند. به دلیل وجود لایه های متفاوت و سطح های متفاوتی از اطلاعات از واژه عمیق استفاده می شود. شبکه عصبی از دو یا نهایتا سه لایه تشکیل شده است. در حالی که شبکه عصبی عمیق از بیش از ۱۵۰ لایه تشکیل شده است. یادگیری عمیق به گونه ای طراحی شده است که قادر باشد بدون دستور العمل هایی که توسط اپراتور صادر می شود، اطلاعات مورد نیاز خود را از میان حجم وسیعی از اطلاعات استخراج کرده و مورد استفاده قرار دهد.
کتابخانه پایتورج چیست؟
PyTorch، یک بسته محاسبات علمی مبتنی بر پایتون است که از توان پردازشی پردازندههای گرافیکی بهره میگیرد. این کتابخانه یکی از پلتفرمهای تحقیق جامع در زمینه یادگیری عمیق محسوب میشود که انعطافپذیری و سرعت قابل قبولی را ارائه میکند. PyTorch به دلیل دو قابلیت سطح بالای منحصربهفرد خود معروف شده که شامل محاسبات تانسور با بهرهگیری از توان شتابدهنده پردازنده گرافیکی و ساخت شبکههای عصبی عمیق در یک سیستم Autograd است. کتابخانههای پایتون زیادی وجود دارند که چگونگی عملکرد و کار با یادگیری عمیق و هوش مصنوعی را تغییر میدهند و این یکی از این کتابخانهها است. یکی از عوامل کلیدی موفقیت PyTorch این است که کاملا بر پایه پایتون آمادهسازی شده و هر کسی میتواند بهسادگی مدلهایی از شبکه عصبی را با آن تولید کند. این کتابخانه در مقايسه با سایر رقبای خود قدمت کمتری دارد، اما بهسرعت در حال پیشرفت است. PyTorch ساختار داده اصلی یا همان Tensor را فراهم میکند. برخی از دلایل ترجیح داده شدن پایتورچ نسبت به دیگر کتابخانههای یادگیری عمیق در ادامه بیان شدهاند.
- برخلاف دیگر کتابخانهها، مانند «تنسورفلو» (TensorFlow) که در آن کاربر بایدکل گراف کامپیوتری را پیش از اجرای مدل تعریف کند، پایتورچ امکان تعریف گراف را به صورت «پویا» نیز فراهم میکند.
- پایتورچ، یک ابزار خوب برای پژوهشهای یادگیری عمیق است و انعطافپذیری و سرعت بالا را تامین میکند.
مزیت های کتابخانه قدرتمند پایتورچ؟
- آسان نسبت به اغلب فریمورک ها
- تحلیل کد آن هم ساده
- قابلیت استفاده از چند GPU
- ماژولاریتی بالا
- انعطاف پذیری بالا
- پشتیبانی همزمان از چندین backend
- قابلیت ایجاد مدل های ترتیبی و تابعی
- دیتاست های آماده
- مدل های اماده زیاد
- اجرای همزمان روی چند GPU و چند سیستم
- …
هدف از این دوره آموزشی؟
هدف از این دوره آموزشی، معرفی کامل یادگیری عمیق و کتابخانه قدرتمند پایتورچ است. ابتدا یادگیری عمیق به صورت کامل بحث می شود و بعد الگوریتم های یادگیری عمیق با استفاده از کتابخانه قدرتمند پایتورچ پیاده سازی می شوند. در آموزش تمامی قابلیت های کتابخانه پایتورچ گفته شده است و کامل پیاده سازی می شوند. همچنین کدهای پیاده سازی در هر مرحله خط به خط آموزش داده می شوند. در این دوره به صورت کامل کار با داده های یک بعدی، دو بعدی و سه بعدی براساس کتابخانه پایتورچ آموزش داده می شود. همچنین انواع مختلف شبکه های عمیق (کانولوشنی – بازگشتی – مولد – خودرمزنگار) کامل توضیح داده شده و با پایتورچ پیاده سازی می شوند. در آخر یک پروژه تشخیص کامل پلاک خودرو با پایتورچ پیاده سازی می شود. جزئیات این دوره آموزشی در زیر لیست شده است. بدون شک یکی از بهترین دوره های یادگیری عمیق با پایتورچ است که با زبان فارسی و روان توضیح داده شده است. امیدواریم که این آموزش از “بیگ لرن” هم مثل سایر آموزش ها مورد تایید و رضایت شما مخاطبان گرامی قرار گیرد.
بخش صفر: مرور کامل روی پایتون
بخش اول: یاگیری ماشین و یادگیری عمیق
بخش دوم : یادگیری عمیق و شبکه های عصبی
بخش سوم: انواع شبکه های عمیق (نطارت شده و بدون نظارت)
بخش چهارم: معرفی کامل کتابخانه pytorch
بخش پنجم: پیاده سازی عملی با کتابخانه pytorch
بخش ششم: تشخیص پلاک خودرو با یادگیری عمیق در پایتورچ
نظرات
4 دیدگاه برای آموزش یادگیری عمیق با pytorch
برای فرستادن دیدگاه، باید وارد شده باشید.
شقایق
دوره خیلی خوبی بود. من راضی بودم
کشاورز
تشکر ویژه از آقای دکتر بخاطر این دوره جذاب. منتظر دوره های بعدی هستیم
پارسا
من این دوره را خریداری کردم. ساده و قابل فهم و خوب گفته شده بود. فقط کاش پردازش متن هم می گفتید
mohamad
خیلی دوره خوبی بود و برای پایان نامه ام خیلی کمک کرد. حتی آموزش خارجی هم انقدر کامل نبود