이 포스트는 한빛미디어에서 출간한 'TinyML (초소형 머신러닝)' 을 읽고 작성한 서평입니다.
책 소개
본 도서에서는 딥러닝과 임베디드 시스템의 결합으로 어떠한 환경에도 적용할 수 있는 작은 모델을 훈련하는 방법을 소개합니다.
머신러닝이나 마이크로 컨트롤러를 다룬 경험이 없더라도 책에서 소개하는 다양한 프로젝트를 단계별로 따라가다 보면 실제 구현까지 할 수 있도록 자세히 설명하고 있습니다.
이 책에서 다루는 내용
- 마이크로컨트롤러용 텐서플로 라이트
- 오디오, 이미지, 가속도계 데이터로 머신러닝(딥러닝) 모델 학습
- 음성 인식, 제스처 인식 등 임베디드 기기에서 작동하는 머신러닝 애플리케이션
- 아두이노를 비롯한 저전력 마이크로컨트롤러에 머신러닝 탑재
- 지연, 에너지 사용, 모델 크기, 바이너리 크기 최적화 기법
- 머신러닝 필수 사항과 자신만의 모델 훈련 방법
- 애플리케이션 디버깅, 개인 정보 보호, 보안을 고려한 설계 노하우
책을 읽은 후
책 소개에서도 나와있듯이 이 책은 딥러닝과 임베디드 시스템의 결합으로 일반적인 모델이 아닌 초소형 모델을 구축하는 것을 목표로 합니다. 책에서 말하는 초소형 모델은 주변에서 볼 수 있는 스마트 스피커의 음성 인식, 자동차의 비전 인식, 스마트폰의 지문 인식 등에 사용되고 있으며, 일반적인 고용량 딥러닝 모델을 성능은 최대한 유지하면서 최적화를 통해 가볍게 만든 모델이라고 생각하시면 됩니다.
이 책은 총 21개의 챕터로 구성되어 있지만, 제가 내용 측면으로 재구성한 챕터는 크게 5가지로 구분되었습니다.
1. 기초 개념 소개 (CH 1~6)
- 임베디드, TinyML 개념 설명
- 머신러닝 기초 및 딥러닝 절차 설명
- 머신러닝 환경 세팅, TinyML 'Hello World' 실습
2. 실습1: 호출어 감지 App. 만들기 (CH 7~8)
- 음성 명령 데이터셋에 훈련된 18KB 모델을 사용하여 음성 오디오 분류 애플리케이션 구축
3. 실습2: 인체 감지 App. 만들기 (CH 9~10)
- 카메라로 캡처한 이미지를 분류하는 임베디드 애플리케이션 구축
4. 실습3: 마술 지팡이 App. 만들기 (CH 11~12)
- 신체 움직임을 이해하여 다양한 주문을 실행할 수 있는 애플리케이션 구축
5. TinyML 깊게 이해하기
- 마이크로컨트롤용 텐서플로라이트, 자신만의 TinyML App. 설계하기, 최적화
총평
▶ 주관적인 평점 : 4.5점 / 5.0점
이 책을 리뷰 도서로 받고 서론을 읽으면서 임베디드, 마이크로컨트롤러 이야기에 약간 당황 했었습니다. 도서 제목만 보고 모델 최적화, 경량화에 대한 내용만 생각하고 있다가 더 넓은 범위까지 설명하고 있어 살포시 두통이.. ㅎㅎ
그러나 초반 걱정과 달리 책을 통해 얻고자 했던 최적화, 경량화 정보 뿐만 아니라 실제 서비스 구축까지 이해할 수 있는 좋은 계기가 되었고, 마이크로 컨트롤러에 대한 호기심을 자극하게 되었습니다.
또한, Chapter 13부터 21까지 이어지는 경량화, 최적화에 대한 다양한 정보들은 업무 참고용으로 활용하기 좋은 내용들이라 책을 가까이 두고 보게될 것 같습니다.
딥러닝 모델의 최적화, 경량화에 대한 관심이 있으신 분들에게 추천드리는 책입니다.
관련 링크