لقد أظهرت أساليب التعلم الحالية الحالية قدرات معينة في اكتشاف التوزيع الخارجي (OOD) ، ولكن يمكن أن يؤدي افتقارها إلى تصور الصور OOD في مجموعة البيانات المستهدفة إلى عدم تطابق بين صور OOD وفئات التوزيع (ID) ، مما يؤدي إلى معدل إيجابي عالي. لمعالجة هذه المشكلة ، نقدم طريقة جديدة للكشف عن OOD ، تدعى "Negprompt" ، والتي تم تصميمها لتعلم مجموعة من المطالبات السلبية ، كل منها يمثل دلالة سلبية لعلامة فئة معينة ، لتحديد الحدود بين ID و ID Images. إنه يتعلم مثل هذه المطالبات السلبية مع بيانات المعرف فقط ، مما يلغي اعتمادها على البيانات الخارجية. علاوة على ذلك ، تفترض الأساليب الحالية توافر عينات من جميع فئات الهوية ، مما يجعلها غير فعالة في سيناريوهات التعلم المفتوحة للسيدات حيث يمكن أن تحتوي مرحلة الاستدلال على فصول هوية جديدة غير موجودة في بيانات التدريب. في المقابل ، تكون المطالبات السلبية المستفادة قابلة للتحويل إلى ملصقات فئة جديدة. تُظهر التجارب على المعايير المختلفة القائمة على ImageNet أن Negprompt يتجاوز أحدث طرق اكتشاف OOD المستندة إلى التعلم المباشر وتحافظ على تقدم ثابت في اكتشاف OOD الصعب في سيناريوهات تصنيف المبتدئين المفتوحين. النص الكامل متاح Ar Arxiv.

تحتاج بيئات NegPropmt إلى الاستعداد:
conda create -n NegPrompt python=3.8
conda activate NegPrompt
pip install -r requirements.txtأولاً ، قم بعمل دليل جديد ./Data لتخزين مجموعة البيانات.
ثم قم بتنزيل مجموعة البيانات مثل https://github.com/atsumiyai/locoop.
ترتيب دليل البيانات مثل هذا:
NegPrompt
|-- data/
|-- ImageNet1k/
|-- ILSVRC/
|-- Data/
|-- CLS-LOC/
|-- train/
|-- val/
|protocols/
|-- iNaturalist/
|--images/
|-- SUN/
|--images/
|-- Places/
|--images/
|-- dtd/
|--images/
...
لتدريب negprompt على ood :
conda activate NegPrompt
python ./scripts/train_test_ood.pyلتدريب negprompt على الصلب:
conda activate NegPrompt
python ./scripts/train_test_openset.py @inproceedings { li2024learning ,
title = { Learning Transferable Negative Prompts for Out-of-Distribution Detection } ,
author = { Li, Tianqi and Pang, Guansong and Bai, Xiao and Miao, Wenjun and Zheng, Jin } ,
booktitle = { Proceedings of the IEEE/CVF conference on computer vision and pattern recognition } ,
year = { 2024 }
}