초소형 머신러닝 TinyML - 모델 최적화부터 에지 컴퓨팅까지 작고 빠른 딥러닝을 위한 텐서플로 라이트
피트 워든.대니얼 시투나야케 지음, 맹윤호 외 옮김 / 한빛미디어 / 2020년 8월
평점 :
장바구니담기


AI 음성비서 서비스를 하면 "OK 구글" 구글 어시스턴트를 먼저 생각할 것입니다. 빠르게 발전하는 인공지능은 일상생활을 같이 할 정도로 많은 영역에서 사용되고 있습니다. 구글 어시스턴트 팀은 14KB짜리 모델을 사용해 “OK 구글”이란 말을 인식하게 했는데요. 이는 마이크로컨트롤러에도 탑재 가능한 용량입니다. 이처럼 초소형 머신러닝에 관련된 내용을 담고 있는 초소형 머신러닝 TinyML 저서를 소개합니다. 


우선 사람들이 인공지능(AI), 기계학습(ML)에 대해 생각할 때 우리는 일반적으로 음성서비스 비서, 자율 로봇, 자율 주행차에 대해 구체적으로 생각합니다. 그러나 기계학습의 세계는 그 이상을 포괄하고 있는데요. 컴퓨터가 명시적으로 지시하지 않고 예측, 결정, 또는 분류를 수행할 수 있도록 수학적 모델을 학습할 때마다 기계학습(ML)을 사용합니다. 


저서 초소형 머신러닝 TinyML은 딥러닝과 임베디드 시스템의 결합으로 작은 기기에 음성 인식, 제스처 감지 등 놀라운 능력을 부여하는데요. 어떠한 환경에도 적용할 수 있는 작은 모델을 훈련하는 방법론을 담고 있습니다. 머신러닝이나 마이크로컨트롤러를 다룬 경험이 없어도 다양한 프로젝트를 단계별로 따라 하다 보면 실무 활용 능력을 키울 수 있게 많은 예시가 있습니다. 


처음에는 TinyML에 필요한 모든 머신러닝을 배웁니다. 기본 개념을 다루고  몇 가지 도구를 살펴본 후 간단한 머신러닝 모델을 훈련해보는데요. 소형 하드웨어에 중점을 둘 것이기에 딥러닝의 이론이나 그 배경이 되는 수학에는 지면을 그리면서 할애하지 않을 것 아닌 도구와 임베디드 장치에 대한 모델을 최적화하는 방법을 자세한 개념들을 설명해줍니다. 특히 주요 용어에 익숙해지도록 도와주며, 일반적인 워크플로우를 이해하게 되어 무엇을 모르는지 더 명확히 알게 될 것입니다.


기본적으로 머신러닝은 컴퓨터를 사용하여 과거 관측치에 따라 사물을 예측하는 기술입니다. 또한, 이 저서에서는 텐서플로 팀의 고민을 반영해 모델의 정확도를 최대한 유지하면서 어떻게 모델을 경량화할 것인지, 저전력 상황 속에서 어떻게 전력을 최적화하여 모델을 실행할 것인지, 물리적 크기가 아주 작아 모델을 실행하기 어려운 컴퓨팅 환경에서는 어떻게 모델을 동작시킬지 등 상세한 설명과 예제 코드로 설명합니다.


이뿐만 아니라 예제 코드는 소스 코드를 별도로 관리하기 위한 노력의 일환으로 텐서플로 라이트 프로젝트를 포크하여 깃허브( https://github.com/yunho0130/tensorflow-lite ) 공개해 국내 많은 개발자가 손쉽게 텐서플로 라이트에 접근하고 각종 이슈를 공유하며, 해결할 수 있는 공간으로 만들어 일종의 오픈소스 커뮤니티로 가능하고 많은 정보가 있습니다. 그리고 저서 별로도 추가 내용은 추후 유튜브 채널( https://www.youtube.com/myh0130 )에서 영상을 다룰 예정인 점도 있습니다.


대부분의 경우 유용한 기계 학습 알고리즘에는 많은 양의 컴퓨팅 리소스(CPU주기 및 RAM)가 필요하는데요. TensorFlow Lite는 여러 마이크로 컨트롤러에서 실행되는 실험 버전을 출시함으로써 제한된 리소스가 있는 장치에 맞는 모델을 만들 수 있다고 가정하면 임베디드 시스템을 작은 기계 학습 (TinyML) 장치로 전환할 수 있는 점도 있습니다. 


이 저서는 Pete Warden과 Daniel Situnayake 가 모든 환경에 맞도록 충분히 작은 모델을 훈련시킬 수 있는 방법, 기계 학습을 사용해 임베디드 시스템을 구축하려는 소프트웨어 및 하드웨어 개발자에게 이상적으로 활용할 수 있는 TinyML 프로젝트를 단계별로 만드는 과정을 안내하는데요. 이 저서를 통해 기계 학습이나 마이크로 컨트롤러 경험이 없어도 음성 인식기, 사람을 감지하는 카메라, 제스처에 반응하는 경험하시기를 권유 드립니다. 소스 코드 내용을 상세하게 설명해서 딥러닝 지식이 부족하더라도 소스 코드를 이해했는데 무리 없습니다. 


가장 먼저 TinyML을 이해하려면 임베디드 장치의 세계를 이해해야 합니다. 보통 임베디드 장치는 8bit 프로세서를 사용하고 잘 알려지지 않은 독점적인 툴 체인을 사용했기 때문에 이를 시작하는 것은 꽤 막막한 일인데 하지만 아두이노가 표준화된 하드웨어와 함께 사용자 친화적인 통합 개발 환경(IDE)을 도입하면서 크게 진전되는 점 등 개발에 필요한 하드웨어, 소프트웨어, 기본적인 개념이론들을 자세한 설명과 그림, 사진 도형 등으로 독자들에게 쉽게 다가갈 수 있게 보여줍니다. 


Arduino 및 초 저전력 마이크로 컨트롤러로 작업

ML의 필수 사항과 자신의 모델을 훈련하는 방법

오디오, 이미지 및 가속도계 데이터를 이해하도록 모델 학습

TinyML 용 Google 도구 키트 인 마이크로 컨트롤러 용 TensorFlow Lite 살펴보기

애플리케이션을 디버그하고 개인 정보 및 보안을위한 보호 장치를 제공

대기 시간, 에너지 사용량, 모델 및 바이너리 크기 최적화


어떠한 환경에도 적용할 수 있을 정도로 작은 모델을 훈련하는 방법을 알려줍니다. TinyML이라는 새로운 영역에서 더 많은 애플리케이션이 등장하도록 돕는 것이며, TinyML에는 아직 킬러 앱이 없으며 앞으로도 없을 수도 있습니다. 하지만 우리는 TinyML이 해결할 수 있는 문제가 세상에 많이 있다는 사실을 경험으로 알고 있는 점을 생각하면 저서는 독자분들이 문제의 해결책에 익숙해지도록 돕습니다. 농업, 우주 탐사,  의약품, 소비재 등 각 분야의 도메인 전문가에게 문제를 스스로 해결하는 방법에 대해 이해하고 최소한 이러한 기술로 해결할 수 있는 문제가 무엇인지 인식하게 만들어 줍니다. 이처럼 리소스가 제한된 기기에서 기계 학습에 관심 있는 사람이라면 반드시 읽어야 할 책이라고 생각합니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo