직접 리서치하고 정리한 내용에 기반했을 때, 기존의 이상감지 실서비스는 위의 그림과 같이 역피라미드와 같은 형태를 취하고 있습니다.
저러한 역피라미드 구조를 가지게 됨으로써 다음*과 같은 장점을 가질 수 있습니다.
<다음*>
- ML/DL 모델의 성능과 신뢰성을 향상시킬 수 있다.
- 단계별 구조를 통해 트래픽 감소를 꾀할 수 있고, 시계열 데이터의 형태로 연속적인 데이터가 유입되는 경우 AI에 의한 예측이 진행되는 과정에서 2차, 3차 검증이 동시에 이루어질 수 있다.
간단히 말해 위와 같은 구조는 비용성 측면, 효과성 측면에서 모두 개선할 수 있는 영역입니다. 위의 다음*의 2번에 추가
적으로 설명한 시계열 데이터의 경우, 오른쪽의 그림과 같은 방식의 구조를 띄게 됩니다.
이러한 과정을 통해 우리는 실제 AI 서비스를 도입함에 있어 가장 새로우면서도 믿을 수 있을만한 서비스를 구현할 수 있게 될 것입니다.
또한 데이터의 구조와 별개로 모델의 학습 과정에서도 어떤 식의 학습이 진행되어야 하는지에 대한 의문이 발생할 수도 있습니다. 이론적으로는 서로 trade-off 관계에 있는 precision과 recall값을 함께 고려하는 f1-score를 기준으로 모델을 학습할 수 있겠지만, 실제 업무에서는 조금 다를 수 있습니다.
예를 들어, 이상감지와 같은 서비스의 경우에는 일반적으로 precision값보다 recall값이 더욱 중요하게 여겨집니다. 1,000명의 긴급환자 후보가 있고, 이 중 100명의 긴급환자가 있다고 가정해봅시다. 우리는 아래와 같이 크게 두 가지의 우수한 모델을 학습시켰습니다.
- 모델 1 : 정밀도 기준으로 학습시킨 모델. 90%의 정밀도를 자랑한다.
- 모델 2 : 재현율 기준으로 학습시킨 모델. 90%의 재현율을 자랑한다.
위의 두 모델을 기준으로 긴급환자를 감지하는 서비스를 출시했을 때, 어떤 일이 발생할 수 있을까요? 우선 첫 번째 모델의 경우, 단순히 생각하면 1,000명의 긴급환자 후보 중 90명의 실제 환자를 정확히 예측할 것입니다. 하지만 이 경우, 10%에 해당하는 10명의 환자는 제대로 감지해내지 못하게 됩니다.
두 번째 모델의 경우, 대략 110명 정도의 긴급환자를 예측하고 그 중 100명의 실제 환자와 10명의 비환자를 예측하게 됩니다.
이렇게만 보면 재현율을 일반적으로 당장 적용해도 될까요?
비즈니스에서는 그렇지 않습니다.
보통 이상감지 모델의 경우엔 대다수가 threshold라는 개념으로 이상현상을 구분하게 됩니다. 간단히 설명하자면 얼마나 민감하게 이상현상을 분류할지를 결정하는 것으로, 무작정 recall값을 높이기 위해 threshold를 낮추게 되면 precision이 한없이 0에 수렴하는 결과를 낳게 됩니다.
이를 위의 긴급환자 사례에 비유하자면, 자칫 모델이 1,000명의 예비환자들 중 900명을 긴급환자로 분류하게 되는 것입니다. 만약 그렇게 된다면 당연히 recall값은 높게 나오겠지만, 이 서비스의 결과 전화 상담사, 긴급 의료진 등이 900번을 출동해야할지도 모릅니다.
실제로 해외 의료진 중 환자의 데이터를 기반으로 담당 의사에게 자동으로 긴급 콜이 가도록 짜여진 서비스가 구현되었고, 이는 recall값을 기준으로 짜여진 알고리즘이었다고 합니다. 처음에는 매번 담당 의사가 밤낮으로 환자를 체크할 부담이 줄어든 것에 만족했었지만, 이내 쉴새없이 울려대는 콜로 인해 평소보다도 더 많은 환자를 체크하러 다녀야 했고 당연하겠지만 그 중 실제 환자는 극히 소수였습니다. 결국 모든 의사들이 울리는 콜을 믿지 못하고, 꺼놓고 다니게 되었고 나중에는 가지고 다니지도 않게 되며, 해당 서비스는 오래 지속되지 못했다는 이야기입니다.
이처럼 실제 AI를 서비스하는 입장에서는 우리가 이론적으로, 혹은 기술적으로만 이해하고 있던 개념이 실제 세상에 적용될 때에는 어떤 의미를 가지게 되는지 이해하고, 어떤 그림이 그려질 것인지를 상상하고 고민해보는 과정이 필요합니다.
이러한 이유로 작금의 수준에서 가장 많이 기대되는 이상감지 알고리즘은 다음과 같습니다.
- precision을 너무 낮추지 않는 선에서 recall을 우선시해서 모델을 학습시킨다
- 추후 지속적으로 유입되는 데이터를 기반으로 precision 중심으로 학습시킨다
이는 최근 도입되기 시작한 MLops 개념에 의한 CI/CD를 이용한 구조입니다. 단순히 AI 모델을 최초에 한 번, 혹은 매 주기마다 한 번씩 서빙하는 것이 아닌 적어도 주 단위로 새로 유입된 데이터를 반영해 새로운 모델을 학습시키는 구조입니다.
이는 구조적 개념의 부스팅 모델이라고도 할 수 있습니다. 최초에 서빙된 모델의 문제를 개선해나가는 방식으로, 이러한 점진적 개선은 최초 모델을 서빙하는 과정에서 f1-score를 기준으로 학습하는 것보다 더욱 높은 수준의 f1-score 성능을 보이게 되며, 서비스 품질 수준도 유지할 수 있는 장점이 있습니다.
또한 이상감지 모델의 경우, 대부분 이상현상에 해당하는 데이터값을 얻기가 힘들어 비지도학습을 기준으로 이루어지는 경우가 많은데요. 이로 인해 비지도학습 기반의 ai 서비스는 대부분 높은 성능을 유지하기가 힘들고, Rule-Based에 의존하는 성향이 짙습니다.
하지만 위와 같은 구조를 통해 비지도학습 모델의 threshold를 보다 세밀하게 조정하거나, 패턴과 주기를 고려한 변동성 threshold, 개개인의 패턴에 맞춘 형태나 threshold를 넘어서는 정도를 다시 score화해 평가하는 방법론이 제시되고 있습니다.
뿐만 아니라 지속적인 데이터의 유입 과정에서 생기는 이상현상에 대한 데이터를 기준으로 지도학습까지도 가능하게 된다는 점에서 최근 레이블이 추가된 Auto-Encoder에 대한 연구와 논문도 구현되고 있으니, 많은 관심을 기울여야할 분야로 보입니다.
'아이디어' 카테고리의 다른 글
노이즈 캔슬링 캔슬러 Noise Canceling Canceler (0) | 2022.09.07 |
---|---|
너의 리뷰는? (0) | 2022.04.04 |
1분 숏츠 제작 어플 (0) | 2022.04.04 |
크라우드 스페이스 (0) | 2022.04.04 |
기술직군을 위한 Career 통합 플랫폼 (0) | 2021.12.29 |