Deep Learning

یادگیری عمیق یا Deep Learning یک روش از روش های یادگیری ماشین می باشد که به کامپیوترها آموزش می دهد چگونه شبیه انسان ها رفتار کنند. یادگیری عمیق کلید اصلی تکنولوژی مورد استفاده در خودرو های بدون راننده است. و آن ها را مجهز می کند که بتواند تابلو های راهنمایی رانندگی را تشخیص دهد. عابر پیاده را از چراغ راهنمایی تمیز دهد. همچنین در وسایلی مانند موبایل ها، تبلت ها، تلوزیون ها و هندزفری ها برای کنترل صدا استفاده می شود. همچنین Deep Learning نتایجی را امروزه به دست آورده که در گذشته هرگز قابل دسترسی نبوده است.

در Deep Learning کامپیوتر ها یاد می گیرند چه طور وظایف خود را با استفاده از عکس ها، متن ها و صدا ها دسته بندی کند. مدل های Deep Learning می توانند به دقت و پیشرفته ترین حالت وظایف خود را حتی بهتر از انسان ها انجام دهند. مدل ها با استفاده از داده های بسیاری که مشخص شده است و همچنین شبکه های عصبی چند لایه آموزش داده می شوند.

یادگیری عمیق چگونه چنین نتایج چشمگیری را کسب می کند؟

 در یک کلمه، دقت. یادگیری عمیق توانایی دست یافتن به دقت هایی را محقق کرده که هرگز قبلا قابل دسترسی نبوده است. این الگوریتم ها کمک می کند، تا توقع  مشتری های الکترونیکی برآورده شود  و برای امنیت بعضی از وسایل بسیار حیاتی است؛ مانند ماشین های بدون سرنشین. پیشرفت های اخیر در Deep Learning به قدری بوده است که حتی در بعضی زمینه ها از انسان هم بهتر بوده است. به عنوان مثال دسته بندی اشیاء در عکس ها.

 از دهه 1980 که تئوری Deep learning مطرح شد. تنها به خاطر دو دلیل بود که این اواخر اینقدر کاربردی شده است:

1-    یادگیری عمیق نیازمند حجم زیادی از اطلاعات مشخص شده می باشد. به عنوان مثال خودروهای بدون سرنشین نیازمند میلیون ها تصویر و ساعت ها فیلم می باشد.

2-    Deep Learning نیازمند قدرت محاسبات قابل توجه ای می باشد. برای کارا بودن این روش GPU  هایی با قدرست بسیار بالا با معماری شبکه موازی مورد نیاز است. استفاده از فضای ابری محاسباتی و یا خوشه بندی شده می تواند سرعت پیشرفت کار را برای آموزش داده از چند هفته به چند ساعت کاهش دهد.

مثال هایی از Deep Learning در عمل

طیف وسایلی که از Deep Learning در آن ها استفاده شده بسیار گسترده است. از ماشین های بدون راننده تا وسایل و تجهیزات پزشکی را شامل می شود.

ماشین های بدون راننده: در تحقیقات مربوط به خودرو ها سعی می شود از Deep Learning به منظور تشخیص اشیاء مانند تابلو ها، چراغ های راهنمایی استفاده می شود. علاوه براین برای تشخیص عابران پیاده و سایر ماشین ها نیز استفاده می شود که می تواند سبب کاهش تصادفات شود.

صنایع دفاعی: با استفاده از Deep Learning می توان به منظور تشخیص اشیاء با استفاده از ماهواره هایی که در محل مورد نظر قرار گرفته اند استفاده کرد تا محل های امن و ناامن را برای سربازها تعیین کرد.

دارویی: با استفاده از Deep Learning می تواند سلول های سرطانی را تشخیص داد. تیم هایی در دانشگاه کالیفرنیا (UCLA) موفق به ساخت میکروسکوپی شدند. که با استفاده از داده هایی که دارد. می تواند با عکس بر داری از سلول ها تشخیص دهد که سلول ها سرطانی هستند یا خیر.

اتماسیون صنعتی: Deep Learning در صنعت می تواند به افزایش ایمنی کارگران، تکنسین ها و همچنین تاسیسات و دستگاه ها شود. بدین صورت که با استفاده از این روش می توان حضور دستگاه ها و انسان ها را تشخیص داده و مانع از برخورد آن ها به یکدیگر و آسیب شد.

الکترونیک: در ترجمه اتوماتیک و تشخیص کلمات از Deep Learning استفاده می شود. در لوزام خانگی هوشمند از این روش به منظور تشخیص دستورات و اجراء آن ها استفاده شده است.   

Deep Learning چگونه عمل می کند؟

بیشتر روش های Learning با استفاده از شبکه عصبی می باشد به همین دلیل معمولا از Deep Learning با نام Deep neural network نیز یاد می شود.

واژه Deep عموما به تعداد لایه های شبکه گفته می شود. شبکه های عصبی سنتی معمولا از 2 یا 3 لایه مخفی تشکیل شده اند ولی شبکه عصبی قابلیت تشکیل شدن از 150 تا 200 لایه را نیز دارد.

مدل های Deep Learning با استفاده از مجموعه های بزرگی از داده های دارای برچسب و معماری شبکه عصبی آموزش داده می شوند. که ویژگی ها را مستقیماً از داده ها یاد می گیرند. و نیازی به آموزش دستی آن ها نیست.

