یادگیری ماشین، زیر مجموعهای از هوش مصنوعی است. با استفاده از تکنیکهای یادگیری ماشین، کامپیوتر، الگوهای موجود در دادهها (اطلاعات پردازش شده) را یادگرفته و میتواند از آن استفاده کند. توجه داشته باشید که در این تکنیکها، یادگیریْ در یک سیستمِ کامپیوتری، بدون برنامهنویسیِ صریح (explicit programming) صورت میپذیرد. پاسخ به این سوالات که برنامهنویسیِ صریح چیست و یادگیری ماشین چطور کار میکند مواردی هستند که در این درس به آن پاسخ میدهیم.
مثالِ کلاسیکِ زیر را در نظر بگیرید:
فرض کنید در یک فروشگاهِ بزرگِ خردهفروشی به صورت اینترنتی در حال خرید هستید. در زمان خرید، سه محصول مختلف را به سبد خرید خود اضافه میکنید. فرض کنید این سه محصول به صورت زیر است:
لپ تاپ سری N
موس بیسیم
یک عدد تمیز کننده مانیتور
حال، سیستم میخواهد به صورت هوشمند، به شما چند محصول دیگر را پیشنهاد دهد. مدل برنامهنویسی صریح، به این صورت است که برای مثال، سیستم، محصولاتی در یک دسته (مثلاً یک سری محصولاتی که مربوط به حوزهی IT است) را به شما نمایش بدهد. در این حالت، هوشمندیِ خاصی در سیستم مشاهده نمیشود و در واقع سیستم، یادگیریِ خاصی انجام نمیدهد.
حال فرض کنید، سیستم از طریق الگوریتمهای یادگیریماشین، بتواند مشتریانِ قبلیِ خود را به گروههای مختلف تقسیمبندی کند (به این کار در اصطلاح خوشهبندی یا Clustering گفته میشود). با این کار، شما با تکمیلِ سبد خرید خود، به دستهای از مشتریانِ قبلی متعلق میشوید. با تعلقِ شما به گروهِ خاصی از مشتریان، محصولاتی که آنها قبلاً خریداری کردهاند و شما در سبد خرید خود ندارید، به شما پیشنهاد داده میشود.
نگاهی به تصویر زیر بیندازید:
فرآیند کلیِ یادگیری ماشین را میتوان به صورت بالا مدل کرد. دادههای آموزشی (در مثال ما: مشتریانی که قبلا خرید کردهاند و سابقه خرید آنها) به الگوریتمهای یادگیری ماشین تزریق میشوند. این الگوریتمها، وظیقهی یادگیری و واکشیِ الگوهای (patterns) مختلف، در دادهها را دارند. بعد از به دست آوردنِ الگوها توسط الگوریتمها، معمولا یکی از الگوریتم ها مورد استفاده قرار میگیرد، و یک مدل (model) ساخته میشود. این مدل می تواند در حافظه ذخیره شود. بعد از ذخیرهی مدل، سیستم تواناییِ پیشبینیِ رفتار را دارد. در مثال بالا، شما (شخصی که چند محصول را در سبد خرید خود دارد)، به عنوان یک پرسوجو به مدلی که یادگرفته است، داده میشوید. این مدل، میتواند خروجیِ پیشبینی (در این مثال، محصولی که باید به شما بر اساس خریدهای مشتریانِ همدستهی شما توصیه شود) را برگرداند.
به این مدل نگاه، در سیستمهای کامپیوتری، یادگیری ماشین (machine learning) گفته میشود. مدلی که شاید بتوان آن را برنامهنویسیِ برنامهنویسی! دانست. در واقع برنامهنویسی، فرآیندها را خودکار (اتوماتیک) میکند، این در حالی است که یادگیری ماشین همین فرآیندهای خودکار را به صورت خودکار تولید میکند.
یادگیری ماشین با فرآیندهای دادهکاوی، بسیار شبیه (و از نگاه کاربردی تقریباً یکسان) است. در فرآیندهای یادگیریماشین دو نوع یادگیری وجود دارد: یادگیریِ نظارتشده (supervised learning) و یادگیریِ غیرنظارت شده (unsupervised learning). البته انواع دیگری مانند یادگیری نیمه نظارتشده (semi supervised learning) یا یادگیری تقویتی (reinforcement learning) نیز وجود دارند.
در فرآیندهای یادگیری ماشین، دادهها، بسیار اهمیت دارند. در واقع این دادهها هستند که به الگوریتم تزریق میشوند و الگوریتم از روی آنها یادگیری را انجام میدهد. در مثال بالا، دادههای سابقهی فروشِ فروشگاه اینترنتی و مشتریانی که این خریدها را انجام دادهاند، به سیستم داده میشود. اصطلاحِ معروفی در این حوزه وجود دارد که به این صورت ترجمه کردهایم:
اگر دادهی بد، به سیستم تزریق شود، خروجی نیز، خروجی بدی خواهد بود
به این معنی که، هر چقدر الگوریتمهای مختلفِ یادگیری ماشین، قوی و جامع طراحی شوند، اگر دادههای خوبی به سیستم وارد نشود (مثلاً دادههای غلط یا دادههای ناکافی به سیستم تزریق شوند)، سیستم، پاسخی غیرِدقیق و ناصحیح ارائه میدهد.
- ۱ » دادهکاوی (Data mining) چیست؟
- ۲ » یادگیری ماشین (Machine Learning) چیست؟
- ۳ » تفاوت هوش مصنوعی، یادگیری ماشین، دادهکاوی، یادگیری عمیق و علم داده
- ۴ » طبقهبندی (Classification) چیست؟
- ۵ » خوشهبندی (Clustering) چیست؟
- ۶ » تفاوت طبقهبندی (Classification) و خوشهبندی (Clustering)
- ۷ » منظور از دادههای آموزشی (Training Sets) در طبقهبندی چیست؟
- ۸ » سیستم توصیه گر (Recommendation System) چیست؟
- ۹ » کاربرد دادهکاوی و یادگیری ماشین در پردازش متن (Text Processing)
- ۱۰ » معرفی چند نرم افزار کاربردی برای عملیات دادهکاوی
- ۱۱ » ویژگی (Feature) یا همان بُعد (Dimension) در دادهکاوی چیست؟
- ۱۲ » بررسی چند الگوریتم یادگیری ماشین (Machine Learning)
- ۱۳ » یادگیری دستهای (Batch Learning) و یادگیری برخط (Online Learning)
- ۱۴ » یادگیری فعال (Active Learning) در یادگیری ماشین
- ۱۵ » انتخاب ویژگی (Feature Selection) چیست؟
- ۱۶ » تفاوت داده ساختاریافته (Structured) با غیرساختاریافته (Unstructured) چیست؟
- ۱۷ » منظور از متغیر وابسته (Dependent) و مستقل (Independent)
- ۱۸ » مجموعه دادههایی با ابعاد زیاد (High Dimensional)
- ۱۹ » مجموعه دادهی نامتوازن (Imbalance) چیست؟
- ۲۰ » فرآیند کریسپ (CRISP) جهت انجام پروژههای دادهکاوی
- ۲۱ » رانش یا گذار در دادهها (Data Drift)
با سلام
منظور از برنامه نویسی صریح چیست؟ در ابتدا این عبارت امده اما در مثال اشاره ای به این موضوع نشده.
تشکر
سلام
ممنون از دقت شما
برنامهنویسی صریح همین برنامهنویسیهای عادی است که معمولا با if و else و حلقههای for و while انجام میشود، بدون اینکه یادگیریای توسطِ ذاتِ آن انجام شود.
سلام منظور از representation learning چیه؟ میشه کامل توضیح بدید
عالی بود.ممنون
سلام متشکرم مختصر و مفید بود
دوست من ، این صفحه ارور داره و داره به صورت عمومی خطاهای وردپرس رو نشون میده …. پیشنهادمیکنم …. بعد رسیدگی به خطا …. نمایش خطارو غیر فعال کنی چون برای امنیت سایتت خیلی خطرناکه
ممنون خیلی مختصر و مفید بود
بسیار عالی است،با اینکه من در درس machine learning این مباحث رو گذروندم ، اما مطالب شما کاملا گویا و شفاف تر بود
nice , thank you
حرف نداشت
تهلوکس
بسیسار عالی
عالی بود