راهنمای ۶ مرحله ای برای انجام پروژه های یادگیری ماشین

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

مدل سازی یک پروژه یادگیری ماشین
مدل سازی یک پروژه یادگیری ماشین

یادگیری ماشین گسترده است. رسانه ها از آن را به عنوان جادو یاد می کنند اما مطالعه این مقاله ، این دیدگاه را تغییر خواهد داد. این مقاله به شما یک دید کلی از مسائل متداولی که می توان از یادگیری ماشین در آن ها استفاده کرد، می دهد. و در عین حال به شما چارچوبی برای انجام پروژه های ایده محور یادگیری ماشین آینده می دهد.

ابتدا ، برخی تعاریف را توضیح می دهیم.

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

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

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

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

۶ مرحله برای پیاده سازی پروژه یادگیری ماشین

یک خط لوله ( Pipeline ) یادگیری ماشین می تواند شامل سه مرحله اصلی باشد. جمع آوری داده ها ، مدلسازی داده ها و پیاده سازی. که هر یک بر دیگری تاثیرگذارند.

شما ممکن است یک پروژه را با جمع آوری داده ها شروع کنید، آن را مدل کنید، متوجه شوید داده های جمع آوری شده شما ضعیف است، دوباره داده جمع آوری کنید ، دوباره یک مدل خوب پیدا کنید، آن را پیاده سازی کنید، متوجه شوید خوب کار نمی کند، مدل دیگری بسازید، پیاده سازی کنید، خوب کار نکند، بازگشت به جمع آوری داده ها و… این یک چرخه است.

صبر کنید، مدل یعنی چه؟ پیاده سازی یعنی چه؟ چگونه می توانم داده ها را جمع آوری کنم؟

این ها سوالات مهمی هستند.

نحوه جمع آوری داده ها به مسئله شما بستگی دارد. ما نمونه های مختلفی را در ادامه بررسی خواهیم کرد. اما یک راه آن می تواند ثبت خریدهای مشتریان شما در یک فایل اکسل باشد.

مدلسازی ، به استفاده از الگوریتم یادگیری ماشین ، برای یافتن اطلاعات درون داده های جمع آوری شده شما اشاره دارد.

تفاوت بین یک الگوریتم معمولی و الگوریتم یادگیری ماشین چیست؟

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

آنچه الگوریتم یادگیری ماشین را متفاوت می کند این است که به جای داشتن مجموعه ای از دستورالعمل ها ، شما با مواد اولیه و غذای آماده نهائی شروع به کار می کنید. سپس الگوریتم یادگیری ماشین با توجه به این مواد اولیه و غذای آماده شده ، مجموعه دستورالعمل ها را استخراج می کند.

انواع مختلفی از الگوریتم های یادگیری ماشین وجود دارد و برخی از آن ها در مورد مسائل مختلف، عملکرد بهتری نسبت به بقیه دارند. اما فرض بر این است که هدف همه آن ها یافتن الگو ها یا مجموعه ای از دستورالعمل ها در داده ها است.

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

جزئیات این مراحل برای هر پروژه متفاوت خواهند بود. اما اصول موجود در آن ها یکسان است.

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

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

سرفصل هایی که در این آموزش بررسی می کنیم

  • ۱: تعریف مسئله – چه مسائل تجاری ای را سعی داریم حل کنیم؟ چگونه می توان آن ها را به صورت یک مسئله یادگیری ماشین بیان کرد؟
  • ۲: داده ها – اگر یادگیری ماشین اطلاعات را از داده ها بدست می آورد، ما چه داده هایی برای استفاده داریم؟ چگونه با تعریف مسئله مطابقت دارد؟ آیا داده های ما ساختار یافته هستند یا بدون ساختار؟ استاتیک هستند یا استریم؟
  • ۳: ارزیابی – چه چیزی نشان دهنده موفقیت است؟ آیا یک مدل یادگیری ماشین با دقت ۹۵٪ به اندازه کافی مناسب است؟
  • ۴: ویژگی ها – قرار است از چه قسمت هایی از داده های خود برای مدل خود استفاده کنیم؟ دانسته های ما چطور می تواند موثر باشد؟
  • ۵: مدلسازی – کدام مدل را باید انتخاب کنید؟ چطور می توان آن را بهبود بخشید؟ چگونه آن را با مدل های دیگر مقایسه می کنید؟
  • ۶: آزمایش – چه چیز دیگری را می توانیم امتحان کنیم؟ آیا مدل پیاده سازی شده ما، همانطور که انتظار داشتیم عمل می کند؟ مراحل دیگر چگونه بر اساس یافته های ما تغییر می کنند؟

