어린 아이에게 농장 동물에 대해서만 가르친 다음에, 펭귄같은 동물에 보여주면 어떻게될까?
혼란스러워 할 예측을 딥러닝 세계에서도 동일하게 반영되며, 이것을 "Closed-world Assumption"이라고 한다.
딥러닝도 마찬가지로 테스트셋이 훈련 데이터와 유사한 분포를 가진 데이터이면 괜찮겠지만, 실제로는 그렇기 힘들다. 훈련 데이터와 다른 분포를 가지는 real-world의 데이터로(여기서는, Out-of-distribution) OOD Detection이 등장하게 되었다.

OOD Detection을 잘 해야하는 이유로, 실제로 real-world는 방대한 양으로 인해 training 에 포함되지 않은 이상 현상이 있을 수 있고, 실제로 약을 잘 못 찾아 잘못된 치료법을 제공한다던지 집 로봇이 이상 행동을 한다든지 등을 야기할 수 있다.
그래서 OOD Detection이 중요하다.
그래서, OOD 사례를 일반화하고 이해 범위를 넘어서는 통찰력을 가지는 역할이 중요하다.
AI 모델이 OOD 데이터에 취약한 이유,
- Model Complexity(모델 복잡성): 모델 네트워크는 매우 파라미터화 되어있고, 훈련데이터 내 복잡한 패턴에 fitting된다. 이러한 복잡성이 in-distribution 데이터에는 높은 정확도를 가지게하는 반면, OOD는 취약해진다. 모델은 OOD 입력의 분포가 훈련데이터 분포랑 다르더라도 자신있게 반응을 할 수 있는것도 문제가 될 수 있다.
- Lack of Regularization(정규화 부족): Dropout 기법이나 Weight decay 등의 정규화 기법은 모델의 일반화 성능을 향상시킬 수 있기는 하지만, 모델은 여전히 훈련 데이터에 오버피팅된다.
- Dataset Shift(데이터셋 변화): 실제로는 시간이 지남에 따라 데이터 분포가 언제든지 변할 수 있다.
- Model Assumptions(모델 가정): 보통 모델들은 가정을 하게 되는데, OOD 데이터가 가정을 위반한다면 성능이 저하된다.
- High Dimensionality(고차원): 차원의 저주(the curse of dimensionality)도 역할이 될 수 있다. 데이터가 볼륨으로 갈수록 표면 정보도 생기면 더욱 훈련 데이터에 fitting될 수 있다.
- 등등등(거의 다 유사한 얘기)
OOD Detection 접근 방법,
- Maximum Softmax Probability(최대 소프트맥스 확률값): 보통 예측을 하면 훈련 데이터에 in-distribution된 데이터는 높은 softmax probability를 가질거고, ood 데이터는 낮은 softmax probability를 갖게 될텐, 이 확률값을 기반으로 threshold로 셋팅해 일정 값 이하는 OOD 객체로 간주할 수 있다.
- Ensembling of Multiple Models(여러 모델의 앙상블): 한가지 모델의 예측값에 대해서 의존하지 않고 여러 모델의 예측값을 결합해서 집단적으로 결정을 내리면 더욱 OOD 데이터를 잘 식별할 수 있다.
- Temperature Scaling(온도조정): 후처리 기법인데, 모델 결과물(softmax)를 보정(calibration)한다. "temperature" 파라미터를 조정해서 모델 예측 확률값을 수정할 수 있다. 적절하게 보정된 모델은 OOD 데이터를 더욱 정확하게 감지할 수 있다.
- Training a Binary Classficiation Model as a Calibrator(보정 역할로 이진 분류 모델 훈련): 다른 접근법으로 보정 역할을 하는 이진 분류기를 학습하는 것이다. OOD데이터인지 in-distribution 데이터인지. 주요 모델의 output으로 이 보정 분류 모델에 넣으면, in distribution인지 OOD인지 정확히 알 수 있다.
- Monte-Carlo Dropout(몬테까를로 드랍아웃): 일반적으로 dropout은 일반화 기법으로 흔하게 쓰이는데, 몬테까를로 dropout은 인퍼런스때와 수행하고 모델을 여러번 실행하는 방법이다. 이런 방법으로 모델의 output 분포로 모델의 불확실성을 추정하는데 이때, OOD 감지에 사용된다.
Furue Direction(미래 연구 방향),
- Enhanced Generalization(향상된 일반화): 모델이 더욱 복잡해짐에 따라서, OOD 데이터에 대해서도 일반화 할 수 있는지 확인하는게 중요하다.
- Integration with Other AI Domains(다른 AI 도메인과의 통합): Transfer learning, few-shot learning, 등과 같이 다른 AI도메인 통합되어 더욱 강력하고 적응가능한 시스템이 되는 방향.
- Real-time OOD Detection(실시간 OOD 감지): 자율주행이나 의학진단 등에 중요하게 사용될 것. 정확성 잃지 않되 더욱 빠르게 감지할 것
- Ethical Considerations(윤리적 고려):
refer: https://encord.com/blog/what-is-out-of-distribution-ood-detection/
'Python' 카테고리의 다른 글
윈도우 virtualenv 가상환경 우분투로 옮겨서 환경 옮겨가기 (1) | 2024.07.23 |
---|---|
Docker 조회, 시작, 접속하는 방법 공유 (0) | 2024.07.10 |
torch._six error 해결 (0) | 2024.06.18 |
Pymongo에서 프로세스 종료하는 명령어 (0) | 2024.06.04 |
basic webcam opencv window example (0) | 2024.03.06 |