NNrepair github 살펴보기

Serendipity·2023년 11월 1일
0

2023 LeSN

목록 보기
36/52

https://github.com/nnrepair/nnrepair

논문 내용 복습/요약
https://velog.io/@thdalwh3867/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-NNrepair-Constraint-based-Repair-of-Neural-Network-Classifiers

NNrepair는 결함 위치 파악을 사용하여 잠재적으로 결함이 있는 네트워크 매개 변수를 식별하고 결함을 해결하기 위해 작은 수정을 가하는 제약 조건 기반 기법입니다.
이 기법에는 중간 계층 수리를 위한 정확도 사양을 추론하고 각 클래스에 대한 전문가를 생성하는 등의 전략이 통합되어 있습니다.
NNrepair는 NeuroSPF를 기반으로 하는 NNrepair 툴 파이프라인에서 구현됩니다. 이 도구는 훈련된 Keras 모델을 Java로 변환하고, 컨콜로지 실행을 위해 SPF(Symbolic PathFinder)를 사용하며, 제약 조건 해결을 위해 z3를 사용합니다.
NNrepair의 평가는 MNIST와 CIFAR-10 모델에 대해 수행되었으며, MNIST에는 두 가지 아키텍처를, CIFAR-10에는 15층 CNN을 사용했습니다. 결과는 표 2에 나와 있으며, 다양한 수리 시나리오에 대해 원래 모델에 비해 향상된 정확도를 보여줍니다.

전체 Directory

CombinationCode
Constraints
NN-Code
Results
Z3Solutions

CombinationCode (전문가 결합 코드)

전문가를 결합하는 코드는 CombinationCode 디렉토리에 있습니다.

Constraints (SPF를 사용하여 생성된 제약 조건 복구)

제약 조건 파일은 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 (신경망 모델)

논문에서 사용된 신경망 모델은 NN-Code 디렉토리에 저장됩니다. 이 디렉터리에는 MNIST-LowQuality, MNIST-Poisoned, MNIST-Adversarial, Cifar10-Poisoned 및 Cifar10-Adversarial에 대한 모델이 포함되어 있습니다.

Z3Solutions (제약 조건 파일용 Z3 솔루션)

제약 조건 파일은 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(결과파일)

결과 파일은 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입니다.

profile
I'm an graduate student majoring in Computer Engineering at Inha University. I'm interested in Machine learning developing frameworks, Formal verification, and Concurrency.

0개의 댓글