یادگیری ماشین: روشی برای پیدا کردن الگوها توسط رایانه
تفاوت برنامهنویسی معمولی با یادگیری ماشین
در برنامهنویسی سنتی، ما به رایانه میگوییم چه کاری انجام دهد و چگونه انجام دهد. مثلاً برای تشخیص ایمیل اسپم، تمام قوانین را یکبهیک مینویسیم: اگر ایمیل شامل کلمه «برنده شدی» بود، آن را اسپم علامت بزن. اما در یادگیری ماشین1، به جای نوشتن قوانین، مثالهای زیاد از ایمیلهای اسپم و غیراسپم به رایانه نشان میدهیم و خودش الگوها را پیدا میکند. این روش شبیه به یادگیری یک کودک است: به جای توضیح قواعد دستوری زبان، با شنیدن جملات بسیار، ساختار زبان را درمییابد.
در جدول زیر تفاوت اصلی این دو رویکرد نشان داده شده است:
| ویژگی | برنامهنویسی سنتی | یادگیری ماشین |
|---|---|---|
| ورودی به رایانه | داده + قانون (دستورالعمل) | داده + پاسخ صحیح (یا بدون پاسخ) |
| خروجی رایانه | پاسخ نهایی | قانون یا الگوی کشف شده + پاسخ |
| نیاز به تخصص انسانی برای قوانین جدید | زیاد (هر تغییر نیاز به برنامهنویس دارد) | کم (با داده جدید دوباره آموزش میبیند) |
انواع اصلی یادگیری ماشین: نظارت شده، نظارت نشده و تقویتی
یادگیری ماشین بر اساس نوع دادههایی که به رایانه نشان میدهیم به سه دسته اصلی تقسیم میشود:
نوع اول: یادگیری نظارت شده2 – در این روش به رایانه هم ورودی و هم خروجی صحیح را نشان میدهیم. مانند معلمی که سوال و جواب صحیح را به دانشآموز نشان میدهد. کاربرد: تشخیص اسپم، پیشبینی قیمت مسکن، تشخیص بیماری از روی عکس.
نوع دوم: یادگیری نظارت نشده3 – در این روش فقط ورودی را به رایانه میدهیم و خودش باید گروهبندی یا الگوهای پنهان را پیدا کند. مانند چیدن میوههای مخلوط بدون برچسب؛ رایانه بر اساس شباهتها (رنگ، اندازه) آنها را دستهبندی میکند. کاربرد: بخشبندی مشتریان در فروشگاه، فشردهسازی تصاویر.
نوع سوم: یادگیری تقویتی4 – در این روش رایانه با آزمون و خطا و دریافت پاداش (امتیاز مثبت برای کار درست و جریمه برای کار اشتباه) یاد میگیرد. مانند آموزش یک موش مجازی برای یافتن پنیر در یک پیچوخم. کاربرد: بازیهای رایانهای، رباتهای خودگردان، کنترل ترافیک.
مثال واقعی: ساخت یک تشخیصدهنده ایمیل اسپم
فرض کنید میخواهیم سیستمی بسازیم که تشخیص دهد یک ایمیل اسپم (هرزنامه) است یا نه. به جای نوشتن قانون، از یادگیری ماشین نظارت شده استفاده میکنیم. مراحل کار:
گام اول: جمعآوری داده – دهها هزار ایمیل از دو دسته «اسپم» و «غیراسپم» (که به آن «حم» میگویند) جمع میکنیم. هر ایمیل برچسب دارد: $1$ برای اسپم و $0$ برای غیراسپم.
گام دوم: استخراج ویژگی – از هر ایمیل ویژگیهای عددی استخراج میکنیم. مثلاً: تعداد دفعات تکرار کلمه «پول»، تعداد لینکهای خارجی، وجود علامت تعجب زیاد، و غیره. این ویژگیها ورودی مدل هستند.
گام سوم: انتخاب مدل – یک مدل ساده مانند «درخت تصمیم»5 انتخاب میکنیم. مدل روی دادهها آموزش میبیند: به آن هزاران ایمیل با برچسبهایشان نشان میدهیم تا رابطه بین ویژگیها و اسپم بودن را پیدا کند.
گام چهارم: ارزیابی مدل – مدل را روی ایمیلهایی که قبلاً ندیده است میآزماییم. مثلاً از هر $100$ ایمیل جدید، مدل به درستی $98$ مورد را درست تشخیص میدهد. به این عدد «دقت» میگوییم.
آشنایی با معیارهای ارزیابی برای مدلهای دستهبندی
برای اینکه بدانیم مدل یادگیری ماشین چقدر خوب کار میکند، از چند معیار ساده استفاده میکنیم. فرض کنید مدل ما $100$ ایمیل جدید را بررسی کرده است. نتایج احتمالی در یک جدول دو در دو (ماتریس درهمریختگی6) نشان داده میشود:
| پیشبینی: اسپم | پیشبینی: غیراسپم | |
|---|---|---|
| واقعیت: اسپم | ۴۰ (درست مثبت) | ۱۰ (غلط منفی) |
| واقعیت: غیراسپم | ۵ (غلط مثبت) | ۴۵ (درست منفی) |
معیارهای مهم:
- دقت: $\frac{40+45}{100}=0.85$ یعنی $85\%$ از کل موارد درست پیشبینی شدهاند.
- فراخوانی7 برای کلاس اسپم: $\frac{40}{40+10}=0.8$. یعنی از همه ایمیلهای اسپم واقعی، $80\%$ را پیدا کرده است.
چالشهای مفهومی در یادگیری ماشین
نه لزوماً. اگر دادهها پر از اشتباه (نویز) باشند یا مدل خیلی پیچیده باشد، ممکن است دچار «بیشبرازش»8 شود؛ یعنی مدل دقیقاً دادههای آموزش را حفظ میکند اما روی دادههای جدید ضعیف عمل میکند. راه حل: استفاده از دادههای تمیز و سادهسازی مدل.
مدل خودش احساسات را «نمیفهمد». بلکه الگوهای زبانی را یاد میگیرد. مثلاً اگر در هزاران نظر، عبارت «بسیار بد» همیشه با امتیاز $1$ از $5$ همراه باشد، مدل برای جملات مشابه همان برچسب را پیشبینی میکند.
یادگیری ماشین زیرمجموعهای از هوش مصنوعی است. هوش مصنوعی حوزه وسیعتری شامل روشهای دیگری مثل جستجو، منطق و برنامهریزی خودکار نیز میشود. همه سیستمهای هوش مصنوعی از یادگیری ماشین استفاده نمیکنند.
پاورقی
1 یادگیری ماشین (Machine Learning) – شاخهای از هوش مصنوعی که به سیستمها توانایی یادگیری خودکار از داده بدون برنامهریزی صریح را میدهد.
2 یادگیری نظارت شده (Supervised Learning) – نوعی یادگیری که در آن دادههای ورودی همراه با برچسب یا خروجی صحیح به مدل ارائه میشود.
3 یادگیری نظارت نشده (Unsupervised Learning) – نوعی یادگیری که در آن دادهها بدون برچسب هستند و مدل باید الگوهای پنهان را کشف کند.
4 یادگیری تقویتی (Reinforcement Learning) – نوعی یادگیری که در آن عامل با دریافت پاداش یا جریمه بر اساس اعمال خود، یاد میگیرد تصمیمهای بهتری بگیرد.
5 درخت تصمیم (Decision Tree) – مدلی ساده شامل شاخههای شرطی که تصمیمگیری را گام به گام نمایش میدهد.
6 ماتریس درهمریختگی (Confusion Matrix) – جدولی برای نمایش عملکرد یک مدل دستهبندی بر اساس پیشبینیهای درست و غلط.
7 فراخوانی (Recall) – نسبت موارد مثبت واقعی به کل موارد واقعاً مثبت. نشان میدهد مدل چه نسبتی از کل نمونههای مثبت را یافته است.
8 بیشبرازش (Overfitting) – وضعیتی که مدل دادههای آموزشی را بیش از حد دقیق یاد میگیرد و توانایی تعمیم به دادههای جدید را از دست میدهد.