هوش مصنوعی

مقدمه‌ای بر یادگیری ماشین

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

  • نویسنده تیم تتا
  • ۸ دقیقه مطالعه
  • به‌روزرسانی:
مقدمه‌ای بر یادگیری ماشین

یادگیری ماشین چیست و چه فرقی با برنامه‌نویسی معمولی دارد؟

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

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

سه خانواده‌ی اصلی یادگیری

مقایسه‌ی انواع یادگیری
نوعدادههدفمثال
نظارت‌شدهورودی + برچسبپیش‌بینی برچسب یا عددتشخیص هرزنامه، پیش‌بینی قیمت خانه
بدون نظارتفقط ورودییافتن ساختار پنهانخوشه‌بندی مشتریان
تقویتیپاداش و تنبیه از محیطیادگیری سیاست عملربات‌ها، بازی‌ها

در کسب‌وکارهای معمولی، بیش از ۹۰ درصد کاربردها از نوع نظارت‌شده‌اند. دو دسته‌ی اصلی آن طبقه‌بندی (classification؛ خروجی یک دسته) و رگرسیون (regression؛ خروجی یک عدد) است.

مراحل ساخت یک مدل

  1. تعریف مسئله: دقیقاً چه چیزی را پیش‌بینی می‌کنیم و این پیش‌بینی چه تصمیمی را تغییر می‌دهد؟
  2. جمع‌آوری و پاکسازی داده: مقادیر گم‌شده، تکراری‌ها و داده‌های پرت. ابزار اصلی در این مرحله پایتون و پانداس است.
  3. مهندسی ویژگی: ساختن ستون‌های مفید، مثل فاصله از آخرین خرید.
  4. تقسیم داده: بخشی برای آموزش و بخشی برای آزمون.
  5. آموزش و ارزیابی: یک مدل ساده بسازید و با معیار مناسب بسنجید.
  6. استقرار و پایش: مدل در عمل کم‌کم قدیمی می‌شود و باید پایش شود.

اگر پروژه‌ی داده‌محور دارید، بخش تحلیل داده ما می‌تواند مرحله‌ی آماده‌سازی و بررسی اولیه را انجام دهد.

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

اولین مدل با scikit-learn

مثال زیر مجموعه‌داده‌ی داخلی تشخیص سرطان سینه را در کتابخانه‌ی scikit-learn (نصب با pip install scikit-learn) می‌خواند، داده را تقسیم می‌کند، یک جنگل تصادفی آموزش می‌دهد و گزارش دقت می‌گیرد. مجموعه‌داده فقط برای آموزش است و نباید از آن برای تصمیم پزشکی استفاده کرد.

python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

X, y = load_breast_cancer(return_X_y=True)

# keep class proportions equal in both splits
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, stratify=y, random_state=42)

model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X_train, y_train)

print(classification_report(y_test, model.predict(X_test)))

چند نکته: random_state نتیجه را تکرارپذیر می‌کند، stratify نسبت دسته‌ها را حفظ می‌کند و گزارش روی داده‌ای محاسبه شده که مدل ندیده است. برای اطلاعات بیشتر، مستندات scikit-learn مرجع خوبی است.

ارزیابی: دقت تنها کافی نیست

فرض کنید فقط ۲ درصد تراکنش‌ها تقلبی‌اند. مدلی که همیشه بگوید «سالم است» ۹۸ درصد دقت دارد و کاملاً بی‌فایده است. برای همین از معیارهای دیگری هم استفاده می‌کنیم:

  • Precision: از مواردی که مدل «مثبت» گفت، چند درصد واقعاً مثبت بودند؟
  • Recall: از مثبت‌های واقعی، چند درصد را پیدا کرد؟
  • F1: میانگین هماهنگ این دو برای زمانی که هر دو مهم‌اند.
  • MAE / RMSE: برای رگرسیون، متوسط خطای عددی.

انتخاب معیار یک تصمیم کسب‌وکاری است: در غربالگری بیماری، از دست‌دادن مورد واقعی (recall پایین) بدتر از هشدار اضافه است؛ در فیلتر هرزنامه برعکس، حذف ایمیل مهم گران‌تر تمام می‌شود.

اشتباه‌های رایج مبتدیان

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

قدم بعدی برای یادگیری و استفاده در کسب‌وکار

مسیر پیشنهادی برای شروع: پایتون و پانداس (برای کار با داده)، سپس scikit-learn برای مدل‌های کلاسیک، و بعد در صورت نیاز یادگیری عمیق. پروژه‌های کوچک واقعی مثل پیش‌بینی ریزش مشتری با داده‌ی خودتان از هر دوره‌ی تئوری مؤثرترند.

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

پرسش‌های متداول

تفاوت هوش مصنوعی، یادگیری ماشین و یادگیری عمیق چیست؟

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

برای شروع یادگیری ماشین به چه ریاضیاتی نیاز دارم؟

برای شروع، آمار پایه، مقدمه‌ای از جبر خطی و کمی مشتق کافی است. بسیاری از مفاهیم را ابتدا با کتابخانه‌هایی مثل scikit-learn می‌توان تجربه کرد و ریاضیات را همراه با پروژه عمیق‌تر کرد.

برای ساخت مدل یادگیری ماشین چقدر داده لازم است؟

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

آیا برای یادگیری ماشین حتماً باید پایتون بلد باشم؟

الزامی نیست، اما پایتون به‌دلیل کتابخانه‌هایی مثل pandas، scikit-learn و PyTorch رایج‌ترین انتخاب است و بیشتر آموزش‌ها و ابزارها برای آن نوشته شده‌اند، بنابراین شروع با آن ساده‌تر است.

دیدگاه‌ها

    هنوز دیدگاهی ثبت نشده است. اولین نفر باشید.

    دیدگاه‌ها پس از بررسی منتشر می‌شوند.