20 KiB
تکنیکهای یادگیری ماشین
فرآیند ساخت، استفاده و نگهداری مدلهای یادگیری ماشین و دادههایی که از آنها استفاده میکنند، بسیار متفاوت از بسیاری از جریانهای کاری توسعه دیگر است. در این درس، این فرآیند را روشن میکنیم و تکنیکهای اصلی که باید بدانید را توضیح میدهیم. شما:
- فرآیندهای پایهای یادگیری ماشین را در سطح بالا درک خواهید کرد.
- مفاهیم پایهای مانند «مدلها»، «پیشبینیها» و «دادههای آموزشی» را بررسی خواهید کرد.
آزمون پیش از درس
🎥 روی تصویر بالا کلیک کنید تا ویدیوی کوتاهی درباره این درس مشاهده کنید.
مقدمه
در سطح بالا، هنر ایجاد فرآیندهای یادگیری ماشین (ML) شامل چندین مرحله است:
- تصمیمگیری درباره سؤال. بیشتر فرآیندهای ML با پرسیدن یک سؤال شروع میشوند که نمیتوان آن را با یک برنامه شرطی ساده یا موتور مبتنی بر قوانین پاسخ داد. این سؤالات اغلب حول پیشبینیهایی بر اساس مجموعهای از دادهها میچرخند.
- جمعآوری و آمادهسازی دادهها. برای پاسخ به سؤال خود، به داده نیاز دارید. کیفیت و گاهی اوقات کمیت دادههای شما تعیین میکند که چقدر میتوانید به سؤال اولیه خود پاسخ دهید. تجسم دادهها جنبه مهمی از این مرحله است. این مرحله همچنین شامل تقسیم دادهها به گروههای آموزشی و آزمایشی برای ساخت مدل است.
- انتخاب روش آموزشی. بسته به سؤال شما و ماهیت دادههایتان، باید انتخاب کنید که چگونه میخواهید مدلی را آموزش دهید که بهترین بازتاب دادههای شما باشد و پیشبینیهای دقیقی بر اساس آن انجام دهد. این بخش از فرآیند ML شما نیاز به تخصص خاص و اغلب مقدار قابل توجهی آزمایش دارد.
- آموزش مدل. با استفاده از دادههای آموزشی خود، از الگوریتمهای مختلفی برای آموزش مدل استفاده میکنید تا الگوهای موجود در دادهها را شناسایی کند. مدل ممکن است از وزنهای داخلی استفاده کند که میتوان آنها را تنظیم کرد تا بخشهای خاصی از دادهها را نسبت به دیگران ترجیح دهد و مدل بهتری بسازد.
- ارزیابی مدل. از دادههایی که قبلاً دیده نشدهاند (دادههای آزمایشی شما) از مجموعه جمعآوریشده خود استفاده میکنید تا ببینید مدل چگونه عمل میکند.
- تنظیم پارامترها. بر اساس عملکرد مدل خود، میتوانید فرآیند را با استفاده از پارامترها یا متغیرهای مختلفی که رفتار الگوریتمهای استفادهشده برای آموزش مدل را کنترل میکنند، دوباره انجام دهید.
- پیشبینی. از ورودیهای جدید برای آزمایش دقت مدل خود استفاده کنید.
چه سؤالی باید پرسید؟
کامپیوترها بهطور خاص در کشف الگوهای پنهان در دادهها مهارت دارند. این قابلیت برای محققانی که سؤالاتی درباره یک حوزه خاص دارند که نمیتوان بهراحتی با ایجاد یک موتور مبتنی بر قوانین شرطی پاسخ داد، بسیار مفید است. برای مثال، در یک وظیفه بیمهای، یک دانشمند داده ممکن است بتواند قوانین دستی درباره مرگومیر افراد سیگاری در مقابل غیرسیگاریها ایجاد کند.
با این حال، وقتی متغیرهای زیادی وارد معادله میشوند، یک مدل ML ممکن است کارآمدتر باشد تا نرخ مرگومیر آینده را بر اساس تاریخچه سلامت گذشته پیشبینی کند. یک مثال شادتر ممکن است پیشبینی آبوهوا برای ماه آوریل در یک مکان خاص باشد، بر اساس دادههایی که شامل عرض جغرافیایی، طول جغرافیایی، تغییرات اقلیمی، نزدیکی به اقیانوس، الگوهای جریان جت و موارد دیگر است.
✅ این اسلایدها درباره مدلهای آبوهوا، دیدگاه تاریخی برای استفاده از ML در تحلیل آبوهوا ارائه میدهند.
وظایف پیش از ساخت
قبل از شروع به ساخت مدل خود، چندین وظیفه وجود دارد که باید انجام دهید. برای آزمایش سؤال خود و تشکیل یک فرضیه بر اساس پیشبینیهای مدل، باید چندین عنصر را شناسایی و پیکربندی کنید.
دادهها
برای پاسخ به سؤال خود با هر نوع قطعیتی، به مقدار مناسبی از دادههای درست نیاز دارید. در این مرحله دو کار باید انجام دهید:
- جمعآوری دادهها. با توجه به درس قبلی درباره انصاف در تحلیل دادهها، دادههای خود را با دقت جمعآوری کنید. از منابع این دادهها، هرگونه تعصب ذاتی که ممکن است داشته باشد، آگاه باشید و منشأ آن را مستند کنید.
- آمادهسازی دادهها. فرآیند آمادهسازی دادهها شامل چندین مرحله است. ممکن است نیاز باشد دادهها را جمعآوری و نرمالسازی کنید اگر از منابع متنوعی آمده باشند. میتوانید کیفیت و کمیت دادهها را از طریق روشهای مختلفی مانند تبدیل رشتهها به اعداد (همانطور که در خوشهبندی انجام میدهیم) بهبود دهید. ممکن است دادههای جدیدی بر اساس دادههای اصلی تولید کنید (همانطور که در طبقهبندی انجام میدهیم). میتوانید دادهها را پاکسازی و ویرایش کنید (همانطور که قبل از درس برنامه وب انجام خواهیم داد). در نهایت، ممکن است نیاز باشد دادهها را تصادفیسازی و مخلوط کنید، بسته به تکنیکهای آموزشی شما.
✅ پس از جمعآوری و پردازش دادههای خود، لحظهای وقت بگذارید تا ببینید آیا شکل آنها به شما اجازه میدهد سؤال مورد نظر خود را پاسخ دهید. ممکن است دادهها در وظیفه مورد نظر شما عملکرد خوبی نداشته باشند، همانطور که در درسهای خوشهبندی کشف میکنیم!
ویژگیها و هدف
یک ویژگی یک خاصیت قابل اندازهگیری از دادههای شماست. در بسیاری از مجموعه دادهها، بهعنوان عنوان ستونهایی مانند «تاریخ»، «اندازه» یا «رنگ» بیان میشود. متغیر ویژگی شما، که معمولاً در کد بهصورت X
نشان داده میشود، متغیر ورودی است که برای آموزش مدل استفاده خواهد شد.
هدف چیزی است که شما سعی دارید پیشبینی کنید. هدف که معمولاً بهصورت y
در کد نشان داده میشود، پاسخ به سؤالی است که شما سعی دارید از دادههای خود بپرسید: در ماه دسامبر، کدوهای چه رنگی ارزانتر خواهند بود؟ در سانفرانسیسکو، کدام محلهها بهترین قیمت املاک را خواهند داشت؟ گاهی هدف بهعنوان ویژگی برچسب نیز شناخته میشود.
انتخاب متغیر ویژگی
🎓 انتخاب ویژگی و استخراج ویژگی چگونه میدانید کدام متغیر را هنگام ساخت مدل انتخاب کنید؟ احتمالاً فرآیندی از انتخاب ویژگی یا استخراج ویژگی را طی خواهید کرد تا متغیرهای مناسب برای بهترین مدل را انتخاب کنید. با این حال، آنها یکسان نیستند: «استخراج ویژگی ویژگیهای جدیدی از توابع ویژگیهای اصلی ایجاد میکند، در حالی که انتخاب ویژگی یک زیرمجموعه از ویژگیها را بازمیگرداند.» (منبع)
تجسم دادههای خود
یکی از جنبههای مهم ابزارهای دانشمند داده، قدرت تجسم دادهها با استفاده از چندین کتابخانه عالی مانند Seaborn یا MatPlotLib است. نمایش دادههای خود بهصورت بصری ممکن است به شما اجازه دهد تا همبستگیهای پنهانی را کشف کنید که میتوانید از آنها بهرهبرداری کنید. تجسمهای شما ممکن است به شما کمک کنند تا تعصب یا دادههای نامتعادل را کشف کنید (همانطور که در طبقهبندی کشف میکنیم).
تقسیم مجموعه داده خود
قبل از آموزش، باید مجموعه داده خود را به دو یا چند بخش با اندازههای نابرابر تقسیم کنید که همچنان دادهها را بهخوبی نمایندگی کنند.
- آموزشی. این بخش از مجموعه داده به مدل شما برای آموزش آن اختصاص داده میشود. این مجموعه بخش عمدهای از مجموعه داده اصلی را تشکیل میدهد.
- آزمایشی. مجموعه داده آزمایشی یک گروه مستقل از دادههاست، که اغلب از دادههای اصلی جمعآوری شده است، که برای تأیید عملکرد مدل ساختهشده استفاده میکنید.
- اعتباریابی. مجموعه اعتباریابی یک گروه کوچکتر مستقل از نمونههاست که برای تنظیم پارامترهای مدل یا معماری آن برای بهبود مدل استفاده میکنید. بسته به اندازه دادههای شما و سؤالی که میپرسید، ممکن است نیازی به ساخت این مجموعه سوم نداشته باشید (همانطور که در پیشبینی سری زمانی اشاره میکنیم).
ساخت مدل
با استفاده از دادههای آموزشی خود، هدف شما ساخت یک مدل یا نمای آماری از دادههای شماست، با استفاده از الگوریتمهای مختلف برای آموزش آن. آموزش یک مدل آن را در معرض دادهها قرار میدهد و به آن اجازه میدهد تا فرضیاتی درباره الگوهای درکشده کشف کند، تأیید کند و بپذیرد یا رد کند.
تصمیمگیری درباره روش آموزشی
بسته به سؤال شما و ماهیت دادههای شما، روش آموزشی را انتخاب خواهید کرد. با مرور مستندات Scikit-learn - که در این دوره استفاده میکنیم - میتوانید روشهای زیادی برای آموزش مدل را بررسی کنید. بسته به تجربه شما، ممکن است مجبور شوید چندین روش مختلف را امتحان کنید تا بهترین مدل را بسازید. احتمالاً فرآیندی را طی خواهید کرد که در آن دانشمندان داده عملکرد مدل را با تغذیه دادههای دیدهنشده ارزیابی میکنند، دقت، تعصب و سایر مسائل کاهشدهنده کیفیت را بررسی میکنند و مناسبترین روش آموزشی را برای وظیفه مورد نظر انتخاب میکنند.
آموزش مدل
با دادههای آموزشی خود آماده هستید تا آن را «تناسب» دهید و یک مدل ایجاد کنید. متوجه خواهید شد که در بسیاری از کتابخانههای ML کد 'model.fit' وجود دارد - در این زمان است که متغیر ویژگی خود را بهصورت آرایهای از مقادیر (معمولاً 'X') و یک متغیر هدف (معمولاً 'y') ارسال میکنید.
ارزیابی مدل
پس از تکمیل فرآیند آموزش (ممکن است برای آموزش یک مدل بزرگ چندین تکرار یا «دوره» طول بکشد)، میتوانید کیفیت مدل را با استفاده از دادههای آزمایشی برای سنجش عملکرد آن ارزیابی کنید. این دادهها زیرمجموعهای از دادههای اصلی هستند که مدل قبلاً آنها را تحلیل نکرده است. میتوانید جدولی از معیارهای کیفیت مدل خود چاپ کنید.
🎓 تناسب مدل
در زمینه یادگیری ماشین، تناسب مدل به دقت عملکرد زیرین مدل اشاره دارد که تلاش میکند دادههایی را که با آنها آشنا نیست تحلیل کند.
🎓 تناسب کم و تناسب بیشازحد مشکلات رایجی هستند که کیفیت مدل را کاهش میدهند، زیرا مدل یا بهاندازه کافی خوب تناسب ندارد یا بیشازحد تناسب دارد. این باعث میشود مدل پیشبینیهایی انجام دهد که یا بیشازحد با دادههای آموزشی هماهنگ هستند یا بیشازحد از آنها فاصله دارند. یک مدل تناسب بیشازحد دادههای آموزشی را بیشازحد خوب پیشبینی میکند زیرا جزئیات و نویز دادهها را بیشازحد خوب یاد گرفته است. یک مدل تناسب کم دقیق نیست زیرا نمیتواند دادههای آموزشی خود یا دادههایی که هنوز «ندیده» است را بهدرستی تحلیل کند.
اینفوگرافیک توسط Jen Looper
تنظیم پارامترها
پس از تکمیل آموزش اولیه، کیفیت مدل را مشاهده کنید و بهبود آن را با تنظیم «پارامترهای فرا» در نظر بگیرید. درباره این فرآیند بیشتر بخوانید در مستندات.
پیشبینی
این لحظهای است که میتوانید از دادههای کاملاً جدید برای آزمایش دقت مدل خود استفاده کنید. در یک محیط ML «کاربردی»، جایی که شما داراییهای وبی برای استفاده از مدل در تولید میسازید، این فرآیند ممکن است شامل جمعآوری ورودی کاربر (مثلاً فشار دادن یک دکمه) برای تنظیم یک متغیر و ارسال آن به مدل برای استنتاج یا ارزیابی باشد.
در این درسها، شما کشف خواهید کرد که چگونه از این مراحل برای آمادهسازی، ساخت، آزمایش، ارزیابی و پیشبینی استفاده کنید - تمام حرکات یک دانشمند داده و بیشتر، همانطور که در سفر خود برای تبدیل شدن به یک مهندس ML «تمامعیار» پیشرفت میکنید.
🚀چالش
یک نمودار جریان رسم کنید که مراحل یک متخصص ML را نشان دهد. در حال حاضر خود را در کدام مرحله میبینید؟ پیشبینی میکنید کجا با دشواری مواجه شوید؟ چه چیزی برای شما آسان به نظر میرسد؟
آزمون پس از درس
مرور و مطالعه شخصی
بهصورت آنلاین جستجو کنید تا مصاحبههایی با دانشمندان داده پیدا کنید که درباره کار روزانه خود صحبت میکنند. اینجا یک نمونه است.
تکلیف
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما مسئولیتی در قبال سوءتفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.