یادگیری عمیق Deep Learning

هوش مصنوعی

یادگیری عمیق Deep Learning

مقدمه ای بر یادگیری عمیق

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

یادگیری عمیق 

یادگیری عمیق چیست

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

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

یادگیری عمیق

یادگیری عمیق بخش مهمی از هوش مصنوعی است.

یادگیری عمیق چگونه کار می کند؟

طرز کار یادگیری عمیق: در بیشتر روش های یادگیری عمیق از معماری شبکه عصبی استفاده می شود، به همین دلیل مدل های یادگیری عمیق اغلب تحت عنوان شبکه های عصبی عمیق شناخته می شوند. اصطلاح عمیق معمولاً به تعداد لایه های پنهان در شبکه عصبی اشاره دارد. شبکه های عصبی سنتی فقط شامل 2-3 لایه مخفی هستند، در حالی که شبکه های عمیق می توانند تا 150 لایه داشته باشند. مدل های یادگیری عمیق با استفاده از مجموعه وسیعی از داده های دارای برچسب و معماری شبکه عصبی آموزش داده می شوند که ویژگی ها را مستقیماً از داده ها، بدون نیاز به استخراج ویژگی های دستی یاد می گیرند.

یادگیری عمیق

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

انواع شبکه عصبی عمیق

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

یادگیری عمیق

در این شبکه تصویر یک گل به عنوان ورودی به شبکه داده می شود و شبکه قرار است بر اساس استخراج ویژگی هایی که انجام می دهد با احتمال بالا تشخیص داده که تصویر یک گل است.

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

یادگیری عمیق

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

تفاوت بین یادگیری ماشین و یادگیری عمیق چیست؟ یادگیری عمیق نوعی از یادگیری ماشین است که مقداری تخصصی تر عمل می کند. عمل آموزش در یادگیری ماشین با استخراج ویژگی های مربوطه به صورت دستی از تصاویر شروع می شود. سپس از ویژگی ها برای ایجاد مدلی که اشیاء موجود در تصویر را طبقه بندی می کند استفاده می شود. ولی شروع آموزش یادگیری عمیق به این صورت است که ویژگی های مربوطه به طور خودکار از تصاویر استخراج می شوند. علاوه بر این، یادگیری عمیق “end to end learning” را انجام می دهد، جایی که داده های خام به شبکه داده می شود و در نهایت به طور مثال شبکه اسم شی را به ما بر می گرداند و اگر شبکه وظیفه ای مانند طبقه بندی دارد، انجام این کار به طور خودکار خواهد بود. در یادگیری ماشین، شما به صورت دستی ویژگی ها را برای مرتب سازی تصاویر انتخاب می کنید. با یادگیری عمیق، مراحل استخراج و مدل سازی به صورت خودکار انجام می شود.

یادگیری عمیق

تفاوت اصلی یادگیری ماشین و یادگیری عمیق در نحوه استخراج ویژگی است.

 تفاوت اصلی دیگر بین یادگیری ماشین و یادگیری عمیق، نیاز الگوریتم های یادگیری عمیق به داده های بسیار زیاد است، در حالی که یادگیری سطحی همگرا است. یادگیری سطحی به روش های یادگیری ماشین اشاره می کند که وقتی نمونه ها و داده های آموزشی بیشتری را به شبکه اضافه می کنید در سطح مشخصی از عملکرد قرار می گیرد. مزیت اصلی شبکه های یادگیری عمیق این است که اغلب با افزایش حجم داده های شما به بهبود خود ادامه می دهند.

یادگیری عمیق

انتخاب بین یادگیری ماشین و یادگیری عمیق

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

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

آموزش در مدل های یادگیری عمیق

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

Training from scratch

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

Transfer learning  

اکثر برنامه های کاربردی یادگیری عمیق از رویکرد یادگیری انتقال استفاده می کنند، فرایندی که شامل تنظیم دقیق یک مدل از پیش تعیین شده است. شما با یک شبکه موجود مانند AlexNet یا GoogleNet شروع به کار می کنید و داده های جدید حاوی کلاس های ناشناخته قبلی را وارد می کنید. پس از انجام برخی تغییرات در شبکه، اکنون می توانید یک کار جدید را انجام دهید؛ همچنین این مزیت را دارد که به داده های بسیار کمتری نیاز دارید (پردازش هزاران تصویر و نه میلیون ها)، بنابراین زمان محاسبه به دقیقه یا ساعت کاهش می یابد.

Learning rate decay 

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

کاربرد یادگیری عمیق

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

رانندگی خودکار: سازندگان خودرو از یادگیری عمیق برای تشخیص خودکار اشیاء مانند علائم توقف و چراغ راهنمایی استفاده می کنند. علاوه بر این، از یادگیری عمیق برای تشخیص عابران پیاده استفاده می شود که به کاهش تصادفات کمک می کند.

هوانوردی و دفاع: یادگیری عمیق برای شناسایی اجسام ماهواره ها که مناطق مورد نظر را تعیین می کنند و مناطق امن یا ناامن برای سربازان شناسایی می شود.

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

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

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

معایب یادگیری عمیق

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

مسئله Over fitting نیز یک مشکل عمده برای مدل های یادگیری عمیق است. اگر مدلی بر روی داده هایی که دارای سوگیری هستند آموزش ببیند، مدل آن پیش بینی ها را در پیش بینی های خود باز تولید می کند. این یک مشکل نگران کننده است.

نرخ یادگیری همچنین می تواند به چالشی بزرگ برای مدل های یادگیری عمیق تبدیل شود. اگر نرخ بسیار زیاد باشد، مدل خیلی سریع همگرا می شود و یک راه حل کمتر از بهینه تولید می کند. اگر نرخ بسیار پایین باشد، ممکن است روند به هم بخورد و رسیدن به راه حل حتی سخت تر  هم خواهد بود.

 

جمع بندی یادگیری عمیق

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

 

نویسنده: تیم پژوهش راهبرد

 

منابع

searchenterpriseai.techtarget.com

home.sophos.com

مقاله خوبی بود؟

هیچ نظری وجود ندارد