اعتدال پیشه کن حتی در آموزش تخاصمی مدل!
محققان نشون دادند که adversarial training به عنوان مؤثرترین راهبرد دفاعی در برابر حملات adversarial examples است که قبلا در موردش در حوزه تصویر در این پست (https://t.me/nlp_stuff/297) صحبت کرده بودیم. به صورت ساده یک حمله موفق زمانی اتفاق میافته که ما بتونیم یکی از کلمات جمله ورودی رو با مترادفش جابجا کنیم (معنای جمله تغییر نکنه!) به نحوی که خروجی مدل تغییر کنه. در این حالت ما موفق شدیم یک حمله synonym attack به مدل بزنیم و در اصطلاح اون رو گول زدیم.
حالا برای اینکه ازین نوع اتفاقات کمتر بیافته باید مدل رو با روش آموزش خصمانه یا همون adversarial training مستحکم کرد. همونطور که گفتیم آموزش خصمانه توسط adversarial examples انجام میشه که در این مقاله اونها رو به دو دسته کلی تقسیم کردند:
۱- مثالهای متخاصم سنتی (Traditional adversarial examples یا Fickle adversarial examples): به روشی گفته میشه که با یک تغییر کوچک در ورودی (جوری که معنا عوض نشود) سعی در گیج کردن مدل به نحوی داره که پیشبینی مدل متفاوت از قبل بشه. مثلا استفاده از incessant بجای continued در جمله
Employers have continued to operate motor vehicles, and that's all that matters.
۲- مثالهای متخاصم متضاد (Obstinate adversarial examples): برعکس نوع قبلی در این روش یک ورودی به نحوی عوض میشه که پیشبینی مدل رو حفظ میکنه اما معنای واقعی ورودی رو متحول میکنه. مثال: استفاده از employees بجای employers در همان جمله بالا.
حالا این مقاله داره خودش رو میکشه که بگه بابا اگه فقط از مثالهای نوع اول استفاده کنید ممکنه مدلتون آسیبپذیر بشه! دلیلش هم اینه که در متن، مثالهای نوع اول معمولاً با محدودیت تشابه کسینوس ایجاد میشن تا نمایشهای اصلی و جمله تغییر کرده (perturbed sentence) رو به نزدیک بودن در فضای embedding تشویق کنند. در حالی که، این روش اندازهگیری شباهت، ممکنه معنای واقعی رو حفظ نکنه و مدل، نمایشهای ضعیفی رو در طول آموزش خصمانه یاد بگیره! به زبان دیگه اگه مدل با مثالهای مترادف و سنتی به گونه ای آموزش داده بشه که در برابر تغییر محدود ε (مثلا کلمات مترادف) مقاوم باشه، ممکنه نسبت به تغییرات کوچک در مثالهای دیگه (مثلا کلمات متضاد که اصلا معنی رو به کل عوض میکنه)، بسیار بیتفاوت بشه!
در ادامه، نویسندگان یک روش مستحکم جدید ارائه میدهند به اسم Balanced Adversarial Training (BAT) که از هر دو نوع مثالها در آموزش خصمانه مدل استفاده میشه. ایده، استفاده از contrastive learning هست بطوری که فاصله بین جفت های مثبت (مترادفها) رو به حداقل برسونیم و فاصله بین جفت های منفی (متضادها) رو به حداکثر برسونیم. مقاله دو ورژن از روش پیشنهادیش به نامهای BAT-Pairwise و BAT-Triplet داره. در BAT-Pairwise سعی میکنه فاصله بین جفتهای مثبت و منفی رو مستقل از جمله ورودی بهینه بکنه ولی توی BAT-Triplet یک رویکرد مثلثی داره که از ورودی به عنوان لنگر مثلث استفاده میشه. در واقع در ورژن دوم سعی بر این هست که فاصله بین جفتهای مثبت و ورودی اصلی کوچکتر از فاصله جفتهای منفی و ورودی اصلی باشه (با یک حداقل مارجین m).
در ضمن نویسنده مقاله تاکیید داره که این یک trade-off هست و باید اعتدال در استفاده از هر دو نوع مثالها حفظ بشه تا مدل در عینحالی که نسبت به مترادفها خروجیش عوض نمیشه در برابر متضادها یا چیزایی که معنی رو عوض میکنند هرچند کوچک هشیار باشه!
در انتها گفته ما مدلهای BERT و RoBERTa رو روی ۲ تسک مختلف با آموزش SAFER برای ۱۵ ایپاک آموزش میدیم. سپس نرخ موفقیت حمله (ASR) رو برای حملات مترادف (fickleness) و متضاد (obstinacy) در هر دوره آموزشی اندازه میگیریم که نتایجشون نشون میده نرخ موفقیت حملات، کمتر از روشهای سنتیه.
پ.ن: با تشکر از آقای برخوردار که این مطلب رو برای ما ارسال کردند. شما هم اگه مطلب خوبی داشتید برای ما بفرستید و تعارف نکنید.
لینک مقاله:
https://arxiv.org/abs/2210.11498
#read
#paper
@nlp_stuff
Post #311
4K