2019.04.04

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

Simon Bisson | InfoWorld
마이크로소프트가 추구하는 머신러닝에서 중요한 것은 머신러닝 기술이 보편화되고 비교적 이해하기 쉬운 구성 요소가 되어 마이크로소프트를 사용하는 개발자가 자신의 애플리케이션에서 신속하게 배우고 사용할 수 있어야 한다는 것이다.

그래서 나온 것이 애저의 코그니티브 서비스(Cognitive Service)다. 코그니티브 서비스는 ResNet50 딥러닝 신경망에 내장된 학습 계층, 또는 텐서플로우(TensorFlow)나 마이크로소프트 코그니티브 툴킷(CNTK)을 사용해서 학습 플랫폼을 구축하는 방법 등을 이해할 필요 없이 바로 사용할 수 있는 API다. 마이크로소프트는 이미 이러한 서비스에 맞춰 신경망을 학습시켰고, 지속적으로 튜닝하면서 실제 운영 사례를 토대로 개선하고 있다. 자체 머신러닝 알고리즘을 구축하고 실행하는 데 따르는 컴퓨팅 및 스토리지 비용과 비교하면 저렴한 비용에 사용할 수 있다.
 
ⓒLoggaWiggler (CC0)

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

애저 코그니티브 서비스, 새로운 AI 영역으로 진출

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

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

원하는 작업 유형이 범용 서비스라면 서비스로 전송되는 데이터 유형에 대한 적절한 탐지 모델을 스위치를 켜듯 활성화할 수 있어야 한다. 현재 사용 중인 시계열 데이터에 맞는 탐지 모델을 선택하는 적응형 인터페이스 엔진을 사용하는 애저 코그니티브 서비스 어노멀리 디텍터(Anomaly Detector)가 바로 이러한 접근 방식을 사용한다.

마이크로소프트는 런타임에 알고리즘을 선택하는 방법으로 이상 탐지 학습 비용이 지나치게 높아지지 않도록 한다. 사용되는 알고리즘은 완벽하지 않을 수 있지만 두루 사용되는 범용 규칙 엔진으로 이상 탐지를 처리하는 것보다는 훨씬 더 낫다. 부가적인 혜택도 있다. 기가바이트 단위의 학습 데이터에 레이블을 지정하느라 많은 시간을 소비할 필요가 없다는 점이다.
 

어노멀리 디텍터 앱 빌드하기

모든 애저 인지 서비스와 마찬가지로 어노멀리 디텍터에도 애저 포털에서 생성 가능한 구독 키와 구독의 엔드포인트 URL이 필요하다. 마이크로소프트는 서비스를 자체 코드 및 데이터에서 사용하기 전에 신속하게 시험해볼 수 있도록 주피터(Jupyter) 노트북에서 실행되는 데모 서비스를 제공한다.

실무에서는 비동기 함수를 통해 JSON 형식의 데이터를 서비스로 보낸다. 스트리밍 데이터를 다루는 경우 각 업데이트에서 시계열 데이터의 이동 윈도우를 보내 계열의 마지막 데이터 조각에서 이상을 탐지할 수 있다. 배치 데이터를 분석하는 경우 데이터 세트에서 식별된 이상 현상의 위치 목록을 각 데이터 포인트의 부울 값 배열로 받게 된다. 값이 true라면 이상 현상에 해당한다. true 값의 인덱스를 사용해서 소스 데이터 배열의 이상 인덱스를 받을 수 있다.
 

시계열 데이터 사용

어노멀리 디텍터는 대부분의 애저 플랫폼 서비스와 마찬가지로 JSON 형식의 데이터를 받는 REST API를 제공한다. C# SDK를 사용하면 이 서비스를 사용하는 코드를 더 쉽게 빌드할 수 있다. 다른 언어도 사용할 수 있지만, 이 경우 REST 호출을 수동으로 빌드해야 한다.

마이크로소프트는 데이터 형식에 일부 제한을 둔다. 우선 데이터 사이의 시간 간격이 일정해야 한다. 또한 예상된 포인트의 최대 10%까지는 데이터 누락이 허용되지만, 가급적 완전한 데이터를 사용하는 것이 좋다. 패턴이 명확한 데이터를 전달하는 경우 배치의 데이터 포인트 수는 달라질 수 있다. 데이터 세트에서 포인트의 수는 최소 12개, 최대 8,640개이며 시간 스탬프는 UTC다. 

어노멀리 디텍터를 스트리밍 데이터에만 사용할 수 있는 것은 아니다. 시계열 데이터베이스를 사용해서 데이터를 기록한다면 모든 데이터에 걸쳐 이를 배치 프로세스로 실행할 수 있다. 다만 이 경우 많은 데이터를 전송하게 된다. 이 접근 방법은 놓쳤을 가능성이 있는 과거 문제를 파악하는 데 도움이 된다. 사기를 나타내는 지표인 불규칙적인 금융 거래를 찾거나 전체 생산성에 영향을 미칠 수 있는 기계의 지속적인 문제를 식별하는 것 등이 해당된다. 과거 데이터를 대상으로 실행하면 사용 중인 알고리즘을 세밀하게 튜닝하는 데 필요한 정보를 얻는 데 도움이 되고 특정 비즈니스의 문제를 찾을 가능성이 더 높아진다.
 

어노멀리 디텍터 튜닝

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

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

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


