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

داده ها برای توسعه دهندگان ML به اندازه کد برای برنامه نویسان سنتی مهم هستند. این درس بر روی انواع سوالاتی که باید از داده های خود بپرسید تمرکز دارد.

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

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

خلاصه سخنرانی ویدیویی

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

در توسعه نرم افزار سنتی، شما بیشتر بر روی کد تمرکز می کنید تا روی داده ها. در توسعه یادگیری ماشینی، اگرچه کدنویسی هنوز بخشی از کار است، تمرکز شما باید بیشتر شود تا داده ها را در بر گیرد. برای مثال، در پروژه‌های توسعه نرم‌افزار سنتی، نوشتن تست‌های واحد برای اعتبارسنجی کد شما بهترین روش است. در پروژه های ML، همچنین باید به طور مداوم داده های ورودی خود را آزمایش، تأیید و نظارت کنید.

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

قابلیت اطمینان

چند سوال در مورد قابلیت اطمینان داده های ورودی شما:

  • آیا سیگنال همیشه در دسترس خواهد بود یا از یک منبع غیرقابل اطمینان می آید؟ مثلا:
    • آیا سیگنال از سروری می آید که تحت بار سنگین از کار می افتد؟
    • آیا سیگنال از انسان هایی می آید که هر ماه اوت به تعطیلات می روند؟

نسخه سازی

چند سوال در مورد نسخه سازی:

  • آیا سیستمی که این داده ها را محاسبه می کند هرگز تغییر می کند؟ اگر چنین است:
    • چند وقت؟
    • چگونه متوجه خواهید شد که آن سیستم چه زمانی تغییر می کند؟

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

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

ضرورت

سوال زیر ممکن است شما را به یاد قانونمندسازی بیاندازد:

  • آیا مفید بودن ویژگی هزینه گنجاندن آن را توجیه می کند؟

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

همبستگی ها

برخی از ویژگی ها (مثبت یا منفی) با ویژگی های دیگر همبستگی دارند. سوال زیر را از خود بپرسید:

  • آیا هر ویژگی آنقدر به هم گره خورده است که برای جدا کردن آنها به استراتژی های اضافی نیاز دارید؟

حلقه های بازخورد

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

گاهی اوقات یک مدل می تواند مدل دیگری را تحت تاثیر قرار دهد. برای مثال، دو مدل را برای پیش‌بینی قیمت سهام در نظر بگیرید:

  • مدل A که یک مدل پیش بینی بد است.
  • مدل B.

از آنجایی که مدل A باگ است، به اشتباه تصمیم به خرید سهام در سهام X می‌کند. این خریدها قیمت سهام X را بالا می‌برد. مدل B از قیمت سهام X به عنوان یک ویژگی ورودی استفاده می‌کند، بنابراین مدل B می‌تواند به راحتی به نتایج نادرستی در مورد آن برسد. ارزش سهام X بنابراین، مدل B می‌تواند سهام سهام X را بر اساس رفتار حشره‌دار مدل A بخرد یا بفروشد. رفتار مدل B به نوبه خود می‌تواند بر مدل A تأثیر بگذارد و احتمالاً باعث ایجاد شیدایی لاله یا کاهش سهام شرکت X شود.