
https://youtu.be/jp7uJvfm-gc
소개: AI 성능의 함정
우리는 흔히 "AI 모델의 성능이 높을수록 좋다"고 믿습니다. 90%보다는 95%가, 95%보다는 99%가 더 뛰어난 모델이라고 생각하는 것은 당연해 보입니다. 그런데 만약 80%라는 높은 성능 점수를 가진 AI가 실제 현장에서는 전혀 쓸모없다면 어떨까요?
이것은 단순한 가정이 아닙니다. 제가 이번주에 겪었던 이 여정은 AI 성능이라는 지표를 어떻게 바라봐야 하는지에 대한 중요한 깨달음을 던져줍니다. 통계적 성공에 취해있던 제가 마주한 다섯 번의 충격적인 진실을 통해, 숫자에 가려진 진짜 의미를 파헤쳐 봅니다.
1. 80%는 0%였다: 통계적 성공 뒤에 숨겨진 '실용성의 함정'

IEEE ACCESS라는 SCI 급 학계에 논문 제출을 위해 실험을 수행중이던 저는 이상 탐지(Anomaly Detection) 모델을 개발해 80% AUROC라는 인상적인 성능을 달성했습니다. 하지만 기쁨도 잠시, 치명적인 문제를 발견했습니다. 정상(Normal) 샘플과 비정상(Anomaly) 샘플을 구분하는 점수 차이(Score separation)가 고작 0.000003에 불과했던 것입니다.
이것이 왜 문제일까요? 쉬운 비유를 들어보겠습니다.
학생들의 시험 점수로 정상과 비정상을 나눈다고 가정해 봅시다. 정상 학생들의 평균 점수는 85.000점이고, 비정상 학생들의 평균 점수는 85.003점입니다. 이 0.003점의 미세한 차이로 학생을 구분해야 한다면, 채점 오차나 컴퓨터 반올림 오차만으로도 쉽게 뒤집힐 수 있습니다. 통계적으로는 80%의 학생을 구분해냈다고 말할 수 있지만, 실제 교실에서는 아무도 구분할 수 없는 것과 같습니다.
이처럼 미세한 차이는 실제 현장의 작은 노이즈(Noise)만으로도 결과가 뒤바뀔 수 있어 실용성이 전혀 없었습니다. 점수 차이를 확보하는 것은 필수적인 첫걸음이었지만, 이는 곧 우리 사고방식의 더 근본적인 오류를 드러냈습니다. 바로 모든 문제를 똑같이 취급하고 있었다는 점입니다.
2. 도시락 공장과 전자부품 공장은 다르다: '모두를 위한' 모델은 없다는 진실

초기 모델은 모든 문제에 동일한 설정을 강제로 적용하는 '원 사이즈 핏 올(One-size-fits-all)' 접근법을 사용했습니다. 그러나 이건 산업 현실과 동떨어진 방식이었습니다.
도시락 공장(breakfast_box)과 음료 공장(juice_bottle), 그리고 전자부품 공장(screw_bag)은 생산하는 제품과 공정이 완전히 다릅니다. 당연히 각 공장에 최적화된 불량 검사 시스템이 필요합니다. 도시락의 이물질을 찾는 시스템과 반도체 회로의 결함을 찾는 시스템이 같을 수는 없습니다.
이러한 현실을 깨달은 저는 전략을 수정했습니다. 모든 카테고리를 하나의 모델로 묶으려던 시도를 버리고, 각 제품 카테고리별로 최적의 파라미터를 찾는 '각개격파' 전략, 즉 Per-Category Optimization을 채택했습니다. 이 전략의 효과는 즉시 데이터로 증명되었습니다. breakfast_box 카테고리는 86.75% AUROC까지 성능이 치솟았고, 자체적인 어려움을 가진 screw_bag 카테고리는 61.92%를 달성했습니다. 곧 단일 설정이 두 카테고리 모두의 발목을 잡고 있었음을 보여주는 명백한 증거였습니다.
"While a unified configuration serves as a benchmark for general robustness, industrial deployment typically involves category-specific calibration to accommodate varying semantic complexities."
3. 논리를 덜어낼수록 똑똑해진다: 'Logic Pruning'의 역설

