یادگیری عمیق شاخه ای از یادگیری ماشینی است که کاملاً مبتنی بر شبکه های عصبی مصنوعی است. همانطور که یک شبکه عصبی واقعی باید از مغز انسان تقلید کند، یادگیری عمیق نیز نوعی تقلید از مغز انسان است. در یادگیری عمیق، نیازی نیست که برای همه چیز برنامه مشخصی داشته باشیم. مفهوم یادگیری عمیق جدید نیست و چندین سال است که مطرح شده است. این موضوع اخیراً بسیار محبوب شده است زیرا قبلاً قدرت پردازش و داده های زیادی نداشتیم. همانطور که قدرت پردازش در 20 سال گذشته به طور تصاعدی افزایش یافته است، یادگیری عمیق و یادگیری ماشین نیز افزایش یافته است. در واقع یادگیری عمیق یک تعریف رسمی از یادگیری عمیق عصبی است.
یادگیری عمیق زیرمجموعه ای از یادگیری ماشین است که مبتنی بر شبکه های عصبی مصنوعی (ANN) و دارای چندین لایه است و به عنوان شبکه های عصبی عمیق (DNN) نیز شناخته می شود. این شبکههای عصبی از ساختار و عملکرد مغز انسان الهام گرفته شدهاند و برای مدلسازی مقادیر زیادی از دادهها به صورت بدون نظارت یا نیمهنظارت طراحی شدهاند.
مدلهای یادگیری عمیق میتوانند به طور خودکار ویژگیهایی را از دادهها یاد بگیرند تا برای کارهایی مانند تشخیص تصویر، تشخیص گفتار و پردازش زبان طبیعی آماده شوند. پرکاربردترین معماریها در یادگیری عمیق، شبکههای عصبی پیشخور، شبکههای عصبی کانولوشنال (CNN) و شبکههای عصبی بازگشتی (RNN) هستند.
شبکه های عصبی پیشخور (FNN) ساده ترین نوع شبکه عصبی مصنوعی با جریان اطلاعات خطی در شبکه هستند. FNN ها به طور گسترده برای کارهایی مانند طبقه بندی تصویر، تشخیص گفتار و پردازش زبان طبیعی استفاده می شوند.
شبکه های عصبی کانولوشنال (CNN) انواع خاصی از FNN ها هستند که به طور خاص برای کارهای تشخیص تصویر و ویدئو طراحی شده اند. CNN ها می توانند به طور خودکار ویژگی هایی را از تصاویر استخراج کنند که می توانند برای کارهایی مانند طبقه بندی تصاویر استفاده شوند. آنها برای تشخیص شی و تقسیم بندی تصویر مناسب هستند.
شبکه های عصبی بازگشتی (RNN) نوعی از شبکه های عصبی هستند که می توانند داده های متوالی مانند سری های زمانی و زبان طبیعی را پردازش کنند. RNN ها قادر به حفظ یک وضعیت داخلی هستند که اطلاعات مربوط به ورودی های قبلی را جمع آوری می کند. این توانایی آنها را برای کارهایی مانند تشخیص گفتار، پردازش زبان طبیعی و ترجمه زبان مناسب می کند.
مدل های یادگیری عمیق با استفاده از مقادیر زیادی از داده های برچسب دار آموزش داده می شوند و به منابع محاسباتی قابل توجهی نیاز دارند. یادگیری عمیق با افزایش دسترسی به حجم زیادی از داده ها و منابع محاسباتی توانسته است به قابلیت های پیشرفته ای در طیف وسیعی از موارد مانند تشخیص تصویر و گفتار، پردازش زبان طبیعی و غیره دست یابد.
تقریباً 100 میلیارد نورون در مغز انسان وجود دارد. هر نورون به هزاران عصب مجاور متصل است. سوالی که در اینجا مطرح شد؛ این نحوه بازسازی این نورون ها در کامپیوتر است. ما یک ساختار مصنوعی به نام شبکه عصبی مصنوعی ایجاد می کنیم که در آن گره یا نورون داریم. ما تعدادی نورون برای مقدار ورودی و تعدادی برای مقدار خروجی داریم و در این بین ممکن است نورون های زیادی در لایه پنهان به هم متصل باشند.
مدل های یادگیری عمیق
1- شبکه عصبی عمیق: این یک شبکه عصبی با سطح معینی از پیچیدگی است (با چندین لایه پنهان بین لایه های ورودی و خروجی). این شبکه میتواند روابط غیرخطی را مدلسازی و مدیریت کند.
2- شبکه باور عمیق (DBN): این یک کلاس از شبکه های عصبی عمیق است. این شبکه ها چند لایه هستند. مراحل اجرای DBN:
الف- با استفاده از الگوریتم واگرایی کنتراست، یک لایه ویژگی را از واحدهای قابل مشاهده یاد بگیرید.
ب- ویژگی های از پیش آموزش دیده را به عنوان واحدهای قابل مشاهده فعال کنید و سپس ویژگی های آن ویژگی ها را یاد بگیرید.
ج- در نهایت کل DBN زمانی آموزش داده می شود که یادگیری آخرین لایه مخفی امکان پذیر باشد.
3- شبکه عصبی بازگشتی (RNN): بازگشتی بودن این شبکه به معنای انجام یک کار مشابه برای هر عنصر از یک دنباله است. RNN محاسبات موازی و متوالی را درست مانند مغز انسان (شبکه بازخورد بزرگی از نورون های متصل) امکان پذیر می کند. یک شبکه عصبی مکرر می تواند بسیاری از چیزهای مهم را در مورد داده های ورودی که دریافت کرده است به خاطر بسپارد و بنابراین دقیق تر است.
تفاوت بین یادگیری ماشینی و یادگیری عمیق
فراگیری ماشین | یادگیری عمیق |
به طور دقیق تر، روی مجموعه داده های کمی کار می کند. | روی تعداد زیادی مجموعه داده کار می کند. |
بستگی به دستگاه سطح پایین دارد. | خیلی به ماشین کلاس بالا بستگی دارد. |
وظایف را به وظایف فرعی تقسیم می کند، آنها را به صورت جداگانه حل می کند و در نهایت نتایج را با هم ترکیب می کند. | مشکل را به طور کامل حل می کند. |
تمرین کمی زمان می برد. | زمان تمرین بیشتری مورد نیاز است. |
زمان تست ممکن است تمدید شود. | زمان کمتری برای آزمایش داده ها نیاز است. |
چگونگی کار: ابتدا باید مشکل واقعی را شناسایی کنیم تا راه حل مناسب پیدا کنیم. امکان سنجی یادگیری عمیق نیز باید بررسی شود (این که آیا با یادگیری عمیق سازگار است یا خیر). دوم، ما باید داده های مربوطه را که متناسب با مشکل واقعی هستند شناسایی کنیم و بر اساس آن آماده شویم. سوم، الگوریتم یادگیری عمیق را به طور مناسب انتخاب کنید. چهارم، الگوریتم باید در آموزش مجموعه داده استفاده شود. پنجم، آزمایش نهایی باید روی مجموعه داده ها انجام شود.
ابزار مورد استفاده:
آناکوندا، مشتری، پیچار و غیره
زبان های مورد استفاده:
R، Python، Matlab، CPP، Java، Julia، Lisp، Java Script و موارد دیگر.
نمونه های واقعی:
چگونه مربع را از سایر اشکال تشخیص دهیم؟
الف) چهار خط را بررسی کنید!
ب) آیا شکل احاطه شده است؟
ج) آیا اضلاع بر هم عمود هستند؟
د) آیا همه اضلاع برابرند؟
بنابراین یادگیری عمیق کار پیچیده شناسایی شکل و تجزیه آن به بخش های ساده تر است.
یک حیوان را شناسایی کنید! (گربه است یا سگ؟)
با تعیین ویژگی های صورت که برای طبقه بندی و سیستم مهم هستند، حیوان به طور خودکار شناسایی می شود. (اگر یادگیری ماشین به صورت دستی این ویژگی های طبقه بندی را ارائه می دهد)
شما می توانید یادگیری ماشین را از اینجا در قالب 30 جلسه یاد بگیرید
محدودیت ها
1- یادگیری فقط از طریق مشاهده امکان پذیر است.
2- سوال تعصب
مزایای:
1- از نظر مسائل در کلاس بهترین عملکرد را دارد.
2- نیاز به مهندسی ویژگی را کاهش می دهد.
3- هزینه های غیر ضروری را حذف می کند.
4- به راحتی عیوب را که تشخیص آنها دشوار است شناسایی می کند.
معایب:
1- حجم زیادی داده مورد نیاز است.
2- آموزش از نظر محاسباتی گران است.
3- نداشتن مبانی نظری قوی.
برنامه های کاربردی
1- تولید خودکار متن: مجموعه ای از متن آموخته می شود و همه چیز از این مدل متن جدید، کلمه به کلمه یا کاراکتر به کاراکتر تولید می شود. سپس مدل میتواند یاد بگیرد که چگونه املا و نقطهگذاری کند، جملات بسازد یا حتی سبک نوشتن را بیاموزد.
2- بهداشت و درمان: به تشخیص بیماری های مختلف و درمان آنها کمک می کند.
3- ترجمه ماشینی خودکار: برخی از کلمات، جملات یا عبارات در یک زبان به زبان دیگر ترجمه می شوند.
4- تشخیص تصویر: افراد و اشیاء را در تصاویر شناسایی می کند. این کالا در حال حاضر در بازی ها، فروشگاه ها، صنعت مسافرت و غیره استفاده می شود.
5- پیش بینی زلزله: این به کامپیوتر می آموزد که محاسبات ویسکوالاستیک مورد استفاده در پیش بینی زلزله را انجام دهد.
6- یادگیری عمیق در زمینه های مختلف مانند بینایی کامپیوتر، تشخیص گفتار، پردازش زبان طبیعی و بسیاری موارد دیگر کاربردهای زیادی دارد. برخی از رایج ترین کاربردها عبارتند از:
7- تشخیص تصویر و ویدئو: مدلهای یادگیری عمیق برای طبقهبندی خودکار تصویر و ویدیو، تشخیص اشیا و تشخیص چهره استفاده میشوند. برنامه های کاربردی شامل موتورهای جستجوی تصویر و ویدئو، خودروهای خودران و سیستم های نظارت است.
8- تشخیص گفتار: مدلهای یادگیری عمیق برای رونویسی و ترجمه گفتار در زمان واقعی استفاده میشود که در دستگاههای کنترلشده صوتی مانند دستیارهای مجازی و فناوری دسترسی برای افراد کمشنوا استفاده میشود.
9- پردازش زبان طبیعی: مدل های یادگیری عمیق برای درک، تولید و ترجمه زبان های انسانی استفاده می شود. کاربردهای آن عبارتند از ترجمه ماشینی، خلاصه سازی متن و تحلیل احساسات.
10- رباتیک: مدل های یادگیری عمیق برای کنترل ربات ها و پهپادها و بهبود توانایی آنها در درک و تعامل با محیط آنها استفاده می شود.
11- بهداشت و درمان: مدل های یادگیری عمیق در تصویربرداری پزشکی برای تشخیص بیماری ها، در کشف دارو برای شناسایی درمان های جدید و در ژنومیک برای درک علل زمینه ای بیماری ها استفاده می شود.
12- امور مالی: مدل های یادگیری عمیق برای شناسایی تقلب، پیش بینی قیمت سهام و تجزیه و تحلیل داده های مالی استفاده می شود.
13- بازی: از مدل های یادگیری عمیق برای ایجاد شخصیت ها و محیط های واقعی تر و بهبود تجربه بازی استفاده می شود.
14- سیستم های توصیه کننده: از مدلهای یادگیری عمیق برای ارائه توصیههای شخصی به کاربران، مانند خرید محصول، توصیه فیلم برای تماشا و توصیههای خبری استفاده میشود.
15- شبکه های اجتماعی: مدلهای یادگیری عمیق برای شناسایی اخبار جعلی، پرچمگذاری محتوای مضر و فیلتر کردن هرزنامه استفاده میشوند.
16- سیستم های مستقل یا مستقل: مدلهای یادگیری عمیق در خودروهای خودران، هواپیماهای بدون سرنشین و سایر سیستمهای مستقل برای تصمیمگیری بر اساس دادههای حسگر استفاده میشوند.