بیایید کمی عمیق تر به هر کدام بپردازیم.

۱. تعریف مسئله – مسئله تجاری خود را به عنوان یک مسئله یادگیری ماشین تعریف کنید.

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

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

یادگیری نظارت شده

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

برای مثال، اگر قصد دارید بیماری قلبی را در یک بیمار جدید پیش بینی کنید، باید سوابق پزشکی ۱۰۰ بیمار ناشناس را به عنوان داده و اینکه آیا آن ها بیماری قلبی دارند یا نه را به عنوان برچسب در اختیار داشته باشید.

یک الگوریتم یادگیری ماشین می تواند سوابق پزشکی ( ورودی ها ) و اینکه آیا فرد بیماری قلبی دارد یا نه ( خروجی ) را بررسی کرده و سپس دریابد که چه الگوهایی در پرونده های پزشکی منجر به بیماری قلبی می شوند.

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

این الگوریتم می گوید، ” براساس آنچه قبلاً دیده ام، اینطور به نظر می رسد که این پرونده پزشکی جدید، ۷۰٪ با کسانی که بیماری قلبی دارند، مطابقت دارد.”

یادگیری بدون نظارت

یادگیری بدون نظارت زمانی است که شما داده داشته باشید اما هیچ برچسبی نداشته باشید. این داده ها می تواند سابقه خرید مشتریان فروشگاه آنلاین بازی های ویدئویی شما باشد. با استفاده از این داده ها ، ممکن است بخواهید مشتریان مشابه را در یک گروه قرار دهید تا بتوانید به آن ها پیشنهادات تخصصی ارائه دهید. شما می توانید با کمک سابقه خرید، از یک الگوریتم یادگیری ماشین برای گروه بندی مشتریان خود استفاده کنید.

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

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

یادگیری انتقالی

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

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

فرض کنیم شما یک شرکت بیمه خودرو دارید و می خواهید برای طبقه بندی این که آیا شخصی که مطالبه خسارت بیمه یک تصادف خودرو را ارائه می دهد، مقصر است (باعث حادثه شده است) یا مقصر نیست (باعث حادثه نشده است)، یک مدل طبقه بندی متن بسازید.

می توانید با یک مدل متنی آماده و در دسترس شروع کنید، مدلی که تمام جملات ویکی پدیا را خوانده و تمام الگوهای بین کلمات مختلف را بخاطر سپرده، از جمله اینکه کدام کلمه به احتمال زیاد بعد از دیگری می آید. سپس با استفاده از مطالبه خسارت بیمه خودرو ( داده ها ) همراه با نتایج آن ها ( برچسب ها )، می توانید مدل متن موجود را برای مسئله خود تغییر دهید.

اگر یادگیری ماشین می تواند در کار شما مورد استفاده قرار گیرد، ، احتمالاً تحت یکی از این سه نوع یادگیری قرار خواهد گرفت.

