یادگیری ماشین چیست؟
یادگیری ماشین (ML) شاخهای از هوش مصنوعی و علوم کامپیوتر است که برای یادگیری انجام امور بر استفاده از دادهها و الگوریتمها تمرکز دارد و به تدریج با گذر زمان دقت خود را بیشتر میکند. الگوریتم های یادگیری ماشین در بسیاری از برنامهها و ابزارهایی که روزانه از آنها استفاده میکنیم وجود دارند؛ مانند موتور جستوجوی گوگل. یکی از دلایل قدرت روزافزون این موتور جستوجو قدرت یادگیری رتبهبندی صفحات است که بدون برنامههای از پیش نوشتهشده انجام میشود. این الگوریتمها برای اهداف مختلفی مانند دادهکاوی، آموزش رایگان تحلیل تکنیکال، پردازش تصویر و پیشبینی استفاده میشوند. مزیت اصلی استفاده از یادگیری ماشین این است که یکبار به ماشین آموزش میدهیم که چه کاری انجام دهد؛ سپس ماشین پردازش اطلاعات و انجام امور را بهصورت اتوماتیک پیش خواهد برد.
چند نوع الگوریتم یادگیری ماشین داریم؟
به زبان ساده، الگوریتم های ماشین لرنینگ مانند دستورالعملی هستند که به رایانهها اجازه میدهند انجام امور را یاد بگیرند و از دادهها و تحلیل آنها بهمنظور پیشبینی استفاده کنند. به جای اینکه صریحا به رایانه بگوییم چه کاری انجام دهد، مقدار زیادی داده در اختیار آن قرار میدهیم تا الگوها و روابط را کشف کند. در حال حاضر سه نوع از انواع الگوریتم های یادگیری ماشین داریم که عبارتند از:
یادگیری تقویتی نوعی از الگوریتم های یادگیری ماشین است که در آن یک عامل یاد میگیرد با تعامل با محیط اطراف خود تصمیمات صحیح بگیرد. هدف عامل کشف تاکتیکهای بهینه است تا در طول زمان از طریق آزمونوخطا پاداشها را به حداکثر برساند. یادگیری تقویتی اغلب در سناریوهایی به کار میرود که در آن عامل باید یاد بگیرد که چگونه در یک محیط حرکت کند، بازی را انجام دهد، رباتها را مدیریت یا در موقعیتهای نامشخص قضاوت کند.
معروف ترین الگوریتم های یادگیری ماشین
معروف ترین الگوریتم های یادگیری ماشین از انواع یادگیری تحت نظارت، بدون نظارت و یادگیری تقویتی هستند که در ادامه به آنها اشاره خواهیم کرد.
رگرسیون خطی به ما کمک میکند بفهمیم که چگونه عوامل مختلف میتوانند بر قیمت یک چیز تاثیر بگذارند و بر اساس آن رابطه بین دادهها را پیشبینی کنیم. این کار مانند یافتن یک روند یا الگو در دادهها است که به ما کمک میکند تا حدسهای آگاهانهای درباره آینده داشته باشیم. این الگوریتم برای پیشبینی استفاده میشود و برای دستهبندی ورودیها کاربردی ندارد.
مثال پیشرو، پیشبینی فروش اسباببازی بر اساس ویژگیهای آن است. تصور کنید یک دسته اسباببازی دارید و میخواهید بدانید با چه قیمتی میتوانید آنها را بفروشید. رگرسیون خطی مانند تلاش برای یافتن یک خط مستقیم است که رابطه بین قیمت اسباببازی و ویژگیهای مختلف آن مانند اندازه، رنگ یا سن را به بهترین نحو نشان دهد.
بنابراین، با جمعآوری دادههایی در مورد میزان فروش هر اسباببازی در گذشته، همراه با ویژگیهای آنها شروع میکنید. سپس، روی یک نمودار خطی میکشید که تا حد امکان به تمام نقاط داده نزدیک باشد. این خط نشاندهنده رابطه بین ویژگیهای اسباببازی و قیمت آن است.
.Logistic Regression
رگرسیون لجستیک تصمیمگیری را بر اساس یافتن رابطه بین متغیر وابسته (نتیجه باینری که میخواهید پیشبینی کنید) و یک یا چند متغیر مستقل (چیزهایی که میتوانند بر متغیر وابسته تاثیر بگذارند) انجام میدهد.
بهطور مثال تصور کنید مجموعه دادهای از مشتریان و تاریخچه خرید آنها دارید. حال میخواهید از این مجموعه داده برای آموزش یک مدل رگرسیون لجستیک برای پیشبینی اینکه آیا مشتری جدید یک محصول را خریداری میکند یا خیر استفاده کنید.
مدل رگرسیون لجستیک رابطهای بین سابقه خرید مشتری و اینکه آیا محصول را خریده است یا خیر پیدا میکند. بهعنوان مثال، مدل ممکن است متوجه شود که مشتریانی که محصولات مشابهی را در گذشته خریداری کردهاند، احتمالا محصول جدید را نیز میخرند.
هنگامی که مدل توسط الگوریتم رگرسیون لجستیک آموزش داده شد، میتوانید از آن برای پیشبینی اینکه آیا مشتری جدید محصول را میخرد یا خیر، با دادن تاریخچه خرید مشتری به آن استفاده کنید.
میتوان از این الگوریتم برای برنامههایی مانند طبقهبندی ایمیلهای اسپم و کنترل کیفیت در خط تولید استفاده کرد. این مدل برای دستهبندی مقادیر ورودی بهترین گزینه است.
در این الگوریتم تصمیمگیری مدل بر اساس همسایههای نزدیک نقطه جدید است. K در واقع مجموعهای از نزدیکترین همسایهها هستند که میتوانند به مدل کمک کنند نقطه جدید را برچسبگذاری کند و آن را در گروه خاصی قرار دهد. در واقع مدل یاد میگیرد که با نگاه کردن به همسایههای نقطه جدید، ویژگیهای آن را تشخیص دهد.
این مثال ساده در دنیای واقعی میتواند نحوه عملکرد الگوریتم KNN را نشان دهد. یک شرکت میخواهد سیستم توصیه محصول برای وبسایت خود طراحی کند. این شرکت مجموعه دادهای از تاریخچه خرید مشتری و اطلاعات محصول دارد. حال میتواند از این مجموعه داده برای آموزش یک مدل KNN استفاده کند. این مدل رابطه بین محصولاتی را که مشتریان در گذشته خریداری کردهاند و محصولاتی که احتمالا در آینده خواهند خرید را یاد میگیرد. پس از آموزش مدل، شرکت میتواند از آن برای توصیه محصولات به مشتریان جدید بر اساس سابقه خرید آنها استفاده کند.
KNN یک الگوریتم ساده و همه کاره است که میتواند برای کارهای طبقهبندی و پیشبینی استفاده شود. این الگوریتم یادگیری ماشین اغلب برای دستهبندی تصاویر، متن و تشخیص تقلب استفاده میشود. KNN بهترین الگوریتم برای خوشهبندی مقادیر است.
.Decision Tree
- بیرون گرم است یا سرد؟
- آفتابی است یا بارانی؟
- در حال رفتن به محل کار هستم یا مدرسه؟
هر سوال یک گره است که ما را به شاخههای مختلفی هدایت میکند. هر شاخه نیز دارای برگهایی است که این برگها معادل پاسخی برای پرسش هستند. در نهایت تصمیمگیری نهایی زمانی انجام میشود که به آخرین برگ برسیم و دیگر سوالی وجود نداشته باشد. درخت تصمیم یکی از بهترین الگوریتم های یادگیری ماشین است که آن را مناسبترین گزینه برای حل مسائل پیچیده میسازد.
یکی از مشکلات درخت تصمیم دشواری آن در تعمیم یک مسئله است. برای حل این مشکل، نوع جدیدی از الگوریتم درخت تصمیم با جمعآوری درختهای متعدد ایجاد شد. در این الگوریتم که جنگل تصادفی نام دارد، تصمیمگیری درباره بهترین نتیجه با استفاده از یک سیستم رایگیری یا میانگینگیری از هر گروه انجام میشود. جنگل تصادفی نوعی روش یادگیری گروهی است که در آن درختان برای تصمیمگیری و پیشبینی با یکدیگر همکاری میکنند.
تصور کنید در حال انجام بازی قایمباشک با دوستان خود هستید. در این بازی تلاش دارید بهترین نقطه برای قایم شدن را بیابید؛ بنابراین تصمیم میگیرید از هر یک از دوستانتان نظرشان را بپرسید. هر یک از آنها پیشنهاد متفاوتی میدهد. برخی از پیشنهادها خوب و برخی بد هستند. اما اگر همه پیشنهادها را بشنوید و از همه آنها یک میانگین بگیرید، به احتمال زیاد مکانی خوب برای پنهان شدن پیدا خواهید کرد. پرسیدن نظر همه دوستانتان بهتر از تصمیمگیری انفرادی است. اساسا الگوریتم جنگل تصادفی نیز به همین صورت عمل میکند. این الگوریتم یک دسته از درختان تصمیمگیری را جمع میکند و از پیشبینی آنها میانگین میگیرد. این کار باعث میشود الگوریتم جنگل تصادفی دقیقتر از درخت تصمیم باشد.
- خرید اول: گوجه، کلم بروکلی، گوشت
- خرید دوم: گوجه، نان
- خرید سوم: پرتقال، بروکلی، نان، گوشت
- خرید چهارم: گوجه، نان
- خرید پنجم: پرتقال، بروکلی، نان
- گوجه: 3
- بروکلی: 3
- گوشت: 2
- نان: 4
- پرتقال: 2
- {گوجه}: 3 (مکرر)
- {بروکلی}: 3 (مکرر)
- {گوشت}: 2 (غیر مکرر)
- {نان}: 4 (مکرر)
- {پرتقال}: 2 (غیر مکرر)
در مرحله چهارم الگوریتم جفت آیتمهای مکرر با طول 2 را با استفاده از مجموعه آیتمهای مکرر مرحله قبل محاسبه میکند و نتیجه زیر بهدست میآید. این مرحله Test Support نام دارد.
- {گوجه، بروکلی}: 2 (غیر مکرر)
- {گوجه، گوشت}: 1 (غیر مکرر)
- {گوجه، نان}: 3 (مکرر)
- {گوجه، پرتقال}: 1 (غیر مکرر)
- {بروکلی، گوشت}: 1 (غیر مکرر)
- {بروکلی، نان}: 2 (غیر مکرر)
- {بروکلی، پرتقال}: 1 (غیر مکرر)
- {گوشت، نان}: 1 (غیر مکرر)
- {گوشت، پرتقال}: 1 (غیر مکرر)
- {نان، پرتقال}: 2 (غیر مکرر)
در مرحله پنجم فرآیند را تکرار میکنیم؛ اما این بار با مجموعه آیتمهایی به طول 3، 4 و غیره؛ تا زمانی که دیگر مجموعه آیتمهای مکرر پیدا نشود.
در این مثال به طول 2 اکتفا میکنیم. این مرحله پنجم یا Frequent Itemset است. با توجه به این موضوع، مجموعه آیتمهای مکرر شامل موارد زیر هستند:
آنچه در الگوریتم های یادگیری ماشین خواندیم
با افزایش روزافزون حجم دادهها، استفاده از سریعترین الگوریتم های ماشین لرنینگ ضروری بهنظر میرسد. الگوریتم های یادگیری ماشین برای دستهبندی، پیشبینی و محاسبات استفاده میشوند. هر یک از آنها در موارد خاصی بهکار میروند و بازدهی بیشتری دارند. این الگوریتمها امکان یافتن اطلاعات ضروری در میان انبوهی از دادهها را فراهم میآورند؛ کاری که بهصورت دستی امکانپذیر نیست.