۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۱۴ الگوریتم محبوب هوش مصنوعی و کاربرد آنها

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

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

در میان همه هیاهوها و هیستری ها در مورد ChatGPT، Bard، و سایر مدل های زبان بزرگ (LLM)، ارزش آن را دارد که یک قدم به عقب برگردیم و به دامنه الگوریتم های هوش مصنوعی و کاربردهای آنها نگاه کنیم. به هر حال، بسیاری از الگوریتم‌های یادگیری ماشین «سنتی» چندین دهه است که مشکلات مهمی را حل می‌کنند – و هنوز هم قوی هستند. چرا باید LLM ها همه توجه را به خود جلب کنند؟

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

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

انواع یادگیری ماشینی

یادگیری ماشینی می‌تواند مشکلات طبقه‌بندی غیر عددی (مثلاً «پیش‌بینی اینکه آیا این متقاضی وام خود را نکول می‌کند») و مشکلات رگرسیون عددی (به‌عنوان مثال، «پیش‌بینی فروش پردازنده‌های غذا در مکان‌های خرده‌فروشی ما برای سه ماه آینده» را حل کند. ”). هر دو نوع مدل عمدتاً با استفاده از یادگیری تحت نظارت آموزش داده می‌شوند، به این معنی که داده‌های آموزشی قبلاً با پاسخ‌ها برچسب‌گذاری شده‌اند.

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

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

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

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

Tailscale: VPN های سریع و آسان برای توسعه دهندگان

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

یادگیری عمیق از شبکه های عصبی که دارای تعداد زیادی لایه “پنهان” هستند برای شناسایی ویژگی ها استفاده می کند. لایه های مخفی بین لایه های ورودی و خروجی قرار می گیرند. هر چه لایه های مدل بیشتر باشد، ویژگی های بیشتری را می توان شناسایی کرد. در عین حال، هر چه لایه های مدل بیشتر باشد، زمان بیشتری برای آموزش نیاز دارد. شتاب‌دهنده‌های سخت‌افزاری برای شبکه‌های عصبی شامل GPU، TPU و FPGA هستند.

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

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

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

الگوریتم های معروف یادگیری ماشین

لیست زیر جامع نیست و الگوریتم‌ها تقریباً از ساده‌ترین تا پیچیده‌ترین مرتبه‌بندی شده‌اند.

رگرسیون خطی

رگرسیون خطی، همچنین به نام رگرسیون حداقل مربعات، ساده ترین الگوریتم یادگیری ماشینی تحت نظارت برای پیش بینی مقادیر عددی است. در برخی موارد، رگرسیون خطی حتی نیازی به بهینه ساز ندارد، زیرا به صورت بسته قابل حل است. در غیر این صورت، با استفاده از گرادیان نزول به راحتی بهینه می شود (به زیر مراجعه کنید). فرض رگرسیون خطی این است که تابع هدف با متغیرهای مستقل همبستگی خطی دارد. این ممکن است برای داده های شما صادق باشد یا نباشد.

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

نزول گرادیان

روش‌های بهینه‌سازی برای یادگیری ماشین، از جمله شبکه‌های عصبی، معمولاً از نوعی الگوریتم نزولی گرادیان برای هدایت انتشار پس‌انداز استفاده می‌کنند، اغلب با مکانیزمی برای جلوگیری از گیر کردن در حداقل‌های محلی، مانند بهینه‌سازی مینی دسته‌های انتخابی تصادفی (تصادفی) شیب نزول) و اعمال اصلاحات مومنتوم در شیب. برخی از الگوریتم‌های بهینه‌سازی نیز نرخ یادگیری پارامترهای مدل را با مشاهده تاریخچه گرادیان (AdaGrad، RMSProp و Adam) تطبیق می‌دهند.

نحوه ارسال ایمیل با استفاده از SendGrid در ASP.NET Core

رگرسیون لجستیک

الگوریتم‌های طبقه‌بندی می‌توانند راه‌حل‌هایی برای مسائل یادگیری تحت نظارت که درخواست انتخاب (یا تعیین احتمال) بین دو یا چند کلاس را دارند، بیابند. رگرسیون لجستیک روشی برای حل مسائل طبقه‌بندی طبقه‌بندی است که از رگرسیون خطی در داخل یک تابع سیگموئید یا logit استفاده می کند که مقادیر را در محدوده ۰ تا ۱ فشرده می کند و به شما یک احتمال می دهد. مانند رگرسیون خطی برای پیش‌بینی عددی، رگرسیون لجستیک اولین روش خوبی برای پیش‌بینی طبقه‌ای است، اما نباید آخرین روشی باشد که امتحان می‌کنید.

