تشخیص ناهنجاری
جواب کوتاه
تشخیص ناهنجاری یعنی پیدا کردن چیزهای کمیابی که با بیشتر داده خیلی فرق دارن. روالش اینه که اول یاد بگیریم «عادی» چه شکلیه، بعد هر چیزی که خیلی ازش دور بود رو علامت بزنیم. مثلا کارتی که هر روز حدود صد هزار تومن خرید میکنه، اگه یهو ساعت ۳ شب نهصد هزار تومن خرید کنه، مشکوکه. معمولا بینظارت انجام میشه، چون نمونهی برچسبدار از ناهنجاری خیلی کمه. سادهترین راهش اینه که ببینیم یه مقدار چند انحراف معیار از میانگین دوره؛ بیشتر از سه، خیلی کمیابه. ولی «عجیب» یعنی «بررسی کن»، نه حتما «غلط».
یه خرید عجیب
کارت بانکی شما هر روز یه چیزی بین پنجاه تا صد و پنجاه هزار تومن خرید میکنه. یه شب، ساعت ۳، یه خرید نهصد هزار تومنی ثبت میشه.
حتی بی هیچ حسابی، چشم شما فورا اون ستون رو میگیره. با بقیه جور نیست. شاید خودتون بودید، شاید هم کارتتون دست کس دیگهایه.
به پیدا کردن همین چیزهای کمیاب و جورنشده میگن تشخیص ناهنجاری. بهشون دادهی پرت هم میگن.
اول عادی رو یاد بگیر
شاید بگید خب، یه مدل دستهبندی بسازیم با دو تا دسته: «عادی» و «مشکوک». ولی مشکل اینه که نمونهی برچسبدار از خرید مشکوک خیلی کمه، و این دو تا دسته هم خیلی نامتوازنن؛ همون داستان صد تا پرتقال و یه کرمو.
برای همین معمولا برعکس فکر میکنن: مدل فقط یاد میگیره «عادی» چه شکلیه، که از دادهی خودش کلی نمونه داره. بعد هر چیزی که خیلی با عادی فرق داشت، علامت میخوره. اینطوری کار بینظارت میشه، و از همه رایجتره.
قاعدهی سه انحراف
سادهترین راه از درس میانگین و واریانس میاد. فرض کنید خریدهای روزانه دور میانگین ۱۰۰ پخشن و انحراف معیارشون ۳۰ هست:
توی یه منحنی زنگولهای، حدود ۶۸ درصد مقدارها تا یه انحراف معیار از میانگینن، ۹۵ درصد تا دو تا، و ۹۹٫۷ درصد تا سه تا. اینجا یعنی تقریبا همهی خریدها بین ۱۰ و ۱۹۰ هزار تومنن.
حالا خرید نهصدی کجاست؟ ۸۰۰ تا بالاتر از میانگین، یعنی حدود ۲۷ تا انحراف معیار! یه خرید عادی تقریبا هیچوقت اینقدر دور نمیفته. پس علامت میخوره.
چند راه دیگه
همیشه داده زنگولهای نیست. چند تا فکر دیگه هم هست:
- شمردن: از دادهی عادی یه نمودار ستونی میکشیم. اگه یه مقدار تازه توی خونهای بیفته که عادیها هیچوقت نبودن، یا خونهاش خیلی کوتاهه، عجیبه.
- همسایهها: مثل نزدیکترین همسایهها، برای هر نقطه نزدیکترینهاش رو پیدا میکنیم. اگه حتی نزدیکترینها هم خیلی دورن، اون نقطه تنهاست و عجیبه.
- شبکههای عصبی: برای دادههای پیچیده، مثل عکس، شبکهای یاد میگیره عادی رو بازسازی کنه؛ چیزی که نتونه خوب بازسازیش کنه، عجیبه.
حواستون باشه
- عادی نسبیه: خریدی که برای یه نفر عجیبه، برای یکی دیگه عادیه. «عادی» به خود داده و موقعیتش بستگی داره؛ مثلا خرید زیاد شب عید شاید اصلا عجیب نباشه.
- عجیب یعنی بررسی: ناهنجاری یعنی «به عادی نمیخوره»، نه حتما «غلطه» یا «تقلبه». معمولا یه آدم یا یه قدم دیگه باید نگاهش کنه.
- آستانه یه تعادله: اگه مرز رو تنگ بگیریم، هشدار الکی زیاد میشه؛ اگه گشاد، چیزهای واقعی از دستمون در میرن. همون داستان صحت و بازخوانی.
کجاها به کار میاد
کشف تقلب مالی، امنیت شبکه (یه ورود عجیب به سیستم)، پزشکی، و بینایی ماشین (مثلا پیدا کردن یه قطعهی معیوب توی خط تولید). یه کاربرد قدیمیتر هم داره: قبلا دادههای پرت رو پیدا میکردن تا حذفشون کنن و میانگین یا رگرسیون بهتر دربیاد. ولی امروز خیلی وقتها خود همین پرتها مهمترین چیز دادهان.
با این درس، ایستگاه یادگیری بینظارت تموم شد. ایستگاه بعد میریم سراغ چیزی که پایهی تقریبا همهی هوش مصنوعی امروزه: نورون مصنوعی و شبکهی عصبی.
جمعبندی. آنچه از این درس با خودتان میبرید.
- اول «عادی» رو یاد بگیر.
- خیلی دور از عادی: علامت بزن.
- معمولا بینظارت؛ برچسب کمه.
- بیشتر از سه انحراف معیار: کمیاب.
- عجیب یعنی بررسی، نه حتما غلط.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.