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