یادگیری عمیق

در این مقاله در مورد یاد گیری عمیق و شیوه های مختلف آن و نیز کاربرهای آن خواهیم آموخت.
يکشنبه، 7 شهريور 1400
تخمین زمان مطالعه:
موارد بیشتر برای شما
یادگیری عمیق

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

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

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

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

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

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

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

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

مثال های یادگیری عمیق

از آن جا که مدل های یادگیری عمیق اطلاعات را به شیوه ای شبیه به مغز انسان پردازش می کنند، می توانند در بسیاری از وظایف مردم به کار گرفته شوند. یادگیری عمیق در حال حاضر در رایج ترین ابزارهای تشخیص تصویر، پردازش زبان طبیعی (NLP) (natural language processing) و نرم افزار تشخیص گفتار استفاده می شود. این ابزارها در برنامه های متنوعی مانند اتومبیل های خودران و خدمات ترجمه زبان ظاهر می شوند.
 برای دستیابی به سطح قابل قبولی از دقت، برنامه های یادگیری عمیق مستلزم دسترسی به حجم عظیمی از داده های آموزشی و قدرت پردازش بالا هستند که هیچ یک از آنها تا عصر کلان داده و محاسبات ابری به آسانی در اختیار برنامه نویسان نبود. موارد مورد استفاده امروزه برای یادگیری عمیق شامل انواع برنامه های تجزیه و تحلیل داده های بزرگ است، به ویژه مواردی که برNLP ، ترجمه زبان، تشخیص پزشکی، سیگنال های معاملات بازار سهام، امنیت شبکه و تشخیص تصویر متمرکز شده است.
 
زمینه های خاصی که در حال حاضر از آموزش عمیق در آنها استفاده می شود شامل موارد زیر است:
 
تجربه مشتری (CX) (Customer experience)
از مدل های یادگیری عمیق در حال حاضر برای چت بات ها استفاده می شود. و با پیشرفت آنها، انتظار می رود که یادگیری عمیق در مشاغل مختلف برای بهبود CX و افزایش رضایت مشتری اجرا شود.
 
تولید متن
ماشین ها به یادگیری گرامر و سبک یک قطعه از متن می پردازند و سپس از این مدل برای ایجاد خودکار یک متن کاملاً جدید مطابق با املای مناسب، گرامر و سبک متن اصلی استفاده می کنند.
 
هوافضا و نظامی
 از یادگیری عمیق برای تشخیص اشیاء از ماهواره هایی که نواحی مورد علاقه را شناسایی می کنند و همچنین تشخیص مناطق امن یا ناامن برای سربازان استفاده می شود.
یادگیری بدون نظارت نه تنها سریع تر است، بلکه معمولاً دقیق تر هم هست.
اتوماسیون صنعتی
یادگیری عمیق در حال بهبود ایمنی کارگران در محیط هایی مانند کارخانه ها و انبارها با ارائه خدماتی است که به طور خودکار زمان نزدیک شدن یک کارگر یا شیء را به ماشین تشخیص می دهد.
 
افزودن رنگ
با استفاده از مدل های یادگیری عمیق می توان رنگ را به عکس ها و فیلم های سیاه و سفید اضافه کرد. در گذشته، این یک فرایند دستی بسیار وقت گیر بود.
 
تحقیقات پزشکی
 محققان سرطان به عنوان راهی برای تشخیص خودکار سلول های سرطانی، استفاده از آموزش عمیق را در کار خود شروع کرده اند.
 
بینایی رایانه ای
 یادگیری عمیق بینایی رایانه را به میزان قابل توجهی افزایش داده است، و برای تشخیص اشیاء و طبقه بندی تصویر، ترمیم و تقسیم بندی، دقت فوق العاده ای در اختیار رایانه ها قرار می دهد.
 

محدودیت ها و چالش ها

