오늘은 AI 빅데이터의 주요 분야 중 ‘이상 탐지‘라는 것에 대해 알아본다. 여기 별도로 밑줄치진 않았지만 본문의 사례를 통해 우리 주변의 멀지 않은 곳에서 어렵지 않게 경험할 수 있는 것들이라는 걸 느낄 수 있었다.
이상탐지란 정상적인 상황, 패턴과 어긋난 현상을 조기에 감지하는 알고리즘을 뜻한다.- P318
이상탐지는 과거 데이터를 기반으로 과거 히스토리에서 벗어난 패턴을 이상 현상으로 감지한다.- P318
이상 탐지 접근 방식은 과거 데이터의 모델과 예측을 기반으로 한다. 정상적인 패턴은 일정하다고 가정한다. 즉, 데이터 생성으로 이어진 기본 프로세스는 크게 변경되지 않은 것으로 간주되는 것이다. 다시 말해, 우리가 이전에 본 것이 앞으로도 이어질 것으로 기대하는 것이다. 하지만 때에 따라서는 시간이 지남에 따라 변경되는 데이터 트렌드나 주기도 정상적인 행동 패턴으로 특징지을 수 있다.- P319
이상탐지는 간단히 말하면 이진 분류 문제라고 볼 수 있다. 데이터를 정상/비정상으로만 구분해주면 된다. 따라서 분류 문제에 많이 쓰이는 머신러닝, 딥러닝 모델이 자주 사용될 수 있다.- P320
이상탐지가 일반적인 머신러닝 문제와는 조금 다른 점이 있다. 우선 정상/비정상 두 클래스 간에 급격한 불균형이 있다. 일반적으로 머신러닝을 적용하기 위해서는 사전에 클래스 라벨링을 해주고 클래스 분류 모델을 만드는데 클래스 간 분포가 비슷해야 학습모델 성능이 우수해진다. 하지만 이상탐지의 경우 학습 셋 자체가 99% 이상이 정상 셋 1% 미만이 비정상 셋이기 때문에 굉장히 불균형한 학습 데이터 셋이 생성된다. 만약 99:1의 비율을 지닌 학습 데이터 셋을 그대로 학습한다면 정상에만 지나치게 모델이 과적합해 모든 데이터에 대해서 정상을 출력할 것이다. 이를 해결하기 위해서는 비정상 데이터셋을 오버샘플링하여 증대하는 방법이 있다. 비정상 데이터셋과 유사한 비정상 데이터셋을 랜덤으로 생성하여 정상/비정상 클래스 분포를 맞추는 것이다. 또는 아예 비지도 학습을 하는 것이다. 비지도 학습은 정상/비정상 라벨이 사전에 필요 없기에 비지도 학습을 통해 패턴을 만들고 해당 패턴에서 벗어난 새로운 데이터들은 비정상으로 판단한다.- P321
이상탐지 알고리즘 적용시 또 주의해야할 점은 센서 데이터의 성격이다. 기계장비 이상탐지의 경우 대부분 센서 데이터를 기반으로 적용된다.- P321
센서는 소음, 온도, 습도, 진동 센서가 대표적이다. 일반적으로 이상 징후를 가장 빨리 잡아내는 센서는 진동이라고 알려져 있다. 센서 데이터는 일반적인 데이터와는 많이 다르기 때문에 분석 시 주의를 기울여야 한다. 우선 센서 데이터는 센서의 개수도 많고 초당 여러 개씩 실시간으로 쌓이기 때문에 데이터량 자체가 굉장히 많다. 그냥 그대로 AI 모델에 다 집어넣으면 연산량이 굉장히 커서 학습시간이 굉장히 오래 걸릴 수 있다. 그래서 모든 데이터를 다 활용하기 보다는 주기별로 특징 값을 추출하거나 분 단위 평균값과 같이 통계 요약 값을 다시 추출해서 모델에 넣는 경우가 많다.- P322
또한 여러 센서 간, 값이 들어오는 시간차가 조금씩 다르다. 예를 들어 센서가 1000 개 있는데 밀리세컨드(ms) 단위로 값이 들어오기 때문에 1000개의 센서마다 값을 받는 시간이 다 다르다. 이 조금씩 다른 시간대를 일치 조정도 해야 한다.- P322
결측값 문제도 있다. 센서가 워낙 많고 초당 여러 개의 값이 마구 들어오기에 중간 값이 종종 잘 안 들어올 수도 있다. 센서가 잠시 오작동 할 수도 있고 배터리가 부족해서일 수도 있는데 아무튼 완벽하게 모든 센서의 모든 값들이 100% 들어오는 경우는 거의 없다. 이렇게 결측값이 생기면 그 자체로는 AI 모델링을 할 수 없기에 결측값을 채워 넣는 작업이 필요하다. 가장 쉬운 방법은 이전에 채워진 값을 이어서 그대로 넣거나 최빈값, 평균값 등으로 대체하는 방식이다. 회귀모형을 세워서 이전 값과 이후 값을 고려한 경향에 맞게 채우는 방법도 있다.- P322
단기간에 서버에 부하가 오는 현상, 로그인 위치나 패턴이 이전과 다른 현상, 사용 시간대가 이전과 다른 현상, 메일 내용이 이전에 받은 메일 내용과는 다른 특이한 형식, 메일에 링크를 삽입한 현상- P323
이상탐지 알고리즘은 실시간 데이터 처리, 센서 데이터 전처리, 대용량 데이터 적재 및 처리에 능해야 한다. 이러한 작업이 AI 모델링 작업보다 오히려 더 중요한 분야가 이상탐지 분야이다. 이러한 기술들은 수학, 통계보다는 컴퓨터 공학적 코딩 능력에 더 가깝다.- P325
전통적으로 이미지를 처리하기 위해서는 색, 픽셀 간의 상호 관계, 물체 배치, 에지, 윤곽선 등의 이미지 특징이라고 불리는 특징 추출이 중요했다. 이러한 특징 추출을 얼마나 잘 하느냐가 곧 알고리즘의 성능으로 이어졌다. 하지만 최근에는 딥러닝 기술의 발달로 단순히 RGB 3채널의 픽셀값만으로도 충분히 우수한 성능의 알고리즘이 구현되고 있다.- P327
유사도 분석은 두 이미지간의 유사도 분석을 통해 두 이미지가 동일한 이미지인지 아닌지 판별하는 방법론이다. 유사도 분석은 히스토그램 비교, 템플릿 매칭, 피처 매칭 3가지 방법론이 가장 많이 쓰인다.- P327
히스토그램을 이용한 비교는 간단하면서 처리 속도가 빠른 방식으로 가장 오래된 방식이기도 하다. 이 방식은 두 장의 사진을 비교할 때 색의 히스토그램 분포 유사도를 체크한다.- P327
템플릿 매칭은 큰 이미지에서 주어진 작은 이미지가 존재하는지를 검색하는데 주로 사용한다. 즉 이미지를 조각으로 잘게 나누어 각 조각이 큰 이미지 안에 실제 있는지 체크한다.- P327
피처 매칭은 이미지로부터 수많은 특징값들을 추출하여 다른 이미지의 특징값 셋과 비교하는 방식이다. 위의 셋 중 속도는 제일 느리지만 가장 정확하다고 알려져 있다.- P328
이미지 판별은 말 그대로 해당 이미지가 무엇인지 출력하는 알고리즘이다. 개 사진이면 ‘개‘라고 출력하고 고양이 사진이면 ‘고양이‘라고 출력하는 알고리즘이다.- P328
이미지 판별을 위해서 가장 많이 쓰이는 알고리즘은 합성곱 신경망 Convolutional Neural Network, CNN 딥러닝 모델이다. 해당 모델은 이미지넷이라는 이미지 판별 대회에서 2012년에 히트를 친 모델이다. 기존 서포트 벡터 머신SVM 모델보다 엄청나게 높은 성능 향상을 보여 그 이후부터 대부분의 이미지 판별 문제는 합성곱 신경망 네트워크를 쓰고 있다.- P328
합성곱 신경망 네트워크도 더욱 상세하게 살펴보면 많이 나뉜다. AlexNet, VGGNet, ResNet, MobileNet 등이 있다. 각각의 네트워크는 컨볼루션 레이어를 활용해서 변이형 네트워크를 만들었을 뿐이다. ...(중략)... 합성곱 신경망의 핵심은 컨볼루션 레이어이다. 컨볼루션 레이어는 이미지의 지역적 특징점을 찾아내는데 쓰이는 층이다. 쉽게 말하면 전체 이미지 중에서 부분적으로 특징점들을 캐치하고 이를 이용해 전체 이미지 클래스를 분류하는 방식이다.- P328
복수의 컨볼루션 레이어는 전체 이미지를 일정 개수의 그리드로 나누어 각 그리드 셀마다 옮겨가며 투영된다.- P329
합성곱 신경망은 컨볼루션 레이어, 풀링 레이어를 어떻게 구성하느냐에 따라 무한히 많은 형태의 네트워크를 만들 수 있다. AlexNet, VGGNet, ResNet, MobileNet도 다 컨볼루션 레이어, 풀링 레이어의 특정 조합으로 이루어진 네트워크이다. 다만 이 네트워크들은 실험을 통해 그 성능이 입증되었기에 논문에 실리고 유명해진 것뿐이다.- P329
객체 인식은 이미지 판별에서 한 단계 더 올라간 방식이다. 전체 이미지 중에서 특정 객체를 인식하는 알고리즘이다. 예를 들어 농구 시합 전체 사진 안에서 농구공의 위치만 추출하는 방식이다. 객체 인식을 지역적 합성곱 신경망 Regions with CNN, R-CNN이라고도 불린다. CNN에서 regions가 붙어서 R-CNN이다.- P330
가장 전통적인 R-CNN은 선택적 탐색selective search 기법을 사용하여 객체 인식을 하였다. 선택적 탐색selective search 기법의 프로세스는 아래와 같다.
1. 이미지의 초기 조각(segment)를 정하여, 수많은 지역을 생성
2. 그리디(greedy) 알고리즘을 이용하여 각 지역을 기준으로 주변의 유사한 영역을 결합
3. 결합되어 커진 지역을 최종 지역으로 제안(region proposal).
쉽게 말하면 전체 이미지를 잘게 몇 개의 그리드로 나눈 후, 유사한 각 그리드들을 합쳐서 합쳐진 지역을 합성곱 신경망 알고리즘으로 판별하는 것이다. 그러면 전체 농구 시합 이미지 중 사람, 농구공, 골대와 같은 각 객체들이 판별될 수 있다.- P330
문제는 선택적 탐색 기법이 너무 느리다는 점이다. 그래서 이후에 선택적 탐색 기법이 없어도 객체 인식이 가능한 Faster R-CNN, YOLO 등이 나왔다. 특히 YOLO의 경우 속도가 실시간에 가까워 동영상 재생 속 화면의 객체들을 실시간으로 탐지할 수 있다.- P331
객체 인식은 학습 연산량이 굉장히 크기 때문에 학습 시간이 꽤 오래 걸린다. 또한 학습에 필요한 학습 데이터도 많이 필요하다. 특히 학습 데이터셋 구성에 있어서 단순히 사진뿐만 아니라 각 사진속 객체들의 위치를 주석annotation으로 넣는 작업까지 필요하다. 여기서 말하는 주석 작업이란 농구 시합 사진이면 사진속 사람, 농구공, 골대의 좌표 정보를 일일이 사람이 표기해주는 작업을 말한다. 물론 이 작업을 편리하게 해주는 툴이 있긴 하지만 툴을 이용해서 방대한 사진 주석 작업을 하는 데는 꽤 많은 시간이 든다. 이런 작업을 대신 해주는 회사도 있다. 국내에서는 크라우드웍스가 유명한데 현재 상장 준비 중인 꽤 유명한 회사이다.- P331
학습도 기반 정보가 없이 처음부터 하면 파라미터가 수렴하기까지 굉장히 오래 걸린다. 따라서 전이 학습을 주로 한다. 전이 학습은 다른 사람이 미리 학습해놓은 모델을 이어 받아서 학습을 하는 방식이다. 베이스가 없는 상태에서 처음부터 학습하는 것보다는 어느 정도 학습된 모델에서 이어 학습하는 방식이 속도나 정확도 측면에서 훨씬 유리하다.- P331
전이 학습으로 학습을 해도 학습 연산량이 꽤 크기 때문에 CPU로 학습은 거의 불가하고 무조건 GPU를 써야 한다. GPU는 꽤 고가여서 개인 컴퓨터에 설치되어 있지 않은 경우도 많다. 하지만 걱정 안 해도 된다. 구글 코랩을 쓰면 무료로 GPU를 한번에 12시간까지 사용할 수 있다. 월 1만원 결제하는 유료회원으로 가입하면 최대 24시간 한 번에 사용할 수 있다.- P332
이미지 생성 기술은 생성적 적대 신경망Generative Adversarial Network, GAN 알고리즘을 활용한다. 생성적 적대 신경망 알고리즘은 진짜 이미지의 확률 분포를 추정하여 가짜 이미지를 생성하는 과정이다. 이 과정에서 생성자와 적대자가 상호작용하는데 생성자는 가짜 이미지를 생성하고 적대자는 가짜 이미지 감별 역할을 한다. 반복 훈련으로 알고리즘의 성능이 우수해지면 적대자가 진짜인지 가짜인지 판별을 잘 못하게 되는 지점이 발생한다. 그때 학습을 종료하면 된다. 다만 이 알고리즘은 수렴하는 모델을 만들기가 꽤나 까다롭다. 하이퍼 파라미터 튜닝이 꽤 어려운 알고리즘이라 초보자들은 접근하기 어려울 수 있다.- P333
이미지 처리 알고리즘은 텍스트 마이닝과 더불어 AI 빅데이터 분석 분야 중 가장 연구가 활발한 분야이다. 또한 앞으로도 전망이 매우 밝아 AI 빅데이터 분석으로 진로를 잡은 독자 분들이 도전해볼 수 있는 좋은 분야이다. 다만 다수의 학습 셋이 필요하고 학습 연산량도 큰데 단순 반복 작업도 많이 필요해 끈기와 집념이 더욱 요구되는 분야이다. 그래도 이미지 처리에 능한 AI 빅데이터 전문가가 되면 다른 분야의 AI 빅데이터 전문가보다도 훨씬 좋은 대우를 받을 수 있기에 충분히 도전해볼만한 가치가 있다.- P336
책을 읽었으면 자신이 할 수 있는 범위 안에서 최대한 행동으로 실천해보기 바란다.- P337
일단 목표를 세우고 공부를 시작하기 바란다. 그것도 지금 당장 시작해보기 바란다. 개인의 실력과 환경에 따라서 이 책의 내용대로 공부하는 데 1년이 걸릴 수도 있고 3년이 걸릴 수도 있다. 그래도 일단 도전해보는 자세가 중요하다. 도전해보고 안 될 수도 있지만 도전했다는 시도 자체가 앞으로의 인생에 큰 도움이 될 것이다.- P338
공부하는 가운데 어려움이 닥칠 수 있을 것이다. 그때마다 주눅 들지 말고 ‘나는 AI 빅데이터 전문가가 꼭 될 것이다‘ 혹은 ‘나는 AI 빅데이터 전문가다‘라고 스스로 다짐하며 용기를 내기 바란다. 그래도 공부하는 가운데 어려움이 있다면 저자에게 개인적으로 이메일을 보내거나 SNS 메신저 등으로 연락을 주기 바란다. 저자가 할 수 있는 범위에서는 도움을 주도록 노력할 것이다.- P338
마음을 먹고 시작하는 것도 중요하지만 결국에는 이를 지속하느냐도 매우 중요하다. 공부의 성과는 끈기와 집념에 있다고 생각한다. 공부하기로 마음먹고 시작했지만 끈기와 집념이 부족하다면 중도에 쉽게 포기하기 쉽다. 중고등학교처럼 강제로 학교에서 시키지도 않는 공부를 성인이 되어서 갑자기 하는 것은 어려운 일이기 때문이다. 그러나 저자는 독자 여러분 모두가 한번 사는 인생에 열정을 지니고, 배우고 싶은 분야를 열심히 공부하여, 나중에 그 당시 공부했던 시간에 대해 보람을 느끼면 좋겠다는 바람이 있다. 그리고 그 과정에서 이 책이 좋은 길잡이가 되기를 기원한다.- P339
주석(Annotation): 머신러닝 학습 전 사람이 정답을 정하는 과정이다.- P340
집중(Attention) 구조: 디코더에서 예측하는 시점(time step)마다 인코더의 전체 정보를 다시 참고하는 구조를 말한다. 단, 전체를 같은 비율로 참고하는 것이 아니라, 해당 시점에서 예측해야 할 정보와 연관이 있는 입력 정보 부분을 좀 더 집중해 참고한다.- P340
오토인코더(Autoencoder): 비지도 학습으로 데이터를 학습할 때 사용되는 신경망의 한 종류다. 신경망에서 신호 안에 있는 ‘노이즈‘를 무시하도록 학습해 데이터를 차원 감소시키려는 것이다.- P340
오토스케일링(Autoscaling): 클라우드 컴퓨팅에서 활성된 서버의 연산자원량을 동적으로 조정하는 방법이다.- P340
단어 가방(Bag of words): 자연어 처리(Natural language processing, NLP) 및 정보 검색(IR)에 사용하도록 단순화시킨 단어의 모음이다. 이를 이용해 텍스트(문장 또는 문서 등)는 문법 및 단어 순서와 상관없이 다중성을 유지한다.- P340
Bert: 구글에서 개발한 자연어 처리 학습 기술이다. 특정 분야가 아닌 모든 자연어 처리분야에서 좋은 성능을 내는 범용 언어 처리 모델이다.- P340
합성곱 신경망(Convolutional neural network, CNN): 이미지나 영상과 같은 데이터를 처리할때 주로 사용하는 신경망 모델이다. 데이터의 지역적 특징을 모델에 반영할 수 있다.- P340
CRUD: 데이터베이스에서 데이터를 다루는 기본적인 기능인 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)를 일컫는 말이다.- P340
탐색적 자료 분석(Exploratory data analysis, EDA): 데이터를 수집했을 때 다양한 각도에서 관찰하고 이해하는 과정을 의미한다.- P340
ELMo: 2018년에 제안된 새로운 단어 임베딩 방법론이다. 사전 훈련된 언어 모델(Pre-trained language model)을 사용하여 단어를 임베딩하기 전에 전체 문장의 성격을 파악한다.- P341
전문가 시스템(Expert System): 특정 분야에 대한 전문적인 지식을 정리하고 표현하여 컴퓨터에 기억시켜 일반인도 이 전문 지식을 이용할 수 있도록 하는 시스템이다.- P341
생성적 적대 신경망(Generative adversarial network, GAN): 비지도 학습에 사용되는 인공지능 모델이다. 정답이 없는 데이터 안에서 생성자와 판별자라는 신경망 2개가 서로 정답을 내려고 경쟁하면서 효율적인 학습 결과를 이끌어낸다.- P341
GPU: 컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하여 결과값을 모니터에 출력하는 연산 장치다.- P341
게이트 순환 유닛(Gated recurrent unit, GRU): 순환 신경망의 한 종류다. 출력, 입력, 삭제할 정보를 적절히 구분하는 게이트의 개념을 이용해 필요한 데이터 위주로 빠르게 모델을 학습하는 LSTM을 보완한 것이다. 이전 데이터 중 필요없는 것을 리셋하는 리셋 게이트와 필요한 최신 데이터의 비율을 갱신하는 업데이트 게이트만 이용해 모델의 학습 속도를 높인다.- P341
피인용지수(Impact Factor): 학술지의 영향력을 평가하는 지표다.- P341
사물인터넷(Internet of things, IoT): 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술이다.- P341
캐글(Kaggle): 2010년 설립되었고 성능 좋은 데이터 예측 및 분석 모델을 만들기 위해 경쟁하는 대회 플랫폼이다.- P341