یادگیری عمیق (Deep learning) چیست؟
یادگیری عمیق نوعی یادگیری ماشینی و هوش مصنوعی (AI) است که روشی را تقلید می کند که انسان انواع خاصی از دانش را به دست می آورد. یادگیری عمیق یک عنصر مهم از علم داده است که شامل آمار و مدل سازی پیش بینی می شود. برای دانشمندان داده که وظیفه جمع آوری، تجزیه و تحلیل و تفسیر مقادیر زیادی از داده ها را بر عهده دارند، بسیار سودمند است. یادگیری عمیق این فرآیند را سریعتر و آسان تر می کند. با ایران گواه همراه باشید.
در ساده ترین حالت، یادگیری عمیق را می توان راهی برای خودکارسازی تجزیه و تحلیل پیش بینی کننده در نظر گرفت. در حالی که الگوریتمهای یادگیری ماشین سنتی خطی هستند، الگوریتمهای یادگیری عمیق در سلسله مراتبی از افزایش پیچیدگی و انتزاع قرار میگیرند.
برای درک یادگیری عمیق، کودک نوپایی را تصور کنید که اولین کلمه اش سگ است. کودک نوپا با اشاره به اشیاء و گفتن کلمه سگ یاد می گیرد که سگ چیست – و نیست. والدین می گویند: “بله، آن سگ است” یا “نه، آن سگ نیست.” همانطور که کودک نوپا همچنان به اشیاء اشاره می کند، از ویژگی هایی که همه سگ ها دارند بیشتر آگاه می شود. کاری که کودک نوپا بدون اینکه بداند انجام می دهد، روشن کردن یک انتزاع پیچیده – مفهوم سگ – با ساختن سلسله مراتبی است که در آن هر سطح از انتزاع با دانشی که از لایه قبلی سلسله مراتب به دست آمده است ایجاد می شود.
یادگیری عمیق چگونه کار می کند
برنامههای رایانهای که از یادگیری عمیق استفاده میکنند تقریباً همان فرآیندی را طی میکنند که کودک نوپا برای شناسایی سگ یاد میگیرد. هر الگوریتم در سلسله مراتب یک تبدیل غیرخطی را به ورودی خود اعمال می کند و از آنچه یاد می گیرد برای ایجاد یک مدل آماری به عنوان خروجی استفاده می کند. تکرارها تا زمانی که خروجی به سطح قابل قبولی از دقت برسد ادامه می یابد. تعداد لایههای پردازشی که دادهها باید از طریق آنها عبور کنند، چیزی است که الهامبخش این برچسب عمیق است.
در یادگیری ماشینی سنتی، فرآیند یادگیری نظارت میشود و برنامهنویس باید زمانی که به رایانه میگوید به دنبال چه چیزهایی باشد تا تصمیم بگیرد که آیا یک تصویر حاوی یک سگ است یا نه، باید بسیار دقیق باشد. این یک فرآیند پر زحمت است که استخراج ویژگی نامیده می شود و میزان موفقیت کامپیوتر کاملاً به توانایی برنامه نویس در تعریف دقیق مجموعه ویژگی برای سگ بستگی دارد. مزیت یادگیری عمیق این است که برنامه ویژگی های تنظیم شده توسط خود را بدون نظارت ایجاد می کند. یادگیری بدون نظارت نه تنها سریعتر است، بلکه معمولاً دقیقتر است.
در ابتدا، برنامه کامپیوتری ممکن است با داده های آموزشی ارائه شود – مجموعه ای از تصاویر که یک انسان برای هر سگ یا سگ تصویری با متاتگ برچسب گذاری کرده است. این برنامه از اطلاعاتی که از داده های آموزشی دریافت می کند برای ایجاد یک مجموعه ویژگی برای سگ و ساخت یک مدل پیش بینی استفاده می کند.
در این مورد، مدلی که کامپیوتر ابتدا ایجاد میکند ممکن است پیشبینی کند که هر چیزی در تصویری که دارای چهار پا و یک دم است، باید برچسب سگ داشته باشد. البته برنامه از برچسب چهار پا یا دم آگاه نیست. به سادگی به دنبال الگوهای پیکسل ها در داده های دیجیتال خواهد بود. با هر تکرار، مدل پیشبینی پیچیدهتر و دقیقتر میشود.
برخلاف کودک نوپا که برای درک مفهوم سگ هفتهها یا حتی ماهها طول میکشد، یک برنامه کامپیوتری که از الگوریتمهای یادگیری عمیق استفاده میکند، میتواند یک مجموعه آموزشی نشان داده و میلیونها تصویر را مرتب کند، و بهطور دقیق تشخیص دهد که کدام عکسها سگها را در چند دقیقه دارند. دقایق.
برای دستیابی به سطح قابل قبولی از دقت، برنامههای یادگیری عمیق نیاز به دسترسی به حجم عظیمی از دادههای آموزشی و قدرت پردازشی دارند، که هیچکدام تا دوره کلان داده و محاسبات ابری به راحتی در دسترس برنامهنویسان نبودند. از آنجایی که برنامهنویسی یادگیری عمیق میتواند مدلهای آماری پیچیده را مستقیماً از خروجی تکراری خود ایجاد کند، میتواند مدلهای پیشبینی دقیقی را از مقادیر زیادی دادههای بدون برچسب و بدون ساختار ایجاد کند. این مهم است زیرا اینترنت اشیا (IoT) همچنان فراگیرتر میشود، زیرا بیشتر دادههایی که انسانها و ماشینها ایجاد میکنند ساختاری ندارند و برچسبگذاری نمیشوند.
روش های یادگیری عمیق
برای ایجاد مدل های یادگیری عمیق قوی می توان از روش های مختلفی استفاده کرد. این تکنیک ها شامل کاهش نرخ یادگیری، انتقال یادگیری، آموزش از ابتدا و ترک تحصیل است.
کاهش نرخ یادگیری نرخ یادگیری یک فراپارامتر است — عاملی که سیستم را تعریف می کند یا شرایطی را برای عملکرد آن قبل از فرآیند یادگیری تعیین می کند — که کنترل می کند هر بار که وزن مدل تغییر می کند، مدل در پاسخ به خطای برآورد شده چه مقدار تغییر را تجربه می کند. نرخ های یادگیری بسیار بالا ممکن است منجر به فرآیندهای آموزشی ناپایدار یا یادگیری مجموعه ای از وزنه ها شود. نرخ های یادگیری بسیار کم ممکن است باعث ایجاد یک فرآیند آموزشی طولانی شود که پتانسیل گیر افتادن را دارد.
روش کاهش نرخ یادگیری – که به آن بازپخت نرخ یادگیری یا نرخ های یادگیری تطبیقی نیز گفته می شود – فرآیند تطبیق نرخ یادگیری برای افزایش عملکرد و کاهش زمان آموزش است. ساده ترین و رایج ترین انطباق نرخ یادگیری در طول آموزش شامل تکنیک هایی برای کاهش نرخ یادگیری در طول زمان است.
انتقال یادگیری این فرآیند شامل تکمیل یک مدل آموزش دیده قبلی است. این نیاز به یک رابط برای داخلی یک شبکه از قبل موجود است. ابتدا، کاربران به شبکه موجود داده های جدید حاوی طبقه بندی های ناشناخته قبلی را تغذیه می کنند. هنگامی که تنظیمات شبکه انجام می شود، وظایف جدید را می توان با توانایی های دسته بندی خاص تر انجام داد. این روش این مزیت را دارد که به داده های بسیار کمتری نسبت به روش های دیگر نیاز دارد، بنابراین زمان محاسبه را به دقیقه یا ساعت کاهش می دهد.
آموزش از صفر. این روش به یک توسعهدهنده نیاز دارد که مجموعه دادههای برچسبگذاریشده بزرگی را جمعآوری کند و یک معماری شبکه را پیکربندی کند که بتواند ویژگیها و مدلها را یاد بگیرد. این تکنیک به ویژه برای برنامه های جدید و همچنین برنامه هایی با تعداد زیادی دسته خروجی مفید است. با این حال، به طور کلی، این یک رویکرد کمتر رایج است، زیرا به مقادیر بیش از حد داده نیاز دارد، که باعث می شود آموزش روزها یا هفته ها طول بکشد.
ترک تحصیل. در این روش سعی می شود مشکل اضافه برازش در شبکه هایی با مقادیر زیاد پارامتر با حذف تصادفی واحدها و اتصالات آنها از شبکه عصبی در حین آموزش حل شود. ثابت شده است که روش ترک تحصیل می تواند عملکرد شبکه های عصبی را در وظایف یادگیری تحت نظارت در زمینه هایی مانند تشخیص گفتار، طبقه بندی اسناد و زیست شناسی محاسباتی بهبود بخشد.
شبکه های عصبی یادگیری عمیق؟
یک نوع الگوریتم پیشرفته یادگیری ماشینی که به عنوان شبکه عصبی مصنوعی شناخته می شود، زیربنای اکثر مدل های یادگیری عمیق است. در نتیجه، گاهی اوقات یادگیری عمیق ممکن است به عنوان یادگیری عمیق عصبی یا شبکه عصبی عمیق شناخته شود.
شبکههای عصبی به اشکال مختلف از جمله شبکههای عصبی بازگشتی، شبکههای عصبی کانولوشنال، شبکههای عصبی مصنوعی و شبکههای عصبی پیشخور وجود دارند و هر کدام مزایایی برای موارد استفاده خاص دارند. با این حال، همه آنها تا حدودی مشابه کار می کنند – با تغذیه داده ها و اجازه دادن به مدل برای خود تشخیص دهد که آیا تفسیر یا تصمیم درستی در مورد یک عنصر داده ای داده است یا خیر.
شبکههای عصبی شامل یک فرآیند آزمون و خطا هستند، بنابراین به حجم عظیمی از دادهها برای آموزش نیاز دارند. تصادفی نیست که شبکههای عصبی تنها زمانی محبوب شدند که اکثر شرکتها از تجزیه و تحلیل دادههای بزرگ استقبال کردند و ذخیرههای بزرگی از دادهها را جمع کردند. از آنجایی که چند تکرار اول مدل شامل حدسهای تا حدی آموزشدیده در مورد محتوای یک تصویر یا بخشهایی از گفتار است، دادههای مورد استفاده در مرحله آموزش باید برچسبگذاری شوند تا مدل بتواند ببیند که حدس آن دقیق بوده است یا خیر.
این بدان معناست که اگرچه بسیاری از شرکتهایی که از دادههای بزرگ استفاده میکنند دارای مقادیر زیادی داده هستند، اما دادههای بدون ساختار کمتر مفید هستند. داده های بدون ساختار تنها زمانی می توانند توسط یک مدل یادگیری عمیق تجزیه و تحلیل شوند که آموزش داده شده و به سطح قابل قبولی از دقت برسد، اما مدل های یادگیری عمیق نمی توانند بر روی داده های بدون ساختار آموزش ببینند.
نمونه های یادگیری عمیق
از آنجایی که مدلهای یادگیری عمیق اطلاعات را به روشهایی مشابه مغز انسان پردازش میکنند، میتوان آنها را برای بسیاری از وظایف افراد به کار برد. یادگیری عمیق در حال حاضر در اکثر ابزارهای رایج تشخیص تصویر، پردازش زبان طبیعی (NLP) و نرم افزارهای تشخیص گفتار استفاده می شود. این ابزارها شروع به ظاهر شدن در برنامه های متنوعی مانند ماشین های خودران و خدمات ترجمه زبان کرده اند.
موارد استفاده امروزه برای یادگیری عمیق شامل انواع برنامه های تجزیه و تحلیل داده های بزرگ، به ویژه برنامه های متمرکز بر NLP، ترجمه زبان، تشخیص پزشکی، سیگنال های معاملاتی بازار سهام، امنیت شبکه و تشخیص تصویر است.
زمینه های خاصی که در حال حاضر یادگیری عمیق در آنها استفاده می شود شامل موارد زیر است:
- تجربه مشتری (CX). مدل های یادگیری عمیق در حال حاضر برای چت بات ها استفاده می شود. و همانطور که به بلوغ خود ادامه می دهد، انتظار می رود یادگیری عمیق در مشاغل مختلف برای بهبود CX و افزایش رضایت مشتری پیاده سازی شود.
- تولید متن به ماشینها دستور زبان و سبک یک قطعه متن آموزش داده میشود و سپس از این مدل برای ایجاد خودکار متن کاملاً جدید مطابق با املا، دستور زبان و سبک متن اصلی استفاده میکنند.
- هوافضا و نظامی. یادگیری عمیق برای شناسایی اشیاء از ماهواره ها که مناطق مورد نظر را شناسایی می کنند و همچنین مناطق امن یا ناامن برای سربازان استفاده می شود.
- اتوماسیون صنعتی. یادگیری عمیق با ارائه خدماتی که به طور خودکار نزدیک شدن یک کارگر یا شی به ماشین را تشخیص می دهد، ایمنی کارگران را در محیط هایی مانند کارخانه ها و انبارها بهبود می بخشد.
- اضافه کردن رنگ. با استفاده از مدل های یادگیری عمیق می توان به عکس ها و فیلم های سیاه و سفید رنگ اضافه کرد. در گذشته، این یک فرآیند بسیار وقت گیر و دستی بود.
- تحقیقات پزشکی. محققان سرطان پیاده سازی یادگیری عمیق را در عمل خود به عنوان راهی برای تشخیص خودکار سلول های سرطانی آغاز کرده اند.
- بینایی کامپیوتر. یادگیری عمیق بینایی رایانه را بسیار افزایش داده است و رایانه ها را با دقت بسیار بالایی برای تشخیص اشیا و طبقه بندی تصویر، بازیابی و تقسیم بندی ارائه می دهد.
محدودیت ها و چالش ها
بزرگترین محدودیت مدل های یادگیری عمیق این است که از طریق مشاهدات یاد می گیرند. این بدان معنی است که آنها فقط می دانند که در داده هایی که در آن آموزش دیده اند چه چیزی وجود دارد. اگر کاربر مقدار کمی داده داشته باشد یا از یک منبع خاص که لزوماً نمایانگر حوزه عملکردی گستردهتر نیست آمده باشد، مدلها به روشی قابل تعمیم یاد نمیگیرند.
موضوع سوگیری ها نیز یک مشکل عمده برای مدل های یادگیری عمیق است. اگر یک مدل بر روی دادههایی که دارای سوگیری هستند آموزش ببیند، مدل آن سوگیریها را در پیشبینیهای خود بازتولید میکند. این یک مشکل آزاردهنده برای برنامه نویسان یادگیری عمیق بوده است، زیرا مدل ها بر اساس تغییرات ظریف در عناصر داده، تمایز را یاد می گیرند. اغلب، عواملی که تعیین می کند مهم هستند، به صراحت برای برنامه نویس روشن نمی شوند. این بدان معناست که، برای مثال، یک مدل تشخیص چهره ممکن است در مورد ویژگیهای افراد بر اساس مواردی مانند نژاد یا جنسیت بدون اینکه برنامهنویس آگاه باشد، تعیین کند.
نرخ یادگیری همچنین می تواند به چالشی بزرگ برای مدل های یادگیری عمیق تبدیل شود. اگر نرخ خیلی زیاد باشد، مدل خیلی سریع همگرا می شود و راه حلی کمتر از بهینه را تولید می کند. اگر نرخ بسیار پایین باشد، ممکن است روند گیر کند و رسیدن به یک راه حل حتی سخت تر خواهد بود.
الزامات سخت افزاری برای مدل های یادگیری عمیق نیز می تواند محدودیت هایی ایجاد کند. واحدهای پردازش گرافیکی چند هسته ای با کارایی بالا (GPU) و سایر واحدهای پردازش مشابه برای اطمینان از بهبود کارایی و کاهش مصرف زمان مورد نیاز هستند. با این حال، این واحدها گران هستند و مقادیر زیادی انرژی مصرف می کنند. سایر نیازهای سخت افزاری شامل حافظه دسترسی تصادفی و هارد دیسک (HDD) یا درایو حالت جامد مبتنی بر RAM (SSD) است.
از دیگر محدودیت ها و چالش ها می توان به موارد زیر اشاره کرد:
- یادگیری عمیق به حجم زیادی از داده ها نیاز دارد. علاوه بر این، مدلهای قویتر و دقیقتر به پارامترهای بیشتری نیاز دارند که به نوبه خود به دادههای بیشتری نیاز دارند.
- پس از آموزش، مدل های یادگیری عمیق انعطاف ناپذیر می شوند و نمی توانند چندوظیفه ای را مدیریت کنند. آنها می توانند راه حل های کارآمد و دقیق را ارائه دهند اما فقط برای یک مشکل خاص. حتی حل یک مشکل مشابه مستلزم آموزش مجدد سیستم است.
- هر برنامهای که نیاز به استدلال داشته باشد – مانند برنامهنویسی یا استفاده از روش علمی – برنامهریزی بلندمدت و دستکاری دادههای الگوریتمی کاملاً فراتر از آن چیزی است که تکنیکهای یادگیری عمیق فعلی حتی با دادههای بزرگ میتوانند انجام دهند.
یادگیری عمیق در مقابل یادگیری ماشینی
یادگیری عمیق زیرمجموعه ای از یادگیری ماشینی است که خود را از طریق روش حل مشکلات متمایز می کند. یادگیری ماشینی به متخصص حوزه نیاز دارد تا بیشتر ویژگی های کاربردی را شناسایی کند. از سوی دیگر، یادگیری عمیق ویژگی ها را به صورت تدریجی درک می کند، بنابراین نیاز به تخصص در حوزه را از بین می برد. این باعث میشود که آموزش الگوریتمهای یادگیری عمیق بسیار بیشتر از الگوریتمهای یادگیری ماشینی طول بکشد، که فقط به چند ثانیه تا چند ساعت نیاز دارند. با این حال، در طول آزمایش برعکس است. الگوریتمهای یادگیری عمیق نسبت به الگوریتمهای یادگیری ماشین زمان بسیار کمتری برای اجرای آزمایشها میگیرند، که زمان تست آنها همراه با اندازه دادهها افزایش مییابد.
علاوه بر این، یادگیری ماشینی به همان ماشینهای پرهزینه و پیشرفته و پردازندههای گرافیکی با کارایی بالا نیاز ندارد.
در پایان، بسیاری از دانشمندان داده، یادگیری ماشین سنتی را به دلیل قابلیت تفسیر برتر یا توانایی درک راهحلها، بر یادگیری عمیق ترجیح میدهند. الگوریتم های یادگیری ماشینی نیز زمانی که داده ها کوچک هستند ترجیح داده می شوند.
مواردی که یادگیری عمیق ترجیح داده می شود شامل موقعیت هایی است که در آن مقدار زیادی داده وجود دارد، عدم درک دامنه برای درون نگری ویژگی، یا مشکلات پیچیده، مانند تشخیص گفتار و NLP.