اما بیایید آن ها را به کلاسه بندی ، رگرسیون و توصیه تقسیم کنیم.

  • کلاسه بندی : آیا می خواهید وضعیت یک چیزی را پیش بینی کنید؟ مانند اینکه آیا مشتری در حال فعالیت است یا نه؟ یا اینکه آیا فرد ، بیماری قلبی دارد یا نه؟ توجه داشته باشید که ممکن است بیش از دو گزینه وجود داشته باشد. به دو کلاس، کلاسه بندی دودویی و بیش از دو کلاس، کلاسه بندی چندکلاسه گفته می شود. کلاسه بندی چندبرچسبه زمانی است که یک مورد، می تواند به بیش از یک کلاس تعلق داشته باشد.
  • رگرسیون : آیا می خواهید مقدار مشخصی از چیزی را پیش بینی کنید؟ مانند اینکه یک خانه چقدر به فروش خواهد رفت؟ یا در ماه آینده چند مشتری از سایت شما بازدید می کنند؟
  • توصیه : آیا می خواهید چیزی را به کسی توصیه کنید؟ مانند محصولاتی که باید مطابق خریدهای قبلی خریداری شوند؟ یا مقالاتی که باید براساس تاریخچه مطالعه شان خوانده شوند؟

اکنون این موارد را می دانید ، قدم بعدی شما تعریف مسئله تجاری تان، در قالب یادگیری ماشین است.

بیایید از مثال قبلی بیمه خودرو استفاده کنیم. شما روزانه هزاران مطالبه خسارت دریافت می کنید که کارمندان شما آن ها را می خوانند و در مورد مقصر بودن یا نبودن شخصی که مطالبه را ارسال می کند تصمیم گیری می کنند.

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

آیا یادگیری ماشین می تواند کمکی بکند؟

شما اکنون پاسخ را می دانید. اما صبر کنید. این مسئله متعلق به کدام یک از سه مورد فوق است؟ طبقه بندی ، رگرسیون یا توصیه ؟

بیایید آن را دوباره مطرح کنیم.

ما یک شرکت بیمه خودرو هستیم که می خواهیم مطالبه خسارت بیمه خودرو را به مقصر یا غیرمقصر کلاسه بندی کنیم.

کلید واژه را ببینید؟ کلاسه بندی.

به نظر می رسد که این می تواند به طور بالقوه یک مسئله کلاسه بندی یادگیری ماشین باشد. به این دلیل می گویم بالقوه ، چون ممکن است کارساز واقع نشود.

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

۲. داده ها – اگر یادگیری ماشین اطلاعات را از داده ها بدست می آورد، شما چه داده هایی برای استفاده دارید؟

داده هایی که شما دارید و یا باید جمع آوری کنید به مسئله ای که می خواهید آن را حل کنید بستگی خواهد داشت.

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

  • داده های ساختاریافته – جدولی از سطر ها و ستون ها در صفحه گسترده اکسل تراکنش های مشتری، یک پایگاه داده از سوابق بیمار را در نظر بگیرید. ستون ها می توانند عددی باشند مانند متوسط ضربان قلب، رسته ای باشند مانند جنسیت، ترتیبی یا وصفی باشند مانند شدت درد قفسه سینه.
  • داده های بدون ساختار – هر چیزی که نمی تواند بلافاصله در قالب سطر و ستون ، تصاویر ، فایل های صوتی و متن زبان طبیعی قرار گیرد.
  • داده های استاتیک – داده های تاریخی موجود که بعید است تغییر کنند. تاریخچه خرید مشتری شرکت شما مثال خوبی است.
  • داده های استریم – داده هایی که به طور مداوم بروز می شوند ، سوابق قدیمی ممکن است تغییر کنند و سوابق جدیدتر دائماً اضافه شوند.

در این میان همپوشانی هایی نیز وجود دارد.

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

برای پیش بینی بیماری قلبی، ممکن است یک ستون جنسیت باشد، دیگری متوسط ضربان قلب ، دیگری متوسط فشار خون و دیگری شدت درد قفسه سینه.

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

داده های ساختار یافته در یادگیری ماشین
دو نمونه از داده های ساختار یافته با انواع مختلف داده ها در آن. جدول ۱ دارای داده های عددی و رسته ای است. جدول ۲ داده های بدون ساختار با تصاویر و متن زبان طبیعی دارد اما به روشی ساختاریافته ارائه شده است.

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

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

