글_ 마크 패트릭(Mark Patrick), 마우저 일렉트로닉스(Mouser Electronics)
머신러닝 알고리즘이 빠르게 우리 생활의 일부로 자리잡고 있다. 머신러닝(ML)은 인공지능(AI)의 한 갈래로서, 생각보다 훨씬 더 보편적으로 사용되고 있다. 우리는 의식하지도 못한 사이에 알고리즘의 도움을 받고 있다. 스마트폰 비서, 교통 경로 안내, 웹 검색 결과 같은 것들이 모두 알고리즘을 실행해서 이루어지는 것이다. 산업용, 자동차, 의료용 애플리케이션으로 서로 얽혀 있는 다수의 알고리즘을 복잡하게 실행함으로써 ML 알고리즘이 왜 특정한 결과를 추론하게 되었는지 이해해야 할 필요성이 높아지고 있다. “설명가능한 AI(explainable AI: xAI)”는 알고리즘이 특정 결과를 추론하기 위해서 근거가 된 백그라운드 요소들을 설명하기 위해서 등장한 용어이다.
이 글에서는 xAI란 어떤 것이고, 첨단 머신러닝 애플리케이션으로 왜 xAI를 중요하게 고려해야 하는지 설명한다.
생활의 일부가 된 AI와 머신러닝
머신러닝(ML)이 언제부터 우리 생활의 일부분이 되었는지는 정확히 말하기 어렵다. 우리가 의식하지도 못하는 사이에 서서히 ML이, 테크놀로지와 일상적인 상호작용을 위한 필수적인 요소로 자리잡았다. 우리가 가장 먼저 머신러닝을 접한 것은 구글 보이스(Voice)나 애플 시리(Siri) 같은 스마트폰 비서를 통해서다. 적응식 주행 제어(ACC), 동적 차선 보조(ALA), 도로 표지판 인식 같은 자동차를 위한 첨단 운전자 보조 시스템(ADAS)으로도 ML이 빠르게 도입되었다. 그 밖에도 우리가 모르는 무수히 다양한 애플리케이션에 ML이 사용되고 있다. 금융기관이나 보험회사들 역시도 다양한 문서처리 업무에 ML을 사용하고 있으며, 의료 진단 시스템도 ML을 사용해서 환자 MRI 스캔이나 테스트 결과로 특정한 패턴을 식별한다. 우리는 ML이 빠르게 의사결정을 할 수 있는 능력에 점점 더 많이 의존하고 있다.
알고리즘은 어떻게 의사결정을 하는가?
최근에 일부 소비자들과 윤리 단체들이 머신러닝 기반 애플리케이션이 내리는 의사결정을 신뢰할 수 있는가에 대해서 우려를 제기하고 있다.
ML 시스템이 어떻게 확률로서 결과를 판단하는지 이해하기 위해서 ML이 어떻게 작동하는지 간략하게 살펴보자.
머신러닝은 알고리즘을 사용해서 인간 뇌의 의사결정 과정을 모방한다. 사람 뇌의 뉴런을 수학적 모델로 복제해서 알고리즘을 작성한다. 사람 뇌와 마찬가지로 인공 신경망(ANN) 알고리즘 역시도 습득된 지식을 바탕으로 확률로서 결과를 추론한다. 우리 모두가 태어나는 순간부터 그러고 있듯이, ANN도 학습을 통해서 지식을 늘려간다. ANN을 학습시키는 것이 모든 머신러닝 모델의 필수적인 부분이다. 또한 특정한 작업마다 적합한 신경망 모델이 다르다.
컨볼루션 신경망(CNN)은 이미지 인식에 적합하며, 순환 신경망(RNN)은 음성 인식에 적합하다. 신경망 모델이 다량의 학습 데이터를 처리하는 것을 통해서 지식을 습득한다. CNN의 경우에는 예를 들어서 동물을 인식하기 위해서 수만 장의 각기 다른 동물 사진과 각각의 동물 이름이 필요할 것이다. 각각의 종과 성별과 다양한 각도와 다양한 주변 빛 조건으로 다수의 이미지가 필요하다. 학습 단계를 마쳤으면 신경망 모델이 처음 접해보는 테스트 이미지 데이터를 사용해서 테스트를 실시한다. 모델이 각기 테스트 데이터 이미지에 대해서 확률로서 결과를 추론한다. 학습 데이터가 많고 신경망을 최적화하면 할수록 추론 확률은 높아진다.
요구되는 작업으로 추론 확률이 충분히 높다고 판단되었을 때 그 머신러닝 모델을 실제로 적용할 수 있다.
머신러닝을 적용한 산업용 에지(Edge) 기반 애플리케이션으로서 모터의 진동 측정을 통해 모터 상태를 모니터링하는 것을 들 수 있다. 산업용 모터로 진동 센서(피에조, MEMS, 디지털 마이크로폰 등)를 부착해서 상세한 진동 시그니처를 기록할 수 있다. 현장에서 기계적 결함(베어링 마모, 드라이버 문제 등)이 알려진 모터를 사용해서 학습 데이터의 깊이를 더할 수 있다. 결과적인 모델이 모터를 지속적으로 모니터링하고 모터 상태에 관해서 유용한 통찰을 제공한다. 저전력 마이크로컨트롤러로 이와 같은 신경망을 실행하는 것을 타이니엠엘(TinyML)이라고 한다.
설명가능한 AI란 무엇을 말하는가?
앞서 언급했듯이 일부 ML 기반 애플리케이션의 출력은 어떤 면에서 결과가 편향되었다고 하는 우려를 낳고 있다. ML 및 AI 알고리즘이 편향성을 나타낸다고 하는 논란에는 여러 측면이 연관되어 있으며, 모든 ML 결과는 좀더 투명하고, 공정하고, 윤리적이고, 도덕적이어야 한다는 인식이 확대되고 있다. 대부분의 신경망은 “블랙박스”로서 동작한다. 다시 말해서 데이터를 입력하면 결과를 출력하는데, 그 결과를 어떻게 판단했는지에 관해서는 알려주지 않는다. 이에 따라서 알고리즘의 의사결정으로 그 결정의 근거를 설명해야 할 필요성이 높아지고 있다. 이 결과는 법적으로 정당하고 윤리적이어야 한다. 그러므로 설명가능한 AI(xAI)여야 한다.
이 글에서는 xAI의 기본 개념만을 살펴보고 있다. 더 자세한 내용을 원하는 독자들을 위해서는 반도체 회사인 NXP와 경영 컨설팅 회사인 PWC가 제공하는 화이트 페이퍼가 유용한 참고 자료가 될 것이다.
그림 1은 윤리적이고 신뢰할 수 있는 AI 시스템을 개발하기 위해서 NXP가 제안하는 전일적인 접근법을 보여준다.
xAI의 요구를 이해하기 위해서 두 가지 애플리케이션을 예로 들어보자.
자동차 – 자율 주행차 제어
당신이 사람이 운전하는 택시에 승객으로 탔다고 해보자. 택시 기사가 너무 천천히 가고 있으면 당신은 이렇게 물을 것이다. “왜 이렇게 천천히 가세요?” 그러면 기사는 날씨가 추워 도로가 결빙되어서 차가 미끄러지지 않게 하려고 그런다고 대답할 것이다. 하지만 자율 주행 택시에서는 기사에게 왜 그렇게 결정했냐고 물을 수가 없다. 저속으로 운전하기로 결정한 것은 서로 얽혀 있는 다수의 머신러닝 시스템이 실행된 결과이다(환경, 마찰력 등등). 다양한 요소들을 종합적으로 고려해서 저속으로 운전하는 것이 신중하겠다고 판단한 것이다. 자율 주행차 시스템의 또 다른 부분은 탑승자가 안심할 수 있도록 그러한 의사결정을 내린 이유를 청각적으로 및 시각적으로 알려주어야 한다.
의료 – 환자 진단
자동화된 시스템을 사용해서 다양한 타입의 피부 상태를 빠르게 진단하고자 한다고 해보자. 환자의 피부 이상을 촬영한 사진을 애플리케이션으로 입력하고 이 출력을 피부과 의사에게 전달하고 처치를 제안할 수 있다. 사람의 피부 질환은 다양한 양상으로 나타날 수 있다. 어떤 것은 일시적이고, 어떤 것은 만성적이고, 또 어떤 것은 통증이 따를 수 있다. 피부 질환의 심각한 정도는 비교적 사소한 것에서부터 생명을 위협하는 것까지 다양할 수 있다. 가능한 질환의 양상이 다양하기 때문에 의사는 정확한 처치를 내리기에 앞서서 추가적인 분석이 필요하다고 느낄 수 있다. 이럴 때 AI 애플리케이션이 진단 확률과 여타의 가능성 높은 추론 결과를 보여준다면 이 전문가가 좀더 많은 정보를 가지고 판단할 수 있을 것이다.
위의 간단한 두 사례는 왜 xAI를 중요하게 고려해야 하는지 잘 보여준다. 금융이나 행정에 관련된 기관에서 AI와 ML을 사용할 때는 더 많은 윤리적 및 사회적 딜레마를 고려해야 할 것이다.
그러므로 임베디드 개발자가 머신러닝 시스템을 설계할 때는 다음과 같은 점들을 고려해야 한다:
• 학습 데이터가 추론하고자 하는 아이템을 충분히 폭넓고 다양하게 반영하는가?
• 테스트 데이터가 식별하고자 하는 모든 집단을 충분한 양으로 평등하게 반영하고 있는가?
• 알고리즘의 추론 결과에 대해서 설명이 필요한가?
• 결과로 배제한 확률에 대해서 신경망이 대답할 수 있는가?
• ML 애플리케이션이 처리하는 데이터로 법규적 제약이 적용되는가?
• ML 애플리케이션이 악의적인 공격으로부터 보안적인가?
• ML 애플리케이션이 신뢰할 수 있는가?
머신러닝 애플리케이션 개발
위에서 언급한 TinyML 사례 같이 현재 많은 임베디드 개발자들이 머신러닝 기능을 적용한 프로젝트를 개발하고 있다. ML은 에지 기반 플랫폼으로만 한정되지 않는다. 대규모 산업용 구축에도 ML을 도입할 수 있다. ML의 산업용 구축 사례로는 머신 비전, 상태 모니터링, 안전과 보안 같은 것들을 들 수 있다.
주요 반도체 회사들이 머신러닝 애플리케이션용으로 최적화된 마이크로컨트롤러와 마이크로프로세서 제품을 내놓고 있다. 그러한 예로서 NXP의 iMX-8M Nano-Ultralite 애플리케이션 프로세서를 들 수 있다. NXP iMX-8M Plus 시리즈에 속하는 것으로서 Nano-Ultralite(NanoUL)는 최대 1.5GHz 속도로 동작하는 쿼드 Arm® Cortex®-A53 코어와 최대 750MHz로 동작하는 범용 Cortex-M7을 채택함으로써 실시간 및 저전력 작업에 사용하기에 적합하다.
그림 2는 iMX-8M NanoUL의 주요 기능 블록을 보여주는 것으로서, 커넥티비티, 주변장치 인터페이스, 보안 기능, 클록, 타이머, 워치도그, PWM 블록을 포함한다는 것을 알 수 있다. 컴팩트한 NanoUL 애플리케이션 프로세서는 크기가 11mm x 11mm이다.
iMX-8 Plus NanoUL을 사용해서 애플리케이션을 개발하는 개발자들을 지원하기 위해서 NXP는 i.MX 8M Nano UltraLite 평가 키트를 제공한다(그림 3). 이 키트는 베이스보드와 NanoUL 프로세서 보드로 이루어졌으며, 머신러닝 애플리케이션을 개발하기 위해서 필요한 일체의 포괄적인 플랫폼을 제공한다.
또한 저전력 에지 MCU를 사용해서나 강력한 MPU를 사용해서나 ML 디자인을 개발하는 것을 돕기 위해서 머신러닝 자원, 프레임워크, 개발 플랫폼을 비롯한 풍부한 에코시스템이 제공된다.
TensorFlow Lite는 Google의 TensorFlow 엔터프라이즈급 오픈 소스 ML 프레임워크를 변형한 것으로서, 전적으로 자원 제약적인 저전력 마이크로컨트롤러 용으로 설계되었다. Arm Cortex-M 시리즈 코어로 실행되며 18kB의 메모리만을 차지한다. TensorFlow Lite는 임베디드 디바이스로 모델 구축을 위해서 필요한 모든 자원을 제공한다.
Edge Impulse는 좀더 포용적인 접근법으로, 학습 데이터를 소화하고, 특정 애플리케이션에 적합한 신경망 모델을 선택하고, 테스트를 수행하고, 최종적으로 에지 디바이스로 구축하는 것에 이르기까지 모든 것을 포함하는 포괄적인 솔루션을 제공한다. Edge Impulse는 오픈 소스 ML 프레임워크로서 TensorFlow와 Keras를 사용해서 실행할 수 있다.
xAI의 진화
임베디드 ML 애플리케이션을 어떻게 설계하고 개발할지 이해하는 것은 임베디드 시스템 엔지니어가 자신의 역량을 끌어올릴 수 있는 중요한 기회가 될 것이다. 최종 애플리케이션의 사양과 동작을 고려하는 것과 더불어, 설명가능한 AI의 원칙을 어떻게 적용할 것인가 하는 것 또한 중요하게 고려해야 한다. 설명가능한 AI가 머신러닝에 대한 우리의 생각을 바꿔놓고 있으며, 임베디드 개발자들은 머신러닝 애플리케이션으로 좀더 풍부한 맥락, 확신, 신뢰를 불어넣음으로써 AI의 진화에 기여할 것이다.
[원고 제공]
Mouser Electronics
Authorised Distributor
www.mouser.com