آشنایی با یادگیری عمیق (Deep Learning)

یادگیری eep یک تکنیک یادگیری ماشینی است که به رایانه‌ها می‌آموزد تا کارهایی را انجام دهند که به طور طبیعی برای انسان اتفاق می‌افتد: یادگیری با مثال. یادگیری عمیق یک فناوری کلیدی در پشت خودروهای بدون راننده است که به آنها امکان می‌دهد تابلوی ایست را تشخیص دهند یا عابر پیاده را از تیر چراغ برق تشخیص دهند. این کلید کنترل صدا در دستگاه های مصرف کننده مانند تلفن، تبلت، تلویزیون و بلندگوهای هندزفری است. یادگیری عمیق اخیراً و به دلایل خوبی مورد توجه قرار گرفته است. دستیابی به نتایجی است که قبلاً ممکن نبود. در یادگیری عمیق، یک مدل کامپیوتری یاد می گیرد که وظایف طبقه بندی را مستقیماً از روی تصاویر، متن یا صدا انجام دهد. مدل‌های یادگیری عمیق می‌توانند به دقت پیشرفته‌ای دست یابند، که گاهی اوقات از عملکرد سطح انسانی فراتر می‌رود. مدل‌ها با استفاده از مجموعه بزرگی از داده‌های برچسب‌گذاری شده و معماری‌های شبکه عصبی که حاوی لایه‌های زیادی هستند، آموزش داده می‌شوند. Deep Learningچرا یادگیری عمیق مهم است چگونه یادگیری عمیق به چنین نتایج چشمگیری دست می یابد؟ در یک کلام دقت. یادگیری عمیق به دقت تشخیص در سطوح بالاتر از همیشه دست می یابد. این به لوازم الکترونیکی مصرفی کمک می کند تا انتظارات کاربر را برآورده کنند و برای برنامه های کاربردی حیاتی ایمنی مانند اتومبیل های بدون راننده بسیار مهم است. پیشرفت‌های اخیر در یادگیری عمیق به حدی بهبود یافته است که یادگیری عمیق در برخی از وظایف مانند طبقه‌بندی اشیا در تصاویر از انسان بهتر عمل می‌کند. در حالی که یادگیری عمیق برای اولین بار در دهه 1980 نظریه‌پردازی شد، دو دلیل اصلی وجود دارد که اخیراً مفید بوده است: یادگیری عمیق به مقادیر زیادی از داده های برچسب دار نیاز دارد. به عنوان مثال، توسعه ماشین بدون راننده به میلیون ها تصویر و هزاران ساعت فیلم نیاز دارد. یادگیری عمیق نیاز به قدرت محاسباتی قابل توجهی دارد. پردازنده‌های گرافیکی با کارایی بالا معماری موازی دارند که برای یادگیری عمیق کارآمد است. هنگامی که با خوشه‌ها یا محاسبات ابری ترکیب می‌شود، تیم‌های توسعه را قادر می‌سازد تا زمان آموزش شبکه یادگیری عمیق را از هفته‌ها به ساعت‌ها یا کمتر کاهش دهند. نمونه هایی از یادگیری عمیق در محل کار برنامه های کاربردی یادگیری عمیق در صنایع از رانندگی خودکار گرفته تا دستگاه های پزشکی استفاده می شود. رانندگی خودکار: محققان خودرو از یادگیری عمیق برای تشخیص خودکار اشیایی مانند علائم ایست و چراغ راهنمایی استفاده می کنند. علاوه بر این، یادگیری عمیق برای شناسایی عابران پیاده استفاده می شود که به کاهش تصادفات کمک می کند. هوافضا و دفاع: یادگیری عمیق برای شناسایی اشیاء از ماهواره ها که مناطق مورد نظر را تعیین می کنند و شناسایی مناطق امن یا ناامن برای سربازان استفاده می شود. تحقیقات پزشکی: محققان سرطان از یادگیری عمیق برای شناسایی خودکار سلول های سرطانی استفاده می کنند. تیم‌های UCLA یک میکروسکوپ پیشرفته ساختند که مجموعه داده‌های با ابعاد بالا را برای آموزش یک برنامه یادگیری عمیق برای شناسایی دقیق سلول‌های سرطانی به دست می‌دهد. اتوماسیون صنعتی: یادگیری عمیق با تشخیص خودکار زمانی که افراد یا اشیاء در فاصله ای ناامن از ماشین ها قرار دارند، به بهبود ایمنی کارگران در اطراف ماشین آلات سنگین کمک می کند. الکترونیک: یادگیری عمیق در شنوایی خودکار و ترجمه گفتار استفاده می شود. برای مثال، دستگاه‌های کمکی خانگی که به صدای شما پاسخ می‌دهند و ترجیحات شما را می‌دانند، توسط برنامه‌های یادگیری عمیق پشتیبانی می‌شوند. یادگیری عمیق چگونه کار می کند اکثر روش های یادگیری عمیق از معماری شبکه های عصبی استفاده می کنند، به همین دلیل است که مدل های یادگیری عمیق اغلب به عنوان شبکه های عصبی عمیق شناخته می شوند. اصطلاح "عمیق" معمولاً به تعداد لایه های پنهان در شبکه عصبی اشاره دارد. شبکه های عصبی سنتی فقط شامل 2-3 لایه پنهان هستند، در حالی که شبکه های عمیق می توانند تا 150 لایه داشته باشند. مدل‌های یادگیری عمیق با استفاده از مجموعه‌های بزرگی از داده‌های برچسب‌گذاری‌شده و معماری‌های شبکه عصبی که ویژگی‌ها را مستقیماً از داده‌ها بدون نیاز به استخراج دستی ویژگی‌ها یاد می‌گیرند، آموزش داده می‌شوند. یکی از محبوب ترین انواع شبکه های عصبی عمیق به نام شبکه های عصبی کانولوشن (CNN یا ConvNet) شناخته می شود. یک CNN ویژگی‌های آموخته‌شده را با داده‌های ورودی ترکیب می‌کند و از لایه‌های کانولوشن دو بعدی استفاده می‌کند، که این معماری را برای پردازش داده‌های دو بعدی، مانند تصاویر، مناسب می‌کند. CNN ها نیاز به استخراج دستی ویژگی ها را از بین می برند، بنابراین نیازی به شناسایی ویژگی های مورد استفاده برای طبقه بندی تصاویر ندارید. CNN با استخراج مستقیم ویژگی ها از تصاویر کار می کند. ویژگی های مربوطه از قبل آموزش دیده نیستند. آنها در حالی یاد می گیرند که شبکه بر روی مجموعه ای از تصاویر آموزش می بیند. این استخراج خودکار ویژگی‌ها، مدل‌های یادگیری عمیق را برای وظایف بینایی کامپیوتری مانند طبقه‌بندی اشیا بسیار دقیق می‌کند. CNN ها یاد می گیرند که ویژگی های مختلف یک تصویر را با استفاده از ده ها یا صدها لایه پنهان شناسایی کنند. هر لایه پنهان پیچیدگی ویژگی های تصویر یاد گرفته شده را افزایش می دهد. برای مثال، اولین لایه پنهان می‌تواند یاد بگیرد که چگونه لبه‌ها را تشخیص دهد، و آخرین لایه یاد می‌گیرد که چگونه اشکال پیچیده‌تر را که به طور خاص به شکل شیئی که ما در تلاش برای تشخیص آن هستیم، تشخیص دهد. تفاوت بین یادگیری ماشینی و یادگیری عمیق چیست؟ یادگیری عمیق یک شکل تخصصی از یادگیری ماشینی است. گردش کار یادگیری ماشین با استخراج دستی ویژگی‌های مرتبط از تصاویر شروع می‌شود. سپس از ویژگی ها برای ایجاد مدلی استفاده می شود که اشیاء موجود در تصویر را دسته بندی می کند.با یک گردش کار یادگیری عمیق، ویژگی های مرتبط به طور خودکار از تصاویر استخراج می شوند. علاوه بر این، یادگیری عمیق "یادگیری سرتاسر" را انجام می دهد - جایی که به شبکه داده های خام و وظایفی مانند طبقه بندی داده می شود و یاد می گیرد که چگونه این کار را به طور خودکار انجام دهد. تفاوت اصلی دیگر، مقیاس الگوریتم های یادگیری عمیق با داده ها است، در حالی که یادگیری کم عمق همگرا می شود. یادگیری سطحی به روش‌های یادگیری ماشینی اشاره دارد که با اضافه کردن مثال‌ها و داده‌های آموزشی بیشتر به شبکه، در سطح مشخصی از عملکرد بالا می‌روند. یک مزیت کلیدی شبکه های یادگیری عمیق این است که اغلب با افزایش اندازه داده های شما به پیشرفت خود ادامه می دهند. انتخاب بین یادگیری ماشینی و یادگیری عمیق یادگیری ماشینی تکنیک‌ها و مدل‌های مختلفی را ارائه می‌دهد که می‌توانید بر اساس برنامه کاربردی، اندازه داده‌هایی که در حال پردازش هستید و نوع مشکلی که می‌خواهید حل کنید، انتخاب کنید. یک برنامه یادگیری عمیق موفق به مقدار بسیار زیادی داده (هزاران تصویر) برای آموزش مدل و همچنین GPU یا واحدهای پردازش گرافیکی برای پردازش سریع داده های شما نیاز دارد. هنگام انتخاب بین یادگیری ماشینی و یادگیری عمیق، در نظر بگیرید که آیا یک GPU با عملکرد بالا و داده های برچسب گذاری شده زیادی دارید یا خیر. اگر هیچ یک از این موارد را ندارید، ممکن است به جای یادگیری عمیق از یادگیری ماشینی استفاده کنید. یادگیری عمیق عموماً پیچیده‌تر است، بنابراین برای دریافت نتایج قابل اعتماد به حداقل چند هزار تصویر نیاز دارید. داشتن یک GPU با کارایی بالا به این معنی است که مدل زمان کمتری برای تجزیه و تحلیل تمام آن تصاویر می‌گیرد. نحوه ایجاد و آموزش مدل های یادگیری عمیق سه روش رایجی که مردم از یادگیری عمیق برای انجام طبقه بندی اشیا استفاده می کنند عبارتند از: آموزش از صفر برای آموزش یک شبکه عمیق از ابتدا، یک مجموعه داده با برچسب بسیار بزرگ جمع آوری می کنید و یک معماری شبکه طراحی می کنید که ویژگی ها و مدل ها را یاد می گیرد. این برای برنامه های جدید یا برنامه هایی که تعداد زیادی دسته خروجی دارند خوب است. این رویکرد کمتر رایج است زیرا با حجم زیاد داده و میزان یادگیری، آموزش این شبکه ها معمولا روزها یا هفته ها طول می کشد. شما با یک شبکه موجود، مانند AlexNet یا GoogLeNet شروع می‌کنید و داده‌های جدیدی حاوی کلاس‌های ناشناخته قبلی را تغذیه می‌کنید. پس از ایجاد برخی تغییرات در شبکه، اکنون می توانید یک کار جدید مانند دسته بندی سگ ها یا گربه ها به جای 1000 شی مختلف را انجام دهید. همچنین این مزیت نیاز به داده های بسیار کمتر (پردازش هزاران تصویر به جای میلیون ها عکس) را دارد، بنابراین زمان محاسبه به دقیقه یا ساعت کاهش می یابد. یادگیری انتقال نیاز به یک رابط به بخش های داخلی شبکه از پیش موجود دارد، بنابراین می توان آن را با جراحی تغییر داد و برای کار جدید ارتقا داد. استخراج ویژگی یک رویکرد کمتر رایج و تخصصی تر برای یادگیری عمیق، استفاده از شبکه به عنوان استخراج کننده ویژگی است. از آنجایی که تمام لایه‌ها وظیفه یادگیری ویژگی‌های خاصی از تصاویر را دارند، می‌توانیم این ویژگی‌ها را در هر زمانی در طول فرآیند آموزش از شبکه خارج کنیم. سپس می‌توان از این ویژگی‌ها به عنوان ورودی یک مدل یادگیری ماشینی مانند ماشین‌های بردار پشتیبانی (SVM) استفاده کرد. تسریع مدل‌های یادگیری عمیق با پردازنده‌های گرافیکی آموزش یک مدل یادگیری عمیق ممکن است زمان زیادی از روزها تا هفته ها به طول بینجامد. استفاده از شتاب پردازنده گرافیکی می تواند روند را به میزان قابل توجهی افزایش دهد. استفاده از MATLAB با GPU زمان مورد نیاز برای آموزش شبکه را کاهش می دهد و می تواند زمان آموزش مشکل طبقه بندی تصویر را از روز به ساعت کاهش دهد. در آموزش مدل‌های یادگیری عمیق، متلب از پردازنده‌های گرافیکی (در صورت موجود بودن) استفاده می‌کند، بدون اینکه از شما بخواهد به طور صریح نحوه برنامه‌نویسی پردازنده‌های گرافیکی را بدانید. لینک منبع