이전 단계의 '카테고리별 접근법'은 결정적이었습니다. 덕분에 놀라운 역설을 발견할 수 있었기 때문입니다. 제가 만든 DIRE( Differentiable Industrial Reasoning Engine: 미분 가능한 산업용 추론 엔진) 모델에는 '람다(λ)'라는 핵심 파라미터가 있습니다. 이 뜻은 모델 내부의 "논리 회로를 얼마나 가지치기할지"를 결정하는 'Logic Pruning 강도'를 의미합니다.
breakfast_box와 같이 비교적 단순한 카테고리에서는 놀라운 현상이 관찰되었습니다.
- 약한 가지치기 (λ = 5e-06) → 성능 84.30%
- 더 강한 가지치기 (λ = 1e-05) → 성능 86.75%
오히려 모델을 혼란스럽게 만들던 불필요한 노이즈 논리를 더 과감하게 제거했을 때 성능이 향상된 것입니다. 마치 집 정리를 할 때, 쓰지 않는 물건들을 과감히 버려야 핵심적인 물건들을 찾기 쉬워지고 공간이 효율적으로 변하는 것과 같습니다. 이 결과는 'Logic Pruning의 역설(Logic Pruning Paradox)'이라 부르는 현상에 대한 최초의 명백한 증거였습니다. "Less is More" 효과는 모델 최적화의 중요한 열쇠가 되었습니다.
4. 벽에 부딪혔을 땐, 질문을 바꿔라: '예측'에서 '거리'로의 전환

이후 '마진 손실'과 같은 고급 기법을 동원해 점수 차이를 벌리려 노력했지만, 곧 새로운 벽에 부딪혔습니다. 모든 샘플의 점수가 특정 값(9.792)으로 똑같이 출력되며 모델이 더는 학습하기를 거부하는 '수학적 포화(Saturation)의 늪'에 빠진 것입니다.
봉착한 이 교착 상태를 해결하기 위해, 문제에 접근하는 방식을 근본적으로 바꿨습니다. "점수를 맞춰봐"라고 묻는 기존 방식은 마치 100미터 달리기에서 모든 선수가 결승선(9.792)에 똑같이 붙어 있는 것과 같았습니다.
대신 질문을 바꿨습니다. "이 샘플은 정상 데이터들이 모여있는 곳에서 얼마나 멀리 떨어져 있어?"라고 묻는 '거리 기반(Distance-based)' 전략으로 전환한 것입니다. 이 새로운 방식은 정상 샘플들을 출발선(점수 0)에 모아두고, 비정상 샘플들은 최대한 멀리 밀어내는 것과 같았습니다. 질문의 전환은 모델이 좁은 점수 범위에 갇히지 않고 비정상 샘플을 기하학적으로 밀어낼 무한한 공간을 열어주는 진정한 돌파구였습니다.
이제 모델에게 "점수를 맞춰봐"라고 강요하지 마십시오. 대신 "정상 데이터가 모여 있는 군집(Cluster)에서 얼마나 떨어져 있니?"라고 묻는 방식으로 전환해야 합니다.
5. 최종 깨달음: 시각이 아닌 논리가 AI를 이끌어야 한다

거리 기반 전략은 큰 진전이었지만, screw_bag(나사 봉투)처럼 복잡한 문제에서는 여전히 한계를 보였습니다. 단순히 '정상 군집에서 멀리 떨어져 있다'는 것만으로는 나사의 개수가 부족하거나 잘못된 부품이 섞인 것과 같은 '논리적 오류(logical errors)'를 잡아낼 수 없었습니다. 실제로 정교한 비전 백본(LoRA)을 적용한 최신 거리 기반 모델(v4.8)조차 screw_bag 문제에서 55.48%라는 처참한 성능을 기록했습니다.
마지막 돌파구는 v4.9 'Logic-Gated Push'라는 개념에서 나왔습니다. 이 방식은 단순히 거리가 멀다고 무작정 밀어내는 것이 아니라, "논리적으로 이상할 때" 훨씬 더 강력하게 밀어내도록 설계되었습니다.
핵심 아이디어는 이렇습니다. 모델이 내놓는 '논리 만족도(logic satisfaction score)'를 나타내는 S_logic 값이 낮을수록(즉, 이미지의 상태가 논리적으로 이상할수록), 이상치를 밀어내는 힘(Push Loss)이 최대 11배까지 증폭됩니다. 시각적으로는 비슷해 보여도 논리적 규칙을 위반한 샘플은 정상 군집 근처에 절대 머무를 수 없게 만든 것입니다.
이것이 바로 "논리가 시각을 견인하는(Logic leads Vision)" 진정한 뉴로-심볼릭(Neuro-Symbolic) AI 접근법의 핵심이었습니다. 모델이 단순히 보는 것을 넘어, 논리적으로 생각하고 판단하게 만드는 것. 이것이 이번 실험에서 제가 도달한 가장 중요한 깨달음이었습니다.
결론: 우리는 무엇을 측정하고 있는가?

