یکی از سوالاتی که ذهن بسیاری از افراد را بهخود مشغول میکند، این است که یادگیری ماشین یا همان Machine Learningای که امروزه در همه جا وجود دارد، چگونه کار میکند و چه کاربردی در زندگی امروزی ما دارد؟
از دستیارهای شخصی مانند Google Assistant و Alexa گرفته تا توصیههای محتوایی که توسط سرویسهای Youtube و Amazon برای کاربران نمایش داده میشود، سرویسهای بسیار زیادی وجود دارند که در چند سال اخیر با استفاده از یادگیری ماشین، بهبود یافتهاند. به زبان ساده، یادگیری ماشین زیرمجموعهای از هوش مصنوعی است که به رایانهها اجازه میدهد از تجربیات خود بیاموزند؛ دقیقاً مانند آنچه ما هنگام یادگیری یا انتخاب یک مهارت جدید انجام میدهیم.
وقتی این فناوری به درستی انجام شود، میةواند وظایف پیچیده خاصی را بهتر از هر انسان دیگری و اغلب در عرض چند ثانیه انجام دهد. با توجه به فراگیر شدن یادگیری ماشین در جامعه امروزی، ممکن است تعجب کنید که این فناوری چگونه کار میکند و چه محدودیتهایی را دربرمیگیرد. بدین منظور، در اینجا یک آغازگر ساده در مورد این فناوری وجود دارد. اگر پیشینهای در زمینه علوم کامپیوتر ندارید، نگران نباشید؛ این مطلب از وبسایت کارو تک یک نمای کلی از آنچه در پشت پردههای این فناروی اتفاق میافتد، ارائه میدهیم.
حتی اگر بسیاری از مردم اصطلاحات یادگیری ماشین (Machine Learning یا بهاصطلاح ML) و هوش مصنوعی (Artificial Intelligence یا همان AI) را با هم ترکیب کنند، اما بین این دو تفاوتهایی وجود دارد. برای درک چرایی این امر، ارزش آن را دارد که در وهله اول درباره چگونگی شروع هوش مصنوعی صحبت کنیم. کاربردهای اولیه هوش مصنوعی، که حدود ۵۰ سال پیش تئوری شد، با استانداردهای امروزی بسیار اساسی بودند. بهعنوان مثال، یک بازی شطرنچ که در آن با حریفانی که با رایانه کنترل میشوند، بازی میکنید، زمانی یک اقدام انقلابی تلقی میشد. به راحتی میتوان فهمید که چرا: توانایی حل مشکلات براساس مجموعهای از قوانین میتواند به عنوان هوش اساسی شناخته شود. با این حال، این روزها، ما چنین سیستمی را بسیار ابتدای میدانیم چراکه فاقد تجربه است؛ جزء کلیدی هوش انسانی. اینجا است که یادگیری ماشین وارد عمل میشود.
یادگیری ماشین بعد کاملاً جدیدی به هوش مصنوعی میافزاد؛ به رایانهها این امکان را میدهد تا از حجم عظیمی از دادههای موجود یاد بگیرند یا آموزش ببینند. در این زمینه، یادگیری به معنای ایجاد روابط و استخراج الگوهای جدید از مجموعههای ارائهشده است. این بسیار شبیه نحوه عملکرد هوش انسان است. وقتی به چیزی ناآشنا برخورد میکنیم، از حواس خود برای مطالعه ویژگیهای آن استفاده میکنیم و میتوانید دفعه بعد از حافظه خود برای تشخیص آن استفاده کنیم.
به طور کلی، یک مشکل یادگیری ماشین را میتوان در دو مرحله متمایز حل کرد: آموزش و استنتاج. در مرحله اول، یک الگوریتم کامپیوتری مجموعهای از دادههای نمونه یا آموزشی را برای استخراج ویژگیها و الگوهای مرتبط تجزیه و تحلیل میکند. هر الگوریتم بهطور کلی برای نوع خاصی از دادهها بهینه شده است و دادهها نیز میتوانند هرچیزی باشند؛ اعداد، تصاویر، متن یا حتی گفتههای افراد.
موفقیت در فرآیند آموزش مستقیماً به سه عامل مرتبط است: خود الگوریتم، میزان دادهای که به آن میدهید و کیفیت مجموعه داده. هر از گاهی، محققان الگوریتمها یا تکنیکهای جدیدی را پیشنهاد میکنند که دقت را بهبود میبخشد و خطاها را کاهش میدهد، همانطور که از فناوریهای پیشرفته انتظار دارید. از سوی دیگر، افزایش حجم دادهای که به الگوریتم ارائه میدهید، میتواند به پوشش موارد بیشتر کمک کند.
خروجی یک الگوریتم یادگیری ماشین اغلب به عنوان یک مدل نامیده میشود. میتوانید مدلهای ML را با یک فرهنگ لغت یا کتابچه راهنمای مرجع برابر کنید چراکه برای پیشبینیهای آینده استفاده میشود. به عبارت دیگر، ما از مدلهای آموزشدیده برای استنباط نتایج از دادههای جدید استفاده میکنیم که برنامه ما قبلاً هرگز ندیده است.
فرآیند آموزش معمولاً شامل تجزیهوتحلیل هزاران یا حتی میلیونها نمونه است. همانطور که انتظار دارید، این یک فرآیند نسبتاً سختفافزاری است که باید زودتر از موعد تکمیل شود. با این حال، هنگامی که فرآیند آموزش کامل شد و همه ویژگیهای مربوطه مورد آنالیز قرار گرفت، برخی از مدلهای بهدستآمده میتوانند به اندازه کافی کوچک باشند تا در دستگاههای معمولی مانند گوشیهای هوشمند قرار بگیرند.
برای مثال یک برنامه یادگیری ماشینی را در نظر بگیرید که متن دستنویس را تفسیر میکند. به عنوان بخشی از فرآیند آموزشی، یک توسعهدهنده ابتدا یک الگوریتم ML را با تصاویر نمونه تعذیه میکند. این در نهایت به آنها یک مدل یادگیری ماشین میدهد که میتواند بستهبندی شود و در چیزی مانند یک برنامه اندرویدی استقرار یابد. هنگامی که کاربران برنامه را نصب میکنند و با تصاویر جدید تعذیه میشوند، دستگاههای آنها میتوانند برای استنباط نتایج جدید به مدل مراجعه کنند. البته در دنیای واقعی، شما هیچ یک از اینها را نخواهید دید؛ این برنامه به سادگی کلمات دستنویس را به متون دیجیتال تبدیل میکند.
درحالی که برنامههای یادگیری ماشین اولیه برای آموزش و استنتاج به ابر متکی بودهاند، پیشرفتهای تکنولوژيکی اخیر استنتاج محلی و روی دستگاه را نیز فعال میکند. البته، این تا حد زیادی به الگوریتم و سختافزار مورد استفاده بستگی دارد؛ همانطور که در بخش بعدی درباره آن بحث خواهیم کرد. درحال حاضر، خلاصهای از تکنیکهای مختلف آموزش یادگیری ماشین و تفاوت آنها با یکدیگر آورده شده است.
بهطور خلاصه، دادههای مورد استفاده برای آموزش الگوریتم میتوانند در یکی از دو دسته اشارهشده قرار بگیرند؛ برچسبدار و بدون برچسب. همانطور که ممکن است از عنوان حدس زده باشید، یادگیری تحت نظارت شامل مجموعه دادههای برچسبگذاریشده است که به الگوریتم آموزشی کمک میکند تا بداند به دنبال چه چیزی است. بهعنوان مثال، مدلی را در نظر بگیرید که تنها هدف آن شناسایی تصاویر سگ و گربه است. اگر الگوریتم را با تصاویر برچسبگذاریشده دو حیوان تغذیه کنید، این به سادگی یک مورد از یادگیری نظارتشده را در اختیار شما قرار میدهد.
با این حال، اگر انتظار دارید که الگوریتم به تنهایی ویژگیهای متمایزکننده را مشخص کند (یعنی دبون برچسبهایی که نشان میدهند تصویر حاوی سگ یا گربه است)، به یادگیری بدون نظارت تبدیل میشود. یادگیری بدون نظارت بهویژه در مواردی مفید است که ممکن است ندانید به دنبال چه الگوهایی باشید. علاوه بر این، دادههای جدید بهطور مداوم برای آموزش به سیستم بازگردانده میشوند؛ بدون نیاز به ورود دستی از سوی انسان.
بگویید یک وبسایت تجارتالکترونیک (eCommerce) مانند آمازون میخواهد یک کمپین بازاریابی هدفمند ایجاد کند. آنها معمولاً از قبل چیزهای زیادی در مورد مشتریان خود میدانند، از جمله سن آنها، تاریخچه خرید، عاداتشان، مکان و مواردی از این دست. یک الگوریتم یادیگری بدون نظارت میتواند به تنهایی بین این متغیرها روابط ایجاد کند. این موضوع میتواند به بازاریابان کمک کند تا متوجه شوند که مشتریان از یک منطقه خاص تمایل به خرید انواع خاصی از لباس را دارند یا اینکه خریداران جوان به احتمال زیاد برای اقلام تفریحی خرج میکنند. هرچه که باشد، این یک فرآیند کشف است که اعداد و ارقام زیادی را شامل میشود.
در مجموع، یادگیری بدون نظارت یک تکنیک مفید در سناریوهایی است که به اندازه سناریوهایی با نتایج شناختهشده ساده نیستند. در نهایت، ما یادگیری تقویتی را داریم که بهویژه در برنامههایی که راههای زیادی برای رسیدن به یک هدف واضح دارند، به خوبی کار میکند. این یک سیستم آزمون و خطا است؛ اقدامات مثبت پاداش میگیرند، درحالی که اقدامات منفی کنار گذاشته بمیشوند. این بدان معنا است که مدل میتواند براساس تجربیات خود در طول زمان تکامل یابد. بازی شطرنچ یک برنامه عالی برای یادگیری تقویتی است چراکه الگوریتم میتواند از اشتباهات خود درس بگیرد. در واقع، زیرمجموعه DeepMind گوگل یک برنامه یادگیری ماشین ساخته که از یادگیری تقویتی برای بهتر شدن در بازی رومیزی Go استفاده میکرد. بین سالهای ۲۰۱۶ و ۲۰۱۷، این برنامه توانست چندین قهرمان جهانی Go را در محیطهای رقابتی شکست دهد؛ دستاوردی که بسیار قابل توجه است.
شبکه عصبی یک زیرگروه خاص از یادگیری ماشین است که از رفتار مغز انسان الهام گرفتهشده است. نورونهای بیولوژیکی در بدن جانوران مسئول پردازش حسی هستند. آنها اطلاعاتی را از محیط اطراف میگیرند و سیگنالهای الکتریکی را در فواصل طولانی به مغز منتقل میکنند. بدن ما میلیاردها نورون دارد که همگی با یکدیگر ارتباط برقرار میکنند و به ما این امکان را میدهند تا ببینیم، احساس کنیم، بشنویم و هرچیزی که در این بین است را بهدست آوریم.
در این راستا، نورونهای مصنوعی در یک شبکه عصبی نیز با یکدیگر صحبت میکنند. آنها مشکلات پیچیده را به قطعات کوچکتر یا لایهها تقسیم میکنند. هر لایه از نورونها که گره نامیده میشود، ساخته شده است که وظیفه خاصی را انجام دهد و نتایج خود را با گرههای لایه بعدی بهاشتراک بگذارد. برای مثال، در یک شبکه عصبی که برای تشخیص اشیاء آموزشدیده ساخته شده، یک لایه با نورونهایی خواهید داشت که لبهها را تشخیص میدهند یا لایه دیگری تغییرات رنگ را میشناسد.
لایهها به یکدیگر مرتبط هستند، بنابراین فعال کردن یک زنجیره خاص از نورونها خروجی قابل پیشبینی خاصی را بهشما میدهد. به دلیل این رویکرد چند لایه، شبکههای عصبی در حل مسائل پیچیده برتری دارند. بهعنوان مثال، وسایل نقلیه خودران را درنظر بگیرید. آنها از تعداد بیشماری سنسور و دوربین برای تشخیص جادهها، علائم، عابر پیاده و موانع استفاده میکنند. همه این متغیرها روابط پیچیدهای با یکدیگر دارند که آنها را به یک برنامه عالی برای یک شبکه عصبی چندلایه تبدیل میکند. یادگیری عمیق اصطلاحی است که اغلب برای توصیف یک شبکه عصبی با لایههای متعدد استفاده میشود. اصطلاح عمیق در اینجا به سادگی به عمق لایهها اشاره دارد.
یادگیری ماشین تقریباً بر هر جنبهای از زندگی دیجیتال ما تأثیر میگذارد. بهعنوان مثال، پلتفرمها و شبکههای اجتماعی مانند اینستاگرام، اغلب تبلیغات هدفمندی را براساس پستهایی که با آنها تعامل دارید به شما نمایش میدهند. اگر تصویری حاوی غذا را دوست دارید، ممکن است تبلیغات مربوط به کیتهای غذا یا رستورانهای اطراف را دریافت کنید. بهطور مشابه، سرویسهای پخش و استریم مانند یوتیوب و نتفلیکس میتوانند ژانرها و موضوعات جدیدی را که ممکن است به آنها علاقهمند باشید، براساس سابقه و مدت تماشای شما استنباط کنند.
حتی در دستگاههای شخصی مانند گوشیهای هوشمند، ویژگیهایی مانند تشخیص چهره بهشدت به یادگیری ماشین وابسته هستند. برای مثال، برنامه Google Photos را در نظر بگیرید: این اپلیکیشن نهتنها چهرهها را از روی عکسهای شما تشخیص میدهد، بلکه از یادگیری ماشین برای شناسایی ویژیهای منحصربهفرد صورت برای هر فرد استفاده میکند. تصاویری که آپلود میکنید به بهبود سیستم کمک میکند و به آن امکام میدهد در آینده پیشبینیهای دقیقتری انجام دهد. این برنامه همچنین اغلب از شما میخواهد که صحت تطابق خاصی را تأیید کنید که نشان میدهد سیتسم از سطح اطمینان پایین در موارد پیشبینیِ خاص برخوردار است.
درواقع، یادگیری ماشینی به معنای دستیابی به دقت بالا در کمترین زمان است که البته همیشه در آن موفق نیست. در سال ۲۰۱۶، مایکروسافت از یک چتبات پیشرفته با نام Tay رونمایی کرد. این شرکت بهعنوان نمایشی از تواناییهای مکالمه انسان مانند خود، به Tay اجازه داد تا از طریق یک حساب توییتر با مردم تعامل داشته باشد. با این حال، این پروژه تنها ۲۴ ساعت پس از اینکه ربات شروع به پاسخ دادن به اظهارات تحقیرآمیز و دیگر گفتگوهای نامناسب کرد، آفلاین شد.
مثال بالا یک نکته مهم را برجسته میکند: یادگیری ماشین تنها زمانی واقعاً مفید است که دادههای آموزشی زا کیفیت بالایی برخوردار باشند و با هدف نهایی شما نیز مطابقت داشته باشند. Tay روی ارسالهای زنده توییتر آموزش دیده بود، به این معنی که بهراحتی توسط بازیگران مخرب دستکاری یا آموزش داده میشد. اگر خطرات یادگیری ماشین را کنار بگذاریم، این فناوری همچنان میتواند در سناریوهایی که روشهای سنتی نمیتوانند همگام باشند، کمک کند. رندر کردن بازیهای ویدیوییِ پیچیده و گرافیکی یکی از این کاربردها است. برای چندین دهه، ما برای رسیدن به این وظیفه به افزایش عملکرد سالانه محصولات و دستگاههای هوشمند تکیه کردهایم. با این حال، قدرت پردازش اخیراً شروع به بالا رفتن کرده است؛ حتی با وجود اینکه سایر فناوریها مانند وضوح نمایشگر و نرخ نوسازی به روند صعودی خود ادامه میدهند.
فناوریهای ارتقاء مقیاس که مبتنی بر هوش مصنوعی هستند، مانند نمونهبرداری عمیق یادگیری انویدیا (Nvidia’s Deep Learning Supersampling یا بهاختصار DLSS) به پر کردن این شکاف کمک میکند. نحوه کار DLSS نسبتاً ساده است: GPU یا پردازنده گرافیکی ابتدا یک تصویر را با وضوح کمتری ارائه میدهد و سپس از یک مدل آموزشدیده یادگیری ماشین برای ارتقاء آن استفاده میکند. نتایج چشمگیر هستند؛ حداقل بهتر از بسیاری فناوریهای سنتی. بهطور مشابه، این فناوری برای ارتقاء رزولوشن فوقالعاده برای بهبود کیفیت تصاویر عکاسی با گوشیهای هوشمند مورد استفاده قرار میگیرد. یادگیری ماشین دیگر فقط برای پیشبینیهای اولیه نیست.
بسیاری از برنامههای یادگیری ماشین ذکرشده،از جمله تشخیص چهره و ارتقاء تصویر مبتنی بر یادگیری ماشین، زمانی روی سختافزارهایی با درجه مصرفکننده غیرممکن بود. بهعبارت دیگر، برای انجام بیشتر کارهای مربوط به یادگیری ماشین باید به یک سرور قدرتمند که در یک مرکز داده نشسته است، متصل شوید. حتی امروزه، آموزش یک مدل یادگیری ماشین، بسیار سختافزاری است و تقریباً برای پروژههای بزرگتر به سختافزار اختصاصی نیاز دارد. از آنجایی که آموزش شامل اجرای مکرر تعداد کمی از الگوریتمها میشود، تولیدکنندگان اغلب تراشههای سفارشی را برای دستیابی به عملکرد و کارایی بهتر طراحی میکنند.
به این سختافزارها Application-specific integrated circuits یا ASIC میگویند. پروژههای یادگیری ماشین در مقیاس بزرگ معمولاً از ASIC یا پردازنده گرافیکی برای آموزش استفاده میکنند، نه از CPUهای چندمنظوره. اینها عملکرد بالاتر و مصرف انرژی کمتری نسبت به یک CPU سنتی دارند.
همه چیز درحال تغییر است؛ حداقل در سمت استنتاج مسائل. یادگیری ماشین روی دستگاه در محصولاتی مانند گوشیهای هوشمند و لپتاپها رایجتر میشود. این به لطف گنجاندن شتابدهندههای اختصاصی یادگیری ماشین در سطح سختافزار در پردازندههای SoCهای مدرن است. شتابدهندههای یادگیری ماشین در مقایسه با یک پردازنده معمولی بسیار کارآمدتر است. به همین دلیل نیز برای مثال، قناوری ارتقاء مقیاس DLSS که قبلاً در مورد آن صحبت کردهایم، فقط در کارتهای گرافیک جدیدتر Nvidia با سختافزار شتاب یادگیری ماشین مورد نیاز موجود است.
در گوشیهای هوشمند، شتابدهندههای کممصرف خاصی را دیدهایم که برای تشخیص صدا طراحی شدهاند و روند روبهرشدی در قدرت پردازش یادگیری ماشین برای عکاسی بهتر با پردازندههای تصویری سنتیتر را بهخود اختصاص دادهاند.
در آینده، بسته به قابلیتهای شتاب یادگیری ماشین نسل جدید سختافزارها، احتمالاً شاهد تقسیمبندی و انحصار این ویژگیها خواهیم بود. در واقع، ما درحال حاضر شاهد این اتفاق در صنعت گوشیهای هوشمند نیز هستیم.
مدتی است که شتابدهندههای یادگیری ماشین در SoCهی گوشیهای هوشمند تعبیه شدهاند. با این حال، به دلیل افزایش موارد استفاده مانند عکاسی محاسباتی و تشخیص صدا، اخیراً به یک نقطه کانونی کلیدی تبدیل شدهاند.
در سال ۲۰۲۱، گوگل اولین SoC نیمهسفارشی خود را با نام مستعار Tensor برای پیکسل ۶ معرفی کرد. یکی از تمایزهای کلیدی Tensor TPU سفارشی یا واحد پردازش آن بود. گوگل ادعا میکند که تراشه آنها استنتاج یادگیری ماشین را بهطور قابل توجهی سریعتر از مابقی رقبا ارائه میدهد، بهخصوص در زمینههایی مانند پردازش زبان طبیعی. اینبهنوبه خود به گوگل اجازه داد تا از Tensor برای مجموعهای از ویژگیهای جدید در پیسکل ۶ استفاده کند، از جمله ترجمه بلادرنگ زبان، ضبط ویدیو با قابلیت HDR و عملکرد سریعتر تبدیل گفتار به متن. پردازندههای گوشیهای هوشمند مدیاتک، کوالکام و سامسونگ نیز برداشتهای خاص خود را از سختافزار اختصاصی یادگیری ماشین دارند.
این بدان معنا نیست که استنتاج مبتنی بر ابر امروزه هنوز مورد استفاده قرار نمیگیرد؛ درواقع کاملاً برعکس. درحالی که یادگیری ماشین روی دستگاه بهطور فزایندهای رایج شده است، هنوز با ایدهآل فاصله زیادی دارد. این امر بهویژه صادق است که مشکلات پیچیدهای مانند تشخیص صدا و طبقهبندی تصویر را درنظر بگیریم. دستیارهای صوتی مانند الکسای آمازون و دستیار گوگل فقط به خوبی امروز هستند چراکه به زیرساخت ابری قدرتمندی متکی هستند؛ هم برای استنباط و هم برای آموزش مجدد یک مدل.
با این حال، مانند بسیاری از فناوریهای جدید، راهحلها و تکنیکهای جدید بهطور مداوم در افق هستند. در سال ۲۰۱۷، الگوریتم HDRnet گوگل انقلابی در تصویربرداری گوشیهای هوشمند ایجاد کرد درحالی که MobileNet اندازه مدلهای این فناوری را کاهش داد و استنتاج روی دستگاهها امکانپذیر کرد. اخیراً این شرکت نحوه استفاده از تکنیک حفظ حریم خصوصی به نام یادگیری فدرال را برای آموزش مدلهای یادگیری ماشین با دادههای تولید شده توسط کاربر، برجسته کرده است.
در همین حال، اپل، شتابدهندههای سختافزاری یادگیری ماشین را نیز در تمام تراشههای مصرفکننده خود ادغام میکند. بهعنوان مثال، خانواده SoCهای تراشه M1 اپل که در جدیدترین مکبوکها گنجانده شده، به انداز کافی قدرت یادگیری ماشین برای انجام وظایف آموزشی روی خود دستگاه را دارد.