https://github.com/nnrepair/nnrepair
NNrepair는 결함 위치 파악을 사용하여 잠재적으로 결함이 있는 네트워크 매개 변수를 식별하고 결함을 해결하기 위해 작은 수정을 가하는 제약 조건 기반 기법입니다.
이 기법에는 중간 계층 수리를 위한 정확도 사양을 추론하고 각 클래스에 대한 전문가를 생성하는 등의 전략이 통합되어 있습니다.
NNrepair는 NeuroSPF를 기반으로 하는 NNrepair 툴 파이프라인에서 구현됩니다. 이 도구는 훈련된 Keras 모델을 Java로 변환하고, 컨콜로지 실행을 위해 SPF(Symbolic PathFinder)를 사용하며, 제약 조건 해결을 위해 z3를 사용합니다.
NNrepair의 평가는 MNIST와 CIFAR-10 모델에 대해 수행되었으며, MNIST에는 두 가지 아키텍처를, CIFAR-10에는 15층 CNN을 사용했습니다. 결과는 표 2에 나와 있으며, 다양한 수리 시나리오에 대해 원래 모델에 비해 향상된 정확도를 보여줍니다.
CombinationCode
Constraints
NN-Code
Results
Z3Solutions
전문가를 결합하는 코드는 CombinationCode 디렉토리에 있습니다.
제약 조건 파일은 Constraints 디렉터리에 있습니다.
이 디렉터리에는 5개의 하위 디렉터리, 즉 MNIST-LowQuality, MNIST-Poisoned, MNIST-Adversarial, Cifar10-Poisoned 및 Cifar10-Adversarial이 있습니다.
각 모델 디렉터리 내에서 제약 조건 파일을 중간 계층 복구 및 최종 계층 복구별로 그룹화했습니다.
제약 조건 파일 이름은 명명 규칙인 repairFor_label.txt를 따릅니다(예: repairFor1은 레이블 1에 대한 제약 조건 파일을 의미함).
각 복구에 대해 4개의 다른 실험(0, 10, 50 및 100 테스트 통과)을 수행했습니다. 이 4개의 시나리오는 각각 ExpA, ExpB, ExpC 및 ExpD로 명명되었습니다.
논문에서 사용된 신경망 모델은 NN-Code 디렉토리에 저장됩니다. 이 디렉터리에는 MNIST-LowQuality, MNIST-Poisoned, MNIST-Adversarial, Cifar10-Poisoned 및 Cifar10-Adversarial에 대한 모델이 포함되어 있습니다.
제약 조건 파일은 Z3Solutions 디렉터리에 있습니다.
이 디렉터리에는 5개의 하위 디렉터리, 즉 MNIST-LowQuality, MNIST-Poisoned, MNIST-Adversarial, Cifar10-Poisoned 및 Cifar10-Adversarial이 있습니다.
각 모델 디렉토리 내에서 솔루션 파일을 중간 계층 복구 및 최종 계층 복구별로 그룹화했습니다.
솔루션 파일 이름은 명명 규칙인 solution_label.txt를 따릅니다(예: solution1은 레이블 1에 대한 솔루션 파일을 의미).
각 복구에 대해 4가지 실험(0, 10, 50 및 100 테스트 통과)을 수행했습니다.
이 4가지 시나리오의 이름은 각각 ExpA, ExpB, ExpC 및 ExpD입니다.
결과 파일은 Results 디렉터리에 있습니다.
이 디렉터리에는 5개의 하위 디렉터리,
즉 MNIST-LowQuality, MNIST-Poisoned, MNIST-Adversarial, Cifar10-Poisoned 및 Cifar10-Adversarial이 있습니다.
각 모델 디렉토리 내에서 결과 파일을 중간 계층 복구 및 최종 계층 복구별로 그룹화했습니다. 결과 파일 이름은 명명 규칙인 model_repairtype_Exp#_dataset.csv를 따릅니다
(예: POISONED_CIFAR_LAST_LAYER_ExpA_POISONED_TEST.csv는 CIFAR 중독 모델에서 마지막 계층 수리를 수행했을 때 중독 테스트 데이터셋의 결과를 나타냅니다).
각 복구에 대해 4가지 실험(0, 10, 50, 100 테스트 통과)을 수행했습니다. 이 4가지 시나리오의 이름은 각각 ExpA, ExpB, ExpC 및 ExpD입니다.