3분
임계값 설정 전략: F1 최적화 & 비용 기반
Day 4: 이상 탐지 (비지도 학습)
임계값 설정 전략: F1 최적화 & 비용 기반
비전 AI 외관검사 > Day 4: 이상 탐지 (비지도 학습)
학습 목표
- 이상 탐지에서 임계값이 결과에 미치는 영향을 이해한다
- F1 최적화와 비용 기반 임계값 설정 방법을 비교할 수 있다
- 제조 현장에서의 임계값 운영 전략을 수립할 수 있다
임계값: 양품과 불량의 경계선
이상 점수가 나왔다. 그런데 얼마 이상이면 불량인가? 이 경계선(임계값)이 검사 시스템의 성패를 좌우한다.
임계값에 따른 변화
[임계값이 낮으면]
→ 민감한 검사: 작은 이상도 잡아냄
→ 미검출 감소 (좋음)
→ 과검출 증가 (나쁨) → 양품 폐기 비용 증가
[임계값이 높으면]
→ 관대한 검사: 확실한 불량만 잡음
→ 과검출 감소 (좋음)
→ 미검출 증가 (나쁨) → 클레임/리콜 위험!임계값 설정 방법 3가지
[방법 1: 통계 기반]
임계값 = 정상 점수의 평균 + k × 표준편차
이상 점수의 임계값은 위쪽 한 방향만 자른다(점수가 낮은 쪽은 더 정상이다).
그러므로 **단측 확률**을 써야 한다. 흔히 외우는 95%·99.7% 는 ±k 양측 값이라 여기에 맞지 않는다.
k=2: 정상의 약 97.7% 통과 (양측 95% 가 아니다)
k=3: 정상의 약 99.87% 통과 (양측 99.7% 가 아니다)
k=4: 정상의 약 99.997% 통과
k=2 를 "95%"로 알고 라인에 걸면 실제 과검이 예상의 절반쯤으로 나와 계획이 어긋난다.
장점: 간단하고 정상 이미지만 있으면 된다
단점: 정상 점수 분포가 가우시안이 아니면 어긋난다. 히스토그램을 먼저 그려 확인하고,
한쪽으로 치우쳐 있으면 분위수(예: 정상의 99 퍼센타일)를 쓰는 편이 낫다[방법 2: F1 최적화]
검증 데이터(정상+불량)에서 F1이 최대인 임계값 선택
for threshold in np.arange(min_score, max_score, step):
predictions = scores > threshold
f1 = f1_score(labels, predictions)
→ f1이 최대인 threshold 선택
장점: 성능 최적
단점: 불량 데이터가 필요 (소량이라도)[방법 3: 비용 기반 (제조 추천!)]
비용 최소화 기준으로 임계값 결정
미검출 비용(C_fn): 불량 1개 유출 = 클레임 처리비
과검출 비용(C_fp): 양품 1개 폐기 = 재료비 + 가공비
총 비용 = FN × C_fn + FP × C_fp
→ 총 비용이 최소인 임계값 선택
예시(숫자는 예시일 뿐이다. 우리 단가로 바꿔 넣어야 한다):
미검출 1건 = 클레임 처리 + 반품 물류 + 후공정 폐기
과검출 1건 = 양품 폐기 또는 재검사 공수
두 값을 채우면 비가 나오고, 그 비가 임계값을 어디로 옮길지 알려 준다.
미검이 훨씬 비싸면 임계값을 낮춰 민감하게 간다.
주의: 미검 비용에는 '잡히지 않은 것'이 포함되지 않는다.
고객에게 가서 잡힌 건수만 세면 실제 미검율을 낮게 본다.
후공정·출하 검사에서 나온 건수를 함께 세어야 한다.제조 현장 운영 전략
| 전략 | 임계값 | 적용 상황 |
|---|---|---|
| 보수적 | 낮음 (민감) | 안전 부품, 의료 기기 |
| 균형 | F1 최적 | 일반 제품 |
| 효율적 | 높음 (관대) | 비용이 낮은 소모품 |
[2단계 검사 전략]
Stage 1: 낮은 임계값 (자동 검사)
→ 확실한 양품만 통과
→ 의심 제품은 Stage 2로
Stage 2: 검사원이 육안 확인
→ 의심 제품만 사람이 판단
→ AI + 사람의 하이브리드
효과: 미검출 최소화 + 과검출 완화AI로 학습하기 — 꿀팁
비용 기반 임계값 최적화 계산기 코드 생성AI 학습 팁
제조 검사에서 과검(양품을 불량으로 판정)과 미검(불량을 양품으로 판정)의 비용이 다르므로, 비용 함수를 기반으로 최적 임계값을 자동 계산하는 코드를 생성한다.
자동차 엔진 부품 이상 탐지 시스템의 임계값 최적화 Python 코드를 작성해줘. 다음 비용 구조를 가정해: 미검(불량을 양품으로 통과) 비용: 리콜 발생 시 부품 1개당 500만원, 과검(양품을 불량으로 폐기) 비용: 부품 1개당 3만원. 코드에 다음을 포함해줘: 1) Precision-Recall 곡선에서 F1 최적 임계값 계산 함수, 2) 총 비용(FN × 500만 + FP × 3만)을 최소화하는 비용 기반 임계값 계산 함수, 3) 두 방법의 임계값 비교 및 예상 비용 출력, 4) 미검/과검 비용 비율 변화에 따른 최적 임계값 민감도 분석 차트(matplotlib). 실행 예시 데이터(이상 점수 배열, 레이블)도 포함해서 바로 실행 가능하게 작성해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • 임계값은 검사 시스템의 민감도를 결정하는 핵심 파라미터
- • 비용 기반 임계값: 미검출/과검출 비용 비율로 최적점 결정
- • 2단계 검사(AI 자동 + 검사원 확인)가 제조 현장의 베스트 프랙티스
- • 안전 부품은 보수적(낮은 임계값), 소모품은 효율적(높은 임계값)