یادگیری ماشین در MatLab/Octave
- 10 مرداد 1401
- 0 نظر
- admin
اخیراً من یادگیری ماشینی را در مخزن Octave ایجاد کردهام که شامل نمونههای MatLab/Octave از الگوریتمهای معروف یادگیری ماشینی است که نمونههای کد و ریاضیات پشت آنها توضیح داده شده است.
هدف این مخزن پیادهسازی الگوریتمهای یادگیری ماشین با استفاده از کتابخانههای شخص ثالث یا Octave/MatLab “one-liners” نبود، بلکه تمرین و درک بهتر ریاضیات پشت هر الگوریتم بود. در بیشتر موارد توضیحات بر اساس این دوره آموزشی بزرگ ماشینی است.
این تلاش من برای یادگیری برخی از موضوعات یادگیری ماشین (که در “نقشه ذهنی” زیر توضیح داده شده است) برای خودم بود. و از آنجایی که این موضوع ممکن است برای دیگران جالب باشد، تصمیم گرفتم آن را کمی ساختار دهم و عمومی کنم. منبع نقشه موضوعات یادگیری ماشین زیر این پست وبلاگ فوق العاده است. در حال حاضر موضوعات زیر پوشش داده شده است:
یادگیری تحت نظارت
در یادگیری نظارت شده، مجموعه ای از داده های آموزشی به عنوان ورودی و مجموعه ای از برچسب ها یا «پاسخ های صحیح» برای هر مجموعه آموزشی به عنوان خروجی داریم. سپس مدل خود (پارامترهای الگوریتم یادگیری ماشین) را آموزش میدهیم تا ورودی را به خروجی به درستی ترسیم کند (برای انجام پیشبینی صحیح). هدف نهایی یافتن چنین پارامترهای مدلی است که با موفقیت نگاشت صحیح ورودی → خروجی (پیش بینی ها) را حتی برای نمونه های ورودی جدید ادامه دهد.
پسرفت
در مسائل رگرسیون ما پیش بینی های ارزش واقعی را انجام می دهیم. اساساً ما سعی می کنیم یک خط / صفحه / صفحه n بعدی را در امتداد مثال های آموزشی ترسیم کنیم.
مثال های استفاده: پیش بینی قیمت سهام، تجزیه و تحلیل فروش، وابستگی به هر عدد و غیره.
🤖 رگرسیون خطی – مثال: پیشبینی قیمت مسکن.
طبقه بندی
در مسائل طبقه بندی، نمونه های ورودی را بر اساس مشخصه خاصی تقسیم می کنیم.
مثالهای استفاده: فیلترهای هرزنامه، تشخیص زبان، یافتن اسناد مشابه، تشخیص حروف دستنویس و غیره.
🤖 رگرسیون لجستیک – مثالهایی: تشخیص تناسب اندام ریزتراشه، تشخیص ارقام دستنویس با استفاده از رویکرد یک در مقابل همه.
یادگیری بدون نظارت
یادگیری بدون نظارت شاخهای از یادگیری ماشینی است که از دادههای آزمایشی که برچسبگذاری، طبقهبندی یا طبقهبندی نشدهاند، یاد میگیرد. به جای پاسخ به بازخورد، یادگیری بدون نظارت، مشترکات در داده ها را شناسایی می کند و بر اساس وجود یا عدم وجود چنین اشتراکاتی در هر قطعه جدید از داده واکنش نشان می دهد.
خوشه بندی
در مسائل خوشهبندی، نمونههای آموزشی را بر اساس ویژگیهای ناشناخته تقسیم میکنیم. خود الگوریتم تصمیم می گیرد که از چه مشخصه ای برای تقسیم استفاده کند.
عمران و ساختمان
مثالهای استفاده: تقسیمبندی بازار، تحلیل شبکههای اجتماعی، سازماندهی خوشههای محاسباتی، تجزیه و تحلیل دادههای نجومی، فشردهسازی تصویر و غیره.
🤖 الگوریتم K-means – مثال: تقسیم داده ها به سه خوشه.
تشخیص ناهنجاری
تشخیص ناهنجاری (همچنین تشخیص پرت) شناسایی موارد، رویدادها یا مشاهدات نادری است که با تفاوت قابل توجهی با اکثر داده ها، سوء ظن ایجاد می کند. مثالهای استفاده: تشخیص نفوذ، تشخیص تقلب، نظارت بر سلامت سیستم، حذف دادههای غیرعادی از مجموعه داده و غیره. 🤖 تشخیص ناهنجاری با استفاده از توزیع گاوسی – مثال: شناسایی سرور بارگذاری شده بیش از حد.
شبکه عصبی (NN)
شبکه عصبی به خودی خود یک الگوریتم نیست، بلکه چارچوبی برای بسیاری از الگوریتم های مختلف یادگیری ماشین است تا با هم کار کنند و ورودی های داده پیچیده را پردازش کنند.
مثال های استفاده: به عنوان جایگزینی برای همه الگوریتم های دیگر به طور کلی، تشخیص تصویر، تشخیص صدا، پردازش تصویر (استفاده از سبک خاص)، ترجمه زبان و غیره.
🤖 شبکه عصبی: پرسپترون چند لایه (MLP) – مثال: تشخیص ارقام دست نویس.
دموها
هر پوشه الگوریتم یادگیری ماشین که در بالا توضیح داده شد حاوی فایل demo.m است که کاربران ممکن است از کنسول Octave یا MatLab راه اندازی کنند. اسکریپتهای نمایشی اطلاعات مفیدی را به کنسول ارسال میکنند و نتایج کار الگوریتم مربوطه را تجسم میکنند. امیدوارم این مخزن برای شما مفید باشد و به شما کمک کند تا یک قدم اضافی به سمت یادگیری ماشین انجام دهید. کد نویسی مبارک!