
मैलवेयर वर्गीकरण के लिए मोड कनेक्टिविटी-आधारित इंटरपोलेशन का उपयोग करने वाला मेमोरी-मुक्त सतत शिक्षण ढांचा। EMBER और Androzoo डेटासेट पर क्लास-इंक्रीमेंटल और डोमेन-इंक्रीमेंटल परिदृश्यों का समर्थन करता है।
[!NOTE] यह पेपर Continual Learning Trajectory as Memory for Replay-Free Consolidation in Malicious Code Analysis का आधिकारिक कार्यान्वयन है।
FreeMOCA निम्नलिखित प्रक्रिया में संचालित होता है:
यह पूरी प्रक्रिया जुड़े हुए समाधानों की एक श्रृंखला का निर्माण करती है जो एक निम्न-हानि मैनिफोल्ड पर स्थित होती है, जिससे विनाशकारी विस्मरण काफी कम हो जाता है।
FreeMOCA का मूल्यांकन दो बड़े पैमाने के मैलवेयर डेटासेट, EMBER और Androzoo के साथ किया गया था। डेटासेट स्रोत:
डेटासेट को निम्नलिखित निर्देशिका में डाउनलोड और सेटअप करें:
FreeMOCA/data/
├── AZ_Class
│ ├── AZ_Class_Test.npz
│ └── AZ_Class_Train.npz
│
├── AZ_Domain
│ ├── 2008_Domain_AZ_Test_Transfo...
│ ├── 2008_Domain_AZ_Train_Transfo...
│ ├── 2009_Domain_AZ_Test_Transfo...
│ └── ...
│
├── EMBER_Class
│ ├── XY_test.npz
│ └── XY_train.npz
│
└── EMBER_Domain
├── 2018-01
├── 2018-02
├── 2018-03
└── ...
यह रिपॉजिटरी दो सतत शिक्षण परिदृश्यों का समर्थन करती है:
इसके लिए निम्नलिखित कमांड चलाएँ
conda create -n freemoca python=3.9
conda activate freemoca
pip install -r requirements.txt
# EMBER Class-IL
cd ./FreeMOCA_Class/EMBER_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
# AZ Class-IL
cd ./FreeMOCA_Class/AZ_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
# EMBER Domain-IL
cd ./FreeMOCA_Domain/EMBER_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory
# AZ Domain-IL
cd ./FreeMOCA_Domain/AZ_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory
हाइपरपैरामीटर में अधिक विस्तृत सेटअप के लिए, परिशिष्ट A. FreeMOCA के लिए सामान्य आर्ग्युमेंट्स देखें।
हाइपरपैरामीटर या प्रायोगिक सेटिंग्स को समायोजित करने के लिए, निम्नलिखित आर्ग्युमेंट्स का उपयोग करें:
| Argument | Description |
|---|---|
--init_classes | कार्य 0 पर कक्षाओं की संख्या |
--epochs | प्रति कार्य एपॉक्स |
--batchsize | बैच आकार |
--lr | लर्निंग रेट |
--momentum | SGD मोमेंटम |
--weight_decay | वेट डिके |
--lambda_min | न्यूनतम इंटरपोलेशन वेट |
--lambda_max | अधिकतम इंटरपोलेशन वेट |
आर्ग्युमेंट्स की डिफ़ॉल्ट सेटिंग बदलने के लिए, arguments.py फ़ाइल देखें।
हमारी रिपॉजिटरी निम्नलिखित मानक बेसलाइन्स पर प्रयोगों का समर्थन करती है:
आप इसे निम्नलिखित कमांड से चला सकते हैं:
cd /path/to/experiment/directory
CUDA_VISIBLE_DEVICES=0 python none.py --arugment_you_want
CUDA_VISIBLE_DEVICES=0 python joint.py --arugment_you_want
और पिछले कार्यों के अनुसार:
आप बेसलाइन्स को निम्नलिखित कमांड से चला सकते हैं:
# CLeWI for EMBER-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
--dataset="seq_ember" --n_tasks=11 \
--lr=0.001 --buffer_size=500 --n_epochs=50 \
--seed=42 --optim_wd=0.0 --optim_mom=0.0 \
--batch_size=512 --sub_dataset="ember"
# CLeWI for AZ-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
--dataset="seq_ember" --n_tasks=11 \
--lr=0.001 --buffer_size=500 --n_epochs=50 \
--seed=42 --optim_wd=0.0 --optim_mom=0.0 \
--batch_size=512 --sub_dataset="az"
# WSC for EMBER-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_ember
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
# WSC for AZ-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_az
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
# GR for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class
# GR for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class
# EWC for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class
# EWC for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class
# LwF for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --replay=current --distill --metrics --logger_file lwf --scenario=class