인공신경망(ANN)은 내부 구조가 복잡한 고차원 행렬 연산으로 이루어져 있어, 전통적인 소프트웨어의 코드 커버리지(구문, 결정 등)를 그대로 적용하기 어렵습니다. 따라서 AI 모델의 특성에 맞춘 새로운 커버리지 개념이 등장했습니다.
1. 인공신경망의 화이트박스 커버리지 (White-box Coverage)
전통적인 화이트박스 테스트가 '코드 라인'을 얼마나 실행했는지 본다면, 인공신경망에서는 '뉴런(Neuron)이 얼마나 활성화되었는지'를 측정합니다. 이를 통해 학습 데이터가 모델의 내부 로직을 충분히 자극했는지 평가합니다.
- 뉴런 커버리지 (Neuron Coverage)
가장 기본적인 지표. 전체 뉴런 중 활성화 임계값(Threshold)을 넘는 입력이 한 번이라도 있었던 뉴런의 비율을 측정.
$뉴런 커버리지 = \frac{활성화된 뉴런 수}{전체 뉴런 수}$ - 레이어 커버리지 (Layer Coverage)
특정 레이어 내의 뉴런들이 골고루 활성화되었는지 확인 - K-멀티섹션 뉴런 커버리지 (K-multisection Neuron Coverage)
뉴런의 출력 범위를 $k$개의 구간으로 나누고, 입력 데이터들이 각 구간에 얼마나 골고루 분포되는지 측정
모델의 작동 범위를 세밀하게 검증할 때 사용 - 강한 뉴런 활성화 커버리지 (Strong Neuron Activation Coverage)
뉴런이 단순히 활성화되는 것을 넘어, 최대/최소값 근처의 극한 상황(Corner Case)에서 어떻게 반응하는지 측정
| 구분 | 테스트 항목 | 주요 내용 및 검증 목적 |
| 뉴런 수준 | 뉴런 커버리지(NC) | 임계값을 초과하여 활성화된 뉴런의 비율 측정 (가장 기본) |
| K-멀티섹션 뉴런 커버리지 (KMNC) |
뉴런 출력 범위를 $k$개 구간으로 나누어 데이터가 골고루 분포되는지 측정 | |
| 뉴런 경계값 커버리지 (NBNC) |
뉴런의 출력이 과거 학습 데이터의 범위를 벗어나는지 (최대/최소 외곽) 확인 | |
| 강한 뉴런 활성화 커버리지 (SNAC) |
뉴런 출력이 학습 데이터의 최대값보다 큰 상한값을 초과하는지 측정 | |
| 레이어 수준 | 레이어 커버리지 (LC) | 특정 레이어 내 뉴런들이 충분히 활성화되었는지 확인 |
| Top-K 뉴런 커버리지 (TKNC) |
각 레이어에서 가장 활성화된 상위 $k$개 뉴런의 조합을 측정 | |
| 상호작용 | Sign-Sign 커버리지 (SSSC) |
앞 뉴런의 활성화 상태(부호) 변화가 뒤 뉴런의 활성화에 주는 영향 검증 |
| Value-Change 커버리지 (VCC) |
앞 뉴런의 미세한 수치 변화가 뒤 뉴런의 수치 변화로 이어지는지 측정 |
2. 인공신경망의 블랙박스 커버리지 (Black-box Coverage)
블랙박스 테스트는 내부 구조를 보지 않습니다. 대신 입력값의 도메인(범위)과 출력 결과의 견고성을 기준으로 얼마나 넓은 범위를 테스트했는지 측정합니다.
- 입력 공간 커버리지 (Input Space Coverage)
모델이 처리해야 할 가능한 모든 입력값의 조합을 얼마나 시도했는지 측정
예: 자율주행 AI라면 낮/밤, 비/눈, 안개 등 다양한 환경 조건(Combinatorial Coverage)을 얼마나 테스트했는지 확인 - 변형 커버리지 (Metamorphic Coverage)
입력값에 미세한 변화(노이즈, 회전, 밝기 조절)를 주었을 때, 결과가 일관되게 나오는지 측정
적대적 공격(Adversarial Attack)에 대한 방어력을 검증하는 지표로 활용 - 출력 클래스 커버리지 (Output Class Coverage)
모델이 분류할 수 있는 모든 클래스(강아지, 고양이, 자동차 등)에 대해 골고루 테스트 데이터가 존재하고 정확하게 분류하는지 확인
| 구분 | 테스트 항목 | 주요 내용 및 검증 목적 |
| 입력 중심 | 입력 공간 커버리지 | 가능한 모든 입력 변수 조합(환경, 노이즈 등)이 테스트되었는지 확인 |
| 조합 테스트 커버리지 | 입력 변수들 간의 상호작용(예: 비 오는 밤, 눈 오는 낮 등)을 조합하여 테스트 | |
| 강건성 중심 | 변형(Metamorphic) 커버리지 | 입력에 미세한 변형(회전, 밝기)을 주어도 결과가 일관된지(MR 만족 여부) 검증 |
| 적대적 공격 커버리지 | 공격용 노이즈(Adversarial Perturbation)에 대해 모델이 얼마나 버티는지 측정 | |
| 출력 중심 | 클래스 커버리지 | 모델이 분류해야 할 모든 카테고리(Label)에 대해 골고루 테스트가 수행되었는지 확인 |
| 임계값 신뢰도 커버리지 | 모델의 판단 결과(Confidence Score)가 낮은 '애매한 구간'의 데이터 검증 |
3. 전통적 소프트웨어 vs 인공신경망 커버리지 비교
| 구분 | 전통적 소프트웨어 (Code) | 인공신경망 (AI Model) |
| 최소 단위 | 구문(Statement), 함수 | 뉴런(Neuron), 레이어 |
| 제어 흐름 | 명시적(If, Loop) | 암시적(가중치와 활성화 함수) |
| 화이트박스 핵심 | 모든 코드 경로 실행 | 모든 뉴런의 활성화 유도 |
| 블랙박스 핵심 | 요구사항 명세 충족 | 데이터 분포 및 환경 강건성 확보 |
4. 왜 AI에서는 커버리지가 중요한가요?
인공지능 모델은 학습 데이터에 없는 미학습 영역(Unseen Data)에서 오작동할 가능성이 높음
- 사각지대 발견 : 뉴런 커버리지가 낮다면, 특정 로직이 한 번도 검증되지 않았음을 의미하며 이는 잠재적 사고의 원인이 됨
- 과적합(Overfitting) 탐지 : 특정 뉴런만 과하게 활성화된다면 모델이 특정 데이터에만 편향되어 있을 확률이 높음
최근에는 자율주행이나 의료 AI처럼 안전이 중요한 분야에서 이러한 DeepGauge나 DeepXplore 같은 도구를 활용한 커버리지 측정이 필수적으로 요구되고 있음.