یکی از روش های پرطرفدار در شبکه های عصبی روش شبکه های عصبی حلقوی یا Covolutional neural networks می باشد. که به نام اختصاری CNN نیز شناخته می شود. یک CNN می تواند ویژگی های داده های ورودی را با استفاده از لایه های حلقه ای 2 بعدی به دست آورد. به همین دلیل این ساختار برای داده های مانند عکس ها بسیار کاربرد دارد.

در ساختار CNN ها نیازی به استخراج دستی ویژگی ها وجود ندارد. CNN ها به صورت مستقیم از عکس ها ویژگی های آن ها را استخراج می کنند. ویژگی های مرتبط در این روش آموزش داده نمی شوند. بلکه خود شبکه با استفاده از مجموعه ای از عکس ها آموزش می بیند. این حالت تشخیص اتوماتیک در روش  Deep Learning باعث شده تا دقت کامپیوتر ها در دسته بندی ویژگی ها بسیار با دقت و قوی شود.

CNN ها با استفاده از ده ها یا صد ها لایه حلقوی می توانند ویژگی های مختلفی را یاد بگیرند. هر لایه پنهان باعث افزایش پیچیدگی یادگیری ویژگی های عکس می شود. برای مثال در لایه اول لبه ها ( یال ها ) تشخیص داده می شود و در لایه های آخری شناسایی شکل های پیچیده ای که مد نظر ماست را آموزش می بیند. 

چه تفاوتی میان Machine Learning و Deep Learning وجود دارد؟

Deep Learning یک قسمت تخصصی از Machine Learning می باشد. در Machine Learning روش کار با تعریف ویژگی های مرتبط در عکس ها به صورت دستی شروع می شود. سپس با استفاده از این ویژگی ها می توان مدلی طراحی کرد تا اجسام و اجزاء داخل عکس ها را دسته بندی کند. اما در روش Deep Learning به صورت اتوماتیک ویژگی ها دسته بندی می شوند. به علاوه در  Deep Learningروش آموزش End-to-end می باشد. بدین معنی که شبکه با استفاده از داده های ورودی و وظیفه تعریف شده. مثل دسته بندی کردن خود به خود آموزش ببیند و انجام دهد.

مزیت کلیدی روش Deep Learning این است که با افزایش داده ها شبکه شما نیز به پیشرفت ادامه می دهد و بهتر می شود.

در Machine Learning ویژگی ها به صورت دستی  تعریف می شوند. و دسته بندی انجام می شود. ولی در Deep Learning مراحل تشخیص ویژگی ها و مدلسازی و دسته بندی به صورت خودکار انجام می شود. به منظور آشنایی بیشتر با machine learning می توانید اینجا کلیک کنید.

انتخاب بین Machine Learning و Deep Learning

Machine Learning روش ها و تکنیک های مختلفی دارد. که شما می توانید با توجه به نیازتان، داده هایی که می خواهید پردازش کنید. نوع مسئله ای که می خواهید حل کنید یکی از آن ها را انتخاب کنید. یک شبکه Deep Learning  موفق و کاربردی نیازمند منابع اطلاعاتی بسیار زیادی می باشد. هزاران عکس تا بتواند مدل مورد نظر شما را آموزش ببیند. همچنین یک پردازشگر بسیار قدرتمند نیز مورد نیاز است.

هنگامی که می خواهید یکی از روش های Deep Learning یا Machine Learning را انتخاب کنید. توجه کنید که نیاز به یک بانک اطلاعاتی گسترده و سیستم پردازنده قوی دارید. در صورتی هر کدام از موارد یاد شده در دسترس نبود استفاده از روش Machine Learning پیشنهاد می شود. Deep Learning به طور کلی بسیار پیچیده است. برای گرفتن نتایج قابل اطمینان حداقل به هزاران عکس نیاز است. داشتن یک پردازنده قوی به این دلیل است که پردازش هزاران عکس در زمان کمتری انجام شود. به منظور دریافت اطلاعات بیشتر می توانید اینجا کلیک کنید.

نحوه ساخت و آموزش مدل های Deep Learning

سه مدل رایج برای دسته بندی اجزاء در Deep Learning وجود دارند:

آموزش چرک نویسی

در این روش به بانک اطلاعاتی گسترده ای نیاز است. برای مواردی به کار می رود که اطلاعات جامعی از داده های خروجی در دسترس باشد. مشکل این روش زمان مورد نیاز آن می باشد. عموما آموزش داده ها چند روز تا چند هفته زمان می برد.

آموزش انتقالی

بیشتر موارد از این روش برای Deep Learning استفاده می شود. در این روش از شبکه هایی که قبلا آموزش دیده شده اند استفاده می شود. معمولا شبکه های Alex و یا Google مورد استفاده قرار می گیرد و داده های جدید نیز به آن ها داده می شود. بعد از ایجاد یکسری تغییرات در شبکه می توان وظیفه جدیدی را برای آن ایجاد کرد. در این روش نیازی به دادن میلیون ها داده وجود ندارد. با استفاده از چند هزار داده می توان آموزش را در چند ساعت انجام داد.

 استخراج ویژگی

این روش که کمتر رایج است. روشی می باشد که در شبکه ویژگی ها را خارج می کند. به طوری که همزمان با آموزش ویژگی ها می توان ویژگی های مورد نظر را از آن خارج کرد. این ویژگی ها می تواند در ادامه به صورت ورودی در روش های machine learning مانند support vector machines مورد استفاده قرار گیرند.

هر کدام از روش های گفته شده با توجه به نوع کاربرد، اطلاعات موجود و سیستم پردازنده می تواند انتخاب شود.