پشتیبانی از ماشین های برداری

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

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

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

درخت تصمیم

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

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

جنگل تصادفی

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

XGBoost

XGBoost (EXtreme Gradient Boosting) یک درخت مقیاس‌پذیر، سرتاسری است سیستم تقویتی که نتایج پیشرفته‌ای را در بسیاری از چالش‌های یادگیری ماشین ایجاد کرده است. کیسه زدن و تقویت اغلب در یک نفس ذکر شده است. تفاوت این است که به جای ایجاد مجموعه ای از درختان تصادفی (RDF)، تقویت درخت گرادیان با یک درخت تصمیم گیری یا رگرسیون شروع می شود، آن را بهینه می کند و سپس درخت بعدی را از باقی مانده های درخت اول می سازد.

K-means clustering

مسئله k-means clustering تلاش می کند با استفاده از متریک فاصله اقلیدسی، مشاهدات n را به خوشه‌های k تقسیم کنید، با هدف به حداقل رساندن واریانس (مجموع مربع‌ها) در هر خوشه. این روشی بدون نظارت برای کوانتیزه سازی برداری است و برای یادگیری ویژگی ها و برای ارائه نقطه شروع برای الگوریتم های دیگر مفید است.

الگوریتم لوید (تراکم خوشه‌ای تکراری با به‌روزرسانی‌های مرکز) رایج‌ترین اکتشافی است که برای حل مشکل استفاده می‌شود. نسبتا کارآمد است، اما همگرایی جهانی را تضمین نمی کند. برای بهبود آن، افراد اغلب الگوریتم را چندین بار با استفاده از مرکز خوشه‌ای اولیه تصادفی تولید شده توسط روش‌های Forgy یا پارتیشن تصادفی اجرا می‌کنند.

عبارات جاوا را با عملگرها ارزیابی کنید

K-means خوشه های کروی را فرض می کند که قابل تفکیک هستند به طوری که میانگین به سمت مرکز خوشه همگرا می شود و همچنین فرض می کند که ترتیب نقاط داده مهم نیست. انتظار می رود خوشه ها اندازه مشابهی داشته باشند، به طوری که انتساب به نزدیکترین مرکز خوشه، انتساب صحیح است.

تجزیه و تحلیل مؤلفه اصلی

تحلیل مؤلفه اصلی (PCA) یک روش آماری است که از یک تبدیل متعامد برای تبدیل مجموعه‌ای از مشاهدات متغیرهای عددی احتمالاً همبسته به مجموعه‌ای از مقادیر متغیرهای خطی ناهمبسته به نام مؤلفه‌های اصلی استفاده می‌کند. کارل پیرسون PCA را در سال ۱۹۰۱ اختراع کرد. PCA را می توان با تجزیه ارزش ویژه یک ماتریس کوواریانس (یا همبستگی) داده، یا تجزیه ارزش منفرد (SVD) یک ماتریس داده، معمولاً پس از یک مرحله عادی سازی که روی داده های اولیه اعمال می شود، انجام داد.

الگوریتم های محبوب یادگیری عمیق

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

شبکه های عصبی کانولوشنال

شبکه‌های عصبی کانولوشن (CNN) نوعی شبکه عصبی عمیق هستند که اغلب برای بینایی ماشین آنها دارای ویژگی مطلوب مستقل بودن از موقعیت هستند.

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

شبکه های عصبی مکرر

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

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

در حالی که در تئوری یک RNN معمولی می تواند اطلاعات را در تعداد نامحدودی از مراحل حمل کند، در عمل معمولاً نمی تواند مراحل زیادی را بدون از دست دادن زمینه طی کند. یکی از دلایل مشکل این است که گرادیان شبکه تمایل دارد برای ناپدید شدن در طی بسیاری از مراحل، که در توانایی یک بهینه ساز مبتنی بر گرادیان مانند نزول گرادیان تصادفی (SGD) برای همگرایی اختلال ایجاد می کند.

حافظه کوتاه مدت بلند مدت

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