Home SD 커뮤니티 Easy Tech

Easy Tech

Easy Tech

애저 머신러닝의 이상탐지 기능을 사용하는 방법

2019-06-04


 

MS Azure 머신러닝

애저의 머신러닝 툴은 앱에 기본적인 인공 지능을 추가하고자 하는 모든 User에게 중요한 리소스이다. 그러나 이러한 툴은 컴퓨터 비전,텍스트 분석, 음성 인식의 세 가지 영역에 초점을 둔 제한적인 툴임은 반드시 알아야 한다. 셋 모두 중요한 영역이지만 현재 머신러닝으로 가능한 작업의 아주 작은 일부분이라는 사실

 
 

애저 코그니티브 서비스 '이상 탐지'

이번 애저 머신러닝에서 다른 영역으로 진출하는 새로운 인지 서비스가 최근 베타 단계로 들어섰다. 바로 '이상 탐지'기능 ! 이상 탐지는 중요한 인공지능 툴이다. 데이터 소소의 정상적인 작동 특성을 벗어나는 항목에 대한 '시계열 데이터를 분석'한다. 현대 기업에서는 금융 거래부터 소프트웨어 로그, 디바이스에 이르기까지 스트리밍되는 데이터가 많으므로 이상 탐지는 상당히 유연한 툴일 수 밖에 없다. 하나의 API를 사용해서 온갖 다양한 피드를 다룰 수 있다는 점을 과소평가해서는 안된다. 적절한 소프트웨어를 훨씬 더 쉽게 만들 수 있게 하기 때문이다.

일반적으로 이상 탐지는 설정하는 데 시간이 다소 걸리게 된다. 대량의 데이터를 사용해 모델을 학습시켜 무엇이 정상 작동이고 무엇이 정상을 벗어나는지를 결정해야 한다. 예를 들어 신용카드 사기 탐지 시스템도 같은 방법으로 지출을 비롯한 모든 고객의 습관에 대한 모델을 구축해서 유출된 카드가 사용 될 때 이것을 탐지하고 이후의 거래를 차단함으로써 손실을 최소화 할 수 있다. 

 
 

어노멀리 디텍터 앱 빌드

모든 Azure 인지 서비스와 같이 어노멀리 디텍터에도 애저 포털에서 생성 가능한 구독키와 구독의 링크가 필요하다. MS는 서비스를 자체 코드 및 데이터에서 사용하기 전에 신속하게 시험해볼 수 있도록 주피터(Jupyter)노트북에서 실행되는 데모 서비스를 제공하고 있다. 실무에서는 비동기 함수를 통해 JSON 형식의 데이터를 서비스로 보낸다. 스트리밍 데이터를 다루는 경우 각 업데이트에서 시계열 데이터의 이동 윈도우를 보내 계열의 마지막 데이터 조각에서 이상을 탐지할 수 있다. 배치 데이터를 분석하는 경우 데이터 세트에서 식별된 이상 현상의 위치 목록을 각 데이터 포인트의 부울 값 배열로 받게 되어있다. 값이 True라면 이상 현상에 해당하며 true값의 인덱스를 사용해 소스 데이터 배열의 이상 인덱스를 받을 수 있다. 

 
 

어노멀리 디텍터 튜닝

어노멀리 디텍터 API는 특이한 특성이 한 가지 있다. 다른 인지 서비스와 달리 API가 데이터를 다루는 방법을 조정할 수 있다.JSON 요청의 일부로 데이터의 기간과 입상도의 세부 사항 및 알고리즘 민감도를 미세 조정하는 두 가지 옵션을 직접 지정할 수 있다. 그 중 하나인 max 어노멀리 Ratio는 이상 현상이거나 이상 현상이 아닐 수 있는 데이터 포인트를 식별하는데 유용하다. 다른 하나인 Sensitivity는 알고리즘의 마진 값을 조정한다. 이 수치가 낮을 수록 마진은 커지고 이상 탐지는 최대한 유지 된다.

애플리케이션에 시계열 데이터가 많더라도 여기서 가치를 추출하기는 어렵다. 약간의 머신러닝을 가미하면 정상 패턴에 맞지 않는 요소를 파악한 다음에 이 정보를 사용해서 적절한 응답을 구축할 수 있다.

코드로 빌드하기 전에 주피터 노트북과 같은 툴을 사용해서 결과를 탐지하고 탐지기를 튜닝하는게 좋다. 어떤 현상이 발생하는지 확인하고 이를 관리하는 이벤트와 연계할 수 있어야 하기 때문이다. 인터랙티브 노트북과 과거 데이터를 사용하면 근 실시간 이상 탐지를 통해 적절한 상관관계를 찾을 수 있으며 이러한 상관관계는 이해하기 용이한 결과를 제공하는 애플리케이션을 설계하는데 도움이 된다. 그렇게 되면 실제 비즈니스 가치를 위해 이상 탐지 API를 사용할 수 있게 된다. 

 

시계열 데이터 사용

어노멀리 디텍터는 대부분의 애저 플랫폼 서비스와 같이 JSON형식의 데이터를 받는 REST API를 제공하고 있다. C# SDK를 사용하면 이 서비스를 사용하는 코드를 더 쉽게 빌드할 수 있따. 다른 언어도 사용할 수는 있지만 이 경우엔 REST 호출을 수동으로 빌드하여야 한다. MS는 데이터 형식에 일부 제한을 두고 있다. 우선, 데이터 사이의 시간 간격이 일정해야 하고 예상된 포인트의 최대 10%까지는 데이터 누락이 허용되지만, 가급적 완전한 데이터를 사용하는게 좋다. 패턴이 명확한 데이터를 전달하는 경우 배치의 데이터 포인트 수는 달라질 수 있다. 데이터 세트에서 포인트의 수는 최소 12개, 최대 8,640개이며 시간 스탬프는 UTC이다.

어노멀리 디텍터를 스트리밍 데이터에만 사용할 수 있는 것은 아니다. 시계열 DB를 사용해 데이터를 기록한다면 모든 데이터에 걸쳐 이를 배치 프로세스로 실행할 수 있다. 다만, 이 경우 많은 데이터를 전송하게 되어 있다. 이 접근 방법은 놓쳤을 가능성이 있는 과거 문제를 파악하는데 사용된다.

사기를 나타내는 지표인 불규칙적인 금융 거래를 찾거나 전체 생산성에 영향을 미칠 수 있는 기계의 지속적인 문제를 식별하는 것 등이 해당된다. 과거 데이터를 대상으로 실행하면 사용 중인 알고리즘을 세밀하게 튜닝하는 데 필요한 정보를 얻는데 도움이 되고 특정 비즈니스의 문제를 찾을 가능성이 더 높아진다.