استخراج ویژگی از داده های ساختار یافته
جدول ۱ – ۱ به ستون شناسه (ID) ( زرد، برای ساخت مدل یادگیری ماشین استفاده نمی شود )، متغیرهای ویژگی ( نارنجی ) و متغیرهای هدف ( سبز ) تقسیم شده است. یک مدل یادگیری ماشین، الگوهای موجود در متغیرهای ویژگی را پیدا کرده و متغیرهای هدف را پیش بینی می کند.

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

برای یادگیری انتقالی ، مسئله شما مانند یک مسئله یادگیری نظارت شده خواهد بود، با این تفاوت که الگوریتم های یادگیری ماشینی را که از منابع داده دیگری غیر از منابع خود آموزش داده اید، استفاده می کنید.

به یاد داشته باشید ، اگر از داده های مشتری برای بهبود کار خود یا ارائه خدمات بهتر به آن ها استفاده می کنید ، مهم است که به آن ها اطلاع دهید. به همین دلیل است که می بینید سایت های مختلف در همه جا از پنجره های پاپ آپ “This Site Uses Cookies  ” استفاده می کند. احتمالاً این وب سایت ها از نحوه مرور سایت شما همراه با نوعی یادگیری ماشین برای بهبود ارائه پیشنهادات استفاده می کند.

۳. ارزیابی – چه چیزی نشان دهنده موفقیت است؟ آیا یک مدل یادگیری ماشین با دقت ۹۵٪ به اندازه کافی مناسب است؟

شما مسئله کاری خود را در شرایط یادگیری ماشین تعریف کرده اید و داده دارید. حالا موفقیت را تعریف کنید.

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

برای اینکه این پروژه با موفق اجرا شود، باید در تشخیص مقصر و غیرمقصر، دقت بیش از ۹۵ % داشته باشد.

یک مدل با دقت ۹۵ % ممکن است برای پیش بینی اینکه چه کسی در یک مطالبه بیمه مقصر است، مناسب باشد، اما برای پیش بینی بیماری قلبی، احتمالا نتایج بهتری نیاز باشد.

موارد دیگری را باید برای مسائل کلاسه بندی در نظر بگیرید.

  • منفی کاذب ( False Negatives ) – مدل جواب منفی را پیش بینی کند ولی در واقع جواب باید مثبت باشد. در برخی موارد، مانند پیش بینی اسپم ایمیل ( هرزنامه )، منفی کاذب چندان اهمیت ندارد. اما اگر سیستم بینایی رایانه ای خودرو های خودران به اشتباه پیش بینی کند که عابر پیاده ای وجود ندارد، این خوب نیست.
  • مثبت کاذب (False Positives ) – مدل جواب مثبت را پیش بینی کند ولی در واقع جواب باید منفی باشد. پیش بینی بیماری قلبی برای کسی که بیماری قلبی ندارد ممکن است مشکل ساز نباشد. هر چند بهتر است پیش بینی درست انجام گیرد. وگر نه روی سبک زندگی فرد تأثیر منفی می گذارد یا بدون این که نیاز باشد آن را تحت درمان قرار می دهد.
  • منفی صحیح ( True Negatives ) – مدل جواب منفی را پیش بینی کند، در حالیکه واقعا منفی است. این خوب است.
  • مثبت صحیح ( True Positives ) – مدل جواب مثبت را پیش بینی کند، در حالیکه واقعا مثبت است. این خوب است.
  • دقت – چه میزان از پیش بینی های مثبت ، واقعاً درست بودند؟ مدلی که هیچ مثبت کاذبی تولید نمی کند دارای دقت ۱ است.
  • بازخوانی – چه میزان از مثبت های صحیح به درستی پیش بینی شدند؟ مدلی که هیچ منفی کاذبی تولید نکند، دارای بازخوانی ۱ است.
  • امتیاز  F1 – ترکیبی از دقت و بازخوانی. هرچه به ۱ نزدیکتر باشد، بهتر است.
  • منحنی مشخصه عملکرد سیستم ( ROC ) و سطح زیر منحنی ( AUC ) – منحنی ROC نموداری است که نسبت مثبت صحیح و مثبت کاذب را مقایسه می کند. معیار AUC سطح زیر منحنی ROC است. مدلی که پیش بینی های آن ۱۰۰ درصد اشتباه است، AUC برابر ۰ دارد ، نمونه ای که ۱۰۰ درصد پیش بینی درستی دارد، AUC برابر ۱ دارد.

