מה זה ADVERSARIAL TRAINING?
נקרא בכנסים גם בשם הלא פורמלי "Adversarial Training"
דרך אגב: הקשר בין דוגמאות אדברסריאליות לאוגמנטציות אינטואיטיבי באופן כללי בכל התחומים, למשל בטקסט: החבילה "Text Attack" יודעת "לבלגן" טקסט בצורות שונות ומשונות שמבלבלות מודלים אך שימושית מאד גם בתור אוגמנטציות בזמן האימון (כנראה שלא לכך התכוון כותב החבילה).
ישנן גישות רבות כדי לטפל בדוגמאות כאלה, מוזמנים לחפש: defensive distillation, feature squeezing, input denoising, adversarial detection, gradient regularization, and adversarial training.
אלגוריתם Fast Gradient Method (FGM)
למי שמעדיף, כאן יש שימוש בו: https://www.kaggle.com/…/lastof…/roberta-large-fold0-fgm
אלגוריתם Adversarial Weight Perturbation (AWP)
(לא לדוגמאות האימון)
הקוד כאן הוא ארוך אז לא אעתיק אותו, אפשר למצוא אותו כאן: https://www.kaggle.com/code/wht1996/feedback-nn-train (פתרון מנצח לתחרות בקאגל: הטריק הזה באמת עובד)
-
המודל שלנו הרבה יותר Sample Efficient ורובאסטי (הרבה מעבר ל"להכפיל את כמות האפוקים")
-
בקאגל כבר מצאו לזה קירוב שיוצא "כמעט" אותו הדבר וחסכו את צעד הגרדיאנט השני. מוזמנים לחפש במידה וזה מעניין אתכם.
אלגוריתם SiFT: Scale Invariant – Fine Tuning
(הגיע אלינו מהמאמר של דיברטה)
את הקוד ניתן למצוא כאן: https://www.kaggle.com/…/feedback3-eda-hf-custom…
אז במה להשתמש?
עכשיו אני חייב לנסות. האם לדעתכם אני חופר טוב בלי לאמר כלום כמו GPT?! "אימון אדברסריאלי הוא אימון המשתמש במודל לצורך יצירת דוגמאות אדברסריאליות הקשות במיוחד למודל. שיטה זו יכולה להיות מאתגרת כשמנסים להפעיל אותה בפעם הראשונה. ישנן מספר שיטות שונות בתחום אך אין תשובה חד משמעית לשאלה באיזו שיטה להשתמש בכל מצב מכיוון השתשובה תלויה במטרות עבורן אתם מאמנים את המודלים. יש כמה שיטות מוכרות ללימוד אדברסריאלי: 1… 2… "לבסוף:" 3.. לסיכום: אתם צריכים לבחור את השיטה שהכי מתאימה למטרות שלכם ולדאטה איתו אתם עובדים, נסו כמה מהן ובדקו מה עובד הכי טוב אצלכם."