بزرگ ترین محدودیت مدل های یادگیری عمیق این است که آنها از طریق مشاهدات یاد می گیرند. این بدان معناست که آنها فقط می دانند چه چیزی در داده هایی که در آن آموزش دیده بودند وجود داشته است. اگر کاربر مقدار کمی داده داشته باشد یا از یک منبع خاص که لزوماً نماینده حوزه کاربردی وسیع تری نیست تهیه شده باشد، مدل ها به روشی قابل تعمیم نخواهند آموخت.
 یادگیری عمیق را می توان راهی برای خودکارسازی تجزیه و تحلیل پیش بینی در نظر گرفت. مسئله سوگیری ها نیز یک مشکل عمده برای مدل های یادگیری عمیق است. اگر مدلی بر روی داده هایی که دارای سوگیری هستند آموزش ببیند، مدل، آن سوگیری ها را در پیش بینی های خود بازتولید می کند. این یک مشکل نگران کننده برای برنامه نویسان یادگیری عمیق بوده است زیرا مدل ها یاد می گیرند که بر اساس تغییرات ظریف در عناصر داده، تفاوت قائل شوند. اغلب، عواملی که را که مدل تعیین می کند که مهم هستند به طور واضح برای برنامه نویس مشخص نشده است. این بدان معناست که، برای مثال، یک مدل تشخیص چهره ممکن است در مورد ویژگی های افراد بر اساس مواردی مانند نژاد یا جنسیت تصمیم گیری هایی کند بدون این که برنامه نویس از آن آگاه باشد.
 
نرخ یادگیری همچنین می تواند به چالشی بزرگ برای مدل های یادگیری عمیق تبدیل شود. اگر نرخ بسیار زیاد باشد، مدل خیلی سریع همگرا می شود و یک راه حل کمتر از بهینه تولید می کند. اگر نرخ بسیار پایین باشد، ممکن است روند به هم بخورد و رسیدن به راه حل حتی سخت تر خواهد بود.
 
الزامات سخت افزاری برای مدل های یادگیری عمیق نیز می تواند محدودیت هایی ایجاد کند. چندین واحد پردازش گرافیکی با عملکرد بالا (GPU) و دیگر واحدهای پردازشی مشابه برای اطمینان از بهبود کارایی و کاهش زمان مصرف مورد نیاز است. با این حال، این واحدها گران هستند و از مقدار زیادی انرژی استفاده می کنند. سایر نیازهای سخت افزاری شامل حافظه دسترسی تصادفی و درایو دیسک سخت (HDD) یا درایو حالت جامد مبتنی بر RAM (SSD) است.
 هر الگوریتم در سلسله مراتب یک تغییر غیر خطی در ورودی خود اعمال می کند و از آن چه آموخته است برای ایجاد یک مدل آماری به عنوان خروجی استفاده می کند.
سایر محدودیت ها و چالش ها شامل موارد زیر است:
 
* یادگیری عمیق به حجم زیادی داده نیاز دارد. علاوه بر این، مدل های قوی تر و دقیق تر نیاز به پارامترهای بیشتری دارند که به نوبه خود به داده های بیشتری نیاز دارند.
 
* پس از آموزش، مدل های یادگیری عمیق انعطاف ناپذیر می شوند و نمی توانند چند وظیفه گی را اداره کنند. آنها می توانند راه حل های کارآمد و دقیقی را ارائه دهند اما فقط برای یک مشکل خاص. حتی حل یک مشکل مشابه مستلزم بازآموزی سیستم است.
 
* هر برنامه ای که مستلزم استدلال باشد - مانند برنامه نویسی یا استفاده از روش علمی - برنامه ریزی طولانی مدت و دستکاری داده ها شبیه به الگوریتم، کاملاً فراتر از توانایی تکنیک های یادگیری عمیق کنونی، حتی با داده های بزرگ، است.
 
منبع: اد برنز، ویراستار اجرایی، کیت براش، نویسنده فنی، TechTarget


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