یادگیری عمیق نوعی شیوهی یادگیری است که به رایانهها میآموزد کاری را انجام دهند که در حالت طبیعی برای انسانها رخ میدهد، یعنی یادگیری با مثال. یادگیری عمیق فناوری مهم پشت خودروهای خودران است که به آنها امکان میدهد تابلوی ایست را شناسایی کنند یا عابر پیاده را از تیرچراغبرق تشخیص دهند. یادگیری عمیق اخیراً توجه زیادی را به خود جلب کرده است که عجیب هم نیست، چون بهکمک این فناوری دستاوردهایی حاصل میشود که پیش از این ممکن نبوده است. یک مدل رایانهای بهکمک یادگیری عمیق میآموزد که دستهبندی را مستقیماً از روی تصاویر، متن یا صدا انجام دهد. مدلهای یادگیری عمیق میتوانند به دقت پیشرفتهای دست یابند که گاهی اوقات از عملکرد انسانی هم فراتر میرود. با ما همراه باشید تا بیشتر دربارهی یادگیری عمیق بگوییم.
آنچه در این مقاله میخوانید
چرا یادگیری عمیق مهم است؟
در یک کلمه، دقت. یادگیری عمیق به بالاترین سطح دقت تشخیص دست مییابد. این فناوری سبب میشود لوازم الکترونیکی مصرفی انتظارات کاربران را برآورده کنند و نقشی حیاتی در برنامههای کاربردی حساس به ایمنی مانند خودروهای خودران ایفا میکند. یادگیری عمیق اخیراً چنان بهبود یافته است که این فناوری در برخی امور مانند دستهبندی اشیا در تصاویر از انسان پیشی میگیرد.
با اینکه یادگیری عمیق اولین بار در دههی ۱۹۸۰ بهصورت استدلالی نظری ارائه شد، به دو دلیل عمده اخیراً موردتوجه قرار گرفته و مفید واقع شده است:
- یادگیری عمیق به مقادیر زیادی دادههای برچسبگذاریشده نیاز دارد. مثلاً توسعهی خودروهای خودران نیازمند میلیونها تصویر و هزاران ساعت ویدئو است.
- یادگیری عمیق مستلزم قدرت پردازش بسیار زیادی است. پردازندههای گرافیکی با کارایی بالا که دارای معماری موازی هستند، برای یادگیری عمیق کارآمدند. چنانچه این پردازندهها با سیستم رایانش خوشهای یا ابری همگام شوند، تیمهای توسعهدهنده قادر خواهند بود زمان آموزش شبکهی یادگیری عمیق را از هفتهها به ساعتها یا کمتر کاهش دهند.
نمونههایی از کاربردهای یادگیری عمیق در زمینههای کاری
برنامههای کاربردی یادگیری عمیق در صنایع متنوعی از رانندگی خودکار گرفته تا دستگاههای پزشکی استفاده میشود. در ادامه، چند نمونه از مهمترین کاربردهای یادگیری عمیق را بررسی کردهایم.
۱. رانندگی خودکار
محققان صنعت خودرو از یادگیری عمیق برای تشخیص خودکار اشیایی مانند تابلوهای ایست و چراغهای راهنمایی استفاده میکنند. افزون بر این، یادگیری عمیق برای شناسایی عابران پیاده به کار میرود و به کاهش تصادفات کمک میکند.
۲. صنایع هوایی و نظامی
یادگیری عمیق برای شناسایی اشیا از ماهوارههایی که مناطق مدنظر را تعیین میکنند و همچنین تشخیص مناطق امن یا ناامن برای سربازان استفاده میشود.
۳. تحقیقات پزشکی
محققان سرطان از یادگیری عمیق برای شناسایی خودکار سلولهای سرطانی استفاده میکنند. تیمهای دانشگاه لسآنجلس میکروسکوپی پیشرفته ساختهاند که دادههای عمیق به دست میآورد. این دادهها برای آموزش مدل یادگیری عمیقی با هدف شناسایی دقیق سلولهای سرطانی به کار میروند.
۴. اتوماسیون صنعتی
یادگیری عمیق خودکار تشخیص میدهد که چه زمانی افراد یا اشیا در فاصلهای ناامن از دستگاهها قرار دارند و به این ترتیب سبب بهبود ایمنی کارگران در اطراف ماشینآلات سنگین میشود.
۵. الکترونیک
یادگیری عمیق در شنوایی خودکار و ترجمهی گفتار به کار میرود. مثلاً ابزارهای هوشمند خانگی که به صدای شما پاسخ میدهند و علاقهمندیهای شما را میدانند، به مدلهای یادگیری عمیق مجهزند.
عملکرد یادگیری عمیق چگونه است؟
بیشتر شیوههای یادگیری عمیق از معماریهای شبکهی عصبی استفاده میکنند و برای همین است که معمولاً مدلهای یادگیری عمیق شبکههای عصبی عمیق نامیده میشوند. واژهی «عمیق» معمولاً به تعداد لایههای پنهان در شبکهی عصبی اشاره دارد. شبکههای عصبی متداول فقط شامل ۲ تا ۳ لایهی پنهان هستند، اما ممکن است شبکههای عمیق تا ۱۵۰ لایه هم داشته باشند.
مدلهای یادگیری عمیق با استفاده از مجموعهی بزرگی از دادههای برچسبگذاریشده و معماریهای شبکهی عصبی آموزش داده میشوند تا اطلاعات مفید و تمیزپذیر را مستقیماً از دادهها و بدون نیاز به استخراج دستی فرا بگیرند.
شبکههای عصبی که در لایههای متشکل از مجموعهای از گرههای بههمپیوسته سازماندهی شدهاند. این شبکهها ممکن است دهها یا صدها لایهی پنهان داشته باشند.
یکی از محبوبترین انواع شبکههای عصبی عمیق شبکهی عصبی پیچشی (CNN یا ConvNet) نام دارد. شبکهی عصبی پیچشی ویژگیهای آموختهشده را با دادههای ورودی در هم میپیچد و از لایههای پیچشی دوبعدی استفاده میکند. از اینرو این معماری برای پردازش دادههای دوبعدی نظیر تصاویر مناسب است.
این شبکهها به استخراج دستی ویژگیها نیازی ندارند. بنابراین، به شناسایی ویژگیهای مورداستفاده برای طبقهبندی تصاویر نیازی نیست. این شبکه مستقیماً ویژگیها را از تصاویر استخراج میکند. ویژگیهای مرتبط از قبل آموزش داده نشدهاند، بلکه همزمان با آموزش شبکه بر روی مجموعهای از تصاویر فراگرفته میشوند. این استخراج خودکار ویژگیها سبب میشود که مدلهای یادگیری عمیق در کاربردهای مختلف بینایی رایانه مانند دستهبندی اشیا بسیار دقیق عمل کنند.
مقایسهی رویکرد یادگیری ماشینی برای دستهبندی وسایل نقلیه (سمت چپ) با یادگیری عمیق (سمت راست)
نمونهای از شبکهای با لایههای پیچشی بسیار. فیلترها با تفکیکپذیریهای مختلف بر هر تصویر آموزشی اعمال میشوند و خروجی هر تصویر پیچیده بهمنزلهی ورودی لایهی بعدی عمل میکند.
این شبکهها میآموزند که ویژگیهای مختلف یک تصویر را با کاربست دهها یا صدها لایهی پنهان شناسایی کنند. هر لایهی پنهان پیچیدگی ویژگیهای تصویر آموختهشده را افزایش میدهد. برای مثال، اولین لایهی پنهان میتواند بیاموزد که چگونه لبهها را تشخیص دهد و آخرین لایه یاد میگیرد که چگونه اشکال پیچیدهتر را شناسایی کند که بهطور خاص به شکل شیئی هستند که ما در تلاش برای تشخیص آن هستیم.
تفاوت یادگیری ماشینی و یادگیری عمیق چیست؟
یادگیری عمیق نوع تخصصی یادگیری ماشینی است. چرخهی کار یادگیری ماشینی با استخراج دستی ویژگیهای مرتبط از تصاویر شروع میشود. سپس از این ویژگیها برای ایجاد مدلی استفاده میشود که اشیای موجود در تصویر را دستهبندی میکند. اما در چرخهی کار یادگیری عمیق، ویژگیهای مرتبط بهطور خودکار از تصاویر استخراج میشوند. افزون بر این، یادگیری عمیق از شیوهی «فراگیری صفر تا صد» بهره میبرد؛ به این معنا که دادههای خام و وظیفهای مانند طبقهبندی به شبکه داده میشود و شبکه بهطور خودکار میآموزد که چگونه این کار را انجام دهد.
یکی دیگر از تفاوتهای اساسی این است که الگوریتمهای یادگیری عمیق متناسب با میزان دادهها پیشرفت میکنند، درحالیکه یادگیری سطحی همگراست. یادگیری سطحی به روشهای یادگیری ماشینی اشاره دارد که با افزودن نمونهها و دادههای آموزشی به شبکه در سطح مشخصی درجا میزند. یکی از مزیتهای کلیدی شبکههای یادگیری عمیق این است که اغلب با افزایش میزان دادههای شما به پیشرفت خود ادامه میدهند.
مقایسهی رویکرد یادگیری ماشینی برای دستهبندی وسایل نقلیه (سمت چپ) با یادگیری عمیق (سمت راست)
در یادگیری ماشینی، شما بهصورت دستی ویژگیها و دستهبندیکننده را برای مرتبسازی تصاویر انتخاب میکنید. با یادگیری عمیق، مراحل استخراج ویژگی و مدلسازی خودکار انجام میشود.
انتخاب بین یادگیری ماشینی و یادگیری عمیق
یادگیری ماشینی شیوهها و مدلهای مختلفی ارائه میکند که شما میتوانید یکی از آنها را براساس برنامهی کاربردی، اندازهی دادههایی که پردازش میکنید و نوع مشکلی که میخواهید حل شود انتخاب کنید. یک برنامهی یادگیری عمیق موفق به مقدار بسیار زیادی داده (هزاران تصویر) برای آموزش مدل و پردازندههای گرافیکی نیاز دارد تا دادههای شما را سریع پردازش کند.
هنگام انتخاب بین یادگیری ماشینی و یادگیری عمیق دقت کنید که آیا پردازندهی گرافیکی با کارایی بالا و دادههای برچسبگذاریشدهی بسیار زیاد در اختیار دارید یا خیر. اگر هیچیک از این امکانات را در اختیار ندارید، شاید منطقیتر باشد که بهجای یادگیری عمیق از یادگیری ماشینی استفاده کنید. یادگیری عمیق پیچیدهتر است. بنابراین، برای دریافت نتایج قابلاعتماد دستکم به چند هزار تصویر نیاز دارید. در اختیار داشتن یک پردازندهی گرافیکی با کارایی بالا به این معناست که مدل زمانِ کمتری برای تجزیهوتحلیل تمام آن تصاویر صرف خواهد کرد.
نحوهی ایجاد و آموزش مدلهای یادگیری عمیق
۱. یادگیری از ابتدا
برای آموزش یک شبکهی عمیق از ابتدا، مجموعهی بسیار بزرگی از دادههای برچسبگذاریشده را گردآوری میکنید و یک معماری شبکه طراحی میکنید که ویژگیها و مدلها را فرامیگیرد. این روش برای برنامههای جدید یا برنامههایی که تعداد زیادی دستهبندی خروجی دارند، مفید است. این رویکرد زیاد رایج نیست، زیرا با وجود حجم بسیار دادهها و سرعت یادگیری، آموزش این شبکهها معمولاً روزها یا هفتهها طول میکشد.
۲. یادگیری انتقالی
بیشتر برنامههای یادگیری عمیق از رویکرد یادگیری انتقالی استفاده میکنند. این فرایند شامل تنظیم دقیق مدلی است که از پیش آموزش دیده است. شما با یک شبکهی موجود مانند الکس نت (AlexNet) یا گوگل نت (GoogleNet) کار را آغاز میکنید و آن را با دادههای جدیدی که حاوی گروههای ناشناختهی قبلی هستند، تغذیه میکنید. پس از ایجاد برخی اصلاحات در شبکه، اکنون میتوانید کار جدیدی مانند دستهبندی سگها یا گربهها را بهجای هزار شیء مختلف انجام دهید. مزیت دیگر این رویکرد این است که به دادههای بسیار کمتری نیاز دارد (پردازش هزاران تصویر بهجای میلیونها). بنابراین، زمان محاسبه به دقیقه یا ساعت کاهش مییابد.
یادگیری انتقالی به رابطی نیاز دارد که در میان بخشهای داخلی شبکهای که از قبل موجود بوده قرار گیرد تا بتوان آن را با موشکافی اصلاح کرد و برای کار جدید ارتقا داد. متلب (MATLAB) دارای ابزارها و عملکردهایی است که برای کمک به شما در اجرای یادگیری انتقالی طراحی شدهاند.
۳. استخراج ویژگی
رویکرد کمتر رایج و تخصصی برای یادگیری عمیق بهرهگیری از این شبکه بهمنزلهی نوعی استخراجکنندهی ویژگی است. چون تمام لایهها موظف شدهاند که ویژگیهای خاصی از تصاویر را بیاموزند، میتوانیم در هر زمانی طی فرایند آموزش این ویژگیها را از شبکه خارج کنیم. سپس، میتوان از این ویژگیها بهعنوان ورودی برای یک مدل یادگیری ماشینی مانند ماشینهای بردار پشتیبان استفاده کرد.
تسریع مدلهای یادگیری عمیق با پردازندههای گرافیکی
ممکن است آموزش یک مدل یادگیری عمیق زمان زیادی از روزها تا هفتهها طول بکشد. بهکارگیری شتاب پردازندهی گرافیکی میتواند این روند را به میزان چشمگیری سرعت بخشد. استفاده از «متلب» با یک پردازندهی گرافیکی زمان موردنیاز برای آموزش شبکه را کاهش میدهد و میتواند زمان آموزش حل مشکل طبقهبندی تصویری را از روزها به ساعتها تقلیل دهد. «متلب» در آموزش مدلهای یادگیری عمیق از پردازندههای گرافیکی (در صورت وجود) استفاده میکند بدون اینکه شما را به درک دقیق نحوهی برنامهنویسی پردازندههای گرافیکی ملزم کند.
جعبهابزار فرمانهای یادگیری عمیق برای آموزش شبکهی عصبی پیچشی منحصر به خودتان از ابتدا با استفاده از مدلی ازپیشآموزشدیده برای انتقال یادگیری.
برنامههای کاربردی یادگیری عمیق
میتوان از مدلهای شبکهی عصبی عمیق ازپیشآموزشدیده برای اعمال سریع یادگیری عمیق بهمنظور حل مشکلات با اجرای یادگیری انتقالی یا استخراج ویژگی استفاده کرد. برای کاربران «متلب» برخی مدلهای موجود عبارتاند از الکس نت، ویجیجی ـ ۱۶، ویجیجی ـ ۱۹ و همچنین مدلهای کافه (Caffe) که با استفاده از «کافهی ورودی شبکه» (importCaffeNetwork) وارد شدهاند.
از الکس نت برای تشخیص اشیا با دوربین شبکه (وبکم) خود استفاده کنید.
از «متلب»، که یک دوربین شبکهی ساده و یک شبکهی عصبی عمیق است، برای شناسایی اشیا در محیط اطراف خود استفاده کنید.
میتوان از یادگیری عمیق علاوهبر تشخیص اشیا، که یک شیء خاص را در یک تصویر یا ویدیو مشخص میکند، برای کشف اشیا هم استفاده کرد. الگوریتمهای تشخیص اشیا مانند «یولو» (YOLO) میتوانند شیء را در یک صحنه شناسایی و مکانیابی کنند و همچنین چندین شیء را در تصویر پیدا کنند.
یادگیری عمیق با «متلب»
«متلب» یادگیری عمیق را آسان میکند. این برنامه با ابزارها و عملکردهایی برای مدیریت مجموعههای بزرگی از دادهها همچنین جعبهابزارهایی تخصصی را برای کار با یادگیری ماشینی، شبکههای عصبی، بینایی رایانهای و رانندگی خودکار ارائه میدهد.
«متلب» تنها با چند خط کد به شما امکان میدهد که بدون اینکه در این زمینه متخصص باشید، یادگیری عمیق را انجام دهید. بهسرعت دستبهکار شوید، مدلها را ایجاد و تجسم کنید و سپس آنها را در سرورها و دستگاههای تعبیهشده قرار دهید.
گروههایی که از «متلب» برای یادگیری عمیق استفاده میکنند موفق هستند. در ادامه، پلایل این موفقیت را مطرح کردهایم.
۱. صرفاً با چند خط کد مدلها را ایجاد و تجسم میکنید
به شما این امکان را میدهد که مدلهای یادگیری عمیق را با کمترین کد بسازید. میتوانید بهسرعت مدلهای ازپیشآموزشدیده را وارد کنید و با تنظیم شاخصهای آموزشی نتایج میانی را تجسم و اشکالزدایی کنید.
۲. آموزش عمیق را انجام میدهید بدون اینکه در این زمینه متخصص باشید
برای فراگیری و کسب تخصص در زمینهی یادگیری عمیق میتوانید از این برنامه استفاده کنید. بسیاری از ما هرگز یک دورهی مختص آموزش عمیق را نگذراندهایم. ناگزیریم که این مهارت را در حین کار بیاموزیم. این برنامه یادگیری در این زمینه را کاربردی و در دسترس میکند. افزون بر این، متخصصان این حوزه را قادر میسازد تا بهجای اینکه کار را به متخصصان دادهای واگذار کنند که صنعت یا برنامهی آنها را نمیشناسند، خودشان از پس این کار برآیند.
۳. برچسبگذاری دادههای مرجع تصاویر و ویدئوها را خودکار میکنید
این برنامه کاربران را قادر میسازد تا بهصورت تعاملی اشیای درون تصاویر را برچسبگذاری کنند و میتوانند در ویدیوهای آموزش و آزمایش مدلهای یادگیری عمیق برچسبگذاری دادههای مرجع را بهصورت خودکار درآورند. این رویکرد تعاملی و خودکار میتواند به نتایج بهتر در زمان کمتر منجر شود.
۴. یادگیری عمیق را در یک چرخهی کاری واحد ادغام میکنید
این برنامه میتواند چندین حوزه را در یک چرخهی کاری واحد ادغام کند. به این ترتیب شما میتوانید مرحلهی تفکر و برنامهنویسی خود را در یک محیط انجام دهید. «متلب» ابزارها و عملکردهایی را برای یادگیری عمیق و همچنین طیف وسیعی از حوزههایی که الگوریتمهای یادگیری عمیق را تغذیه میکنند ارائه میدهد. حوزههایی از قبیل پردازش سیگنال، بینایی رایانه و تجزیهوتحلیل دادهها.
شما میتوانید با کمک «متلب» نتایج را در برنامههای موجود خود ادغام کنید. این برنامه استقرار مدلهای یادگیری عمیق شما را در سیستمهای سازمانی، خوشهها، فضاهای ابری و دستگاههای تعبیهشده بهصورت خودکار درمیآورد.
کتابهایی که با خواندنشان اطلاعات مفیدی دربارهی یادگیری کسب میکنید
مطالعه یکی از روشهای مفید و اثربخش برای بهبود کیفیت زندگی است، بهویژه وقتی کتابهای مناسب را برای مطالعه انتخاب کنیم. پیشنهاد میکنیم این سه کتاب عالی را که با موضوع یادگیری و اختلالات یادگیری مرتبطاند، در فهرست مطالعهی خود قرار دهید.
بی حد و مرز |
منحنی خلاقیت |
تیزذهن بمانید |