مهدی مشایخی
مهدی مشایخی
خواندن ۹ دقیقه·۲ سال پیش

دیپ لرنینگ چیست؟ - Deep Learning - مهدی مشایخی

دیپ لرنینگ چیست؟ - What is Deep Learning - مهدی مشایخی
دیپ لرنینگ چیست؟ - What is Deep Learning - مهدی مشایخی

3 چیز که باید بدانید!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

اصطلاح "عمیق" معمولاً به تعداد لایه های پنهان در شبکه عصبی اشاره دارد. شبکه های عصبی سنتی فقط شامل 2-3 لایه پنهان هستند، در حالی که شبکه های عمیق می توانند تا 150 لایه داشته باشند.

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

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

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

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

دیپ لرنینگ - شبکه کانولوشن - مهدی مشایخی
دیپ لرنینگ - شبکه کانولوشن - مهدی مشایخی

مثالی از یک شبکه با لایه های کانولوشن زیاد. فیلترها برای هر تصویر آموزشی با رزولوشن های مختلف اعمال می شوند و خروجی هر تصویر پیچیده به عنوان ورودی لایه بعدی عمل می کند.

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

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

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

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

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

دیپ لرنینگ - مقایسه ماشین با دیپ لرنینگ - مهدی مشایخی
دیپ لرنینگ - مقایسه ماشین با دیپ لرنینگ - مهدی مشایخی

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

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

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

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

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

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

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

آموزش از صفر

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

آموزش انتقالی

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

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

استخراج ویژگی

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

تسریع مدل‌های یادگیری عمیق با پردازنده‌های گرافیکی

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



لینک حمایت مالی برای ادامه راه : اینجا کلیک کنید.

آدرس لینکدین من و جواب به سوالات شما : اینجا کلیک کنید.

آدرس توییتر من برای مشارکت در گفت و گو ها : اینجا کلیک کنید.

انجام پروژه های ماشین لرنینگ و یادگیری عمیق در تلگرام : Mashayekhi_Ai@

منبع : https://www.mathworks.com/discovery/deep-learning.html

مهدی مشایخیدیپ لرنینگماشین لرنینگهوش مصنوعیآموزش ماشین لرنینگ
مهدی مشایخی هستم. برنامه نویس هوش مصنوعی و پایتون در زمینه یادگیری ماشینی و عمیق. به همه کمک میکنم تا با هم رشد کنیم! من در توییتر: https://twitter.com/Mashayekhi_AI
شاید از این پست‌ها خوشتان بیاید