طراحی سیستم های یادگیری ماشین - قسمت اول

به تازگی خواندن کتاب جدید طراحی سیستم های یادگیری ماشین رو شروع کردم و تصمیم گرفتم خلاصه فصل ها را در اینجا به اشتراک بگذارم. امیدوارم بتوانم این پست ها را ادامه بدهم. نیازمندی ها: سطح این کتاب پیشرفته است، برای درک مطالب این کتاب شما باید با مفاهیم یادگیری ماشین آشنا باشید. این کتاب وارد جزییات مدل ها و آموزش آنها نمی شود و تمرکز آن روی چگونگی پیاده سازی و استفاده از آنها در صنعت است. فصل اولدر چه مواقعی از یادگیری ماشین استفاده کنیم؟یادگیری ماشین راهکاری است برای 1. یادگیریِ 2. الگوهای پیچیده از 3. داده های موجود و استفاده از این الگوها برایِ 4. پیش بینی 5. روی داده های دیده نشده.بر اساس این تعریف، در این شرایط می توانیم از یادگیری ماشین به صورت موثری استفاده کنیم:سیستم ظرفیت یادگیری داشته باشد، صرف داشتن یک دیتابیس نمی توانیم صورت مساله تعریف کنیم برای یک مساله یادگیری ماشین. باید feature هایی داشته باشیم و یک خروجی که بدانیم به آنها می تواند وابسته باشد.الگوهای پیچیده ای در کار باشد: شما برای پیش بینی خروجی پرتاب یک تاس یا مرتب کردن آگهی ها بر اساس کدپستی یک مدل یادگیری ماشین نمی سازید. رابطه بین قیمت خانه و ویژگی های آن یک الگوی بسیار پیچیده تر دارد، مشابه آن تشخیص اشیا و دنبال کردن اشخاص در یک ویدیو، که ML در این زمینه ها به خوبی عمل می کند.داده موجود یا قابل جمع آوری باشد: ML با استفاده از داده کار می کند، بنابراین باید داده ای وجود داشته باشد. در بعضی زمینه ها مانند یادگیری پیوسته (continual learning) میتوان یک مدل را بدون آموزش دادن روی داده پیاده سازی کرد اما همچنان به داده های ورودی در محیط production نیاز داریم.مساله قابل تبدیل شدن به یک سوال پیش بینی پذیر باشد: بدیهی است که در بیشتر موارد خروجی ML یک پیش بینی است، همچنین مسائلی که محاسبات سنگین دارند قابلیت تبدیل شدن به مسائل قابل پیش بینی را دارند، به جای اینکه خروجی دقیق یک فرایند پیچیده یا زمان بر را محاسبه کنیم - که خیلی هزینه بر است- یک تقریب از آن را با ML محاسبه می کنیم، مثلا مساله image denoising و rendering. در اینها خروجی کاملا دقیق نیست ولی به اندازه کافی خوب است.داده دیده نشده ای که الگوهای مشترکی با داده training دارد: به معنای دیگر توزیع آماری مشابهی دارند. هرچند شما هیچ وقت نمی توانید با قطعیت بگویید که داده training و داده جدید توزیع یکسانی دارند، اما می توانید فرضیاتی داشته باشید، به عنوان مثال در یک recommender system می توان فرض کرد رفتار کاربران تا دو روز دیگر تغییر چندانی نسبت به امروز نمی کند.تکراری است: وقتی یک کار تکراری داریم به این معناست که الگوها تکرار می شوند و در نتیجه ماشین ها بهتر می توانند آنها را یاد بگیرند.هزینه پیش بینی غلط کم است: به عنوان مثال در سیستم های recommender هزینه پیش بینی غلط زیاد نیست.حجم بالایی دارد: در ML به معنی پیش بینی به تعداد زیاد است، حتی مساله ای که به نظر می رسد تنها یک بار پیش بینی می شود -مانند پیش بینی نتیجه انتخابات در طی 4 سال- در حقیقت یک سری از پیش بینی هاست که در هر ساعت اتفاق می افتد چرا که مرتبا اطلاعات جدیدی تولید می شوند.الگوها دائما در حال تغییرند: اگر مساله شما دارای الگوهای متغیری باشد hard code کردن راه حل ها و قواعد به زودی کارایی خود را از دست می دهد. ML از داده یاد می گیرد، درنتیجه بدون اینکه نیاز داشته باشید بفهمید داده چگونه تغییر کرده، تنها مدل را تغییر می دهید.یادگیری ماشین در صنعت و پژوهشدر صنعت تفاوت های چشمگیری با پژوهش دارد و اگر شما صرفا زمینه پژوهشی آن را کار کرده باشید در پیاده کردن مدلها در یک کاربرد صنعتی دچارمشکل خواهید شد. به طور مثال:نیازمندی ها: در پژوهش به عملکرد جدیدترین مدل ها روی benchmark dataset ها نیاز داریم، در حالی که در صنعت نیازمندی ها بسیار متنوع ترند: تیم فروش، تیم تولید، مهندسان و کاربران نیازمندی های متفاوتی دارند.اولویت محاسباتی در پژوهش با آموزش سریع است در حالی که در تولید نیاز به استنتاج سریع و تاخیر کم داریم.داده در پژوهش dataset های تمیز و اغلب برچسب گذاری شده است، در صنعت با داده های پراکنده، noisy، دارای سوگیری و دائما متغیر طرف هستیم. اگر برچسبی داشته باشند احتمالا توزیع نامتوازن دارند یا غلط و پراکنده هستند. به همین دلیل در صنعت بیشترین زمان صرف جمع آوری، برچسب گذاری و پاکسازی داده ها می شود. داده در صنعت و پژوهش - نمودارها از آندره کارپاتی مدیر تیم یادگیری ماشین تسلاانصاف Fairness: منصفانه بودن یک مدل در پژوهش اولویت به شمار نمی آید، اما در صنعت بسیار اهمیت دارد. چه بسا شما هم قربانی یک مدل غیرمنصفانه و دارای سوگیری باشید بدون آنکه در مورد آن بدانید. درخواست وام شما ممکن است به خاطر دخیل بودن کدپستی شما در featureهای یک مدل رد شده باشد! یا وام شما ممکن است بهره بیشتری داشته باشد چرا که براساس نمره credit[*] شماست، و اگر فقیرتر باشید بهره بیشتری باید بپردازید. در سال 2019 محققان برکلی دریافتند که 1.3 میلیون درخواست وام افراد سیاهپوست و لاتین طی سالهای 2008 تا 2015 رد شده است. هنگامی که آنها تنها نژاد درخواست دهندگان را از feature ها حذف کردند، این درخواست ها توسط مدل "قبول" شد. به این ترتیب یک الگوریتم ML در کسری از ثانیه می تواند میلیونها نفر را مورد تبعیض قرار دهد.تفسیرپذیری: در پژوهش همانطور که گفتیم، تمرکز روی یک هدف است: افزایش عملکرد و دقت مدل، و پژوهشگران انگیزه چندانی برای کار روی تفسیرپذیری مدل ندارند. اما در صنعت تفسیرپذیری یک نیازمندی است. اول اینکه هم کاربران و هم صاحبان کسب و کار میخواهند بدانند چرا این تصمیم توسط مدل گرفته شده تا به مدل اعتماد کنند، دوم برای توسعه دهندگان مهم است چون نیاز دارند مدل را دیباگ کرده و بهبود دهند. البته تفسیرپذیری هنوز در صنعت هم فراگیر نشده و در سال 2019 تنها 19درصد از شرکت های بزرگ روی بهبود تفسیرپذیری مدل های خود کار کردند. * پایان قسمت اول ** نمره credit یا credit score: در ایران معادلی برای آن وجود ندارد. به طور کلی یک عدد است که نشان دهنده خوش حسابی و اعتبار مالی افراد است. هر چه درآمد شما بیشتر باشد و بدهی های خود را به موقع پرداخت کرده باشید، نمره بالاتری خواهید داشت.