یادگیری ماشین

ماشین لرنینگ چیست؟ نوشته اول

توی این پست سعی میکنم برداشت های خودم از فصل اول کتاب ماشین لرنینگ ( این کتاب) رو بنویسم. اسم کتاب که خیلی هم طولانیه اینه :

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

کتاب دارای ۱۳ فصل هست و همزمان با مرور این کتاب ، سعی میکنم گزیده هایی از این کتاب رو به اینجا منتقل کنم. همین جا این موضوع رو عنوان می‌کنم که من در ابتدای یادگیری Machine learning هستم و توی این ترجمه احتمال خطا و یا برداشت نادرست وجود داره. خیلی ممنون میشم که با نظرات خودتون من رو در بهتر کردن کیفیت این نوشته ها یاری کنید.

ماشین لرنینگ چیست؟

ماشین لرنینگ علمی است که با آن کامپیوترها را طوری برنامه ریزی میکنند که بتوانند از دیتا یاد بگیرند.

چرا از ماشین لرنینگ استفاده کنیم؟

در روش قدیمی برنامه نویسی برای تشخیص ایمیل های اسپم ، الگوریتمی نوشته میشد که در آن با استفاده از یک گزاره شرطی ، اگر برای مثال یکی از کلماتی نظیر(“۴U,” “credit card,” “free,” and “amazing”) وجود داشت ، آن را بعنوان ایمیل spam در نظر میگرفت.

مشکل کار کجا بود؟

مشکل در اینجا بود که گاهی تعداد کلمات در نظر گرفته شده برای تشخیص زیاد میشد و گاها کد نوشته شده بسیار پیچیده میشد. و برای مثالی دیگر اگر ۴u تبدیل به ۴u (با یک فاصله بین ۴ , u ) میشد ، دیگر برنامه بدرستی کار نمیکرد.

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

دیتاماینینگ چیست؟

اگر با استفاده از تکنیک های ماشین لرنینگ ، در حجم بزرگی از داده ها به پیدا کردن الگوهای خاص بپردازیم ، دیتاماینینگ انجام داده ایم.

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

اگر بخواهیم انواع سیستمهای ماشین لرنینگ را بر اساس اینکه آیا تحت نظارت انسان ها آموزش دیده اند یا نه میتوان گفت ۴ دسته هستند:

  • supervised
  • unsupervised
  • semi supervised
  • reinforcement learning

از نظر این که آیا آنها می توانند به صورت تدریجی یاد بگیرند یا نه ، دو دسته هستند:

  • online
  • batch

از این نظر که آیا آنها فقط با سادگی نقاط جدید را بررسی میکنند یا به صورت آنی الگوها را در دیتای آموزشی تشخیص میدهند و یا یک مدل پیشبینی کننده میسازند به دو دسته زیر تقسیم میشوند:

  • instance based
  • model based

Supervised learning چیست؟

همانطور که از اسم این الگوریتم مشخص است ، این الگوریتم از طریق نظارت و نگاه کردن به نمونه ها (جفتها) فرایند یادگیری را انجام میدهد.

بنابراین در این الگوریتم نیاز به داده های آموزشی برچسب خورده(labeled) داریم :

Labeled training data

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

بنابراین یک جفت آزمایشی (Test set) به مدل میدهیم و در صورتی که نتایج درستی مشاهده کنیم ، اطمینان حاصل می کنیم که مدل ما یا الگوریتم ما به درستی عمل میکند.

ماشین لرنینگ چیست؟

Classification چیست؟

یک نمونه از تکنیکهایی که در زیر مجموعه supervised قرار میگیرد ، روش calissification یا روش دسته بندی می باشد.

مثال تخمین قیمت خودرو:

یک مثال خیلی خوب از حل مسئله به روش supervised پیش بینی قیمت اتوموبیل می‌باشد. به این صورت که ابتدا تعداد زیادی دیتا داریم که شامل موارد زیر میباشد:

  • سال ساخت ماشین مثلا ۱۳۹۸
  • کیلومتر طی شده توسط ماشین مثلا ۱۲۰۰۰ کیلومتر
  • نام یا برند ماشین مثلا پژو ۲۰۶
  • قیمت آن مثلا۲۰۰ میلیون تومان