2019.04.04

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

Simon Bisson | InfoWorld
마이크로소프트가 추구하는 머신러닝에서 중요한 것은 머신러닝 기술이 보편화되고 비교적 이해하기 쉬운 구성 요소가 되어 마이크로소프트를 사용하는 개발자가 자신의 애플리케이션에서 신속하게 배우고 사용할 수 있어야 한다는 것이다.

그래서 나온 것이 애저의 코그니티브 서비스(Cognitive Service)다. 코그니티브 서비스는 ResNet50 딥러닝 신경망에 내장된 학습 계층, 또는 텐서플로우(TensorFlow)나 마이크로소프트 코그니티브 툴킷(CNTK)을 사용해서 학습 플랫폼을 구축하는 방법 등을 이해할 필요 없이 바로 사용할 수 있는 API다. 마이크로소프트는 이미 이러한 서비스에 맞춰 신경망을 학습시켰고, 지속적으로 튜닝하면서 실제 운영 사례를 토대로 개선하고 있다. 자체 머신러닝 알고리즘을 구축하고 실행하는 데 따르는 컴퓨팅 및 스토리지 비용과 비교하면 저렴한 비용에 사용할 수 있다.
 
ⓒLoggaWiggler (CC0)

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

애저 코그니티브 서비스, 새로운 AI 영역으로 진출

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

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

원하는 작업 유형이 범용 서비스라면 서비스로 전송되는 데이터 유형에 대한 적절한 탐지 모델을 스위치를 켜듯 활성화할 수 있어야 한다. 현재 사용 중인 시계열 데이터에 맞는 탐지 모델을 선택하는 적응형 인터페이스 엔진을 사용하는 애저 코그니티브 서비스 어노멀리 디텍터(Anomaly Detector)가 바로 이러한 접근 방식을 사용한다.

마이크로소프트는 런타임에 알고리즘을 선택하는 방법으로 이상 탐지 학습 비용이 지나치게 높아지지 않도록 한다. 사용되는 알고리즘은 완벽하지 않을 수 있지만 두루 사용되는 범용 규칙 엔진으로 이상 탐지를 처리하는 것보다는 훨씬 더 낫다. 부가적인 혜택도 있다. 기가바이트 단위의 학습 데이터에 레이블을 지정하느라 많은 시간을 소비할 필요가 없다는 점이다.
 

어노멀리 디텍터 앱 빌드하기

모든 애저 인지 서비스와 마찬가지로 어노멀리 디텍터에도 애저 포털에서 생성 가능한 구독 키와 구독의 엔드포인트 URL이 필요하다. 마이크로소프트는 서비스를 자체 코드 및 데이터에서 사용하기 전에 신속하게 시험해볼 수 있도록 주피터(Jupyter) 노트북에서 실행되는 데모 서비스를 제공한다.

실무에서는 비동기 함수를 통해 JSON 형식의 데이터를 서비스로 보낸다. 스트리밍 데이터를 다루는 경우 각 업데이트에서 시계열 데이터의 이동 윈도우를 보내 계열의 마지막 데이터 조각에서 이상을 탐지할 수 있다. 배치 데이터를 분석하는 경우 데이터 세트에서 식별된 이상 현상의 위치 목록을 각 데이터 포인트의 부울 값 배열로 받게 된다. 값이 true라면 이상 현상에 해당한다. true 값의 인덱스를 사용해서 소스 데이터 배열의 이상 인덱스를 받을 수 있다.
 

시계열 데이터 사용

어노멀리 디텍터는 대부분의 애저 플랫폼 서비스와 마찬가지로 JSON 형식의 데이터를 받는 REST API를 제공한다. C# SDK를 사용하면 이 서비스를 사용하는 코드를 더 쉽게 빌드할 수 있다. 다른 언어도 사용할 수 있지만, 이 경우 REST 호출을 수동으로 빌드해야 한다.

마이크로소프트는 데이터 형식에 일부 제한을 둔다. 우선 데이터 사이의 시간 간격이 일정해야 한다. 또한 예상된 포인트의 최대 10%까지는 데이터 누락이 허용되지만, 가급적 완전한 데이터를 사용하는 것이 좋다. 패턴이 명확한 데이터를 전달하는 경우 배치의 데이터 포인트 수는 달라질 수 있다. 데이터 세트에서 포인트의 수는 최소 12개, 최대 8,640개이며 시간 스탬프는 UTC다. 

어노멀리 디텍터를 스트리밍 데이터에만 사용할 수 있는 것은 아니다. 시계열 데이터베이스를 사용해서 데이터를 기록한다면 모든 데이터에 걸쳐 이를 배치 프로세스로 실행할 수 있다. 다만 이 경우 많은 데이터를 전송하게 된다. 이 접근 방법은 놓쳤을 가능성이 있는 과거 문제를 파악하는 데 도움이 된다. 사기를 나타내는 지표인 불규칙적인 금융 거래를 찾거나 전체 생산성에 영향을 미칠 수 있는 기계의 지속적인 문제를 식별하는 것 등이 해당된다. 과거 데이터를 대상으로 실행하면 사용 중인 알고리즘을 세밀하게 튜닝하는 데 필요한 정보를 얻는 데 도움이 되고 특정 비즈니스의 문제를 찾을 가능성이 더 높아진다.
 

어노멀리 디텍터 튜닝

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

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

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


X