یادگیری ماشینی به سیستمهای کامپیوتری کمک میکند تا برای پردازش و انجام وظایف مختلف کمتر به انسان نیاز داشته باشند، اما یادگیری عمیق که از مدلهای ایجادشده بر پایه ساختار مغز انسان استفاده میکند، نحوه فکرکردن را به کامپیوتر میآموزد.
یادگیری عمیق (Deep Learning یا DL) یکی از انواع فناوری یادگیری ماشینی (Machine Learning یا ML) و یادگیری ماشینی، زیرمجموعه هوش مصنوعی است. پس اجازه دهید ابتدا هوش مصنوعی را بهصورت ساده و مختصر تعریف کنیم.
هوش مصنوعی چیست؟
دستگاههای مجهز به هوش مصنوعی یا هوش ماشینی (Artificial Intelligence یا AI) میتوانند مانند انسان فکر کنند و رفتاری مشابه رفتار انسانی داشته باشند. با استفاده از هوش مصنوعی میتوان سیستمهای کامپیوتری را برای انجام وظایف مختلف آموزش داد. کامپیوترهایی که با اینفناوری آموزش دیدهاند، میتوانند در برخی موارد وظایفی را که برای انجام آنها آموزش دیدهاند، تا حدود زیادی مانند انسان انجام دهند. حتی در برخی از مواقع هوش مصنوعی میتواند جایگزین انسان شود.
متخصصان حوزه هوش مصنوعی برای آموزش سیستمهای کامپیوتری و بهرهمندشدن آنها از قابلیتهای هوش مصنوعی، از دو فناوری یادگیری ماشینی و یادگیری عمیق استفاده میکنند.
یادگیری ماشین چیست؟
تمرکز اصلی یادگیری ماشینی، ایجاد توانایی انجام وظایف مختلف توسط کامپیوترها بدون نیاز به برنامهنویسی صریح برای آنها است.
در بیشتر موارد کامپیوترها با دادههای دارای ساختار یا ساختیافته (structured data)، تغذیه میشوند. کامپیوترهای تغذیهشده با چنین دادههایی یاد میگیرند با گذشت زمان در زمینه ارزیابی و عملکردن بر اساس دادههای ورودی به آنها، بهتر شوند.
منظور از دادههای دارای ساختار، دادههای ورودی به کامپیوتر بهصورت چند ردیف و ستون است؛ مثلاً زمانی که در نرمافزار اکسل ستونی با عنوان غذا ایجاد و سپس ردیفهای با عنوان میوه و گوشت در آن ستون ایجاد میکنید، دادههای دارای ساختار را وارد کامپیوتر کردهاید.
ایننوع از دادههای دارای ساختار، بسیار ساده هستند و هر کامپیوتری بهراحتی میتواند با آنها کار کند. پردازش دادههای دارای ساختار بهقدری اهمیت دارد که یکی از مهمترین زبانهای برنامهنویسی، زبان پرسمان دارای ساختار (structured query language یا SQL) نامیده شده است.
کامپیوتر زمانی که برنامهنویسی میشود، میتواند معنا و مفهوم میزان نامحدودی از دادههای جدید را کاملاً درک کند و بدون دخالت انسان دادههای ورودی را دستهبندی و بر اساس آنها عمل کند.
مثلاً زمانی که دادههای مربوط به غذاهای مختلف را بهتدریج وارد کامپیوتر میکنید، پس از گذشت مدتی کامپیوتر میتواند بفهمد که میوه جزو غذا است؛ حتی اگر برچسبگذاری دادهها را متوقف کنید. ارزیابی دقیق این میزان از «خودمتکی» بودن، در دستهبندی یادگیری ماشینی به انواع مختلف بر اساس میزان کمک مستمر انسان برای آموزش سیستمهای کامپیوتری، اهمیت بسیار زیادی دارد و یک اصل بنیادین محسوب میشود.
مقایسه روشهای مختلف یادگیری ماشین با یکدیگر
روشهای مختلف یادگیری ماشینی شامل یادگیری تحت نظارت (Supervised learning)، یادگیری نیمهنظارتی (semi-supervised learning)، یادگیری بدون نظارت (Unsupervised learning) و یادگیری تقویتشده (Reinforcement learning) میشوند.
یادگیری تحت نظارت
یادگیری تحت نظارت شاخهای از یادگیری ماشینی محسوب میشود که پیادهسازی آن نیازمند بیشترین میزان مشارکت مستمر انسان در آموزش کامپیوترها است. به همین دلیل برای اینشیوه یادگیری، از واژه «تحت نظارت یا Supervised» استفاده شده است. در اینروش دادههای آموزشی وارد کامپیوتر میشود و یک مدل اختصاصاً جهت آموزش کامپیوتر برای چگونگی واکنش آن به دادههای ورودی، طراحی میشود.
پس از بهکارگیری مدل طراحیشده، دادههای بیشتری وارد کامپیوتر میشود تا عملکرد کامپیوتر در زمینه واکنش به دادههای ورودی ارزیابی شود. پس از انجام اینکار برنامهنویس یا دانشمند داده میتواند پیشبینیهای دقیق را تأیید یا هرگونه واکنش نادرست را تصحیح کند.
تصور کنید برنامهنویسی میخواهد کامپیوتری را برای دستهبندی تصاویر آموزش دهد. او برای انجام اینکار باید پس از واردکردن تصاویر در کامپیوتر، دستهبندی هر یک از تصاویر را به آن محول کند. در مرحله بعدی برنامهنویس باید هر مورد از دستهبندیهای انجامشده توسط کامپیوتر را که در حقیقت همان خروجی هستند، تأیید یا تصحیح کند. اینسطح از نظارت برنامهنویس کمک میکند عملکرد مدل در زمینه مدیریت دقیق مجموعه دادههای ورودی که الگوهای فرا گرفته شده را دنبال میکنند، با گذشت زمان به میزان بسیار زیادی افزایش یابد.
یادگیری نیمه نظارتی
در روش یادگیری نیمهنظارتی ترکیبی از دادههایی که بهدرستی برچسبگذاری شدهاند همراه با دادههایی برچسبگذاری نشدهاند، وارد کامپیوتر میشوند. پس از انجام اینکار، کامپیوتر خودش برای یافتن الگوها جستجو میکند، اما اینروش برای حفظ نظارت روی عملکرد کامپیوتر و انجام تنظیمات، کارآمد نیست.
دادههای برچسبگذاریشده بهعنوان یک راهنما از سوی برنامهنویس عمل میکنند؛ اما برنامهنویسان خود را درگیر نظارت مستمر نمیکنند.
یادگیری بدون نظارت
در روش یادگیری بدون نظارت، آموزش با استفاده از دادههای برچسبگذارینشده، یک گام جلوتر میرود. در اینروش به کامپیوتر برای یافتن الگوهای مختلف و همتایان آنها که به نظر کامپیوتر با یکدیگر مطابقت دارند، آزادی عمل کامل داده میشود.
معمولاً زمانی که از اینروش استفاده میشود، نتایجی به دست میآید که ممکن است تحلیلگران انسانی متوجه آنها نشده باشند. یکی از موارد متداول آموزش کامپیوتر با استفاده از روش یادگیری بدون نظارت، آموزش برای خوشهبندی دادهها است. خوشهبندی دادهها به معنای سازماندهی دادهها بر اساس موضوعات متداول و لایهبندی آنها بر مبنای شناخت به دست آمده توسط کامپیوتر است.
فروشگاههای آنلاین و سایتهای تجارت الکترونیک معمولاً برای تصمیمگیری در مورد ارائه پیشنهادهای مناسب به کاربران خاص بر اساس خریدهایی که قبلاً انجام دادهاند، از اینفناوری استفاده میکنند.
یادگیری تقویتشده
در روش یادگیری تحت نظارت و بدون نظارت، موفقنشدن کامپیوتر برای فهم درست یا طبقهبندی در سطح دادهها، هیچ پیامدی به دنبال ندارد؛ اما اگر کامپیوتر درصورتیکه کارش را درست انجام دهد، بازخورد مثبت و در صورت انجام کار اشتباه، بازخورد منفی دریافت کند (درست مانند یک کودک دبستانی)، چه میشود؟
احتمالاً کامپیوتر در چنین شرایطی سعی میکند با آزمونوخطا وظایف خاص را درست انجام دهد. در ضمن اگر بعد از اینکه کارش را درست انجام دهد، پاداش بگیرد (مثلاً امتیاز بگیرد) میفهمد که کارش را درست انجام داده است. اینروش باعث بهبود عملکرد کامپیوتر میشود.
استفاده از روش یادگیری تقویتشده جهت کمک به دستگاهها برای مسلطشدن آنها روی انجام وظایف پیچیدهای که دارای حجم گسترده از دادههای غیر قابل پیشبینی و متغیر هستند، ضروری است. اینروش مسیر را برای کامپیوترهایی که در حال تلاش برای انجام کارهای هدفمند مثل جراحی، هدایت خودرو، بازرسی چمدانها برای یافتن وسایل خطرناک و سایر موارد مشابه هستند، هموار میکند.
ما هر روز با ابزارهای یادگیری ماشینی در تعامل هستیم. از میان اینابزارها میتوان به ابزارهای فیلترینگ ایمیلهای اسپم و فیشینگ و همچنین بدافزارها در اینباکس ایمیل اشاره کرد. بانکها و سیستمهایی که کارتهای شتاب شما به آنها متصل هستند، نیز از اینفناوری برای هشدار در مورد مشاهده تراکنشهای حساب بانکی استفاده میکنند.
در هنگام استفاده از دستیارهای صوتی مثل سیری و الکسا نیز فناوری یادگیری ماشینی در پلتفرمهای تشخیص صدا و گفتار در حال استفاده را هدایت میکنند. در ضمن اینفناوری به پزشکان نیز برای اسکنکردن نتایج تصاویر رادیولوژی و آزمایش خون برای تشخیص بیماریهای مهلک مثل سرطان کمک میکند.
با رشد روند کشف تواناییهای بالقوه یادگیری ماشینی، استفاده از اینفناوری برای انجام وظایفی با پیچیدگیهای فزاینده، نیز در حال افزایش است. تقاضا برای استفاده از کامپیوترهای قادر به مدیریت دادههای بدون ساختار مثل تصاویر یا ویدیوها، بسیار زیاد شده است. به همین دلیل حرکت به سمت استفاده از یادگیری عمیق شروع شده است.
یادگیری عمیق چیست؟
همانطور که گفتیم یادگیری ماشین برای ایجاد توانایی انجام وظایف توسط کامپیوترها بدون برنامهنویسی صریح برای آنها استفاده میشود. اگرچه کامپیوترهایی که از یادگیری ماشینی بهره میبرند، قادر به انجام وظایف هستند، اما هنوز هم طرز تفکر و رفتار ماشینی دارند. توانایی چنین کامپیوترهایی برای انجام برخی از وظایف پیچیده مثل جمعآوری اطلاعات از تصاویر یا ویدیوها، در مقایسه با توانایی انسان برای انجام چنین کارهایی، در سطح بسیار پایینتری است.
مدلهای یادگیری عمیق رویکرد بسیار پیچیدهای برای یادگیری ماشینی ارائه کردهاند و بهمنظور مقابله با چالشهای مدلهای یادگیری ماشین ایجاد شدهاند؛ زیرا اینمدلها بر اساس ساختار مغز انسان مدلسازی شدهاند.
شبکههای عصبی عمیق چندلایه پیچیده بهمنظور امکانپذیرکردن انتقال داده بین گرهها با روشهای پیوندخورده به یکدیگر، ایجاد شدهاند (درست مانند اعصاب انسان). نتیجه استفاده از چنین ساختاری امکانپذیرشدن انتقال خطی دادههایی است که بهطور فزایندهای انتزاعی میشوند. با وجود اینکه ایجاد و تغذیه چنین سیستمی، به دادههای زیادی نیاز دارد؛ اما سریعاً شروع به ایجاد نتیجه میکند. در ضمن در هنگام استفاده از چنین سیستمی، نیاز کمی به دخالت انسان است.
انواع الگوریتمهای یادگیری عمیق
رشد فزاینده تعداد الگوریتمهای یادگیری عمیق دستیابی به چنین اهدافی را امکانپذیر میکند. در اینبخش تنها برای نشاندادن برخی از راههایی که دانشمندان و مهندسان داده قصد دارند از آنها برای بهرهمندی از قابلیتهای یادگیری عمیق استفاده کنند، شما را با دو الگوریتم اینفناوری یعنی شبکه عصبی پیچشی یا همگشتی یا کانولوشن و شبکههای عصبی بازگشتی آشنا میکنیم.
شبکه عصبی پیچشی یا همگشتی (Convolutional Neural Networks)
شبکههای عصبی پیچشی، الگوریتمهایی با ساختار ویژه هستند که برای کار با تصاویر طراحی شدهاند. منظور از واژه «پیچشی یا همگشتی یا کانولوشن» فرایندی است که برای هر عنصر یک تصویر، یک فیلتر وزنی به کار میگیرد. اینفیلتر به کامپیوتر کمک میکند خودش عناصر داخل تصویر را درک کند و به آنها واکنش نشان دهد.
بهرهمندی از اینفیلتر زمانی که میخواهد تعداد زیادی از تصاویر را برای یافتن یک آیتم خاص یا ویژگی خاص اسکن کنید، کار را بسیار راحت میکند؛ مثلاً زمانی که میخواهید تصاویر بستر اقیانوس را برای یافتن نشانههای یک کشتی غرقشده یا تصویری از تعداد زیادی از افراد را برای یافتن چهره یک فرد خاص اسکن کنید.
در حوزه کامپیوتر، تحلیل تصاویر یا ویدیوها و درک آنها با کمک کامپیوتر، فناوری دید کامپیوتری یا بینایی کامپیوتری (Computer vision) نام دارد. اینفناوری در ۱۰ سال اخیر در حوزه کامپیوتر رشد بسیار زیادی داشته است.
شبکههای عصبی بازگشتی (Recurrent Neural Networks)
شبکههای عصبی بازگشتی در یادگیری ماشین یک عنصر کلیدی، یعنی حافظه را ارائه کرده که در الگوریتمهای سادهتر وجود ندارد. کامپیوترهای دارای اینشبکهها، قادر به نگهداری نقاط داده گذشته و تصمیمات در حافظه هستند و در زمان بررسی دادههای کنونی، دادههای ذخیرهشده حافظه را نیز در نظر میگیرند. به این ترتیب اینشبکهها قدرت تأثیرگذاری در یک محیط را ارائه میدهند.
تمرکز اصلی شبکههای عصبی بازگشتی، پردازش زبان طبیعی است. کامپیوتر هم درست مانند انسان اگر به ساختار یک متن، شیوه انتخاب کلمات آن و علامتگذاری و رسمی یا غیررسمی بودن یک متن و محتوای قبل از آن، دسترسی داشته باشد، میتواند آن را بهتر بفهمند. همچنین مثلاً اگر سیستمهای مسیریابی بتوانند به یاد آورند راه افرادی که مسیر پیشنهادی آنها را برای رسیدن به مقصد موردنظرشان انتخاب کردهاند، دو برابر شده است، دقت خود در مسیریابی را افزایش میدهند!
موارد اساسی تفاوت یادگیری ماشینی و یادگیری عمیق
تعداد موارد تفاوت یادگیری ماشینی و یادگیری عمیقی کم نیست؛ اما پنج تفاوت اساسی بین این دو فناوری زیرمجموعه هوش مصنوعی به شرح زیر است:
میزان دخالت انسان
در صورت استفاده از یادگیری ماشینی، برای کسب نتیجه در مقایسه با زمانی که از یادگیری عمیق استفاده میکنیم، بیشتر نیازمند بهرهگیری از کمک و دخالت مستمر انسان هستیم. نحوه ایجاد سیستمهای یادگیری عمیق پیچیدهتر است، اما در مقابل پس از راهاندازی تنها نیازمند حداقل میزان ممکن است دخالت انسان است.
سختافزار
نرمافزارهای یادگیری ماشینی نسبت به الگوریتمهای یادگیری عمیق، پیچیدگی کمتری دارند و به همین دلیل میتوانند روی کامپیوترهای متداول اجرا شوند؛ اما سیستمهای یادگیری عمیق نیازمند استفاده از سختافزاری بسیار قدرتمندتر و منابع بیشتر هستند.
استفاده از چنین سیستمهایی به دلیل نیازمندبودن آنها به قدرت پردازشی بیشتر، نیاز به استفاده از پردازندههای گرافیکی را بیشتر افزایش داده است. پردازندههای گرافیکی به دلیل برخورداری از حافظههای دارای پهنای باند بالا و کارآمدبودن در زمینه انجام همزمان تعداد زیادی از عملیات، ابزارهای مفیدی برای استفاده از سیستمهای یادگیری عمیقتر هستند.
مدتزمان لازم برای راهاندازی
سیستمهای یادگیری ماشینی میتوانند سریعتر راهاندازی شوند؛ اما ممکن است عملکرد آنها ضعیفتر شود. راهاندازی سیستمهای یادگیری عمیق کمی بیشتر طول میکشد؛ اما نتایج مورد نظر را فوراً ارائه میدهند. احتمالاً با ورود اطلاعات به اینسیستمها، عملکرد آنها بهتدریج بهتر میشود.
رویکرد
سیستمهای یادگیری ماشینی معمولاً دادههای دارای ساختار را میطلبند و از الگوریتمهای متداول مثل رگرسیون خطی استفاده میکنند. در سیستمهای یادگیری عمیق از شبکههای عصبی استفاده میشود و اینسیستمها با هدف پردازش حجم وسیعی از دادههای بدون ساختار ایجاد میشوند.
کاربرد
همانطور که قبلاً گفتیم یادگیری ماشینی در بخشهایی مثل اینباکس ایمیل، بانک، مطب دکتر و… برای انجام برخی از وظایف استفاده میشود؛ اما با فناوری یادگیری عمیق میتوان نرمافزارهای پیچیدهتر و مستقلتری برای اهداف مختلف مثل هدایت خودروهای خودران یا کمک به رباتهای جراح ایجاد کرد.