با اچرای روش های یادگیری ماشین روی این دیتا ، میتوان سیستمی را طراحی نمود که اطلاعات اولیه (سال ساخت، نام خودرو ، کیلومتر طی شده) را بگیرد و قیمت را تخمین بزند.

مهمترین الگوریتم های یادگیری ماشین به روش Supervised چه هستند؟

  • k-Nearest Neighbors – اشاره به همسایگی
  • • Linear Regression- رگرسیون
  • • Logistic Regression- رگرسیون
  • • Support Vector Machines (SVMs)-
  • • Decision Trees and Random Forests- درخت تصمیم گیری
  • • Neural networks- درخت تصمیم گیری

unsupervised learning چیست؟

در مقابل این نوع از یادگیری، یادگیری بدون ناظر یا Unsupervised قرار داره. در این نوع از یادگیری جفتهای برچسب خورده (Labeled) وجود ندارد . در شکل زیر تفاوت بین Supervised learning و Unsupervised learning به خوبی مشخص شده است:

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

در روش unsupervised یادگیری بدون وجود معلم (یا ناظر) صورت میگیرد. و همچنین دیتاها Label ندارند.

در زیر چند نمونه از مهمترین الگوریتمهای یادگیری ماشین به روش Unsupervised معرفی میشود:

• Clustering – دسته بندی
— K-Means
— DBSCAN
— Hierarchical Cluster Analysis (HCA)

• Anomaly detection and novelty detection
— One-class SVM
— Isolation Forest

• Visualization and dimensionality reduction – کاهش ابعاد و قابل دید کردن
— Principal Component Analysis (PCA)
— Kernel PCA
— Locally-Linear Embedding (LLE)
— t-distributed Stochastic Neighbor Embedding (t-SNE)
• Association rule learning
— Apriori
— Eclat

برای مثال شما ممکن است در حال بررسی و تحلیل بازدید کنندگان وبلاگ خود باشید . با استفاده از الگوریتم Clustering میتوان گروه های متفاوت از بازدیدکنندگان وبلاگ خود را دسته بندی کنید . برای مثال ممکن است به این نتیجه برسید که ۴۰ درصد از بازدیدکنندگان سایت شما ، مرد هستند و به کتاب های رمان علاقه دارند و در حدود ساعت ۱۵ تا۲۱ به سایت شما سر میزنند. با استفاده از الگوریتم hierarchical clustering alghorithm ممکن است به دسته یندی های جزئی تری نیز برسید.

ماشین لرنینگ چیست
یادگیری ماشین
استفاده از روش Clustering

الگوریتم کاهش ابعاد دیتا یا dimensionality reduction alghorithm ؟

کاهش ابعاد دیتای آموزشی (training data) همواره مزایایی دارد. این کار معمولا قبل از انتقال به الگوریتم ماشین لرنینگ و با الگوریتمهای کاهش ابعاد انجام میشود. از مزایای این کار میتوان به موارد زیر اشاره کرد:

  • سرعت بیشتر
  • اشغال کمترفضای disk
  • عملکرد بهتر

Semisupervised learning :

حالتی که تعداد زیادی از داده های ما Unlabled باشد و تنها درصد کوچکی از کل داده های موجود Labeled باشند ، میگوییم در حالت Semisupervised learning هستیم.

Reinforcement Learning :

نوع دیگری از یادگیری ماشین نیز وجود دارد به نام Reinforcement learning که در آن ربات با توجه به اطلاعاتی که از محیط پیرامون خود بدست می آورد، یاد میگیرد که چگونه عمل کند. در واقع یاد میگیرد که چگونه یک Utility را Maximize کند.

الگوریتم به محیط پیرامون خود نگاه میکند. به تدریج یاد میگیرد. در میدان عمل قرار میگیرد . اگر عملکرد درست داشته باشد، پاداش میگیرد (Reward) و در مقابل اگر اشتباه کند، پنالتی یا نمره خطا برایش درج میشود. بتدریج به سمتی میرود که بهترین روش (most rewarding over time) را پیدا کند.

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

همانطور که گفتیم مدلها از نظر اینکه آیا می توانند به صورت تدریجی یاد بگیرند یا نه ، دو دسته onlin و batch تقسیم میشوند. با هدف جلوگیری از طولانی شدن مطالب ، در نوشته بعدی با نوشتن در مورد تفاوت دو نوع یادگیری Batch and Online ادامه خواهم داد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *