یادگیری ماشین چیست؟ چطور شروع کنیم؟
یادگیری ماشین یا Machine Learning، زیرمجموعهای از هوش مصنوعیه که روی الگوریتمهایی تمرکز داره که الگوهای دادههای آموزشی رو تحلیل میکنن و «یاد میگیرن» تا بتونن درباره دادههای جدید، استنتاجهای دقیقی داشته باشن.
یادگیری ماشین یا Machine Learning چیه؟
یادگیری ماشین زیرمجموعهای از هوش مصنوعی (AI) است که روی الگوریتمهایی تمرکز داره که میتونن الگوهای موجود در دادههای آموزشی رو «یاد بگیرن» و بعدش، درباره دادههای جدید، استنتاجهای دقیقی انجام بدن. این قابلیت تشخیص الگو به مدلهای یادگیری ماشین اجازه میده تا بدون نیاز به دستورالعملهای صریح و از پیش تعیین شده، تصمیمگیری یا پیشبینی کنن.
یادگیری ماشین تونسته حوزه هوش مصنوعی رو تحت سلطه خودش دربیاره: این تکنولوژی، ستون فقرات اکثر سیستمهای هوش مصنوعی مدرن رو تشکیل میده؛ از مدلهای پیشبینی گرفته تا خودروهای خودران و مدلهای زبان بزرگ (LLMs) و سایر ابزارهای هوش مصنوعی مولد.
فرض اصلی یادگیری ماشین (ML) اینه که اگه شما عملکرد یک مدل رو روی مجموعهای از دادهها که شباهت کافی به مسائل دنیای واقعی دارن بهینهسازی کنید—از طریق فرآیندی به نام آموزش مدل—اون مدل میتونه پیشبینیهای دقیقی روی دادههای جدیدی که در کاربرد نهاییاش باهاشون مواجه میشه، انجام بده.
خودِ آموزش، فقط وسیلهای برای رسیدن به یک هدفه: تعمیمپذیری (generalization)، یعنی تبدیل عملکرد قوی روی دادههای آموزشی به نتایج مفید در سناریوهای دنیای واقعی، هدف اصلی یادگیری ماشینه. در واقع، یک مدل آموزشدیده، الگوهایی که از دادههای آموزشی یاد گرفته رو برای استنتاج خروجی صحیح در یک کار واقعی به کار میگیره: به همین دلیله که به پیادهسازی یک مدل هوش مصنوعی، استنتاج هوش مصنوعی هم میگن.
یادگیری عمیق (Deep learning)، که زیرمجموعهای از یادگیری ماشینه و توسط شبکههای عصبی مصنوعی بزرگ—یا بهتره بگیم «عمیق»—قدرت گرفته، در چند دهه گذشته به عنوان پیشرفتهترین معماری مدل هوش مصنوعی در تقریباً تمام حوزههایی که از AI استفاده میشه، ظهور کرده. برخلاف الگوریتمهای تعریفشده و صریح در یادگیری ماشین سنتی، یادگیری عمیق به «شبکههای» توزیعشدهای از عملیات ریاضی متکیه که توانایی بینظیری در یادگیری جزئیات پیچیده دادههای خیلی بزرگ دارن. از اونجایی که یادگیری عمیق به مقادیر بسیار زیادی داده و منابع محاسباتی نیاز داره، پیدایش اون با افزایش اهمیت «کلاندادهها» (big data) و واحدهای پردازش گرافیکی (GPUs) همزمان بوده.
رشته یادگیری ماشین ارتباط تنگاتنگی با علم داده (data science) داره. به نوعی، میشه یادگیری ماشین رو مجموعهای از الگوریتمها و تکنیکها برای خودکارسازی تحلیل داده و (مهمتر از اون) به کارگیری آموختههای اون تحلیل برای اجرای مستقل وظایف مرتبط دونست.
ریشه این اصطلاح (و نه خود مفهوم اصلی) اغلب به مقاله آرتور ال. ساموئل در سال ۱۹۵۹ در مجله IBM با عنوان «مطالعاتی در یادگیری ماشین با استفاده از بازی چکرز» نسبت داده میشه. ساموئل در مقدمه این مقاله، نتیجه ایدهآل یادگیری ماشین رو به زیبایی بیان میکنه: «میتوان کامپیوتر را طوری برنامهریزی کرد که یاد بگیرد بازی چکرز را بهتر از کسی که برنامه را نوشته، بازی کند.»
یادگیری ماشین در مقابل هوش مصنوعی
اگرچه «یادگیری ماشین» و «هوش مصنوعی» اغلب به جای هم استفاده میشن، اما کاملاً مترادف نیستن. خلاصه بگم: همه یادگیری ماشینها هوش مصنوعی هستن، اما همه هوش مصنوعیها یادگیری ماشین نیستن.
در تصور عموم، «هوش مصنوعی» معمولاً با داستانهای علمی-تخیلی گره خورده—اغلب از طریق تصویرسازیهایی که بهتره بهشون هوش عمومی مصنوعی (AGI) بگیم، مثل HAL 9000 در فیلم ادیسه فضایی یا Ava در فیلم Ex Machina—یا اخیراً، با هوش مصنوعی مولد. اما «هوش مصنوعی» یک اصطلاح کلی برای هر برنامهایه که میتونه از اطلاعات برای تصمیمگیری یا پیشبینی بدون دخالت فعال انسان استفاده کنه.
ابتداییترین سیستمهای هوش مصنوعی، مجموعهای از دستورات شرطی if-then-else هستن که قوانین و منطقشون به صراحت توسط یک دانشمند داده برنامهریزی شده. در سادهترین سطح، حتی یک ترموستات ابتدایی هم یک سیستم هوش مصنوعی مبتنی بر قانونه: وقتی با قوانین سادهای مثل اینها برنامهریزی بشه:
IF دمای_اتاق < ۶۷, THEN بخاری_را_روشن_کن
و
IF دمای_اتاق > ۷۲, THEN کولر_را_روشن_کن
، ترموستات میتونه بدون دخالت بیشتر انسان، تصمیمگیری مستقلی انجام بده. در سطح پیچیدهتر، یک درخت تصمیمگیری بزرگ و پیچیده مبتنی بر قانون که توسط متخصصان پزشکی برنامهریزی شده، میتونه علائم، شرایط و بیماریهای همراه رو برای کمک به تشخیص یا پیشآگهی بیماری تجزیه و تحلیل کنه.
برخلاف سیستمهای خبره، منطقی که یک مدل یادگیری ماشین بر اساس اون عمل میکنه، به صراحت برنامهریزی نشده—بلکه از طریق تجربه یاد گرفته شده. یک برنامه فیلتر اسپم ایمیل رو در نظر بگیرید: هوش مصنوعی مبتنی بر قانون به یک دانشمند داده نیاز داره تا به صورت دستی معیارهای دقیق و جهانی برای اسپم بودن تعریف کنه؛ اما یادگیری ماشین فقط به انتخاب یک الگوریتم مناسب و یک مجموعه داده کافی از ایمیلهای نمونه نیاز داره. در حین آموزش، به مدل ایمیلهای نمونه نشون داده میشه و اون پیشبینی میکنه که کدومها اسپم هستن؛ خطای پیشبینیهاش محاسبه میشه و الگوریتمش برای کاهش خطا تنظیم میشه؛ این فرآیند اونقدر تکرار میشه تا مدل به دقت کافی برسه. مدل ML تازه آموزشدیده، به طور ضمنی یاد گرفته که چطور اسپم رو تشخیص بده.
هر چقدر وظایفی که یک سیستم هوش مصنوعی باید انجام بده پیچیدهتر میشه، مدلهای مبتنی بر قانون شکنندهتر میشن: اغلب غیرممکنه که تمام الگوها و متغیرهایی که یک مدل باید در نظر بگیره رو به صراحت تعریف کرد. سیستمهای یادگیری ماشین به عنوان حالت غالب هوش مصنوعی ظهور کردن، چون یادگیری ضمنی الگوها از خود دادهها، ذاتاً انعطافپذیرتر، مقیاسپذیرتر و در دسترستره.
یادگیری ماشین چطور کار میکنه؟
یادگیری ماشین از طریق منطق ریاضی کار میکنه. بنابراین، ویژگیهای مرتبط (یا “features”) هر نقطه داده باید به صورت عددی بیان بشن تا خود دادهها بتونن به یک الگوریتم ریاضی داده بشن که «یاد بگیره» یک ورودی مشخص رو به خروجی مورد نظر نگاشت کنه.
نقاط داده در یادگیری ماشین معمولاً به شکل برداری نمایش داده میشن، که در اون هر عنصر (یا بعد) از بردار تعبیهشده (vector embedding) یک نقطه داده، با مقدار عددی اون برای یک ویژگی خاص مطابقت داره. برای انواع دادههایی که ذاتاً عددی هستن، مثل دادههای مالی یا مختصات جغرافیایی، این کار نسبتاً ساده است. اما بسیاری از انواع دادهها، مثل متن، تصاویر، دادههای گراف شبکههای اجتماعی یا رفتارهای کاربران اپلیکیشن، ذاتاً عددی نیستن و بنابراین برای اینکه به شکلی آماده برای ML بیان بشن، نیاز به مهندسی ویژگیهای کمتر شهودی دارن.
فرآیند (اغلب دستی) انتخاب اینکه از کدام جنبههای داده در الگوریتمهای یادگیری ماشین استفاده بشه، انتخاب ویژگی (feature selection) نامیده میشه. تکنیکهای استخراج ویژگی (feature extraction) دادهها رو به مرتبطترین و معنادارترین ابعادشون محدود میکنن. هر دوی اینها زیرمجموعهای از مهندسی ویژگی (feature engineering) هستن، یعنی رشته گستردهتر پیشپردازش دادههای خام برای استفاده در یادگیری ماشین. یک تمایز قابل توجه یادگیری عمیق اینه که معمولاً روی دادههای خام کار میکنه و بخش زیادی از فرآیند مهندسی ویژگی—یا حداقل استخراج ویژگی—رو خودکارسازی میکنه. این باعث میشه یادگیری عمیق مقیاسپذیرتر باشه، هرچند نسبت به یادگیری ماشین سنتی کمتر قابل تفسیر باشه.
پارامترهای مدل یادگیری ماشین و بهینهسازی
برای یک مثال عملی، یک الگوریتم ساده رگرسیون خطی رو برای پیشبینی قیمت فروش خانه بر اساس ترکیبی وزندار از سه متغیر در نظر بگیرید: متراژ، سن خانه و تعداد اتاقخوابها. هر خانه به عنوان یک بردار تعبیهشده با ۳ بعد نمایش داده میشه:
[متراژ، تعداد اتاقخواب، سن]
. یک خانه ۳۰ ساله با ۴ اتاق خواب و ۱۹۰۰ فوت مربع (حدود ۱۷۶ متر مربع) میتونه به این صورت نمایش داده بشه:
[1900, 4, 30]
(البته برای اهداف ریاضی، این اعداد ممکنه اول مقیاسبندی یا نرمالسازی بشن تا در یک محدوده یکنواختتر قرار بگیرن).
الگوریتم یک تابع ریاضی ساده است:
قیمت = (A * متراژ) + (B * تعداد اتاق) – (C * سن) + قیمت پایه
اینجا، A، B و C پارامترهای مدل هستن: تنظیم اونها، میزان تأثیرگذاری هر متغیر رو در مدل تغییر میده. هدف یادگیری ماشین، پیدا کردن مقادیر بهینه برای این پارامترهای مدله. در حالی که اکثر موارد واقعی یادگیری ماشین شامل الگوریتمهای پیچیدهتر با تعداد متغیرهای ورودی بیشتر هستن، اصل کار همینه: بهینهسازی پارامترهای قابل تنظیم الگوریتم برای رسیدن به دقت بیشتر.
انواع یادگیری ماشین
همه روشهای یادگیری ماشین رو میشه بر اساس ماهیت اهداف آموزشیشون و (اغلب ولی نه همیشه) نوع دادههای آموزشی که استفاده میکنن، به یکی از سه پارادایم یادگیری مجزا دستهبندی کرد: یادگیری با نظارت، یادگیری بدون نظارت یا یادگیری تقویتی.
- یادگیری با نظارت (Supervised learning) مدلی رو آموزش میده تا خروجی «صحیح» رو برای یک ورودی مشخص پیشبینی کنه. این روش برای وظایفی به کار میره که به درجهای از دقت نسبت به یک «حقیقت زمینی (ground truth)» خارجی نیاز دارن، مثل دستهبندی یا رگرسیون.
- یادگیری بدون نظارت (Unsupervised learning) مدلی رو آموزش میده تا الگوها، وابستگیها و همبستگیهای ذاتی در دادهها رو تشخیص بده. برخلاف یادگیری با نظارت، وظایف یادگیری بدون نظارت شامل هیچ حقیقت زمینی خارجیای برای مقایسه خروجیها نیستن.
- یادگیری تقویتی (Reinforcement learning – RL) مدلی رو آموزش میده تا محیط خودش رو ارزیابی کنه و اقدامی انجام بده که بیشترین پاداش رو به همراه داشته باشه. سناریوهای RL وجود یک حقیقت زمینی واحد رو فرض نمیکنن، اما وجود اقدامات «خوب» و «بد» (یا خنثی) رو در نظر میگیرن.
فرآیند آموزش سرتاسری برای یک مدل مشخص، میتونه و اغلب هم شامل رویکردهای ترکیبی باشه که از بیش از یکی از این پارادایمهای یادگیری استفاده میکنن. به عنوان مثال، یادگیری بدون نظارت اغلب برای پیشپردازش دادهها برای استفاده در یادگیری با نظارت یا تقویتی به کار میره. مدلهای زبان بزرگ (LLMs) معمولاً آموزش اولیه (پیشآموزش) و تنظیم دقیق (fine-tuning) خودشون رو از طریق انواع یادگیری با نظارت طی میکنن و بعدش با تکنیکهای RL مثل یادگیری تقویتی از طریق بازخورد انسانی (RLHF) بیشتر تنظیم میشن.
در یک رویه مشابه اما متمایز، روشهای مختلف یادگیری تجمعی (ensemble learning) خروجیهای چندین الگوریتم رو با هم ترکیب میکنن.
یادگیری ماشین با نظارت
الگوریتمهای یادگیری با نظارت مدلها رو برای کارهایی که به دقت نیاز دارن، مثل دستهبندی (classification) یا رگرسیون، آموزش میدن. یادگیری ماشین با نظارت هم مدلهای پیشرفته یادگیری عمیق و هم طیف وسیعی از مدلهای سنتی ML رو که هنوز به طور گسترده در صنایع مختلف استفاده میشن، قدرت میبخشه.
- مدلهای رگرسیون مقادیر پیوسته رو پیشبینی میکنن، مثل قیمت، مدت زمان، دما یا اندازه. نمونههایی از الگوریتمهای رگرسیون سنتی شامل رگرسیون خطی، رگرسیون چندجملهای و مدلهای فضای حالت هستن.
- مدلهای دستهبندی مقادیر گسسته رو پیشبینی میکنن، مثل دستهبندی (یا کلاس) که یک نقطه داده به اون تعلق داره، یک تصمیم باینری یا یک اقدام خاص که باید انجام بشه. نمونههایی از الگوریتمهای دستهبندی سنتی شامل ماشینهای بردار پشتیبان (SVMs)، نایو بیز (Naïve Bayes) و رگرسیون لجستیک هستن.
- بسیاری از الگوریتمهای ML با نظارت میتونن برای هر دو کار استفاده بشن. به عنوان مثال، خروجی یک الگوریتم که اسماً رگرسیونه، میتونه بعداً برای اطلاعرسانی به یک پیشبینی دستهبندی استفاده بشه.
برای اینکه دقت یک مدل اندازهگیری و بهینه بشه، خروجیهاش باید با یک حقیقت زمینی (ground truth) مقایسه بشن: یعنی خروجی ایدهآل و «صحیح» برای هر ورودی مشخص. در یادگیری با نظارت مرسوم، این حقیقت زمینی توسط دادههای برچسبدار (labeled data) فراهم میشه. یک مدل تشخیص اسپم ایمیل روی مجموعهای از ایمیلها آموزش داده میشه که هر کدوم به عنوان اسپم یا غیراسپم برچسب خوردن. یک مدل بخشبندی تصویر (image segmentation) روی تصاویری آموزش داده میشه که پیکسل به پیکسل حاشیهنویسی شدن. هدف یادگیری با نظارت اینه که پارامترهای مدل رو اونقدر تنظیم کنه تا خروجیهاش به طور مداوم با حقیقت زمینی ارائه شده توسط اون برچسبها مطابقت داشته باشن.
استفاده از یک تابع زیان (loss function) که واگرایی («زیان») بین خروجی مدل و حقیقت زمینی رو در یک دسته از ورودیهای آموزشی اندازهگیری میکنه، برای یادگیری با نظارت ضروریه. هدف یادگیری با نظارت به صورت ریاضی به عنوان به حداقل رساندن خروجی یک تابع زیان تعریف میشه. پس از محاسبه زیان، الگوریتمهای بهینهسازی مختلفی—که اکثرشون شامل محاسبه مشتق(های) تابع زیان هستن—برای شناسایی تنظیمات پارامتری که زیان رو کاهش میدن، استفاده میشن.
چون این فرآیند به طور سنتی به یک انسان در چرخه نیاز داره تا حقیقت زمینی رو در قالب حاشیهنویسی دادهها فراهم کنه، بهش «یادگیری با نظارت» میگن. به همین دلیل، استفاده از دادههای برچسبدار از نظر تاریخی به عنوان مشخصه قطعی یادگیری با نظارت در نظر گرفته میشد. اما در اساسیترین سطح، مشخصه یادگیری با نظارت، وجود نوعی حقیقت زمینی و هدف آموزشی به حداقل رساندن خروجی تابع زیانی است که واگرایی از اون رو اندازهگیری میکنه.
برای تطبیق با مفهوم متنوعتر یادگیری با نظارت، اصطلاحات مدرن ML از «نظارت» یا «سیگنالهای نظارتی» برای اشاره کلی به هر منبعی از حقیقت زمینی استفاده میکنن.
یادگیری خودنظارتی (Self-supervised learning)
برچسبگذاری دادهها میتونه برای کارهای پیچیده و مجموعه دادههای بزرگ، به طور غیرقابل تحملی پرهزینه و زمانبر بشه. یادگیری خودنظارتی شامل آموزش روی وظایفیه که در اونها یک سیگنال نظارتی مستقیماً از دادههای بدون برچسب به دست میاد—به همین دلیل «خود»نظارتی نامیده میشه.
به عنوان مثال، خودرمزگذارها (autoencoders) آموزش داده میشن تا دادههای ورودی رو فشرده (یا رمزگذاری) کنن و سپس با استفاده از اون نمایش فشرده، ورودی اصلی رو بازسازی (یا رمزگشایی) کنن. هدف آموزشی اونها به حداقل رسوندن خطای بازسازی، با استفاده از خود ورودی اصلی به عنوان حقیقت زمینیه. یادگیری خودنظارتی همچنین روش اصلی آموزش برای LLMهاست: به مدلها نمونههای متنی داده میشه که کلمات خاصی در اونها پنهان یا پوشانده شدن و ازشون خواسته میشه کلمات گمشده رو پیشبینی کنن.
یادگیری خودنظارتی اغلب با یادگیری انتقالی (transfer learning) مرتبطه، چون میتونه به مدلهای پایه (foundation models) قابلیتهای گستردهای بده که بعداً برای کارهای خاصتر تنظیم دقیق (fine-tuned) میشن.
یادگیری نیمهنظارتی (Semi-supervised learning)
در حالی که یادگیری خودنظارتی اساساً یادگیری با نظارت روی دادههای بدون برچسبه، روشهای یادگیری نیمهنظارتی هم از دادههای برچسبدار و هم از دادههای بدون برچسب استفاده میکنن. به طور کلی، یادگیری نیمهنظارتی شامل تکنیکهایی میشه که از اطلاعات دادههای برچسبدار موجود برای فرضیهسازی درباره نقاط داده بدون برچسب استفاده میکنن تا دومیها هم بتونن در گردش کار یادگیری با نظارت گنجانده بشن.
یادگیری ماشین بدون نظارت
الگوریتمهای یادگیری ماشین بدون نظارت، الگوهای ذاتی در دادههای بدون برچسب، مثل شباهتها، همبستگیها یا گروهبندیهای بالقوه رو تشخیص میدن. این الگوریتمها بیشتر در سناریوهایی مفید هستن که چنین الگوهایی لزوماً برای ناظران انسانی آشکار نیستن. چون یادگیری بدون نظارت وجود یک خروجی «صحیح» شناخته شده رو از قبل فرض نمیکنه، به سیگنالهای نظارتی یا توابع زیان مرسوم نیازی نداره—به همین دلیل «بدون نظارت» نامیده میشه.
اکثر روشهای یادگیری بدون نظارت یکی از توابع زیر رو انجام میدن:
- الگوریتمهای خوشهبندی (Clustering) نقاط داده بدون برچسب رو بر اساس نزدیکی یا شباهتشون به یکدیگر، به «خوشهها» یا گروهبندیها تقسیم میکنن. این الگوریتمها معمولاً برای کارهایی مثل تقسیمبندی بازار یا تشخیص تقلب استفاده میشن. الگوریتمهای خوشهبندی برجسته شامل خوشهبندی K-means، مدلهای ترکیبی گوسی (GMMs) و روشهای مبتنی بر چگالی مانند DBSCAN هستن.
- الگوریتمهای وابستگی (Association) همبستگیها رو تشخیص میدن، مثلاً بین یک اقدام خاص و شرایط معین. به عنوان مثال، کسبوکارهای تجارت الکترونیک مثل آمازون از مدلهای وابستگی بدون نظارت برای قدرت بخشیدن به موتورهای توصیهگرشون استفاده میکنن.
- الگوریتمهای کاهش ابعاد (Dimensionality reduction) با نمایش نقاط داده با تعداد ویژگیهای کمتر—یعنی در ابعاد کمتر—پیچیدگی اونها رو کاهش میدن، در حالی که ویژگیهای معنادارشون رو حفظ میکنن. این الگوریتمها اغلب برای پیشپردازش دادهها، و همچنین برای کارهایی مثل فشردهسازی داده یا مصورسازی داده استفاده میشن. الگوریتمهای کاهش ابعاد برجسته شامل خودرمزگذارها، تحلیل مؤلفه اصلی (PCA), تحلیل تفکیک خطی (LDA) و تعبیهسازی همسایگی تصادفی توزیعشده t (t-SNE) هستن.
همونطور که از اسمشون پیداست، الگوریتمهای یادگیری بدون نظارت رو میشه به طور کلی به عنوان الگوریتمهایی در نظر گرفت که تا حدودی «خودشون رو بهینه میکنن». برای مثال، این انیمیشن نشون میده که چطور یک الگوریتم خوشهبندی k-means به طور تکراری مرکز هر خوشه رو به تنهایی بهینه میکنه. بنابراین، چالش آموزش مدلهای بدون نظارت روی پیشپردازش مؤثر دادهها و تنظیم صحیح فراپارامترها (hyperparameters) تمرکز داره که بر فرآیند یادگیری تأثیر میذارن اما خودشون قابل یادگیری نیستن، مثل نرخ یادگیری یا تعداد خوشهها.
یادگیری تقویتی (RL)
در حالی که یادگیری با نظارت مدلها رو با بهینهسازی اونها برای تطابق با نمونههای ایدهآل آموزش میده و الگوریتمهای یادگیری بدون نظارت خودشون رو با یک مجموعه داده تطبیق میدن، مدلهای یادگیری تقویتی به طور کلی از طریق آزمون و خطا آموزش داده میشن. این مدلها به طور برجسته در رباتیک، بازیهای ویدیویی، مدلهای استدلال و سایر موارد استفادهای که فضای راهحلها و رویکردهای ممکن به خصوص بزرگ، باز یا تعریفنشدنی هستن، به کار میرن. در ادبیات RL، یک سیستم هوش مصنوعی اغلب به عنوان یک «عامل» (agent) نامیده میشه.
به جای جفتهای مستقل داده ورودی-خروجی که در یادگیری با نظارت استفاده میشن، یادگیری تقویتی (RL) بر روی تاپلهای داده وابسته به همِ حالت-اقدام-پاداش عمل میکنه. به جای به حداقل رسوندن خطا، هدف یادگیری تقویتی بهینهسازی پارامترها برای به حداکثر رسوندن پاداشه.
یک چارچوب ریاضی برای یادگیری تقویتی عمدتاً بر اساس اجزای زیر ساخته شده:
- فضای حالت (state space) شامل تمام اطلاعات موجود و مرتبط با تصمیماتیه که مدل ممکنه بگیره. حالت معمولاً با هر اقدامی که مدل انجام میده، تغییر میکنه.
- فضای عمل (action space) شامل تمام تصمیماتیه که مدل در یک لحظه مجاز به انجام اونهاست. به عنوان مثال، در یک بازی تختهای، فضای عمل شامل تمام حرکات قانونی موجود در یک زمان معینه. در تولید متن، فضای عمل شامل کل «واژگان» توکنهای موجود برای یک LLM میشه.
- سیگنال پاداش (reward signal) بازخوردیه—مثبت یا منفی، که معمولاً به عنوان یک مقدار اسکالر بیان میشه—که در نتیجه هر اقدام به عامل داده میشه. مقدار سیگنال پاداش میتونه توسط قوانین صریح، یک تابع پاداش، یا یک مدل پاداش که به طور جداگانه آموزش دیده، تعیین بشه.
- یک پالیسی (policy) «فرآیند فکری» است که رفتار یک عامل RL رو هدایت میکنه. از نظر ریاضی، یک پالیسی ( π ) تابعیه که یک حالت ( s ) رو به عنوان ورودی میگیره و یک اقدام ( a ) رو برمیگردونه: π(s)→a .
در روشهای مبتنی بر پالیسی مانند بهینهسازی پالیسی نزدیک (PPO)، مدل مستقیماً یک پالیسی رو یاد میگیره. در روشهای مبتنی بر ارزش مانند Q-learning، عامل یک تابع ارزش رو یاد میگیره که امتیازی برای «خوب» بودن هر حالت محاسبه میکنه، و سپس اقداماتی رو انتخاب میکنه که به حالتهای با ارزش بالاتر منجر بشن. یک ماز رو در نظر بگیرید: یک عامل مبتنی بر پالیسی ممکنه یاد بگیره «در این گوشه، به چپ بپیچ»، در حالی که یک عامل مبتنی بر ارزش برای هر موقعیت یک امتیاز یاد میگیره و به سادگی به موقعیت مجاوری با امتیاز بهتر حرکت میکنه. رویکردهای ترکیبی، مانند روشهای بازیگر-منتقد (actor-critic)، یک تابع ارزش رو یاد میگیرن که سپس برای بهینهسازی یک پالیسی استفاده میشه.
در یادگیری تقویتی عمیق، پالیسی به عنوان یک شبکه عصبی نمایش داده میشه.
یادگیری عمیق (Deep Learning)
یادگیری عمیق به جای الگوریتمهای صریح طراحیشده در یادگیری ماشین سنتی، از شبکههای عصبی مصنوعی با لایههای بسیار—به همین دلیل «عمیق»—استفاده میکنه. اگرچه شبکههای عصبی در اوایل تاریخ یادگیری ماشین معرفی شدن، اما تا اواخر دهه ۲۰۰۰ و اوایل دهه ۲۰۱۰، که بخشی از اون به لطف پیشرفتها در GPUها بود، در اکثر زیرشاخههای هوش مصنوعی غالب نشدن.
شبکههای عصبی که به طور کلی از مغز انسان الهام گرفته شدن، از لایههای متصل به هم از «نورونها» (یا گرهها) تشکیل شدن که هر کدوم عملیات ریاضی خاص خودشون (که «تابع فعالسازی» نامیده میشه) رو انجام میدن. خروجی تابع فعالسازی هر گره به عنوان ورودی برای هر یک از گرههای لایه بعدی عمل میکنه و این روند تا لایه نهایی ادامه پیدا میکنه، جایی که خروجی نهایی شبکه محاسبه میشه. نکته مهم اینه که توابع فعالسازی که در هر گره انجام میشن، غیرخطی هستن، که به شبکههای عصبی امکان مدلسازی الگوها و وابستگیهای پیچیده رو میده.
به هر اتصال بین دو نورون یک وزن منحصر به فرد اختصاص داده میشه: یک ضریبی که سهم یک نورون در نورون لایه بعدی رو افزایش یا کاهش میده. این وزنها، به همراه ترمهای بایاس (bias) بین لایهها، پارامترهایی هستن که از طریق یادگیری ماشین بهینه میشن.
الگوریتم پسانتشار (backpropagation) امکان محاسبه نحوه تأثیر هر گره مجزا بر خروجی کلی تابع زیان رو فراهم میکنه و به این ترتیب اجازه میده تا حتی میلیونها یا میلیاردها وزن مدل به صورت جداگانه از طریق الگوریتمهای کاهش گرادیان (gradient descent) بهینه بشن. به دلیل حجم و جزئیات بهروزرسانیهای مورد نیاز برای دستیابی به نتایج بهینه، یادگیری عمیق در مقایسه با ML سنتی به مقادیر بسیار زیادی داده و منابع محاسباتی نیاز داره.
این ساختار توزیعشده به مدلهای یادگیری عمیق قدرت و تطبیقپذیری باورنکردنیشون رو میده. دادههای آموزشی رو به عنوان نقاط داده پراکنده روی یک نمودار ۲ بعدی تصور کنید. اساساً، یادگیری ماشین سنتی به دنبال پیدا کردن یک منحنی واحده که از تمام اون نقاط داده عبور کنه؛ یادگیری عمیق تعداد دلخواهی از خطوط کوچکتر و قابل تنظیم رو کنار هم قرار میده تا شکل مورد نظر رو بسازه. شبکههای عصبی تقریبزنندههای جهانی (universal approximators) هستن: از نظر تئوری ثابت شده که برای هر تابعی، یک چیدمان شبکه عصبی وجود داره که میتونه اون رو بازتولید کنه.
با این حال، فقط چون چیزی از نظر تئوری ممکنه، به این معنی نیست که با روشهای آموزشی موجود عملاً قابل دستیابیه. برای سالها، عملکرد کافی در برخی وظایف حتی برای مدلهای یادگیری عمیق هم دور از دسترس بود—اما با گذشت زمان، اصلاحات در معماری استاندارد شبکه عصبی، قابلیتهای جدیدی رو برای مدلهای ML باز کرده.
شبکههای عصبی کانولوشنی (CNNs)
شبکههای عصبی کانولوشنی (CNNs) لایههای کانولوشنی رو به شبکههای عصبی اضافه میکنن. در ریاضیات، کانولوشن عملیاتیه که در اون یک تابع، شکل تابع دیگهای رو تغییر میده (یا کانوالو میکنه). در CNNها، لایههای کانولوشنی برای استخراج ویژگیهای مهم از دادهها با اعمال «فیلترهای» وزندار استفاده میشن. CNNها عمدتاً با مدلهای بینایی کامپیوتر و دادههای تصویری مرتبط هستن، اما کاربردهای مهم دیگهای هم دارن.
شبکههای عصبی بازگشتی (RNNs)
شبکههای عصبی بازگشتی (RNNs) برای کار بر روی دادههای متوالی طراحی شدن. در حالی که شبکههای عصبی پیشخور مرسوم یک ورودی واحد رو به یک خروجی واحد نگاشت میکنن، RNNها یک دنباله از ورودیها رو با کار در یک حلقه بازگشتی به یک خروجی نگاشت میکنن که در اون خروجی برای یک مرحله معین در دنباله ورودی، به عنوان ورودی برای محاسبات مرحله بعدی عمل میکنه. در عمل، این یک «حافظه» داخلی به نام حالت پنهان (hidden state) ایجاد میکنه که به RNNها امکان درک زمینه و ترتیب رو میده.
ترنسفورمرها (Transformers)
مدلهای ترنسفورمر که اولین بار در سال ۲۰۱۷ معرفی شدن، تا حد زیادی مسئول پیدایش LLMها و دیگر پایههای هوش مصنوعی مولد هستن و در اکثر زیرشاخههای یادگیری ماشین به نتایج پیشرفتهای دست یافتن. مانند RNNها، ترنسفورمرها ظاهراً برای دادههای متوالی طراحی شدن، اما راهحلهای هوشمندانه باعث شده تا اکثر انواع دادهها توسط ترنسفورمرها پردازش بشن. نقطه قوت منحصر به فرد مدلهای ترنسفورمر از مکانیزم توجه (attention mechanism) نوآورانهشون ناشی میشه که به مدلها اجازه میده تا به طور انتخابی روی بخشهایی از دادههای ورودی که در یک لحظه خاص در یک دنباله بیشترین ارتباط رو دارن، تمرکز کنن.
مدلهای مامبا (Mamba models)
مدلهای مامبا یک معماری شبکه عصبی نسبتاً جدید هستن که اولین بار در سال ۲۰۲۳ معرفی شدن و بر اساس یک تنوع منحصر به فرد از مدلهای فضای حالت (SSMs) ساخته شدن. مانند ترنسفورمرها، مدلهای مامبا وسیلهای نوآورانه برای اولویتبندی انتخابی مرتبطترین اطلاعات در یک لحظه معین فراهم میکنن. مامبا اخیراً به عنوان رقیبی برای معماری ترنسفورمر، به ویژه برای LLMها، ظهور کرده.
کاربردهای یادگیری ماشین
اکثر کاربردهای یادگیری ماشین در یک یا چند دسته از دستههای زیر قرار میگیرن که عمدتاً بر اساس موارد استفاده و انواع دادههایی که بر روی اونها کار میکنن، تعریف میشن.
بینایی کامپیوتر (Computer Vision)
بینایی کامپیوتر زیرشاخهای از هوش مصنوعیه که به دادههای تصویری، دادههای ویدیویی و سایر انواع دادههایی که نیاز به «دیدن» توسط یک مدل یا ماشین دارن، میپردازه؛ از تشخیصهای پزشکی گرفته تا تشخیص چهره و خودروهای خودران. زیرشاخههای قابل توجه بینایی کامپیوتر شامل دستهبندی تصویر، تشخیص اشیاء، بخشبندی تصویر و تشخیص نوری کاراکتر (OCR) هستن.
پردازش زبان طبیعی (NLP)
تحلیل سریهای زمانی (Time Series Analysis)
مدلهای سریهای زمانی برای تشخیص ناهنجاری، تحلیل بازار و وظایف مرتبط با تشخیص الگو یا پیشبینی به کار میرن. اونها از یادگیری ماشین روی دادههای تاریخی برای انواع موارد استفاده پیشبینی استفاده میکنن.
تولید تصویر (Image Generation)
مدلهای انتشاری (Diffusion models)، خودرمزگذارهای متغیر (VAEs) و شبکههای مولد تخاصمی (GANs) میتونن برای تولید تصاویر اصلی استفاده بشن که الگوهای پیکسلی یادگرفته شده از دادههای آموزشی رو به کار میگیرن.
عملیات یادگیری ماشین (MLOps)
عملیات یادگیری ماشین (MLOps) مجموعهای از شیوهها برای پیادهسازی یک رویکرد خط مونتاژی برای ساخت، استقرار و نگهداری مدلهای یادگیری ماشینه.
گردآوری و پیشپردازش دقیق دادههای آموزشی، و همچنین انتخاب مدل مناسب، گامهای حیاتی در خط لوله MLOps هستن. اعتبارسنجی متفکرانه پس از آموزش، از طراحی مجموعه دادههای محک گرفته تا اولویتبندی متریکهای عملکرد خاص، برای اطمینان از اینکه یک مدل به خوبی تعمیم پیدا میکنه (و فقط روی دادههای آموزشی بیشبرازش (overfitting) نکرده) ضروریه.
پس از استقرار، مدلها باید برای انحراف مدل (model drift)، مشکلات کارایی استنتاج و سایر تحولات نامطلوب نظارت بشن. یک رویه خوب تعریفشده از نظارت بر مدل (model governance) برای ادامه کارایی، به ویژه در صنایع قانونمند یا در حال تغییر سریع، ضروریه.
کتابخانههای یادگیری ماشین
تعدادی ابزار، کتابخانه و چارچوب منبعباز برای ساخت، آموزش و تست پروژههای یادگیری ماشین وجود داره. در حالی که این کتابخانهها مجموعهای از ماژولها و انتزاعات از پیش پیکربندی شده رو برای سادهسازی فرآیند ساخت مدلها و گردشکارهای مبتنی بر ML ارائه میدن، متخصصان باید با زبانهای برنامهنویسی رایج—به ویژه پایتون—آشنا بشن تا بتونن از اونها به طور کامل استفاده کنن.
کتابخانههای منبعباز برجسته، به ویژه برای ساخت مدلهای یادگیری عمیق، شامل PyTorch، TensorFlow، Keras و کتابخانه Hugging Face Transformers هستن.
کتابخانهها و جعبهابزارهای یادگیری ماشین منبعباز قابل توجهی که روی ML سنتی متمرکز هستن، شامل Pandas، Scikit-learn، XGBoost، Matplotlib، SciPy و NumPy در میان بسیاری دیگر هستن.
خود IBM هم کتابخانه قابل توجهی از آموزشها رو برای مبتدیان و متخصصان پیشرفته ML نگهداری و بهروزرسانی میکنه.
پاسخی بگذارید