برای مسائل رگرسیون ( که می خواهید عددی را پیش بینی کنید )، باید تفاوت بین آنچه که مدل شما پیش بینی می کند و مقدار واقعی آن را به حداقل برسانید. اگر می خواهید قیمت خانه ای که قصد فروشش را دارید پیش بینی کنید، باید مدل شما تا حد ممکن به قیمت واقعی نزدیک شود. برای انجام این کار، از MAE یا RMSE استفاده کنید

اگر می خواهید خطا های بزرگ، اهمیت بیشتری داشته باشند، از RMSE استفاده کنید. مثلا در پیش بینی اینکه خانه ای به جای ۲۰۰ میلیون تومان به قیمت ۳۰۰ میلیون تومان فروخته شود، ۱۰۰ میلیون تومان ضرر و زیان، بیش از دو برابر بدتر از ۵۰ میلیون تومان ضرر و زیان است. یا وقتی ۱۰۰ میلیون تومان خسارت، دو برابر بدتر از ۵۰ میلیون تومان است از MAE استفاده کنید.

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

فرض کنیم شما سعی دارید در فروشگاه آنلاین خود محصولات را به مشتریان توصیه کنید. شما داده های تاریخچه خرید مربوط به سال های ۲۰۱۰ تا ۲۰۱۹ را دارید. می توانید مدلی را از روی داده های۲۰۱۰ تا ۲۰۱۸ بسازید و سپس از آن برای پیش بینی خریدهای سال ۲۰۱۹ استفاده کنید. سپس این مسئله به یک مسئله کلاسه بندی تبدیل می شود، چون شما سعی دارید کلاسه بندی کنید که آیا احتمالا کسی کالایی را خریداری می کند یا خیر.

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

اگر مدل یادگیری ماشین شما، لیستی از ۱۰ پیشنهاد وب سایت شما را به مشتری نمایش دهد، شما می خواهید ابتدا بهترین گزینه ها نمایش داده شود. درسته؟

  • دقت تا k – مثل دقت معمولی است ، ولی شما یک محدودیت k انتخاب می کنید. به عنوان مثال، دقت در ۵ ، به این معنی است که ما فقط به ۵ توصیه برتر اهمیت می دهیم. ممکن است ۱۰ هزار محصول داشته باشید. اما نمی توانید همه آن ها را به مشتریان خود توصیه کنید.

برای شروع، ممکن است رقم دقیقی برای هر کدام از این موارد نداشته باشید. اما دانستن اینکه چه معیارهایی را باید مورد توجه قرار دهید به شما ایده می دهد که چگونه پروژه یادگیری ماشین خود را ارزیابی کنید.

۴. ویژگی ها – داده های شما دارای چه ویژگی هایی هستند و از کدام یک می توانید برای ساخت مدل خود استفاده کنید؟

همه داده ها یکسان نیستند. و وقتی کسی به ویژگی ها اشاره می کند، در واقع به انواع مختلف داده ها اشاره می کند.

سه نوع اصلی ویژگی ، رسته ای (Categorical  ) ، پیوسته ( Continuous ) ( یا عددی ) و استخراج شده (Derived  ) است.

  • ویژگی های رسته ای – به عنوان مثال، در مسئله بیماری قلبی ، جنسیت بیمار. یا برای یک فروشگاه آنلاین، کسی خرید کرده است یا نه.
  • ویژگی های پیوسته (یا عددی) – یک مقدار عددی مانند متوسط ضربان قلب یا تعداد دفعات ورود به سیستم.
  • ویژگی های استخراج شده – ویژگی هایی که شما از داده ها ایجاد می کنید. اغلب به عنوان مهندسی ویژگی شناخته می شود. مهندسی ویژگی یعنی یک متخصص فنی ، دانش خود را روی داده ها به کار گیرد. شما ممکن است تعداد دفعات ورود به سیستم در یک زمان را ترکیب کنید تا یک ویژگی به نام زمان آخرین ورود به سیستم ایجاد کنید. یا تاریخ ها را از اعداد به ” یک هفته از آخرین بازدید (بله)” و ” یک هفته از آخرین بازدید (خیر)” تبدیل کنید.

 

