یادگیری ماشین برای دانشجویان مهندسی: یک شروع ساده
یادگیری بانظارت و بینظارت به زبان ساده، یک مثال کوچک از رگرسیون خطی و مسیر شروع کار با پایتون.

یادگیری ماشین این روزها در تقریباً همهی رشتههای مهندسی پیدا میشود؛ از پیشبینی مصرف برق تا تشخیص عیب در قطعههای صنعتی. اما شروعش برای خیلی از دانشجوها گیجکننده است. در این نوشته بدون فرمول سنگین ایدهی اصلی را توضیح میدهم. بعد یک مثال کوچک را قدمبهقدم جلو میبرم و میگویم با پایتون از کجا شروع کنید.
یادگیری ماشین دقیقاً یعنی چه؟
در برنامهنویسی معمولی، ما قاعده را مینویسیم و کامپیوتر آن را اجرا میکند. در یادگیری ماشین، به جای قاعده، تعداد زیادی مثال به کامپیوتر میدهیم. الگوریتم از روی این مثالها یک «مدل» میسازد که بتواند دربارهی دادهی تازه حدس بزند.
مثلاً نوشتن قاعده برای تشخیص ایمیل تبلیغاتی سخت است. ولی اگر تعداد زیادی ایمیل برچسبخورده داشته باشیم، مدل خودش الگوهای مشترک را پیدا میکند. کیفیت مدل هم به کیفیت و تنوع همین مثالها بستگی دارد. دادهی کم یا یکطرفه، مدل ضعیف میسازد.
یادگیری بانظارت و بینظارت
دو دستهی اصلی را بشناسید. بیشتر مسئلههایی که در پروژههای درسی میبینید در یکی از این دو جا میگیرد.
یادگیری بانظارت
در یادگیری بانظارت، هر مثال یک جواب درست دارد که به آن برچسب میگوییم. مدل یاد میگیرد از ورودی به برچسب برسد. این دسته خودش دو نوع دارد:
- رگرسیون: وقتی خروجی یک عدد پیوسته است، مثل قیمت یا دما.
- دستهبندی: وقتی خروجی یک گروه است، مثل سالم یا معیوب.
یادگیری بینظارت
در یادگیری بینظارت برچسبی در کار نیست. مدل فقط ساختار پنهان داده را پیدا میکند. خوشهبندی مشتریها بر اساس رفتار خرید، یا کاهش ابعاد داده برای رسم آن، دو مثال رایجاند.
دستههای دیگری هم هست. مثلاً در یادگیری تقویتی، یک عامل با آزمون و خطا و گرفتن پاداش یاد میگیرد. ولی برای شروع، همین دو دسته کافی است.
یک مثال کوچک: رگرسیون خطی به زبان ساده
فرض کنید میخواهیم از روی مساحت یک آپارتمان، اجارهی ماهانهاش را حدس بزنیم. چند ده آپارتمان داریم که مساحت و اجارهشان را میدانیم. این یک مسئلهی رگرسیون بانظارت است.
- رسم داده: هر آپارتمان را یک نقطه روی نمودار بگذارید؛ محور افقی مساحت و محور عمودی اجاره.
- انتخاب شکل مدل: نقطهها تقریباً دور یک خط صاف جمع شدهاند. پس مدل ما یک خط است: اجاره برابر است با شیب ضرب در مساحت، بهعلاوهی یک عرض از مبدأ.
- تعریف خطا: برای هر نقطه، فاصلهی عمودی آن تا خط را حساب کنید. این فاصلهها را به توان دو میرسانیم و میانگین میگیریم. نامش میانگین مربعات خطاست.
- یادگیری: شیب و عرض از مبدأ را طوری تنظیم میکنیم که این خطا کمترین شود. برای خط، این کار جواب دقیق ریاضی دارد. برای مدلهای بزرگتر از روشهای تکراری مثل گرادیان کاهشی استفاده میشود.
- پیشبینی: حالا برای یک آپارتمان تازه، مساحت را در معادلهی خط میگذاریم و اجاره را حدس میزنیم.
یک قدم مهم را جا نیندازید. بخشی از داده را کنار بگذارید و مدل را فقط روی بقیه آموزش دهید. بعد خطا را روی دادهی کنارگذاشته بسنجید. اگر مدل روی دادهی آموزش عالی باشد ولی روی دادهی تازه ضعیف، دچار بیشبرازش شده است؛ یعنی مثالها را حفظ کرده، نه الگو را.
شروع یادگیری ماشین با پایتون
پایتون رایجترین زبان برای این کار است، چون کتابخانههای آماده و منابع آموزشی فراوانی دارد. این مسیر را پیشنهاد میکنم:
- پایتون پایه: متغیر، حلقه، تابع و لیست. آموزش رسمی پایتون برای این مرحله کافی است.
- NumPy و pandas: برای کار با آرایهها و جدولهای داده.
- Matplotlib: برای رسم نمودار. قبل از ساختن هر مدلی، داده را ببینید.
- scikit-learn: مدلهای کلاسیک مثل رگرسیون خطی، درخت تصمیم و خوشهبندی k-میانگین را با چند خط کد در اختیارتان میگذارد. راهنمای شروع scikit-learn نقطهی خوبی برای قدم اول است.
- Jupyter Notebook: محیطی که کد، نمودار و توضیح را کنار هم نگه میدارد.
مثال اجاره را با scikit-learn در چند خط میشود نوشت. داده را به دو بخش آموزش و آزمون تقسیم میکنید و یک مدل LinearRegression میسازید. آن را با fit آموزش میدهید و با predict پیشبینی میگیرید. سعی کنید همین مثال را خودتان با یک دادهی واقعی تکرار کنید.
ریاضیاتی که لازم دارید
برای شروع لازم نیست ریاضیات پیشرفته بلد باشید. ولی برای فهم عمیقتر، سه درس به کارتان میآید: جبر خطی برای کار با بردار و ماتریس، آمار و احتمال برای فهم داده و خطا، و حساب دیفرانسیل برای فهم بهینهسازی. احتمالاً همین درسها را در سالهای اول گذراندهاید.
اگر بعد از قدمهای اول خواستید جدیتر بخوانید، یادداشتهای درس CS229 دانشگاه استنفورد منبع شناختهشدهای است. در فایلامون هم میتوانید دورههای مرتبط و جزوههای درسی را ببینید.
جمعبندی
یادگیری ماشین یعنی ساختن مدل از روی مثال. اول فرق یادگیری بانظارت و بینظارت را بفهمید. بعد یک مثال ساده مثل رگرسیون خطی را از اول تا آخر خودتان اجرا کنید. ابزارهای لازم رایگاناند. آنچه بیشتر از همه کمک میکند، یک پروژهی کوچک با دادهای است که برایتان معنا دارد.
نظرها
وارد شوید تا نظرتان را بنویسید.
هنوز نظری نوشته نشده است.