제 실험의 여정은 80%라는 헛된 숫자에 빠졌던 초기 상태에서 시작되었습니다. 이후 카테고리별 최적화를 통해 현실을 배우고, Logic Pruning의 역설을 통해 덜어냄의 미학을 깨달았으며, 거리 기반으로의 전환을 통해 문제의 본질을 바꾸었습니다. 그리고 마침내 '논리 주도 학습'이라는 깊은 통찰에 도달했습니다.
우리는 그저 AI가 '보도록' 훈련시키고 있는가, 아니면 '생각하도록' 가르치고 있는가? 이 여정이 시사하는 진정한 가치는 완벽한 눈이 아니라, 그것을 이끄는 논리의 우위에 있다.
| 카테고리 | 최적화 버전 | 최적 람다 ( $\lambda$ ) | 학습 에폭 (Epochs) | 최대 AUROC (%) | 주요 성과 및 한계 (Inferred) |
| pcb1 (VisA) | V2.9 | Not in source | 10 | 88.37 | 거리 기반 전략( $\text{Distance-based}$ )으로 전환하여 수학적 포화를 탈출하고 점수 분리도를 0.50 이상으로 개선함. |
| breakfast_box | V2.8 | $1.00 \times 10^{-5}$ | 12 | 86.75 | SOTA급 성능을 달성했으며 적절한 규제로 노이즈를 억제함. 다만 점수 분리도가 현미경 수준으로 낮아 실용성이 제한됨. |
| juice_bottle | V2.8 | $5.00 \times 10^{-5}$ | 15 | 84.61 | 강한 규제에서 최고 성능을 보임. 단순한 논리 구조일수록 가지치기( $\text{Pruning}$ )가 효과적임을 입증함. |
| pushpins | V2.8 | $5.00 \times 10^{-7}$ | 15 | 71.10 | 복잡한 계수 논리로 인해 매우 약한 규제에서만 성능이 유지됨. 표현력 보존을 위해 많은 노드가 필요함. |
| splicing_connectors | V2.8 | $5.00 \times 10^{-7}$ | 18 | 68.52 | 관계적 논리 표현을 위해 낮은 람다 설정이 권장됨. 세밀한 튜닝에도 불구하고 70.00% 벽을 넘지 못함. |
| screw_bag | V2.8 | $5.00 \times 10^{-6}$ | 15 | 61.92 | 고밀도 객체 특성상 여전히 도전적인 과제임. 학습 불안정성이 관찰되며 추가적인 아키텍처 조정이 필요함. |
| screw_bag | V5.2 | Not in source | 14 | 58.59 | $\text{LoRA Rank 64}$ 확장 및 점수 융합을 적용했으나 60.00% 벽을 넘지 못함. $\text{VLM}$ 의 표현력 한계를 확인한 실험. |
| pushpins | V5.2 | Not in source | 2 | 51.45 | 논리 융합( $\text{Logic Fusion}$ )으로 역변별 현상을 해결하고 50.00%를 복구했으나, 산업 현장 적용에는 여전히 부족한 수준. |
[관련 기술 및 연구 키워드]
- Dataset: MVTec LOCO AD (Logical Anomaly Detection)
- Framework: DIRE (Differentiable Industrial Reasoning Engine)
- Key Technologies: Neuro-Symbolic AI, Logic Tensor Networks (LTN), LoRA Adaptation, Logic-Gated Push, Distance-based Anomaly Detection
- Research Theme: 이상 탐지 성능 한계(Performance Bottleneck), 시각-논리 통합 추론(Visual-Logical Reasoning)
'AI Algorithms (AI 기술과 알고리즘)' 카테고리의 다른 글
| SALAD와 LTN의 만남: 좌충우돌 Neuro-Symbolic AI 모델 디버깅 탐험기 (0) | 2026.01.11 |
|---|---|
| 메모리 터질 때 쓰는 치트키? DeepSpeed로 GroundingDINO 돌려봄 (3) | 2026.01.09 |
| 드롭아웃과 인생의 불확실성: 알고리즘 속에서 발견한 실존적 통찰 (2) | 2025.11.23 |
| 진정한 Claude Code 사용법 (1) | 2025.11.09 |
| 텍스트 음성 변환(TTS) 오픈소스 모델 TOP 5 (0) | 2025.11.06 |