متن ، تصاویر و تقریباً هر چیزی که تصور کنید، می تواند یک ویژگی باشد. صرف نظر از این، همه آن ها قبل از اینکه یک الگوریتم یادگیری ماشین بتواند آن ها را مدلسازی کند به اعداد تبدیل می شوند.

برخی نکات مهم که در مورد ویژگی ها که باید به خاطر داشته باشید

  • آن ها را در طول آزمایش ( آموزش ) و تولید ( آزمایش ) یکسان نگه دارید – یک مدل یادگیری ماشین باید روی ویژگی هایی آموزش داده شود که تا حد امکان به آنچه که در یک سیستم واقعی استفاده خواهد شد، نزدیک باشد.
  • با متخصصن فنی همکاری کنید – در حال حاضر در مورد این مسئله چه می دانید، چگونه می تواند بر ویژگی هایی که استفاده می کنید تأثیر بگذارد؟ این را با مهندسین یادگیری ماشین و مخصصین داده خود، درمیان بگذارید.
  • آیا آن ها با ارزش هستند؟ – اگر فقط ۱۰٪ از نمونه های شما، دارای ویژگی هستند، آیا ارزش آن را دارند که در مدل قرار گیرند؟ اولویت را به ویژگی های با بیشترین شمول بدهید. آن هایی که نمونه داده های بیشتری دارند.
  • ایده آل بودن یعنی جایی دچار مشکل است – اگر مدل شما سریعا به عملکرد ایده آل دست یابد، احتمالاً در جایی کمبود ویژگی داشته اید. که به این معنی است که داده هایی که مدل شما روی آن ها آموزش دیده است، برای آزمایش هم استفاده می شود، وگرنه هیچ مدلی ایده آل نیست.

می توانید از ویژگی ها برای ایجاد یک معیار پایه ساده استفاده کنید. یک متخصص فنی رویگردانی مشتری، احتمالا می داند که یک فرد، بعد از ۳ هفته عدم ورود به سیستم ، به احتمال ۸۰٪ عضویت خود را لغو می کند.

یا یک آژانس املاک که از قیمت فروش خانه ها اطلاع دارد، احتمالا می داند که خانه هایی با بیش از ۵ اتاق خواب و ۴ حمام، بیش از ۲ میلیارد تومان فروخته می شوند.

این ها ساده هستند و نیاز به دقت بالا ندارند. اما شما می خواهید ببینید آیا یادگیری ماشین می تواند اصلاح شود یا خیر.

۵. مدلسازی – کدام مدل را باید انتخاب کنید؟ چطور می توانید آن را اصلاح کرد؟ چگونه آن را با مدل های دیگر مقایسه می کنید؟

وقتی مسئله خود را تعریف کردید و داده ها ، معیارهای ارزیابی و ویژگی های خود را آماده کردید، زمان مدلسازی آن فرا رسیده است.

مدلسازی به سه بخش تقسیم می شود، انتخاب یک مدل ، بهبود یک مدل ، مقایسه آن با دیگران.

انتخاب یک مدل

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

  • تفسیر پذیری و سهولت در اشکال زدایی – چرا یک مدل ، تصمیمی را اتخاذ کرده است؟ چگونه می توان خطاها را برطرف کرد؟
  • مقدار داده – چه مقدار داده دارید؟ آیا این مقدار تغییر خواهد کرد؟
  • محدودیت های آموزش و پیش بینی – که به موارد فوق مرتبط است ، اینکه چقدر زمان و منابع برای آموزش و پیش بینی در اختیار دارید؟

