모바일폰에서 동작하는 딥러닝 모듈의 성능을 알아보자. (AI-Benchmark)

클릭 >> Hello, world !! (from ShadowEgo)

들어가며.

최근 몇 년간 딥러닝 기술의 발전과 함께 Machine Intelligence 가 비약적으로 향상되어 왔고 아직까지 그 성장세가 여전하다. 초기 딥러닝 모델은 많은 연산량을 필요로 했기에 서버나 PC의 GPU 에서만 주로 동작했으나, 모바일 프로세서의 발전과 모델의 경량화, 그리고 모바일 환경에 최적화된 라이브러리의 등장에 힘입어 이제는 모바일폰에서도 딥러닝 모델을 사용하는 것이 가능해졌다. 장면(scene) 인식, 얼굴 인식, 영상 화질의 개선, 음성 인식과 같은 많은 응용들에서 필요로 하는 인식 과정이 서버가 아닌 작은 용량의 모바일폰 안에서 수행되는 것이다.

물론, 영상/음성 데이터를 서버로 전송하고, 서버에서 처리한 결과를 다시 전송받는 형태의 Cloud 기반 인식도 가능하지만, 반응속도가 중요한 서비스에서는 모바일폰에서의 인식이 필수적이다.

그렇다면, 과연 모바일폰에서 동작하는 딥러닝 모듈의 속도는 어느 정도나 될까? 데스크탑 상에서 GPU 를 활용하는 경우에 비해서 얼마나 느릴까? 이러한 의문들을 해결해주는 고마운 사이트가 바로 AI-Benchmark 이다 [1], [2]. AI-Benchmark 에서는 MobileNet, ResNet, InceptionNet 등과 같은 대표적인 딥러닝 모델들이 여러 타입의 모바일폰에서 실제로 어느 정도의 속도로 동작하는지 측정한 결과를 소개하고 있다.

그림 1.  http://ai-benchmark.com/ranking.html 페이지의 화면

벤치마크에는 어떠한 앱과 뉴럴 네트워크 모델이 포함되어 있는가?

