מסווג תמונות מותאם אישית: מנתונים לא מאוזנים ועד לפרודקשן
אתה פורס מודל עבור קטלוג מוצרים ומקבל macro-F1 = 0.72 עקב חוסר איזון חמור בין המחלקות. לאחרונה פנה אלינו פרויקט מסחר אלקטרוני עם מערך נתונים של 15,000 תמונות, 30 קטגוריות, כאשר 80% השתייכו לחמש מחלקות.
יישמנו Weighted Random Sampler ו-Focal Loss, והעלינו את ה-macro-F1 מ-0.72 ל-0.94 בתוך שבועיים. האתגר המרכזי אינו המודל עצמו (בנצ'מרקים סטנדרטיים עוברים), אלא ההתאמה לדומיין הספציפי: רעש בתיוג, שינויים בתאורה, נתונים חסרים.
התמודדנו גם עם פרויקט אבחון רפואי שדרש זיהוי פתולוגיות נדירות בסריקות MRI. חוסר האיזון היה חמור אף יותר: 99% בריאים, 1% חולים. בשילוב של oversampling, augmentation ו-focal loss, השגנו רגישות של 0.92 בספציפיות של 0.98. פרויקטים מתחילים בעלות המחושבת לאחר אבחון ומשתנים בהתאם למורכבות.
איזו ארכיטקטורה לבחור?
עבור רוב המשימות, אנו בוחרים ב-EfficientNet-B4 או ConvNeXt-Tiny: הם מציעים איזון טוב בין דיוק לזמן הסקה. EfficientNet-B4 מהיר פי 2 מ-ViT-B/16 עם דיוק דומה. הטבלה שלהלן משווה בין ארכיטקטורות פופולריות.
| ארכיטקטורה | Top-1 ImageNet | פרמטרים | השהיה (T4 GPU) |
|---|---|---|---|
| EfficientNet-B0 | 77.1% | 5.3M | 3.5 ms |
| EfficientNet-B4 | 82.9% | 19M | 9.2 ms |
| ConvNeXt-Tiny | 82.1% | 28M | 7.8 ms |
| ViT-B/16 | 81.8% | 86M | 12.1 ms |
| EfficientNet-B7 | 84.4% | 66M | 28 ms |
עבור התקני קצה (Raspberry Pi, Jetson Nano), אנו משתמשים ב-MobileNetV3 או EfficientNet-Lite – הם פועלים תוך 1–2 ms על CPU.
מדוע כיוונון עדין עדיף על אימון מאפס?
אימון מאפס דורש מיליוני דוגמאות מתויגות. כיוונון עדין של מודל מאומן מראש מניב תוצאות מצוינות עם מאות תמונות בלבד לכל מחלקה. גישה זו מתוארת ב-Wikipedia: Transfer Learning. אנו גם משתמשים בלמידה קונטרסטיבית ובזיקוק ידע כדי לשפר עוד יותר את הביצועים.
import timm
import torch.nn as nn
def build_classifier(num_classes: int, pretrained_model: str = 'efficientnet_b4'):
model = timm.create_model(
pretrained_model,
pretrained=True,
num_classes=0
)
embedding_dim = model.num_features # 1792 for B4
for param in model.parameters():
param.requires_grad = False
classifier = nn.Sequential(
nn.Linear(embedding_dim, 512),
nn.GELU(),
nn.Dropout(0.3),
nn.Linear(512, num_classes)
)
model.classifier = classifier
return model
אסטרטגיית כיוונון עדין שלב אחר שלב:
- הקפאת עמוד השדרה, אימון המסווג בלבד במשך 5 תקופות.
- ביטול הקפאה של 2 הבלוקים האחרונים, אימון במשך 10 תקופות עם קצב למידה נמוך פי 10.
- ביטול הקפאה מלא, עוד 10 תקופות עם לוח זמנים קוסינוסי.
- הערכה על סט אימות: אם המדדים לא עומדים ביעד, חזרה עם היפר-פרמטרים שונים.
טעות נפוצה: אי-אימון שכבות batch norm
בעת ביטול הקפאה חלקי, יש להשאיר שכבות batch norm במצב אימון – אחרת הסטטיסטיקות לא מתעדכנות והדיוק יורד ב-5–10%.כיצד להתמודד עם חוסר איזון בין מחלקות?
מערכי נתונים אמיתיים הם לעתים רחוקות מאוזנים. אנו משלבים מספר טכניקות:
- דגימה אקראית משוקללת – תדירות דגימה ביחס הפוך לגודל המחלקה.
- Focal Loss – מתמקד בדוגמאות קשות (γ=2).
- דגימת יתר של מחלקות נדירות באמצעות הגברת נתונים (albumentations).
- אנטרופיה צולבת משוקללת לפי מחלקה – משקלים 1/class_frequency.
גישה זו מעלה את macro-F1 ב-15–20% בהשוואה לאימון בסיסי. הזמינו פרויקט פיילוט – נראה תוצאות על הנתונים שלכם בתוך שבועיים.
ההבדל בין סיווג רב-מחלקתי לסיווג רב-תוויתי
רב-מחלקתי: מחלקה אחת לכל תמונה – softmax + cross-entropy (למשל, סוג בעל חיים). רב-תוויתי: מספר מחלקות בו-זמנית – sigmoid + binary cross-entropy (למשל, תגיות תמונה). הסף עבור כל מחלקה מכוונן בנפרד בהתבסס על F1.
מדדי איכות מודל
- דיוק Top-1/Top-5 עבור סטים מאוזנים.
- F1 ממוצע מאקרו עבור סטים לא מאוזנים.
- Cohen's Kappa עבור משימות רפואיות.
- AUC-ROC לכל מחלקה עבור ריבוי תוויות.
תהליך עבודה עבור מערכת סיווג
ניתוח → עיצוב → מימוש → בדיקות → פריסה. בשלב הראשון, אנו לומדים את מערך הנתונים שלך, מזהים מחלקות בעייתיות, ומעריכים את איכות התיוג. לאחר מכן אנו בוחרים ארכיטקטורה ומריצים סדרת ניסויי A/B עם היפר-פרמטרים. לאחר אישור המודל – ייצוא ל-ONNX, קונטיינריזציה, ופריסה לתשתית שלך.
כל השלבים מתועדים, המהנדסים שלך מקבלים גישה למודל ולהוראות הפעלה. צור קשר כדי לקבל הערכת עלות ומפת דרכים לפרויקט שלך.
לוחות זמנים
| מורכבות המשימה | לוח זמנים |
|---|---|
| 2–10 מחלקות, 1000+ תמונות למחלקה | 1–2 שבועות |
| 50+ מחלקות או תחום מורכב | 3–5 שבועות |
| סיווג היררכי, פריסה בקצה | 5–8 שבועות |
העלות נקבעת לאחר ניתוח – צרו קשר לקבלת הערכה מפורטת.
מה כלול?
- ניתוח נתונים והכנת מערך נתונים.
- בחירת ארכיטקטורה וכיוונון עדין (עם בדיקות תצורה A/B).
- הערכת איכות לפי מדדים נבחרים (דוח).
- פריסה כ-REST API או שילוב בתשתית שלך.
- תיעוד והדרכת הצוות.
- אחריות – אם הדיוק אינו עומד ביעדים המוסכמים, אנו מבצעים עבודה מחדש ללא תשלום.
עם שנות ניסיון, השלמנו למעלה מ-40 פרויקטים של סיווג תמונות עבור תחומי מסחר אלקטרוני, רפואה ותעשייה. המהנדסים שלנו מחזיקים בהסמכות מ-NVIDIA, AWS ו-Google Cloud, ומשתמשים בשיטות MLOps לשחזור ניסויים.
אנו מתחייבים להשגת מדדי היעד – אם הדיוק נמוך מהרמה המוסכמת, אנו מבצעים עבודה מחדש ללא תשלום. צור קשר כדי לדון בפרויקט שלך ולקבל הערכת לוח זמנים ראשונית.







