همه چیز راجع به یادگیری عمیق یا Deep learning به زبان ساده و کاربردی

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

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

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

برای درک یادگیری عمیق، کودکی را تصور کنید که میخواهد رنگ قرمز را یاد بگیرد.  کودک نوپا با اشاره به اشیاء قرمز  و گفتن کلمه قرمز یاد می گیرد که قرمز چیست. والدین آن کودک می گویند: “بله، آن رنگ قرمز دارد” یا “نه، آن قرمز نیست.” همانطور که کودک همچنان به اشیاء اشاره می کند، از همه طیف های رنگ قرمز بیشتر آگاه می شود. ( البته توجه کنید که برای خانم ها فقط یک رنگ قرمز نداریم و خانم ها به هر کد رنگی طیف قرمز یک اسم خاص نسبت می دهند 🙂 کاری که کودک نوپا بدون اینکه بداند انجام می دهد، کار کردن روی یک درک یا یک انتزاع پیچیده – مفهوم رنگ قرمز – با ساختن سلسله شناخت است که در آن هر سطح از انتزاع با دانشی که از لایه قبلی سلسله مراتب به دست آمده است ایجاد می شود.

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

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

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

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

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

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

یادگیری عمیق در مقابل یادگیری ماشینی

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

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

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

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

روش های یادگیری عمیق

برای ایجاد مدل های یادگیری عمیق قوی می توان از روش های مختلفی استفاده کرد. این تکنیک ها learning rate decay ، انتقال یادگیری یا transfer learning ، آموزش از صفر training from scratch و بدون تحصیل dropout است .

learning rate decay

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

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

انتقال یادگیری یا transfer learning

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

آموزش از صفر training from scratch

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

dropout

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

شبکه های عصبی یادگیری عمیق؟

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

شبکه‌های عصبی به اشکال مختلف از جمله شبکه‌های عصبی بازگشتی recurrent neural networks ، شبکه‌های عصبی کانولوشنال convolutional neural networks ، شبکه‌های عصبی مصنوعی artificial neural networks و شبکه‌های عصبی پیش‌خور feedforward neural networks وجود دارند و هر کدام مزایایی برای موارد استفاده خاص دارند. با این حال، همه آنها تا حدودی مشابه کار می کنند – با تغذیه داده ها و اجازه دادن به مدل، تا برای خود تشخیص دهد که آیا تفسیر یا تصمیم درستی در مورد یک عنصر داده ای داده است یا خیر.

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

نمونه هایی از به کارگیری یادگیری عمیق

از آنجایی که مدل‌های یادگیری عمیق اطلاعات را به روش‌هایی مشابه مغز انسان پردازش می‌کنند، می‌توان آن‌ها را برای بسیاری از وظایف افراد به کار برد. یادگیری عمیق در حال حاضر در اکثر ابزارهای رایج تشخیص تصویر  image recognition tools ، پردازش زبان طبیعی ( NLP ) natural language processing و نرم افزارهای تشخیص گفتار  speech recognition software استفاده می شود. این ابزارها شروع به ظاهر شدن در برنامه های متنوعی مانند ماشین های خودران و خدمات ترجمه زبان کرده اند.

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

زمینه های خاصی که در حال حاضر یادگیری عمیق در آنها استفاده می شود شامل موارد زیر است:

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

محدودیت ها و چالش ها یادگیری عمیق

1- وابستگی زیاد به داده

- تنوع داده

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

- موضوع سوگیری ها

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

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

2- نرخ یادگیری

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

3- نیاز به سخت افزار قدرتمند

الزامات سخت افزاری برای مدل های یادگیری عمیق نیز می تواند محدودیت هایی ایجاد کند. واحدهای پردازش گرافیکی چند هسته ای با کارایی بالا ( GPU ) و سایر واحدهای پردازش مشابه برای اطمینان از بهبود کارایی و کاهش زمان مصرف مورد نیاز هستند. با این حال، این واحدهای پردازش گران هستند و مقادیر زیادی انرژی مصرف می کنند. سایر نیازهای سخت افزاری شامل حافظه دسترسی تصادفی random access memory  و هارد دیسک ( HDD ) یا درایو رم(SSD) است.

از دیگر محدودیت ها و چالش ها می توان به موارد زیر اشاره کرد:

  • می توانند راه حل های کارآمد و دقیق را ارائه دهند اما فقط برای یک مشکل خاص. حتی حل یک مشکل مشابه مستلزم آموزش مجدد سیستم است.
  • هر برنامه‌ای که نیاز به استدلال داشته باشد – مانند برنامه‌نویسی یا استفاده از روش علمی – برنامه‌ریزی بلندمدت و دستکاری داده‌های الگوریتمی کاملاً فراتر از آن چیزی است که تکنیک‌های یادگیری عمیق فعلی حتی با داده‌های بزرگ می‌توانند انجام دهند.

پیشنهاد مطالعه

راهنمای مقاله