سامانهای که سفارشهای متقلبانه را علامت میزند، هفته گذشته در فروشگاه اینترنتی رادین در اصفهان ۹۷٫۸ درصد درست کار کرد. سامانهای که هیچ سفارشی را علامت نزند و بگذارد همه رد شوند، همان هفته ۹۶ درصد درست بود. تمام این موضوع در فاصله میان این دو عدد است.
۹۰۰ سفارش، ۳۶ تای متقلبانه. دقت روی یک رویداد کمیاب عددی است که مدل هیچکارینکن هم تقریباً میگیردش، و دلیلش ریاضی است نه بدشانسی: وقتی ۹۶ درصد سطرها یک برچسب دارند، حدس زدن همان برچسب برای همه، ۹۶ درصد میگیرد. هر عددی که این نزدیکی را نشان ندهد، عدد اشتباهی است.
دو خطا، و اینکه هیچکدام قیمت آن یکی را ندارد
دو خطا را جدا بشمارید، چون قیمتشان یکی نیست. از آن ۹۰۰ سفارش، ۸۵۲ تا سالم بودند و رد شدند، ۲۸ تای متقلبانه علامت خوردند، و بین این دو دسته دو خطا نشستهاند که هیچ ربطی به هم ندارند.
۱۲ سفارش سالم علامت خوردند. هزینهاش یک تماس دو دقیقهای است تا مشتری تایید کند، و مشتری معمولاً بدش هم نمیآید. ۸ سفارش متقلبانه رد شدند و بستهبندی و ارسال شدند و پولش برنگشت. هشت خطای دوم گرانتر از دوازده خطای اول است، و هر عددی که این دو را با هم جمع کند دقیقاً همان تفاوت را دور میریزد.
کاری که به جای دقت باید کرد این است: هر بار جدول چهارخانه را بکشید و سراغ خانهای بروید که گران است. تصمیم شما، یعنی اینکه آستانه را کجا بگذارید، فقط و فقط معامله میان این دو خانه است. آستانه را پایین بیاورید، خطای گران کم میشود و تعداد تماسها بالا میرود. برای رادین، هر خطای گران به اندازه چند صد تماس میارزید، و آستانه بر همین اساس تعیین شد نه بر اساس هیچ عدد کلی.
مدل چیزی را یاد میگیرد که در ستون نوشته شده
مدل همان برچسبی را یاد میگیرد که نوشتهاید، نه چیزی را که منظورتان بوده. این جمله بیضرر به نظر میرسد تا وقتی ببینید برچسبها از کجا میآیند: تقریباً هیچوقت کسی ننشسته و برای این کار برچسب نزده. ستون «مشکوک» در سامانه رادین را اپراتورها پر کرده بودند، و معنی عملیاش این بود که اپراتور زنگ زده و جواب ندادهاند.
مدلی که روی این ستون آموزش ببیند، عادت تماس گرفتن اپراتورها را یاد میگیرد، نه تقلب را. روی داده گذشته عالی کار میکند چون همان الگو در داده هست، و روی هفته آینده به هم میریزد. تنها راه پیدا کردنش این است که بپرسید این ستون را چه کسی، کِی، و برای چه کاری پر کرده است، و جواب را پیش از هر آموزشی بنویسید.
جدا کردن بر اساس زمان، نه تصادفی
هرجا فردا را پیشبینی میکنید، بر اساس زمان جدا کنید نه تصادفی. جدا کردن تصادفی سطرهای هفته آینده را داخل داده آموزش میگذارد و نمره آزمون را بالا میبرد، و آن نمره چیزی را اندازه نمیگیرد جز اینکه مدل آینده را دیده است.
در ایران این قاعده سختگیرانهتر عمل میکند، چون قیمتها و رفتار خرید سریعتر جابهجا میشوند. مدلی که روی داده بهار آموزش دیده و روی داده همان بهار آزمون شده، درباره پاییز چیزی نمیداند. و مدلی که دوباره آموزش نمیبیند، مدلِ پارسال است؛ برای رادین این یعنی هر فصل یک بار، نه هر وقت که خراب شد.
روی یک جدول، سادهترین چیز هنوز برنده است
روی یک جدول از سطرها، درخت تقویتشده هنوز از شبکه عصبی جلوتر است. این ادعا سالهاست درست مانده و دلیلش این است که یک جدول ستونهای نامتجانس دارد، عدد و دسته و تاریخ کنار هم، و درختها دقیقاً برای همین ساخته شدهاند. سامانه رادین یک مدل درختی روی هجده ستون است و یک بعدازظهر آموزش میبیند.
شبکه عصبی جایی برنده است که ورودی یک شکل یکنواخت دارد: تصویر، صدا، متن. اگر داده شما یک فایل جدولی است، شبکه عصبی گرانترین راه رسیدن به همان جواب است.
ترتیب
اردوگاه آخر از سه اردوگاه اول روی هم دورتر است
یک بعدازظهر، یک هفته، یک ماه، و بعد یک سال. فهرستهای آموزشی این پنجتا را پنج فصل هماندازه میکشند و زمین صاف نیست.
- ۰۱شکل خود این حوزهاینکه مسئله شما کدامیک از سه نوع است. یک بعدازظهر
- ۰۲یک مدل کلاسیک روی یک جدولیک هفته، و اغلب همانجا که پروژه بهدرستی تمام میشود
- ۰۳شبکههای عصبییک ماه، و بیشترش برای دانستن اینکه کِی سراغش نروید
- ۰۴تصویر، یا کلمه و صداهرکدام یک فصل، و هر راه یک صنعت متفاوت
- ۰۵به کار انداختنشطولانیتر از همه آنها، و تقریباً هیچ بخشی از آن مدلسازی نیست
شیب زمین ادعای این شکل است و هیچچیز دیگرش نیست. اردوگاهها مرحله نیستند و تیمی که روی دومی بایستد کارش را تمام کرده است.
ایست: دورهها از شبکه عصبی شروع میشوند چون اسمش میفروشد
کار اینجا میایستد، و بازار آموزش خودش آن را میسازد. تقریباً هر دوره فارسی این موضوع از شبکه عصبی و یادگیری عمیق شروع میکند، چون همان است که در عنوان میفروشد، و آن هفتهای که باید روی یک جدول با یک مدل درختی گذاشت در هیچ سرفصلی نیست.
نتیجهاش قابل پیشبینی است: پروژهای که با یک مدل ساده در یک هفته تمام میشد، شش ماه طول میکشد و بدتر جواب میدهد، و کسی هم نمیفهمد چون نقطه مقایسهای وجود ندارد. راه بیرون آمدن ارزان است: هر پروژه را با سادهترین مدل ممکن شروع کنید و آن عدد را بنویسید. هر چیز پیچیدهتری از آن به بعد باید از آن عدد جلو بزند، وگرنه فقط گرانتر است.
سه کتابخانهای که کل این کار در آنها انجام میشود
scikit-learn از ۲۰۲۶ همچنان جای نوشتن دستی همان الگوریتمها را گرفته است و جایی است که جدول چهارخانه و جدا کردن بر اساس زمان با یک خط در دسترسند؛ رایگان و متنباز است. XGBoost و LightGBM از ۲۰۲۶ جای جنگل تصادفی را به عنوان انتخاب پیشفرض روی داده جدولی گرفتهاند، هر دو رایگان و متنباز، و همان چیزی هستند که در بیشتر مسابقهها روی جدول برنده میشوند.
PyTorch از ۲۰۲۶ جای نوشتن مشتقگیری با دست را گرفته و کتابخانه متعارف شبکه عصبی است؛ رایگان و متنباز. نکتهای که برای خواننده ایرانی میارزد گفته شود این است که هر سه از مخزنهای عمومی نصب میشوند و هیچکدام حساب یا کارت خارجی نمیخواهند؛ چیزی که در ایران کمیاب است کارت گرافیک است، نه کتابخانه، و همین یک دلیل دیگر برای شروع از جدول است.
پنج اردوگاه، و اینکه زمین صاف نیست
اول سه نوع یادگیری، و اینکه کدامشان به مسئله شما میخورد، که یک بعدازظهر است و بدون آن بقیه بیجهت است. بعد روشهایی که هنوز روی داده جدولی برندهاند، که یک هفته است و اغلب همانجا هم پروژه درست تمام میشود. بعد لایههای وزن، و آنچه آموزش تنظیمش میکند، که یک ماه است و بیشترش برای این است که بدانید کِی سراغش نروید.
بعد از آن دو راه جدا از هم است: وادار کردن ماشین به خواندن یک تصویر و مدلهایی روی کلمه و صدا، هرکدام یک فصل و هرکدام یک صنعت متفاوت. کتابخانههایی که کار واقعاً در آنها انجام میشود در هر مرحله لازم میشود، و بخشی که بعد از نوتبوک میآید از هر چهارتای قبلی طولانیتر است و تقریباً هیچ بخشی از آن مدلسازی نیست.
این اردوگاهها مرحله نیستند و تیمی که روی دومی بایستد کارش را تمام کرده است. آنچه اینجا ساخته میشود قدیمیترین ماده کار کردن با مدلها، فهمیدنشان، و ساختن با آنها است و هنوز روی یک جدول از سطرها برنده. هر چیزی که در این صفحه آمد پیش از هر مدلی به کیفیت ستونها برمیگردد، که موضوع به دست آوردنش، تمیز کردنش، و فهمیدن اینکه چه میگوید است. و اینکه کدام کار اصلاً ارزش خودکار شدن دارد، در آنجایی که واقعا شغل را عوض میکند تصمیم گرفته میشود.
و یک سوال بیجواب میماند که به مدل ربطی ندارد: آن ۸ سفارش را چه کسی میشمارد. تا وقتی خطای گران در جایی ثبت نشود که ماه بعد بشود خواندش، هیچ آستانهای را نمیشود تنظیم کرد و مدل بعدی هم روی همان برچسب مبهم آموزش میبیند.