벤치마크가 체감 성능을 잘 반영하기 위해서는 실제로 많이 활용되는 뉴럴 네트워크 모델들을 사용해야 한다. AI-Benchmark 에 포함된 문제는 물체 인식, 얼굴 인식, 문자 인식 등 9개 이고, 각 문제에 대해 대표적인 뉴럴 네트워크 모델 1-2개를 사용하였다. (http://ai-benchmark.com/tests.html 참조) 각 문제와 문제에 사용된 뉴럴 네트워크 모델은 아래와 같다.

  • 물체 인식 / MobileNet V2
  • 물체 인식 / Inception V3
  • 얼굴 인식 / MobileNet V3
  • 여러 물체 동시 인식 / MobileNet V2
  • 문자 인식 / CRNN / Bi-LSTM
  • Deblurring / PyNET
  • Super Resolution / VGG-19
  • Super Resolution / SRGAN
  • 보케 시뮬레이션 / U-Net
  • Semantic Segmentation / DeepLab-V3+
  • Photo Enhancement / DPED-ResNet
  • Text Completion / LSTM

Text completion 을 제외하면 모두 영상 처리에 관련된 문제인 것이 다소 아쉬운 부분인데, 특히 모바일폰에서 많이 사용되는 음성 인식, 번역 응용 등이 포함되지 않은 것이 아쉽다.

어떠한 환경에서 측정하는가?

우선 AI 벤치마크는 텐서플로우를 사용한다. 텐서플로우가 모바일 장치에 대해 가장 많은 지원을 하고 있다는 점을 고려하면 당연한 선택으로 보인다. PyTorch 진영에서도 모바일 지원을 시작했지만 아직 텐서플로우와의 격차가 크다.

안드로이드에서 테스트 되었으며, CPU Float, CPU Integer, NNAPI Float, NNAPI Integer 구성을 포함한다. CPU vs NNAPI (GPU 또는 NPU 사용), Float vs Quantized Integer 간에는 각기 장단점이 있으므로 각 환경에서 따로 평가할 필요가 있다. 예를 들어, Float 모델의 경우, 데스크탑 환경에서 사용하는 Float 모델을 그대로 사용할 수 있고 그 정확도가 높다는 장점이 있다. Integer 모델의 경우, 더 빠르게 동작하고 Memory 를 적게 사용한다는 장점이 있다. 또한, 최신 모바일폰에는 GPU 또는 NPU 의 가속기가 탑재되어 있지만, 가속기가 없는 환경에서는 CPU 에서 딥러닝 모델을 사용하는 경우도 있다.

모바일폰에서의 처리 속도는 PC GPU 에 비해 얼마나 느린가?

그림 2. 초당 처리할 수 있는 이미지 수 비교 [2]

AI-Benchmark 논문에서 비교한 초당 처리할 수 있는 이미지수는 그림 2와 같다 (InceptionNet-V3 구조 사용). 모바일폰 SOC 중 가장 좋은 성능을 내는 HiSilicon Kirin 990 의 경우, 1초에 약 55 장의 이미지를 처리할 수 있어 GTX 1060 (초당 140 이미지 처리) 대비 40% 정도의 성능을 보였다. 이것은 모바일 장치에서도 실시간 처리에 문제가 없다고 판단할 수 있는 수준이며, PC GPU 와 모바일 SOC 의 크기, 전력 소모량, 가격을 고려하면 모바일 SOC 가 더 효율적이라고 볼 수 있다.

단, 이 비교에서는 batch size, half/full precision 등에서 차이가 있었음을 감안해야 한다.

모바일폰 성능의 발전

또 하나 주목해야 할 점은 모바일폰 SOC 성능의 발전속도이다. 2017년 모델인 Galaxy S8 (Exynos 8895) 에서의 InceptionNet 인식 속도는 121 ms 이었는데, 2020년 모델인 Galaxy S20 (Exynos 990) 에서는 58 ms 이다. 3년만에 처리 속도가 2배로 늘었다. 딥러닝 모델에 특화된 NPU (Neural Processing Unit) 를 탑재한 HiSilicon Kirin 990 에서는 처리속도가 무려 13 ms 으로 더 줄어든다.

마무리

모바일폰에서 딥러닝 모델을 사용하고자 하는 개발자, 연구자라면 꼭 한번 벤치마크 결과를 확인해 보길 추천한다. CPU/GPU, Float/Integer 모델 선택, 최소 지원 모바일폰 사양을 결정하는데 큰 도움이 될 것이다.

References

  • [1] http://ai-benchmark.com/
  • [2] Ignatov, Andrey, Radu Timofte, Andrei Kulik, Seungsoo Yang, Ke Wang, Felix Baum, Max Wu, Lirong Xu, and Luc Van Gool. “Ai benchmark: All about deep learning on smartphones in 2019.” In 2019 IEEE/CVF International Conference on Computer Vision Workshop (ICCVW), pp. 3617-3635. IEEE, 2019.

카테고리: Trends of Data, Machine Learning, A.I. | 댓글 남기기

2020 연구개발특구 AI 특성화 기업 역량강화 지원사업

클릭 >> Hello, world !! (from ShadowEgo)

2019년에 이어 2020년에도 ‘AI 특성화 기업 역량강화 사업’(AI 역량강화)이 진행됩니다. 이번 사업에도 인포리언스는 기술공급 기관으로 참여합니다. 이 사업에서는 AI 기술을 필요로 하는 수요기업들을 대상으로 기술 수요기업들과 기술 공급기업(기관)을 매칭하여 컨설팅을 진행하고 초기 파일럿 프로젝트를 함께 수행하면서 수요기술에 대한 이해를 높입니다. 더 나아가, 기술을 직접 구현하여 비즈니스 창출 가능성을 직접 확인하도록 합니다. (사업 공고 바로 가기)

정보 확인 : 2019년 AI 역량강화 사업에서의 인포리언스

카테고리: Inforience NEWS | 댓글 한 개

보건의료영역에서 인공지능의 역할

클릭 >> Hello, world !! (from ShadowEgo)

2020월 7월17일부터 18일까지 서울 스위스 그랜드 호텔에서 개최된 재활의학학술대회 AOCPRM 2020 [1] 의 한국보건산업진흥원 세션 [2] 에서 인포리언스는 “보건의료영역에서의 인공지능의 역할“이라는 제목으로 발표를 했습니다.

자세한 발표내용은 추후에 공개될 예정입니다.

카테고리: Inforience NEWS | 댓글 남기기

AI 특성화 기업 역량강화 사업에서의 인포리언스

클릭 >> Hello, world !! (from ShadowEgo)

AI 특성화 기업 역량강화 사업’(AI 역량강화)은 AI 기술을 접목하여 비즈니스를 창출하고자 하는 중소기업을 지원하는 것을 목적으로 연구개발특구진흥재단에서 발주한 사업입니다. 이 사업에서는 AI 기술을 필요로 하는 수요기업들을 대상으로 기술교육을 진행하거나 기술 수요기업들과 기술 공급기업(기관)을 매칭하여 컨설팅을 진행하고 초기 파일럿 프로젝트를 함께 수행하면서 수요기술에 대한 이해를 높입니다. 더 나아가, 기술을 직접 구현하여 비즈니스 창출 가능성을 직접 확인하도록 합니다.

인포리언스는 2019년에 시작된 첫번째 AI 역량강화 사업(주관기관: 링크제니시스)에 기술 공급기관으로 참여하여 3개 기술수요기업의 프로젝트를 담당하게 되었고, 그 중 2개 기술수요기업의 프로젝트를 2020년 6월 말에 먼저 완료하였습니다.

첫번째는, (주)몰팩바이오가 신청한 뇌종양 슬라이드 분석 기법 개발 프로젝트이며, 이미지 분석 기법을 적용한 케이스입니다. 인포리언스는 이 프로젝트에서 종양이 나타난 양성 뇌종양 슬라이드 패치들과 종양이 나타나지 않은 음성 뇌종양 슬라이드 패치들을 스스로 구분하는 clustering 방법과 classification 방법을 구현하여 공급하였습니다.

두번째는 (주)법정문서가 신청한 지능형 판례문서 분석 시스템 개발 프로젝트이며, 자연어 처리 기술을 활용한 케이스입니다. 인포리언스는 이 프로젝트에서 사용자가 찾고자 하는 사건판례 문서들을 지능적으로 검색하기 위한 인공지능 기반 검색 알고리즘을 개발하여 제공하였습니다.

이번에 프로젝트를 완료한 두 기술 수요기업들은 이번 프로젝트의 결과를 바탕으로 다음 단계의 연구개발을 진행하고 투자를 유치할 계획이라고 합니다. 2020년 7월부터는 세번째 수요기업의 프로젝트를 진행하고 있으며, 9월에 완료할 계획입니다. 이 프로젝트와 관련된 소식은 해당 수요기업과의 협의를 거친 후에 공개 가능한 내용이 있으면 포스팅할 예정입니다.

2020년에도 연구개발특구진흥재단에서 두번째로 ‘AI 특성화 기업 역량강화 사업’을 추가 발주하였으며, 이번 사업(주관기관: 한국원자력연구원)에도 인포리언스가 기술 공급기관으로 참여합니다. 2020년 9월 중에 기술 수요기업을 모집하는 공고가 발표될 예정입니다.

카테고리: Inforience NEWS, Tech. of Inforience | 댓글 2개

낙하하여 충돌한 물체에 대한 정보를 추정할 수 있을까?

클릭 >> Hello, world !! (from ShadowEgo)

개요

인포리언스는 한국원자력연구원과 함께 “원자력분야의 인공지능기술 고도화를 위한 연구”를 수행하였으며, 이 연구의 세부주제들 중의 하나로 금속이물질이 원자로의 내부에 부딪힐 때 발생하는 충격파를 측정한 가속도 센서 데이터를 바탕으로 금속이물질에 대한 정보를 추정하는 방법을 고안하였다.

그림 1. Task 개념도

추정할 정보는 금속이물질이 낙하한 위치정보 (X, Y), 그리고 금속이물질의 속도(V)와 질량(M)이며, 그림 1에서 볼 수 있는 바와 같이 4군데에 설치된 가속도 센서가 데이터를 수집한다. (Z는 추정 대상에서 제외)

본 프로젝트의 내용을 기반으로 한국원자력연구원이 주최하고 Dacon에서 주관하는 AI 경진대회가 열릴 예정이므로 (https://dacon.io/competitions/official/235614/overview/) 이번 포스트에서는 아주 간략한 소개만 하기로 한다.

모델 구현

이번 실험에서 활용한 학습 모델은 크게 나누어 2개의 파트로 구성되는데, 4개의 센서 시계열 데이터로부터 feature를 추출하는 네트워크와 추출된 feature를 바탕으로 X, Y, M, V를 추정하는 네트워크가 포함된다. 때로는 아주 간단한 모델이 생각보다 좋은 결과를 만들어 내기도 한다.

추정 결과

그림 2. X, Y, M, V값의 추정 결과

그림 2는 X, Y, M, V값의 추정 결과와 실제 값 사이의 오차를 시각화한 것이다. 이 그림만 보면, M값에 대한 추정오차가 상대적으로 커 보이므로, M값을 추정하는 것이 가장 어렵다는 잠정적인 결론을 내릴 수 있다.

덧붙이는 말

금속이물질이 낙하하여 충돌하는 순간은 매우 짧기 때문에, 순간적으로 기록되는 데이터를 활용해야 한다는 것이 이 프로젝트의 특징이라고 할 수 있다. 가속도 센서 데이터가 보이는 시계열 패턴을 자세히 소개하는게 좋겠지만, 경진대회가 곧 열릴 예정이므로 이번 포스트에서는 간략한 결과만 소개하였다. 경진대회를 거치고 나면 이 포스트에서 소개한 결과보다 훨씬 더 정확한 추정값들을 생성해 내는 모델들이 많이 쏟아져 나올 것이다.

카테고리: Inforience NEWS, Tech. of Inforience | 댓글 남기기

염증이 나타난 폐 병리조직 슬라이드를 찾아낼 수 있을까?

클릭 >> Hello, world !! (from ShadowEgo)

Introduction

인포리언스는 현재 연구개발특구진흥재단[1]에서 발주한 AI 역량강화사업에 기술 공급기관으로 참여하고 있다. 2019년에 시작되어 현재에도 진행 중인 이 사업에서 인포리언스는 인공지능 기술을 필요로 하는 기술 수요업체들을 대상으로 pilot 프로젝트를 진행하고 있다. 인포리언스가 담당한 수요업체들은 각각 이미지 데이터, 텍스트 데이터, 그리고 복합 데이터에 대한 분석과정을 필요로 하고 있으며, 그 중에서 이미지 데이터 분석 프로젝트는 (주)몰팩바이오[2]의 의뢰를 받은 것으로, 뇌종양 병리조직 슬라이드를 대상으로 한다.

본 포스트에서는 병리조직 슬라이드를 분석하는 과정에 대한 아주 기초적인 연습 결과로서, (pilot 프로젝트를 위한 pilot 프로젝트…) 학술연구용으로 잘 정제된 소량의 공개 데이터에 대해 1차적으로 실험해 본 기본적인 결과를 소개한다.

데이터 출처와 설명

병리조직 슬라이드는 의료 데이터로서, 쉽게 구해서 활용할 수 없다. 그러나 연구자들을 위해 공개된 슬라이드 데이터들을 구할 수는 있는데, 이번 실험에서는 펜실베니아 주립대의 Information Processing & Algorithm Laboratory [3][4]에서 공개한 데이터를 활용해 보기로 한다.

데이터는 Hematoxylin-Eosin (H&E) 염색을 거친 신장, 폐, 비장의 병리조직 슬라이드들로 구성되어 있는데, 병증이 나타난 것들과 정상인 것들이 고르게 포함되어 있다. 폐 슬라이드의 경우, 병증이 나타난 슬라이드와 정상인 슬라이드는 각각 150여 개이다. (신장과 비장 슬라이드들도 비슷한 구성이다.)

그림 1. 폐 슬라이드 구분

Classification Task

레이블링이 잘 된 슬라이드 데이터를 활용할 수 있는 상황이고, 이미지를 분류하는데 활용할 수 있는 좋은 딥러닝 모델들이 많이 소개되고 있으니, 일단 이번 포스트에서는 Inception_v3[5] 모델을 써서 정상 슬라이드와 병증이 나타난 슬라이드를 구분하는 classifier를 만들 수 있는 지 확인하는 기본적인 작업을 해보자.

그림 2. Pre-trained 된 Inception_v3 모델을 그대로 활용한 결과 (병증 클래스:0, 정상 클래스:1)

그림 2는 fine-tuning 과정없이 폐 병리조직 슬라이드를 모두 pre-trained 된 Inception_v3 모델에 입력했을 때의 classification performace를 보여준다. 당연한 결과겠지만, 성능이 매우 좋지 못하다.

그림 3. Fine-tuning 과정을 거친 Inception_v3 모델의 성능 (병증 클래스:0, 정상 클래스:1)

그림 3은 폐 병리조직 슬라이드의 70%를 써서 fine-tuning한 Inception_v3 모델에 나머지 30%의 데이터를 입력했을 때의 classification performance를 보여준다. 그림에서 확인할 수 있는 바와 같이 fine-tunning 과정을 거친 모델은 아주 좋은 성능을 보인다.

잠정적인 결론

기초 실험임에도 불구하고 좋은 classification 결과를 얻기는 했지만, 병리조직 슬라이드의 분석과 관련된 실제 문제는 이렇게 간단하지 않다. 일반적으로 슬라이드의 크기와 해상도가 매우 크고, 병증이 작은 면적에 소량만 나타나는 경우도 많아 전문가가 모든 슬라이드에 대해 빠짐없이 레이블링 작업을 하는 것도 불가능하기 때문이다. 과거의 연구들을 보면, 슬라이드를 작은 크기의 패치로 나누어 각 패치의 병증 포함 여부를 분석하고 이를 바탕으로 전체 슬라이드에 포함된 병증의 분포를 파악하는 시도를 하는 경우가 많다. 사실 이번 실험은 적절한 전처리 과정과 전문가에 의한 정확한 레이블링 과정을 거친 패치 이미지들을 활용한 것이라 실제 현장의 문제에 비해 문제의 난이도가 많이 낮다고 볼 수 있다.

인포리언스는 병리조직 슬라이드에 대한 다양한 분석과 탐색 방법론을 연구하고 있는데, 실제 현장에서 쓰일 수 있는 방법론을 개발하는데 꼭 필요한 프로세스와 노하우를 찾아가고 있다.

References

카테고리: Inforience NEWS, Tech. of Inforience | 댓글 한 개

Bayesian Network으로 해상사고 데이터를 분석해보자.

클릭 >> Hello, world !! (from ShadowEgo)

YouTube 영상:

들어가 보자.

딥러닝 기반의 모델들이 주목을 받기 전에는 Support Vector Machine, Decision Tree (Random Forest), Bayesian Networks 등과 같은 모델 또는 여러 모델들을 묶어서 활용하는 ensemble 방법론들이 기계학습 분야의 주전 멤버 역할을 했었다. 이러한 방법들 중에서, Graphical model 중의 하나인 Bayesian Networks은 classifier의 역할을 수행할 수 있을 뿐만 아니라, 데이터에 포함된 변수들 사이의 causal relationship을 파악할 수 있게 하고, 특정 변수들의 값이 확정(evidence)되었을 때 이것을 바탕으로 나머지 변수의 값을 inference(추론)할 수 있게 한다는 특징을 가지고 있다.

Bayesian network?

그림 1. 가상의 기계 동작 Bayesian network

그림 1은 기계가 동작하는 상황에서 측정할 수 있는 값들을 활용하여 학습한 가상의 Bayesian network을 나타낸다. 그림의 각 노드는 random variable이며, 고유의 hypothesis 및 그 hypothesis를 진실이라고 믿게 될 확률을 parameter로 담는다. 노드와 노드 사이를 연결하는 화살표(arc)는 hypothesis들 사이의 dependency를 나타내며, 직접 연결된 노드들과 간접적으로 연결된 노드들이 존재할 수 있다. 다른 노드로부터 화살표를 받지 않는 노드(그림 1의 ‘움직임’ 노드)는 prior probability를 parameter로 가지며, 다른 노드로부터 화살표를 받는 노드는 conditional probability를 parameter로 가지게 된다.

이 Bayesian network이 제대로 만들어진 거라면, 우리는 이것을 통해서 상황을 파악, 추론하는 것과 관련된 여러가지 작업을 수행할 수 있다. 예를 들어, 기계가 내는 소리에 대한 정보를 알면 기계의 수행기능을 추론할 수 있게 되고, 현재의 수행기능을 파악하게 되면 기계가 어떤 진동을 내고 있을 지 추론할 수 있게 되는 것이다. 재미있는 것은 소리 노드와 진동 노드 사이에는 직접적인 화살표(arc)가 없지만, 기계가 현재 내고 있는 소리에 대한 정보를 알게 되면 진동에 대한 정보를 추론할 수 있다는 점이다.

Inference?

Bayesian network의 구조는 도메인 지식을 가진 사람이 직접 만들 수도 있고, 수집된 데이터가 충분할 경우에는 structure learning을 통해 만들 수 있다. 또한 각 노드의 parameter들도 데이터로부터 학습할 수 있다. Bayesian network의 structure learning과 parameter learning에 대해서는 추후에 알아보기로 하고, 이번 포스트에서는 이미 학습이 완료된 Bayesian network에 inference 과정을 적용하면 무엇을 할 수 있을 지 알아보자.

Bayesian network에서의 inference는 특정 노드들에 해당하는 데이터가 확인되면 (evidence) 확인되지 않은 나머지 노드들의 값들을 추론해 내는 과정인데, 크게 나누어 Causal(Top-Down) inference와 diagnostic(bottom-up) inference로 구성된다. 노드와 노드 사이의 화살표 방향대로 inference를 하게 되면 – 그림 1에서 수행기능 정보를 바탕으로 진동 정보를 추론하는 경우 – 데이터가 확인되지 않은 노드의 값에 대한 belief를 casual inference를 통해 얻어내는 것에 해당하고, 화살표를 거슬러 올라가는 방향으로 inference를 하게 되면 – 그림 1에서 진동 정보를 바탕으로 수행기능 정보를 추론하는 경우 – 데이터가 확인되지 않은 노드의 값에 대한 belief를 diagnostic inference를 거쳐 얻어내는 것에 해당한다.

그림 2. Evidence 와 belief

그림 2는 evidence와 belief의 개념을 간단히 보여주고 있다. 만약 총 6개의 변수(V1 ~ V6)가 들어있어야 할 데이터에서 V1과 V5의 데이터 값만 확인된 상황이고, structure와 parameter가 모두 잘 학습된 Bayesian network가 수중에 있다면, 그림 2에서처럼 V3의 값에 대한 추론결과(belief)도 얻을 수 있는 것이다. (물론 V2, V4, V6도 얻을 수 있다.) 이러한 과정을 belief propagation이라고 표현하기도 하는데, 확인된 특정 노드의 정보(evidence)가 Bayesian network의 structure와 parameter를 타고 흘러 다른 노드의 belief를 얻게 하고, 이 belief가 또 다시 흘러 나머지 노드들의 belief를 얻게 한다는 의미에서 붙여진 것이다. 만약 V6가 classification 문제의 target value라면, 이러한 inference 과정은 Bayesian network를 classification 문제에 적용하는 것이 된다.

해상사고 데이터

표 1. 해상사고 데이터의 각 세부 항목의 내용

그럼 이제부터는 실제 데이터를 바탕으로 학습된 Bayesian network를 활용하여 Bayesian network의 inference 과정이 어떻게 응용될 수 있을 지 느껴보자. 본 포스트에서는 공공데이터포털[1]에서 다운로드한 8년(2011년 ~ 2018년) 동안의 해상조난사고 상세데이터를 사용한다. 8년 동안 수집된 사고 케이스는 모두 16,000여 건이며 각 사고 데이터에는 발생일시, 관할해경서, 발생해역, 발생유형, 발생원인, 기상특보, 사고선박수, 구조인원, 부상인원, 사망인원, 실종인원, 사고위치, 위도, 경도, 선종, 톤수 등의 세부 내용들이 포함되어 있다. 이번 포스트는 Bayesian network의 inference 과정에 대해 느껴보는 것을 목적으로 하므로, 이들 중에서 7개 항목만 선택해서 활용한다. (표 1 참조)

학습된 모델 및 활용

그림 3. 7가지 세부 항목의 해상 사고 데이터로 학습된 Bayesian network 모델들

그림 3은 우리가 선택한 데이터를 학습한 2가지 종류의 Bayesian network을 보여준다. Bayesian network의 structure와 parameter를 학습시키기 위한 방법론에는 여러가지가 있는데, 동일한 데이터를 바탕으로 학습해도 방법론에 따라 structure와 parameter의 구성이 달라지게 된다. 이번에는 모델 #2의 Bayesian network으로 inference 과정을 수행해 보자.

표 2. ‘발생유형’ 항목에 대한 inference 결과의 예시

표 2는 발생일시, 관할해경서, 발생해역, 발생원인, 기상특보, 선종 정보의 6개 데이터를 알게 되었을 때 (evidence) 사고의 발생유형을 inference한 결과의 일부를 보여준다. 표 2의 6번 결과에 따르면, 학습된 Bayesian network는 날씨가 양호한 6월에 제주 근방의 영해에서 모터보트가 부주의한 운항을 하게 되면 전복사고를 겪을 수 있다는 정확한 inference 결과를 출력했음을 알 수 있다. 또한 표 2의 2번 결과에 따르면, 날씨가 양호한 12월에 울산의 영해-EEZ에서 관리가 소홀한 어선이 겪게 될 사고의 유형은 ‘침수’일 것이라는 inference 결과를 출력하였는데, 실제 데이터에 나타난 사고의 유형은 ‘화재’였다는 것을 알 수 있다. 즉, inference 결과가 틀린 셈이다.

재미있는 것은, 해상사고 데이터에 대한 배경지식의 부족으로 인해 기관손상과 추진기손상의 차이점을 모르는 상황에서는, 8번째 결과에서 inference 결과로 얻은 ‘기관손상’과, 실제 데이터에 해당하는 ‘추진기손상’이 서로 다르다는 것을 어떻게 해석해야 할 지 모호하다는 사실이다.

정리하자면…

이번 포스트에서는 Bayesian network의 개념에 대한 기초적인 내용을 소개하고, 해상사고 데이터를 예시로 하여 Bayesian network의 inference 과정의 개념을 소개하였다. 위에서 소개한 inference의 전체적인 정확도를 분석해 보거나, 동일한 과정을 다른 데이터에 적용해 보면 더욱 흥미로울 것이다.

그리고…

사실, 이와 비슷한 기초적인 분석작업을 2014년에도 수행한 적이 있다. 세월호 사고가 너무나 가슴을 아프게 했기 때문이다. 이번 포스트를 위한 데이터를 준비하는 과정에서도, 세월호 사고가 계속 머리 속을 맴돌았다.

그림 4. 해상사고에서의 사망인원 수 그래프 (2011 ~ 2018)

그림 4는 이번 포스트에서 활용한 16,000여 건의 사고 데이터의 사망인원 수를 그래프화한 것이다. 한 데이터의 사망인원 수가 다른 데이터에 비해 유독 많은 것을 알 수 있는데, 해당 데이터의 세부내용은 다음과 같다.

  • 발생일시 : 2014-04-16 08:58
  • 관할해경서 : 목포
  • 발생해역 : 협수로
  • 발생유형 : 침몰
  • 발생원인 : 운항부주의
  • 기상특보 : 양호
  • 사고선박수 : 1
  • 구조인원 : 172
  • 사망인원 : 295
  • 실종인원 : 9
  • 사고위치 : 전남 진도군 조도면 병풍도 북방 1.5해리
  • 선종 : 여객선

공공데이터 포털에서 획득한 데이터는 세월호 사고를 이와 같이 담담하게 기록하고 있다. 다른 해상사고에서 유명을 달리하신 모든 분들, 그리고 세월호 사고로 인해 우리의 곁을 떠난 모든 분들의 명복을 빈다. 그리고 유족 분들의 마음에도 평화가 찾아오기를 바라는 마음이다.

데이터 분석과 기계학습 기술이 계속 발전하면, 언젠가, 이런 사고들을 미연에 방지할 수 있도록 하는 방법이 구현될 수 있을까? 인포리언스는 꿈을 꿔 보기로 했다. 미약하나마 도움이 될 수 있도록 노력해 보기로 했다.

Reference

[1] https://www.data.go.kr/

카테고리: Tech. of Inforience | 댓글 한 개

2020, 인포리언스의 시작

클릭 >> Hello, world !! (from ShadowEgo)

2020년, 새해가 밝았습니다. 새해에도 인포리언스의 연구개발은 계속됩니다. 인포리언스가 진행하고 있는 연구개발은 내부적으로 진행하고 있는 중장기 연구와 주로 단기적으로 진행하는 외부 협력 연구로 나누어집니다. 다른 관점에서는, 외부에 공개할 수 있는 연구와 공개할 수 없는 연구로 나눌 수도 있습니다.

내부 연구 (중장기)

인포리언스는 사용자들이 소비, 활용해야 하는 대용량 정보들의 구조와 흐름을 효율적으로 파악하게 하기 위한 알고리즘과 시각화 방안을 연구하고 있습니다. 이 연구를 위해 다양한 분야의 데이터들을 수집, 분석하는 작업을 진행하고 있으며, 이 연구의 초기 결과는 2020년 상반기에 공개할 수 있을 것으로 예상하고 있습니다. 이 연구의 결과는 다양한 분야의 비즈니스에서 활용될 수 있습니다.

외부 협력 연구 (단기)

현재 진행 중인 외부 협력 연구들 중에서 현 시점에서 공개할 수 있는 것들은 다음과 같습니다.

AI 특성화 기업 역량강화 사업

‘AI 특성화 기업 역량강화 사업’은 AI 기술을 접목하여 비즈니스를 창출하고자 하는 중소기업을 지원하는 것을 목적으로 연구개발특구진흥재단에서 발주한 사업입니다. 이 사업에서는 AI 기술을 필요로 하는 수요기업들을 대상으로 기술교육을 진행하거나 기술 수요기업들과 AI 기술을 보유하고 있는 기술 공급기업(기관)을 매칭하여 컨설팅 및 초기 파일럿 프로젝트를 함께 수행하면서 수요기술에 대한 이해를 높이고 구현 및 비즈니스 창출 가능성을 직접 확인하도록 합니다. 인포리언스는 이 사업에 기술 공급기업으로 참여하고 있으며, 기술 수요기업들이 필요로 하는 AI 기술을 연구, 개발하는 일을 수행합니다.

원자력분야의 인공지능기술 고도화를 위한 연구

이 사업은 원자력연구원의 지능형컴퓨팅연구실에서 수행하고 있는 ‘지능형 컴퓨팅 기술의 원자력 분야 접목을 위한 사전 연구’의 세부 연구 주제들 중의 하나로서, 원자력 분야에 접목할 수 있는 인공지능 기술에 대한 이해를 높이고 해당 기술들을 고도화하는 방안을 탐구합니다. 더 나아가, 관련 기술을 직접 개발, 실험하여 해당 기술의 활용성을 구체적으로 확인하는 작업을 포함합니다.

출연연 연계 기업수요맞춤 R&BD 지원사업

대전시 및 연구개발특구진흥재단에서 발주한 이 사업은 ‘대전지역 기업의 공공기술 활용성 제고’를 목적으로 차세대 기술·산업 클러스터링을 지원하는 내용으로 진행되고 있습니다. 인포리언스는 이 사업에 부분적으로 관여하고 있습니다.

기타 연구들

위의 연구개발 프로젝트들 외에도, 내부적으로 기획하고 있는 몇 가지 연구 주제들과, 추가적으로 외부 기업(기관)들과 협의하고 있는 프로젝트들이 있습니다. 인포리언스는 이러한 프로젝트들의 주제와 방향을 구체화하기 위한 사전 준비작업도 진행하고 있습니다.

인포리언스, 2020

2020년에는, 데이터 분석 및 AI 관련 기술의 발전과 실용적 활용을 위한 쉽지 않은 여정에서, 인포리언스가 좀 더 중요한 역할을 수행할 수 있도록 힘차게 노력하고자 합니다.

카테고리: Inforience NEWS | 댓글 남기기

IT 응용 분야들 사이의 관련성을 간단히 측정해 보자.

클릭 >> Hello, world !! (from ShadowEgo)

들어가는 말

최근의 IT(Information Technology)는 활용되지 않는 분야가 거의 없으며, 각 분야의 특성과 요구사항에 맞추어 여러가지 형태로 활용된다. 만약 내가 일하고 있거나 관심을 가지고 있는 분야의 IT기술과 그와는 다른 분야에서 주로 활용되고 있는 IT기술들 사이의 전체적인 유사도나 관련성을 측정할 수 있다면 어떤 일을 할 수 있을까? 자신이 보유한 전문 기술이 어떤 분야에서 활용될 수 있을지 파악할 수 있게 되어 자신의 커리어 루트를 설계할 때 도움이 되지 않을까? 또는 관련성이 높은 다른 분야의 세부 기술을 찾아내어 자신의 분야에 적용해 볼 수 있지 않을까? 아니면 관련성이 낮은 분야의 세부 기술들을 자신의 분야에 적용해 볼 방법을 남들보다 먼저 생각해 볼 수 있지 않을까?

이번 포스트에서는, 아주 기초적인 방법을 통해, IT가 활용되고 있는 여러 응용 분야들 사이의 관련성을 측정한 결과를 확인한다.

실험 방법

이번 실험에서는 총 12개 분야 – robot, drone, education, game, car, chatbot, farm, climate, factory, military, transportation, health – 의 특성을 모델링해 보기로 한다. 각 분야의 특성은 2019년 1월부터 2019년 9월까지 약 9개월 동안 IT분야에 공개된 연구 논문들 중에서 각 분야의 관련 논문들을 모아 word 들의 분포 패턴(word frequency)을 추출하여 모델링한다. Word들의 분포 패턴(word frequency)을 추출하는 과정을 수행하기 전에 NLP(Natural Language Processing) 분야에서 일반적으로 활용하는 전처리(preprocessing) 과정을 거친다.

Word들의 분포 패턴으로 각 분야의 특성을 모델링하였으므로, 확률 분포들 사이의 유사도를 측정하는 방법 또는 수치 리스트들 사이의 유사도를 측정하는 방법을 통해 각 분야의 모델들 사이의 관련성을 측정한다.

극초기 실험 결과 및 매우 주관적인 해석

그림 1. 로봇 분야와 다른 분야들 사이의 관련성

그림 1은 로봇 분야와 다른 분야들 사이의 관련성을 나타낸다. 자동차, 공장, 드론과 같은 응용 분야와 관련성이 높은 반면에, 의료, 기후, 챗봇 분야와의 관련성은 상대적으로 낮게 측정되었다. 로봇이 기계 장치로 구성된다는 점을 고려할 때 자연스러운 결과이다.

그림 2. 드론 분야와 다른 분야들 사이의 관련성

그림 2는 드론 분야와 다른 분야들 사이의 관련성을 나타낸다. 예상할 수 있는 것과 같이 군사 분야가 가장 관련성이 높았다. 예상과 달리 농업과 기후 분야와의 관련성이 상대적으로 낮게 측정되었다.

그림 3. 교육 분야와 다른 분야들 사이의 관련성

그림 3은 교육 분야와 다른 분야들 사이의 관련성을 나타낸다. 게임과 의료 분야가 교육 분야와 상대적으로 가장 관련된 것으로 측정되었는데, 이 결과에 대해서는 다양한 해석이 가능할 듯 하다. 챗봇 분야와의 관련성이 상대적으로 낮게 나온 것도 예상을 벗어났다.

그림 4. 게임 분야와 다른 분야들 사이의 관련성

그림 4는 게임 분야와 다른 분야들 사이의 관련성을 나타낸다. 로봇, 교통(수송), 교육 분야와의 관련성이 상대적으로 높게 측정되었고, 챗봇, 기후, 농업 분야와의 관련성이 낮게 측정되었다.

그림 5. 자동차 분야와 다른 분야들 사이의 관련성

그림 5는 자동차 분야와 다른 분야들 사이의 관련성을 나타낸다. 자동차가 기계 장치의 일종이라는 점에서 로봇, 교통(수송), 공장 분야들과 상대적으로 높은 관련성을 보이는 것은 자연스러워 보인다.

그림 6. 챗봇 분야와 다른 분야들 사이의 관련성

그림 6은 챗봇 분야와 다른 분야들 사이의 관련성을 나타낸다. 의료, 게임, 교육 분야와의 관련성이 상대적으로 높았고, 기후, 농업, 드론 분야와는 관련성이 낮았다. 그러나, 챗봇 분야는 전체적으로 타 분야와의 관련성이 낮게 측정되었다.

그림 7. 농업 분야와 다른 분야들 사이의 관련성

그림 7은 농업 분야와 다른 분야들 사이의 관련성을 나타낸다. 농업에 가장 큰 영향을 미치는 기후 분야가 높은 관련성을 보이는 것은 자연스러워 보인다.

그림 8. 기후 분야와 다른 분야들 사이의 관련성

그림 8은 기후 분야와 다른 분야들 사이의 관련성을 나타낸다. 그림 7에서 이미 확인한 바와 같은 맥락에서, 기후 분야와 가장 관련성이 높은 분야는 농업 분야이고, 교통(수송) 분야가 그 뒤를 따르는 것으로 나타났다.

그림 9. 공장 분야와 다른 분야들 사이의 관련성

그림 9는 공장 분야와 다른 분야들 사이의 관련성을 나타낸다. 기계 장치와 밀접한 관계를 가진다는 점에서 볼 때, 로봇, 교통(수송), 자동차 분야와의 관련성이 높게 측정되는 것은 자연스럽다.

그림 10. 군사 분야와 다른 분야들 사이의 관련성

그림 10은 군사 분야와 다른 분야들 사이의 관련성을 나타낸다. 그림 2에서 확인한 바와 같이 군사 분야와 드론 분야는 관련성이 높으며, 로봇 분야가 그 뒤를 따른다.

그림 11. 교통(수송) 분야와 다른 분야들 사이의 관련성

그림 11은 교통(수송) 분야와 다른 분야들 사이의 관련성을 나타낸다. 자동차, 로봇, 공장 분야와의 관련성이 상대적으로 높고, 농업, 의료, 챗봇 분야와의 관련성은 상대적으로 낮다.

그림 12. 의료 분야와 다른 분야들 사이의 관련성

그림 12는 의료 분야와 다른 분야들 사이의 관련성을 나타낸다. 의료 분야는 교육, 게임, 챗봇 분야와 상대적으로 높은 관련성을 보였다.

잠정적인 결론과 future works

이번 실험은 아주 기초적인 결과이지만, 나름대로 의미있는 패턴도 보인다. 가장 재미있는 것은 대부분의 관련 상위 분야에 로봇 분야가 포함되어 있다는 점이다. 로봇 분야에서는 기계, 전자, 컴퓨터 등 거의 모든 공학 분야의 세부 기술들이 활용되고 있을 것이므로 자연스러운 결과일 수 있다.

이와는 달리, 챗봇 분야는 전체적으로 다른 분야들과의 관련성이 낮았는데, 이와 관련하여서는 좀 더 세밀한 분석이 필요하다. 그러나, 이 결과를 그대로 받아들일 수 있다면, 관련성이 낮은 분야와 서로 관련을 지어서 아이디어를 내보는 것도 재미있을 것이다. 예를 들면, 서로 관련성이 낮은 게임 분야와 챗봇 분야의 세부 기술의 결합, 기후 분야와 챗봇 분야의 세부 기술의 접목 등을 생각해 볼 수 있을 것이다. (물론, 이미 접목된 기술들도 있겠지만.)

이번 실험은 소량의 데이터에 아주 기초적인 방법을 적용한 결과이므로 발전의 여지가 아주 많이 남아있다. 가장 먼저, 단순한 word의 분포 만으로 해당 분야의 특성을 충실히 모델링하는 데에는 한계가 있을 것이므로 발전된 다른 방법들을 활용해 볼 수 있을 것이다. 또한 논문 데이터 외의 다른 데이터를 함께 활용하는 것이 더 세밀한 모델링을 가능하게 할 수도 있다. 인포리언스는 이와 관련된 다양한 주제로 연구를 진행하고 있다.

카테고리: Tech. of Inforience, Trends of Data, Machine Learning, A.I. | 댓글 남기기

인포리언스의 2019 여름나기

클릭 >> Hello, world !! (from ShadowEgo)

정보의 흐름을 파악하는 연구

그림 1. 정보 흐름… 흐름적인 흐름.

인포리언스는 정보의 흐름을 파악하는 연구를 진행하고 있습니다. 첫번째 응용으로서, IT기술의 흐름을 정확하게 파악하기 위해, 전통적인 데이터 분석 방법에서부터 최근에 주목받고 있는 deep learning 관련 기술에 이르는 다양한 방법들을 복합적으로 적용하고 있습니다. 아주 기초적인 몇 가지 결과들에 대해서는 이전 포스트들[1,2,3] 에서 소개하였습니다. 인포리언스는 새로운 분석 결과를 추출하는 것에서 그치지 않고, 사용자로 하여금 지속적으로 변화, 진화하는 정보의 흐름에서 원하는 지식을 뽑아내어 활용할 수 있게 하는 서비스를 디자인, 개발하고 있습니다. 샘플 서비스를 곧 출시할 예정이며, 이후에는 전문적인 응용 서비스로 발전시킬 계획입니다.

외부 협력 과제 수행

인포리언스는 외부 연구기관과의 협력 연구도 진행하고 있습니다. 연구기관 내부에 축적된 데이터들을 분석하고 machine learning 기술을 적용하는 것과 관련된 연구입니다. 또한 위에서 언급한 정보 흐름의 파악과 관련된 기술을 해당 연구 기관으로부터 확보한 논문 자료들에 적용해 보고 있습니다.

AI 기술의 실제적인 적용을 위한 노력

인포리언스는 AI 및 machine learning 기술들을 다양한 실제 문제들에 응용하여 유의미한 결과를 내기 위한 노력에도 동참하고 있습니다. 이와 관련한 활동내역은 다음과 같습니다.

(1) AI 커뮤니티 활동

그림 2. “Applying AI to your business” 발표 (2019년 8월 AI 프렌즈 멤버쉽 데이)

지난 7월에는 대덕연구단지 내 AI 커뮤니티들 중의 하나인 ‘AI 프렌즈’의 기술 세미나 세션에서 “Pattern detection & interpretation“라는 제목으로 발표를 하였습니다. 이 발표에서는 데이터에서 유의미한 패턴을 탐지, 해석하는 과정에서 고려해야 할 전반적인 내용을 포괄적으로 언급하였습니다. 발표자료는 AI 프렌즈 홈페이지 [4]에서 확인할 수 있습니다. 또한 8월에는 인공지능을 실제 비즈니스에 적용하는데 필요한 준비과정(‘Applying AI to your business’)에 대해서도 발표하였는데, 이와 관련된 내용은 이전 포스트 [5]에서 더 자세히 소개하였습니다.

(2) 문화재정책연구원 워크샵 참가

그림 3. “문화유산 이야기콘텐츠와 인공지능 기술이 만날 수 있을까” 발표자료의 일부

지난 9월에는 한국문화재정책연구원 및 문화재청에서 주관하는 “문화유산 이야기콘텐츠 활용 강화방안 연구” 워크샵에서 “문화유산 이야기콘텐츠와 인공지능 기술이 만날 수 있을까”라는 제목으로 발표를 하였습니다. 다양한 형태로 산재해 있는 문화유산 이야기콘텐츠를 적절히 수집, 정제하고 활용할 경우, 우리 문화유산에 대한 이해를 높일 수 있습니다. 특히, 이 워크샵에서는 문화재 해설사, 극작가, 뮤지컬 감독, 성악(도예)가, 문화관광가이드 등 서로 다른 분야에서 활동하고 계시는 전문가분들의 이야기를 들을 수 있어서 추후에 인포리언스의 기술 적용 영역을 확대해 나가는 과정에 필요한 융합적 시각을 갖추는 데에 아주 큰 도움이 되었습니다.

(3) 공공기관과의 협력 도모 및 프로젝트 런칭

2019년 여름에는 인공지능 기술의 확대 적용에 많은 관심을 보여주시는 공공기관과의 만남의 자리도 많았습니다. 특히 연구개발특구진흥재단에서는 인공지능 기술을 필요로 하는 기업체들과 기술 보유 기관을 연계하여 실제적인 결과를 만들어 내고자 많은 노력을 해주셨습니다. 인포리언스는 연구개발특구진흥재단에서 발주한 관련 프로젝트에도 참여할 예정입니다. 가장 최근에는 대전 지역의 AI 발전 방향에 대하여 의견을 교환하고자 대전정보문화산업진흥원 담당자분들께서 인포리언스 사무실을 직접 방문해 주시기도 했습니다.

References

카테고리: Inforience NEWS | 댓글 남기기