برای پرداختن به این موارد، ساده شروع کنید. دستیابی به یک مدل مناسب می تواند وسوسه انگیز باشد. اما اگر برای آموزش ، به ۱۰ برابر منابع محاسباتی بیشتر و برای بهبود ۲ درصدی معیار ارزیابی خود، به ۵ برابر زمان پیش بینی بیشتر نیاز داشته باشید، ممکن است دیگر این گزینه مناسب نباشد.

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

اما به احتمال زیاد، داده های شما از دنیای واقعی است. داده های دنیای واقعی همیشه خطی نیستند.

پس باید چه کرد؟

مجموعه های درخت تصمیم گیری و الگوریتم های تقویت گرادیان (عبارات و تعاریف انتزاعی که فعلاً مهم نیستند) معمولاً در داده های ساختاریافته مانند جداول اکسل و چارچوب داده ها بهترین عملکرد را دارند. برای آشنایی بیشتر با این موضوع بهتر است در مورد جنگل های تصادفی، XGBoost و CatBoost تحقیق کنید.

مدل های عمیق مانند شبکه های عصبی به طور کلی در داده های بدون ساختار مانند تصاویر ، فایل های صوتی و متن زبان طبیعی بهترین عملکرد را دارند. در عوض معمولاً آموزش آن ها بیشتر طول می کشد، اشکال زدایی آن ها سخت تر بوده و زمان پیش بینی طولانی تری دارند. اما این بدان معنا نیست که شما نباید از آن ها استفاده کنید.

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

از کجا می توانم مدل های از قبل آموزش دیده را پیدا کنم؟

مدل های از قبل آموزش دیده در PyTorch hub ، TensorFlow hub ، model zoo وfast.ai framework در دسترس هستند. این ها مکان خوبی برای بررسی هر نوع ایده ای هستند.

در مورد انواع مدل های دیگر چطور؟

برای ایجاد یک آزمون ایده ، نیاز نیست مدل یادگیری ماشین خود را بسازید. افرادی قبلاً کدی برای این ها نوشته اند.

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

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

تنظیم و بهبود یک مدل

اولین نتایج یک مدل، آخرین نتایج آن نیست. همانند تنظیم یک ماشین ، مدل های یادگیری ماشین را می توان برای بهبود عملکرد تنظیم کرد.

تنظیم یک مدل شامل تغییر ابرپارامترهایی مانند نرخ یادگیری یا بهینه ساز آن است. یا فاکتورهای معماری خاص مدل مانند تعداد درختان برای جنگل های تصادفی و تعداد و نوع لایه ها برای شبکه های عصبی.

این موارد قبلاً توسط یک کارشناس بصورت دستی تنظیم می شد اما حالا خودکار شده و باید همه جا قابل اجرا باشند.

استفاده از یک مدل از قبل آموزش دیده از طریق یادگیری انتقالی ، اغلب مزایای اضافی تمام این مراحل را دارد.

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

مقایسه مدل ها

  • مدل ۱، آموزش داده شده روی داده X، ارزیابی شده روی داده Y.
  • مدل ۲، آموزش داده شده روی داده X، ارزیابی شده روی داده Y.

که مدل ۱ و ۲ می تواند متفاوت باشد اما داده های X یا داده های Y متفاوت نیستند.

۶. آزمایش – چه چیز دیگری را می توانیم امتحان کنیم؟ چگونه مراحل دیگر براساس آنچه ما یافته ایم تغییر می کنند؟ آیا مدل پیاد سازی شده ما همانطور که انتظار داشتیم عمل می کند؟

این مرحله شامل تمام مراحل دیگر است. از آنجا که یادگیری ماشین یک فرآیند بسیار تکرار شونده است، بنابراین بایستی مطمئن شوید که آزمایش های شما قابل اجرا هستند.

هدف اصلی شما باید به حداقل رساندن زمان بین آزمایش های آفلاین و آزمایش های آنلاین باشد.

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

آزمایش آنلاین زمانی رخ می دهد که مدل یادگیری ماشین شما در حال کار باشد.

تمام آزمایش ها باید بر روی بخش های مختلف داده های شما انجام شود.

  • مجموعه داده های آموزش – از این مجموعه برای آموزش مدل استفاده کنید، بطور استاندارد، شامل ۸۰ – ۷۰ درصد از داده ها است.
  • مجموعه داده های اعتبار سنجی / توسعه – از این مجموعه برای تنظیم مدل استفاده کنید، بطور استاندارد، شامل ۱۵ – ۱۰ درصد از داده ها است.
  • مجموعه داده های تست – از این مجموعه برای آزمایش و مقایسه مدل استفاده کنید، بطور استاندارد، شامل ۱۵ – ۱۰ درصد از داده ها است.

بسته به مسئله شما و داده هایی که دارید، این مقادیر می توانند کمی متفاوت باشند.

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

عملکرد ضعیف روی داده های تست ، به این معنی است که مدل شما به خوبی تعمیم داده نمی شود. ممکن است مدل شما با داده های آموزش ، بیش برازش ( Overfitting ) شده باشد. از یک مدل ساده تر استفاده کنید یا داده های بیشتری جمع آوری کنید.

عملکرد ضعیف بعد از پیاد سازی ( در دنیای واقعی )، به این معنی است که بین آنچه که شما آموزش داده و آزمایش کرده اید و آنچه واقعا در حال رخ دادن است تفاوت وجود دارد. مراحل ۱ و ۲ را بازبینی کنید. دقت کنید که داده های شما با مسئله ای که می خواهید حل کنید، مطابقت داشته باشد.

هنگامی که شما یک تغییر آزمایشی بزرگ را اجرا می کنید، سند و دلیل آن را ثبت کنید. به یاد داشته باشید، همانند تنظیم مدل، یک شخص و حتی خود شما در آینده، باید بتواند آنچه انجام داده اید را دوباره اجرا کند.

این یعنی مدل های بروزشده را ذخیره کنید و مجموعه داده را مرتبا بروزرسانی کنید.

ارائه آن به عنوان یک آزمون ایده

بسیاری از مشاغل در مورد یادگیری ماشین شنیده اند، اما مطمئن نیستند که از کجا شروع کنند. یکی از بهترین راه های شروع، استفاده از شش مرحله بالا برای برای ایجاد یک آزمون ایده است.

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

به هر حال شما به دنبال راه حل هایی با افزوده اضافه هستید.

یک جدول زمانی را برای آزمون ایده تعیین کنید، مثلا ۲، ۶ و ۱۲ هفته. با در اختیار داشتن داده های مناسب، یک متخصص خوب یادگیری ماشین و علم داده ، می تواند ۸۰ تا ۹۰ درصد از نتایج مدلسازی نهائی را در یک بازه زمانی نسبتا کوتاه بدست آورد.

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

اگر طراح وب باید طرح یک فروشگاه آنلاین را اصلاح کند تا به یک آزمایش یادگیری ماشین کمک کند، باید در جریان قرار گیرد.

به خاطر داشته باشید ، به دلیل ماهیت آزمون ایده ، ممکن است نتوانید در کارتان از یادگیری ماشین استفاده کنید (بعید است). به عنوان یک مدیر پروژه ، اطمینان حاصل کنید که این موضوع را می دانید. اگر شما یک مهندس یادگیری ماشین یا متخصص داده هستید، در نظر داشته باشید شاید به نتیجه مفیدی نرسید.

اما چیزی را از دست نمی دهید.

در عوض اکنون شما می دانید مشکل از کجاست و می توانید تلاش خود را روی آن متمرکز کنید. به همین دلیل یک بازه زمانی برای آزمایشات تعیین می کنیم. هیچ وقت به اندازه کافی زمان وجود ندارد، اما ضرب الاجل ها معجزه می کنند.

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

چیزهایی که در این مقاله از قلم افتاده است

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

در این میان، مواردی وجود دارند که باید به آن ها توجه کرد.

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

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

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

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

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

بیشتر بخوانید :

منبع Towards Data Science

همچنین ببینید

فناوری تشخیص چهره و کاربردهای آن، تاریخچه تکنولوژی تشخیص چهره

فناوری تشخیص چهره و کاربردهای آن + تاریخچه

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

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

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