메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

초소형 머신러닝 TinyML

모델 최적화부터 에지 컴퓨팅까지 작고 빠른 딥러닝을 위한 텐서플로 라이트

한빛미디어

번역서

판매중

  • 저자 : 피트 워든 , 대니얼 시투나야케
  • 번역 : 맹윤호 , 임지순
  • 출간 : 2020-08-20
  • 페이지 : 568 쪽
  • ISBN : 9791162243411
  • 물류코드 :10341
  • 초급 초중급 중급 중고급 고급
4.8점 (26명)
좋아요 : 33

텐서플로 라이트를 활용한 마이크로컨트롤러 머신러닝 

 

AI 음성비서 서비스를 만드는 구글 어시스턴트 팀은 불과 14KB짜리 모델을 사용해 “OK 구글”이란 말을 인식한다. 이는 마이크로컨트롤러에도 탑재 가능한 용량이다. 초소형 머신러닝 ‘TinyML’은 딥러닝과 임베디드 시스템의 결합으로 작은 기기에 음성 인식, 제스처 감지 등 놀라운 능력을 부여한다. 이 책은 어떠한 환경에도 적용할 수 있는 작은 모델을 훈련하는 방법을 담고 있다. 머신러닝이나 마이크로컨트롤러를 다룬 경험이 없어도 다양한 프로젝트를 단계별로 따라 하다 보면 실무 활용 능력을 키울 수 있을 것이다. 

 

 

▶ 출판사 리뷰

 

텐서플로 라이트로 알아보는 임베디드 머신러닝의 가능성 

 

마이크로컨트롤러에서 머신러닝을 실행할 수 있게 된 것은 비교적 최근 일이며 이 분야는 초기 단계에 있습니다. 머신러닝에는 여러 가지 접근 방식이 있지만 가장 인기 있는 방식은 딥러닝입니다. 이 책의 예제는 딥러닝을 중심으로 합니다. 딥러닝은 마이크로컨트롤러에 적합한 문제를 해결하기 위한 유연하고 강력한 도구입니다. 제한된 메모리와 저성능 장치에서도 딥러닝이 작동할 수 있다는 것을 알면 놀랄 수도 있습니다. 실제로 이 책을 통해 정말 놀라운 일을 해내면서도 작은 장치의 제약 조건에 맞는 딥러닝 모델을 만드는 방법을 배우게 될 것입니다.

 

이 책에는 딥러닝을 연구에서 끝내지 않고 제품까지 이어가기 위한 텐서플로 팀의 고민이 잘 녹아 있습니다. 정확도를 최대한 유지하면서 모델을 경량화하고, 저전력 환경에서 모델을 실행하고, 성능이 낮아 모델을 실행하기 어려운 컴퓨팅 환경에서 모델을 동작시키는 방법을 텐서플로 라이트로 예제를 실행하며 배워보세요. 

 

이 책을 다 읽고 덮을 때, 현재 임베디드 시스템에서 머신러닝을 사용하여 가능한 것이 무엇인지, 앞으로 몇 년 동안 무엇이 실현 가능할지에 대한 아이디어를 얻을 수 있기를 바랍니다.

 

 

이 책에서 다루는 내용

  • 마이크로컨트롤러용 텐서플로 라이트
  • 오디오, 이미지, 가속도계 데이터로 머신러닝(딥러닝) 모델 학습
  • 음성 인식, 제스처 인식 등 임베디드 기기에서 작동하는 머신러닝 애플리케이션 
  • 아두이노를 비롯한 저전력 마이크로컨트롤러에 머신러닝 탑재
  • 지연, 에너지 사용, 모델 크기, 바이너리 크기 최적화 기법
  • 머신러닝 필수 사항과 자신만의 모델 훈련 방법
  • 애플리케이션 디버깅, 개인 정보 보호, 보안을 고려한 설계 노하우

 

 

▶ 추천사

 

“자원이 제한된 장치에서 머신러닝을 구현하려는 이들을 위한 필독서다. AI 발전에 기념비적인 성취라 할 만하다.”

_마시모 밴지, 아두이노 창시자

 

“ARM 기반 마이크로컨트롤러에 머신러닝을 배포하는 예제를 명확하고 재미있게 알려준다.”

_젬 데이비스, ARM 머신러닝 그룹 부사장 

피트 워든 저자

피트 워든

구글의 모바일, 임베디드 텐서플로 기술 책임자다. 애플에서 근무한 이후 제트팩(Jetpac)의 CTO이자 창업자로 일하다가 2014년에 제트팩이 구글에 인수되며 구글에 합류했다. 피트 워든은 텐서플로 팀의 창립 멤버이며 트위터에서 @petewarden으로 활동 중이고 실용적인 딥러닝 블로그 https://petewarden.com을 운영하고 있다.

대니얼 시투나야케 저자

대니얼 시투나야케

구글에서 텐서플로 라이트의 개발자 홍보를 이끌고 있다. 이전에는 대규모로 곤충 단백질을 자동으로 생산하는 기업 타이니 팜(Tiny Farms)을 공동 설립했다. 최근에는 버밍엄 시티 대학교에서 자동 식별과 데이터 캡처 분야 강의를 시작했다.

임지순 역자

임지순

낮에는 계약서와 코드를 두드리고 밤에는 신시사이저와 기타를 난도질하는 공학과 미디어의 주변인이다. 임베디드 프로그래머, 미들웨어 개발자, 프로젝트 매니저, 사업 개발 등 다양한 직군에 종사해왔으며 최근에는 엔터테인먼트 산업에서 프로젝트 관리 업무를 수행하고 있다. 사회적인 덕후로 생존하기 위해 오늘도 코드, 그리고 글과 씨름하고 있다.

 

 

맹윤호 역자

맹윤호

이화여대 신산업융합대학 겸임교수로 데이터 분석 및 AI 강의를 하고 있으며, 카논그룹의 CTO로 재직  중이다. 이전에는 IBM의 Data&AI 팀에서 엔지니어로 근무했으며, 이후 카카오벤처스 패밀리사인 1z Labs를 공동창업한 후, 지분을 매각한 바 있다. 연세대학교에서 데이터 분석 전공으로 석사 과정을 졸업하고 박사 과정을 수료했다. SK C&C, KISTI, NRF, DBpia 등에서 프로젝트를 진행하였으며 Apache Zeppelin, Qiskit, KoGPT-2 등 오픈소스 프로젝트에 기여했다. 삼성, 현대, LG, 딜로이트 등 기업을 대상으로 강연하고 연세대학교, 이화여대, 중앙대학교, 동덕여대, 상명대학교, 순천대학교 등에서도 강연했다. 참여 도서로는 『머신러닝 디자인 패턴』(한빛미디어, 2021), 『Do it 강화 학습 입문』(이지스퍼블리싱, 2021), 『코딩진로』(호모루덴스, 2021), 『초소형 머신러닝 TINYML』(한빛미디어, 2020), 『쉽게 배우는 AWS AI 서비스』(한빛미디어, 2022), 『하이퍼레저 블록체인 개발』(한빛미디어, 2019), 『블록체인의 정석』(지앤선, 2019) 등이 있다. 깃허브에서 @YUNHO0130으로 활동하고 기술 블로그와 유튜브 채널을 운영하고 있다.

CHAPTER 1 서론

1.1 임베디드 장치

1.2 생태계 변화


CHAPTER 2 시작하기

2.1 이 책의 대상 독자

2.2 개발에 필요한 하드웨어

2.3 개발에 필요한 소프트웨어

2.4 이 책에서 배울 내용

 

CHAPTER 3 머신러닝 빠르게 훑어보기

3.1 머신러닝이란 무엇인가

3.2 딥러닝 워크플로

3.3 마치며

 

CHAPTER 4 TinyML ‘Hello World’ 시작하기: 모델 구축과 훈련

4.1 만들고자 하는 시스템

4.2 머신러닝 도구

4.3 모델 구축하기

4.4 모델 학습시키기

4.5 텐서플로 라이트용 모델 변환

4.6 마치며

 

CHAPTER 5 TinyML ‘Hello World’: 애플리케이션 구축

5.1 테스트 작성

5.2 프로젝트 파일 구조

5.3 소스 코드 살펴보기

5.4 마치며

 

CHAPTER 6 TinyML ‘Hello World’: 마이크로컨트롤러에 배포하기

6.1 마이크로컨트롤러란 무엇인가

6.2 아두이노

6.3 스파크펀 에지

6.4 ST마이크로 STM32F746G 디스커버리 키트

6.5 마치며

 

CHAPTER 7 호출어 감지: 애플리케이션 만들기

7.1 만들고자 하는 시스템

7.2 애플리케이션 아키텍처

7.3 테스트 코드

7.4 호출어 듣기

7.5 마이크로컨트롤러에 배포하기

7.6 마치며

 

CHAPTER 8 호출어 감지: 모델 훈련하기

8.1 새로운 모델 훈련

8.2 프로젝트에서 모델 사용

8.3 모델 작동 방식

8.4 나만의 데이터로 훈련하기

8.5 마치며

 

CHAPTER 9 인체 감지: 애플리케이션 만들기

9.1 만들고자 하는 시스템

9.2 애플리케이션 아키텍처

9.3 테스트 코드

9.4 인체 감지

9.5 마이크로컨트롤러 배포

9.6 마치며

 

CHAPTER 10 인체 감지: 모델 훈련하기

10.1 연산 환경 선택

10.2 구글 클라우드 플랫폼 인스턴스 설정

10.3 훈련 프레임워크 선택

10.4 데이터셋 구축하기

10.5. 모델 훈련하기

10.6 텐서보드

10.7 모델 평가하기

10.8 텐서플로 라이트로 모델 내보내기

10.9 다른 카테고리 훈련

10.10 아키텍처 이해

10.11 마치며

 

CHAPTER 11 마술 지팡이: 애플리케이션 만들기

11.1 만들고자 하는 시스템

11.2 애플리케이션 아키텍처

11.3 단계별 테스트

11.4 제스처 감지

11.5 마이크로컨트롤러에 배포

11.6 마치며

 

CHAPTER 12 마술 지팡이: 모델 훈련하기

12.1 모델 훈련하기

12.2 모델의 작동 방식

12.3 나만의 데이터로 훈련하기

12.4 마치며

 

CHAPTER 13 마이크로컨트롤러용 텐서플로 라이트

13.1 마이크로컨트롤러용 텐서플로 라이트란 무엇인가

13.2 빌드 시스템

13.3 새로운 하드웨어 플랫폼 지원

13.4 새로운 IDE나 빌드 시스템 지원

13.5 프로젝트와 저장소 간 코드 변경 사항 통합

13.6 오픈소스에 기여

13.7 새로운 하드웨어 가속기 지원

13.8 파일 포맷 이해

13.9 텐서플로 라이트 모바일 작업을 Micro에 포팅하기

13.10 마치며

 

CHAPTER 14 자신만의 TinyML 애플리케이션 설계하기

14.1 설계 과정

14.2 마이크로컨트롤러가 필요할까, 더 큰 장치가 필요할까?

14.3 무엇이 가능한지 이해하기

14.4 다른 사람의 발자취 따르기

14.5 훈련할 모델 찾기

14.6 데이터 관찰

14.7 오즈의 마법사 방법론

14.8 데스크톱에서 먼저 작동시키기


CHAPTER 15 지연 최적화

15.1 정말 중요한 문제인지 확인하기

15.2 하드웨어 변경

15.3 모델 개선

15.4 양자화

15.5 제품 설계

15.6 코드 최적화

15.7 연산 최적화

15.8 오픈소스에 기여

15.9 마치며

 

CHAPTER 16 에너지 사용 최적화

16.1 직관 기르기

16.2 실제 전력 소모 측정하기

16.3 모델의 전력 사용량 추정

16.4 전력 소모 개선

16.5 마치며

 

CHAPTER 17 모델과 바이너리 크기 최적화

17.1 시스템의 한계 이해

17.2 메모리 사용 측정

17.3 다양한 문제에 대한 모델 정확도와 크기

17.4 모델 선택

17.5 실행 파일 크기 줄이기

17.6 정말로 작은 모델

17.7 마치며

 

CHAPTER 18 디버깅

18.1 훈련과 배포 사이 정확도 손실

18.2 수치의 차이

18.3 알 수 없는 충돌과 중단

18.4. 마치며


CHAPTER 19 텐서플로에서 텐서플로 라이트로 모델 포팅하기

19.1 필요한 Op 이해

19.2 텐서플로 라이트의 기존 Op 범위 살펴보기

19.3 전처리 및 후처리를 애플리케이션 코드로 이동

19.4 Op의 구현

19.5 Op 최적화

19.6 마치며

 

CHAPTER 20 개인 정보, 보안, 배포

20.1 개인 정보

20.2 보안

20.3 배포

20.4 마치며

 

CHAPTER 21 파도를 따라잡기 위하여

21.1 TinyML 재단

21.2 SIG Micro

21.3 텐서플로 웹사이트

21.4 그 밖의 프레임워크

21.5 트위터

21.6 TinyML의 친구들

21.7 마치며

 

부록 A 아두이노 라이브러리 Zip 사용과 생성

부록 B 아두이노에서 오디오 받기

 

한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

TinyML.png

 

 

 

고가의 고성능 장비가 아닌 저렴한 가격의 장비에서 머신러닝을 다룰 있다면 얼마나 좋을까…..그런 것을 만족시켜주는 책이 책이다.

책에서도 언급했지만 H/W S/W 둘다 잘하는 사람들은 거의 없다. 다만 책을 볼려면 H/W S/W 기본 지식은 있어야 같다.

이책은 머신러닝에 대해 간단한 예제를 통해 어떻게 머신러닝 관련 설명이 있고 텐서플로우 혹은 주피터노트북을 사용해 간단한 모델을 만드는 법을 알려주고, 이를 학습하는 방법을 알려주고 있다.

또한 하드웨어 보드가 있으면 직접 코딩을 통해 실습도 가능하도록 되어 있다.

책에서 사용된 보드는 아두이노 나노33 BLE 센스, 스파크펀 에지, ST마이크로 STM32F746G디스커버리 키트이다.

보드 중에 하나라도 있으면 직접 실습을 하면서 진행하면 좋을 것이다.

 

책의 구성은 1,2장은 TinyML이 무엇인지,개발 보드에서 간략한 설명이 3장은 머신러닝 소개 내용, 4,5,6장은 실습 보드를 통한 간단한 실습 내용이고 7~12장까지는 응용 과정으로 되어 있습니다.

13장에서는 마이크로컨트롤러용 텐스플로 라이트에 대해서 다루고, 14장에서는 자신만의 TinyML 애플리케이션을 만들기 위해어떻게 설계해야 하는지를 다룹니다.

15~17장은 TinyML에서의 속도, 에너지사용, 모델과 바이너리 크기 최적화하는 부분을 다루고,  18장은 오류 발생 디버깅 관련 내용이 19장은 텐서플로에서 텐서플로 라이트로모델 포팅하는 방법, 20장은 개인 정보, 보안, 배포 내용이고,마지막 장은TinyML관련 참고할 사이트를 알려줍니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

초소형 머신러닝 TinyML - 한빛미디어

 

 

KakaoTalk_1.jpg

 

인공지능 프로그램을 하려고 하면 고성능의 장비가 필요하다.

이러한 GPU 장비는 몇백만원을 호가하고 있다. 하지만 초소형 머신러닝을 위한 장비는 고작 30달러, 우리돈으로 환산하면 4만원도 안되는 수준의 장비로 충분하다.

여기 들어가는 소프트웨어는 물론 공짜 이다.

이 책은 이러한 방법을 설명하고 있으나 그래도 임베디드 시스템이나 하드웨어 컨트롤 등에 대해 기본 지식이 있어야 하는 책이다.

책에서 얘기하든 소프트웨어와 하드웨어 둘다 잘하는 사람들은 거의 없다. 즉, 수요가 많지 않다는 점이다.

하지만 이러한 분야를 다루는 책을 출판한 한빛미디어에 존경을 표하는 바이다.

 

나는 개인적으로 위 두가지 모두를 다 다룰줄 안다.

하지만 작은 장비에 머신러닝을 하리라고는 생각하지 못했고, 이러한 분야의 책이 나왔다고 했을때 "과연?","어떻게?"라는 물음과 궁금증이 증폭되었다.

 

일단 이책은 처음에 머신러닝에 대해 간단한 예제를 통해 어떻게 머신러닝을 하는지 설명을 해주고 있다.

텐서플로 혹은 주피터노트북을 사용해 간단한 모델을 만드는 법을 알려주고, 이를 학습하는 방법을 알려주고 있다.

그래도 이분야를 접해보지 않은 독자라면 조금은 어려운 내용일것이다.

또한 빌드도구인 Make에 대해서도 알고 있어야 하며 C언어도 알고 있어야 한다.

그리고 실제 코딩을 해보기 위해서는 하드웨어도 필요하다. 이렇기 때문에 유경험자인 나도 솔직히 코딩 테스트를 해보진 못했다.

이책을 보는 독자들은 상당히 용기가 필요할듯 하다.

 

그래도 아래의 사진에서 보듯이 예제 화면 캡쳐를 통해 독자들이 쉽게 따라 할 수 있도록 잘 구성이 되어있다.

 

KakaoTalk_4.jpg

 

KakaoTalk_0.jpg

 

또한 간단한 음성인식 예제를 통해 음성인식을 하는 샘플 프로젝트가 수록되어 있고, 카메라의 이미지를 인식하여 인체를 감지하는 예제가 수록되어 있다.

어찌보면 아두이노 책 같기도 하고 인공지능 책 같기도 한 재미있는 책임은 분명한것 같다.

 

아쉽게도 이책을 통해 직접 실습하지 못하는 환경에서 책을 정독하기란 상당히 힘들었다.

하지만 향후 인공지능 분야에서 음성이나 이미지를 학습하는 방법을 찾아볼때 다시한번 열어볼 수 있는 책이 될듯 하다.

 

머신러닝과 딥러닝

    머신러닝과 딥러닝의 차이점이 무엇인지 궁금한 사람들이 있으실 겁니다. 머신러닝 (  Machine Learning ) 기계의 학습을 뜻합니다.

어떤 수집된 데이터들을 가지고 분석을 하여 미래 상태를 예측하는 프로그램을 만들기 위해 머신러닝을 하게 됩니다. 예를 들어, 어떤 기계의 색산속도, 온도, 진동량 데이터를 가지고 고장의 시점을 예측하는 프로그램도 머신러닝이라고 할수 있겠습니다. 그렇다면 딥러닝은 무엇일까요? 딥러닝은 바로 머신러닝, 기계를 학습시키는 방법중에 하나입니다. 가장인기있는 모델이라고도 합니다. 인간의 뇌가 작동하는 방식의

개념을 바탕으로 두고 있습니다.  TinyML 이 책의 작가는 TinyML에 가장 최적화된 머신러닝 방식이 딥러닝 방식이라고 소개하고 있습니다. 그만큼, 제한된 메모리와 처리능력을 갖춘 장치에서 딥러닝이 동작하도록 설계된 것입니다.

 

이 책의 특징

    TinyML에서는 딥러닝의 개념에 대해서 상세히 설명하고 있습니다. 일반적으로 머신러닝 책들을 보면, 예제 소스를 나열하며

설명하는 경우가 많고, 딥러닝의 개념에 대해서 설명하는 경우는 적습니다. 또한 반대로 너무 개념만 나열한 책도 많아서, 실무에 

적용하기가 어려운 경우가 많습니다. 하지만 이책에서는 개념과 소스가 적절히 잘 배치되어 있어 개념이해도 쉽고, 실습을 해보기도

좋았습니다.  그리고 특히 TinyML은 임베디드 환경에서 실행이 되어야 되기 때문에, 예제소스 실행시나 개발시에 오류가 빈번하게

발생되고, 또한 오류가 발생하면, 오류를 해결하기 위하여 원인파악에 많은 시간을 할애하게 되는데, 책 곳곳에서 발생이 예상되는

오류에 대해 가이드를 주고 있어서, 개발환경에 익숙하지 않은 사람도 손쉽게 실습을 할 수 있도록 한 점이 좋았습니다.

    또한 실습부분에서는 예제 프로젝트를 실습하는데 있어 체계적으로 설명하고 있는 점이 인상깊었습니다.

초반에 예제프로젝트의 설계와 구현 그 다음 마이크로 컨트롤러에 배포, 배포후 모델 훈련하기 이 순서로 예제를 실습하고 있습니다.

여러게의 프로젝트를 수행하다 보면, 자연스레 머신러닝 어플리케이션을 만들고 훈련하는 일련의 과정에 익숙해질 수 있으리라

생각됩니다.

 

마치며

    지은이 피트 워든는 구글 모바일, 임베디드 텐서플로우 기술 책임자이자, 텐서플로우 팀의 창립멤버입니다. 어떻게 보면 현대

머신러닝의 선두주자라고도 할 수 있을 것입니다.  초소형 머신러닝 TinyML 이 책의 앞부분에서 지은이는 설명하고 있습니다. TinyML 은 아직 킬러 앱이 없다. 하지만 TinyML이

앞으로 많은 문제들을 해결할 수 있는 애플리케이션이 등장하기를 희망한다고 합니다. 분야는 생소하지만, 머신러닝 기술을 사용하고 있으며 하드웨어에 특화된 머신러닝 기술을 익히는데 이만한 책은 아직까지는 없다고 생각합니다.  머신러닝 분야에 대한 이해의 폭을 넓히는

데도 분명이 도움이 될 것입니다. 

tinyml.JPG

 

안녕하세요 괴짜 개발자 namedboy 입니다. 
 
여러분은 머신러닝을 얼마나 알고 계신가요?
또 딥러닝에 대해서는 어느정도의 이해도를 가지고 계신가요? 이 책에서는 딥러닝과 소형장치의 시스템을 조합해서 머신러닝을 수행하기 위한 내용을 설명하는 책입니다.
 
보통은 딥러닝을 한다고 하면 많은 컴퓨팅자원이 필요하거나 엄청 어렵다고 생각하실 수도 있겠지만, 이 책에서는 아두이노나 스파크펀 에지 등의 소형 장치에 맞게끔 모델을 만들어 실행 할 수 있도록 설명합니다.
그래서 각 제품의 환경에 맞게 설정하고 실행하는 법을 설명합니다.
 
딥러닝은 특정 목표를 달성하기 위한 모델을 구축하고 해당 모델을 테스트하기 위한 데이터셋을 만들어 테스트를 합니다.
 
데이터셋이 준비 되면 모델을 실행시켜보면서 원하는 데이터가 나오는지 추론을 하고 결과를 확인합니다.
훈련을 시키고 원하는 결과가 나오지 않으면 훈련을 또 변경해보면서 원하는 데이터가 나올 때까지 반복합니다.
 
이렇게 만들어진 모델을 텐서플로 라이트에서 돌릴 수 있도록 최적화를 하고 더 낮은 수준의 환경에서 실행 할 수 있도록 변경합니다.
 
이렇게 되면 임베디드나 시스템 사양이 낮은 장치에서 돌릴 수 있도록 합니다.
 
이 리뷰는 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
 
TinyML 책을 보고 싶으신 분은 [링크] 를 확인해보시기 바랍니다.

 

 

이번에 본 '초소형 머신러닝 TinyML'은 스릴러 소설도 아닌데, 보는 내내, 흥분된 마음을 감출 수 없었다. 예전에 안드로이드 앱을 배울 때, 아두이노를 처음 접했을 때와 비슷한 흥분이었다. 이는 내가 새로운 영역에 발 디뎠다는 소리이기도 하다.

 

물론 아두이노나 인공지능을 처음 접하는 것은 아니다. 아두이노를 통해 얻은 지식으로 회로 개발, 장비 개발도 했으며, 인공지능은 현재 IT 업계의 대세인 만큼 틈틈이 공부하고 있는 상황이다. 그러나 이 두 영역의 콜라보는 처음이다.

 

인공지능과 아두이노의 콜라보가 뭔 대수냐 하겠지만, 이는 개발자 입장에서 또 다른 차원의 세계를 열어주는 열쇠가 될 수 있다 생각한다. 나의 가치도 높임과 동시에 새로운 시장을 개척할 수 있다는 소리이다. 단순 동작만 하는 회로에서 이젠 생각하고 판단하는 지능을 가진 전자기기 또는 전자 시스템을 개발할 수 있게 된다는 말이다. 아이디어에 따라 부가가치가 엄청난 장비도 개발할 수 있을 것이고, 대중에게 인기 있는 편리한 전자기기도 가능할 것이다.

 

내 경우, 가끔 공장에서 자동화 설비 관련 프로그래밍 일도 하고 그러는데, 그때마다 인공지능, 머신러닝을 도입하면, 제품 불량률이나, 산재 위험도 줄일 수 있겠다는 생각을 많이 하고 했다. 우리나라가 공장 자동화에 있어 세계 1위라는 소리를 많이 하는데, 머신러닝을 활용한 곳은 그리 많지 않다. 그만큼 이 분야에서도 활용은 무궁무진하다고 생각한다. 이런 여러 가지 이유로 '초소형 머신러닝 TinyML'를 보며, 내 손에 새로운 열쇠가 생긴다는 생각에 두근거리지 않을 수 없었다.

 

 

 

'초소형 머신러닝 TinyML'에서는 다양한 마이크로컨트롤러 보드 중에 실습하기 편리하고, 구하기도 좋은 아두이노 나노 33 BLE 센스, 스파크펀 에지, STM32F746G 디스커버리 키트를 사용하고 있다. 세 가지 보드가 각기 다른 특징과 구성을 가지고 있다 보니, 책에서도 보드별로 차이점이 발생하는 부분에 맞춰 각각 나눠 설명하고 있다. 책 하나로 3가지 보드를 활용할 수 있어, 1거3득이기도 하다.


우리가 보통 인공지능이니 머신러닝이니 하면, 대용량에 빠른 속도의 컴퓨터 시스템을 떠올리기 쉽다. 그래도 요즘엔 다양한 인공지능 툴이 등장하면서, 가정용 PC에서도 가능 해졌다. 그렇다고 금방금방 결과가 나오지는 않는다. 데이터에 따라선 GPU를 활용해도 시간이 많이 걸리곤 한다. 그런데 그런 인공지능을 PC의 CPU보다 성능이 많이 떨어지는 마이크로 컨트롤러에 사용하려면, 한계가 있다. 그래서 저사양 모바일 환경을 위해 2017년 텐서플로 라이트가 등장한 것이다. 과도한 기능, 복잡한 것들을 열심히 다이어트해서 수백 킬로 바이트 안에 들어갈 수 있게 만들었다. 이렇게 만들어진 텐서플로 라이트 인터프리터로 모델을 실행하여 최종적으로 1mW의 초전력에서도 사용할 수 있는 TinyML 애플리케이션을 만드는 것이다.


'초소형 머신러닝 TinyML'에서는 머신러닝 모델 구축과 훈련부터 해서, 호출어 감지 파트에서는 음성인식, 인체 감지 파트에서는 영상인식, 마술 지팡이 파트에선 동작인식을 다룬다. 가장 기초적이면서 활용도 높은 중요한 머신러닝 파트를 다 다루고 있는 것이다. 다만 책 한 권에 이런 내용을 다 담고 있다 보니, 아두이노 초보나 인공지능 초보에게는 어려울 수 있다. 완전 생초보에는 맞지 않으므로, 먼저 관련 지식을 쌓고 보는 것을 권장한다.



 

그리고 책 초반에는 텐서플로에 많이 이용되는 파이썬을 통해 설명을 하고 있으나, 이후에 나오는 실제 TinyML 애플리케이션 관련 코드들은 C++ 또는 C 언어를 사용하고 있다. 아두이노를 사용해 본 경험이 있다면, C++ 코드에 익숙하겠지만, 그렇지 않다면, 역시 C++ 문법서를 참고하며 보는 것이 좋을 것이다. 책에 코드에 대한 설명은 잘 되어 있지만, 주로 문법적인 거보다는, 텐서플로 모델 관련한 것이나, 머신러닝 학습에 대한 설명이 대부분이기 때문이다.

 

'초소형 머신러닝 TinyML'은 다소 어렵게 느껴질 수 있지만, 상당히 자세히 다양한 내용을 담고 있다. 보통 PC에서 만들어지는 일반 프로그래밍의 경우, 최종적으로 처리 속도 보완이나 반복되는 요구 사항 반영 정도가 어려움인데, 임베디드 프로그래밍은 생각지도 못한 다양한 문제를 만나게 된다. 일단 임베디드 기기는 loop 상태에서 작동되는 것은 항상 염두에 둬야 하고, 동시 처리를 인터럽트나 타이머 등을 이용해야 한다. 센서나 모터 등 각종 하드웨어 장비에 대한 이해도 가지고 있어야 한다. 전자 쪽 경험이 있는 사람이라면, 이미 다 아는 내용일 수 있으나, 마이크로컨트롤러 개발에 익숙하지 않은 사람, 일반 프로그램만 개발해 온 사람들에겐 생소하고 어려울 수 있는 부분이다. 그래서 PC 프로그램과의 차이, 어떤 것들을 미리 염두에 둬야 하는지 잘 설명되어 있다. 



 

예를 들면, 프로그램 크기 같은 것이 있다. 마이크로컨트롤러가 과거에 비해 속도나 메모리 용량이 커지긴 했어도, 지금의 PC와는 전혀 다르다. 얼마 전 보드 수정 개발에서는 초과되는 몇 kByte 줄이려 프로그램 전체를 일일이 수정했던 기억이 떠오른다. 그만큼 전자 보드에 들어가는 프로그램은 최적화되고 작은 코드로 만들어야 한다. 그리고 소비전력도 중요한 부분이다. 배터리를 쓴다면, 메인보드와 센서 소비 전력을 염두에 두고 개발해야 한다. 이런 것들은 문제를 겪어봐야 그 중요성을 깨닫게 되는 부분인데, '초소형 머신러닝 TinyML'에서는 이러한 부분에 대해 자세히 언급하고 있으며, 저자의 경험과 도움이 되는 다양한 노하우를 적절히 담고 있다. 활용 파트에서는 본문 곳곳에 적어 놨고, 머신러닝과 함께 고민해서 설계해야 할 사항을 14장 이후에 설계하기, 지연 최적화, 에너지 사용 최적화, 바이너리 크기 최적화, 디버깅과 같은 파트로 다시 정리해서 집중적으로 다루고 있다. 초보 개발자에겐 시행착오를 줄여주고, 개발 시간을 절약하는데 유용한 정보가 될 것이다. 



 

아울러 텐서플로 사용에 관한 다양한 경험도 그대로 담고 있다. 모델을 만들 때, 검증 손실, 훈련 손실에 대한 설명을 자세히 하고 있고, 어떻게 개선해 나가는지도 하나씩 과정으로 설명하고 있다. 프로그램에 사용하는 함수에 어떤 변숫값이 유용한지, 어떻게 값을 넣어 보면 좋은 지도 잘 알려주고 있어, 텐서플로 사용이 익숙하지 않은 사람에게 다양한 경험치를 쌓을 수 있게 돕고 있다.


'초소형 머신러닝 TinyML'을 먼저 읽어 본 입장에서, 보는 방법을 두 가지로 제시하고 싶다. 머신러닝 활용 측면이 가장 궁금하고 바로 해보고 싶다면, 그냥 책 순서대로 보면 되고, 텐서플로 라이트와 TinyML 애플리케이션 개발 전반을 살펴보고 활용을 보고 싶다면, 1, 2, 3장 보고, 13 ~ 21장 본 뒤 나머지를 4장부터 12장을 보는 것이 좋을 거 같다.



 

그리고 이 책이 어렵다고 느껴진다면, 책에서 사용하는 보드를 사서 하나하나 실습해보면, 쉽게 느껴질 수 있을 것이다. 나 역시도 아직 아두이노 나노 33 BLE 센스가 없어서 실습까지는 못했지만, 여러 경험 상, 컴퓨터나 전자 관련해서는 여러 번 책을 보는 것보다 한 번의 실습이 머리에 오래 남고, 이해도 빨랐기에 어느 정도 자신 있게 말할 수 있다. 책에 과정 하나하나 잘 담아 있으므로, 따라하기 어렵지 않을 것이다. 그리고 3가지 보드 중에 아두이노 보드를 추천하고 싶다. 나중에 활용하기도 좋고, 아두이노 관련 커뮤니티도 크게 형성되어 있어서, 자료나 도움 얻기도 쉽기 때문이다. 


실내 온도를 자동으로 조절하는데, 항상 인터넷으로 서비스 회사 프로그램 거치고, 저장하고, 다시 명령을 받고 그런다면, 참 번잡하다 생각될 것이다. 게다가 인터넷망이 끊기는 사고가 발생했을 때, 먹통이 된다면, 아주 난감할 것이다. 결국 소형기기도 자체 작동할 수 있는 기본적인 인공지능 기능을 가지고 있어야 하는 것이다. 


공장의 각종 기계를 보면, 다치지 않게 각종 센서로 처리되어 있지만, 실제 사고 예방에는 많이 미흡하고, 적용되는 동작도 제한적이다. 더욱 안전하게 하는 만들 수 있지만, 결국 비용 문제 앞에서 다 빠지곤 한다. TinyML로 개발한 저렴한 영상인식 기기가 있다면, 앞으로 얘기가 달라질 것이다.


이런 것들이 초소형 기기에 인공지능 적용이 절대적으로 필요한 이유라 생각하며, 동시에 새로운 상품을 탄생시킬 좋은 기회라고도 생각한다. 아직은 TinyML 관련 기술이 많은 부분 미흡할지 모르나, 전에 사람이나 동물의 눈을 추적하는 카메라가 나왔을 때 참 신기했는데, 이제 그런 것도 누구나 얼마든지 개발할 수 있는 좀 더 편한 길이 열리고 있다고 생각한다. '초소형 머신러닝 TinyML'은 그 길을 가는 훌륭한 가이드가 되어 줄 것이다.

이 책은 페이지가 568쪽까지 있는 두꺼운 책이고, 총 21장으로 구성되어 있다.

두꺼운 만큼 임베디드 텐서플로우에 대한 내용이 방대하다.

1장, 2장은 임베디드 장치인 TinyML이 무엇인지, 대상 독자, 개발에 필요한 하드웨어, 소프트웨어를 간략하게 소개하고 있다. 임베디드 개발 보드는 15달러짜리 스파크펀 에지(SparkFun Edge) 보드를 사용하면 된다고 하고, 아두이노 나노 33BLE 센스 보드, Mbed용 STM32F746G 디스커버리 키트 개발 보드를 사용해도 된다고 한다.

3장은 머신러닝을 정말로 간단하게 소개해주고 있다. 이해하기 쉽게 설명되어 있다.

3장에서는 머신러닝의 개본 개념과 머신러닝 프로젝트가 따르는 일반적인 절차에 대해 소개하였다면, 4장과 5장, 6장은 실제 보드에서 실습하는 것을 보여준다. 모델 구축, 모델 학습시키기, 텐서플로 라이트용 모델 변환 등을 파이썬 코드를 통해 보여주고, TinyML 애플리케이션 구축하는 것을 보여준다.

7장부터 12장까지는 호출어 감지, 인체 감지, 마술 지팡이 애플리케이션을 만들고, 모델 훈련하는 방법을 자세하게 설명하고 있다.

13장에서는 마이크로컨트롤러용 텐스플로 라이트는 무엇인지에 대해서 다루고, 14장에서는 자신만의 TinyML 애플리케이션을 만들기 위해 어떻게 설계해야 하는지를 다룬다.

15장, 16장, 17장은 TinyML에서의 속도, 에너지 사용, 모델과 바이너리 크기 최적화하는 부분을 다룬다.

18장은 머신러닝 제품에 내장하거나 통합하는 과정에서 오류가 발생하는데, 문제가 발생하였을 때 어떻게 접근해야 하는지를 다룬다.

19장은 텐서플로에서 텐서플로 라이트로 모델 포팅하는 방법, 20장은 개인 정보, 보안, 배포를 다루고, 마지막 21장은 TinyML을 참고하기 위한 참고자료를 알려준다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



<초소형 머신러닝 TinyML> 책은 딥러닝과 임베디드 시스템의 결합으로 작은 기기를 내가 원하는 대로 이용하는 방법을 다양하게 알려준다. 머신러닝이나 마이크로 컨트롤러를 사용해 본 경험이 없더라도 이 책을 단계별로 따라하다 보면 임베디드 시스템에 머신러닝을 결합하는 방법을 배울 수 있다. 먼저 머신러닝이 무엇인지 내가 원하는 프로젝트를 시작할 수 있는 절차를 단계별로 알려준다.

 

TinyML은 저전력 임베디드 기기에서 사용하는 ML이다. 이 책으로 연습하려면 스파크펀 에지, 아두이노, ST마이크로 STM32F 746G 디스커버리 키트와 같은 일부 장비가 필요하다. 장비와 관련 프로그램을 설치하는 방법을 하나하나 친절하게 설명하고 있다. 필요한 준비만 끝내면 책을 순서대로 읽는 것 보다 내가 만들고 싶은 내용부터 따라하는 것이 효과적이다.

 

 

머신러닝에 관심 있고 뭔가를 배워보고 싶다면 이 책을 따라 하나씩 따라하다 보면 스스로 정말 뿌듯한 결과물을 만들 수 있을 것 같다.

 

 

머신러닝에 대해 더 배우고 싶다면 관련 도서로 <텐서플로 라이트를 활용한 머신러닝>, <핸즈온 머신러닝>, <파이썬 날코딩으로 알고 짜는 딥러닝> 을 참고하면 된다.

 

 

이 책에 나온 예제소스는 아래 링크에서 확인할 수 있다.

 

https://github.com/yunho0130/tensorflow-lite

Screen Shot 2021-08-22 at 10.21.01 PM.png

 

"TinyML - 초소형 머신러닝" 이라는 책은 일반적인 머신러닝이 아니라 마이크로컨트롤러나 임베디드 시스템에서 사용하는

 

초소형 머신러닝에 대한 책입니다.

 

마이크로컨트롤러는 메모리 및 연산장치의 한계부터 저장공간의 한계, 전력소모의 한계등 많은 한계점을 갖고 있기에

 

이러한 환경에서도 동작할 만한 머신러닝 모델을 만들고 학습시키고, 실제 장치에 올리는 과정을 전체적으로 설명하고 있습니다.

 

텐서플로우 1.0과 파이토치등을 사용해서 머신러닝 및 딥러닝 관련 프로젝트를 진행해본 경험이 있어서

 

기본적인 이론은 어느정도 알고 있었으며, 임베디드에 올릴만한 소형 머신러닝 모델을 만드는법과 올리는법을 위주로 책을 보며

 

쭉 따라가 보았습니다.

 

가장 재미있게 따라한 프로젝트는 호출어 감지 프로젝트로 실제로 내 목소리로 호출어 감지 모델을 훈련시킬 수 있어서

 

더 흥미롭게 진행하였습니다.

 

텐서플로라이트를 익혀볼 수 있는 좋은 기회였으며, 추후에 아두이노를 몇개 더 구입해서 재밌는 프로젝트를 진행해보려고합니다.

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

도서 제목만 보고 모델 최적화, 경량화에 대한 내용만 생각하고 있다가 서론을 읽으면서 임베디드, 마이크로컨트롤러 이야기에 약간 당황 했었습니다. 
 
그러나 초반 걱정과 달리 책을 통해 얻고자 했던 최적화, 경량화 정보 뿐만 아니라 실제 서비스 구축까지 이해할 수 있는 좋은 계기가 되었고, 마이크로 컨트롤러에 대한 호기심을 자극하게 되었습니다. 
 
또한, Chapter 13부터 21까지 이어지는 경량화, 최적화에 대한 다양한 정보들은 업무 참고용으로 활용하기 좋은 내용들이라 책을 가까이 두고 보게될 것 같습니다. 
 
딥러닝 모델의 최적화, 경량화에 대한 관심이 있으신 분들에게 추천드리는 책입니다.

 

01.jpg

 

우선 이책의 대상 독자층을 배경 지식이 없는 분들도 읽을 수 있게 썼다고 하나,

 

기본 지식이 없으면, 좀 힘들게 읽힐 책입니다.

 

뭐든 자세하게 설명을 해주고는 있으나, 완전 기초서적은 아닙니다.

 

아두이노나 텐서플로우에 대한 책을 같이 읽으시길 추천합니다.

 

저의 관심분야의 내용들이 있어서 저에게는 재밌고 유익한 책이었습니다.

리뷰에 앞서 이 책은 입문자용은 아니라고 먼저 말하고 싶다.

 

외서의 번역서이기 때문에 (번역서가 나쁘다는 의미가 아니다)

한국인 저자의 특유한 친절함(?)은 없다.

 

이 책은 표면적으로 머신러닝에 대해서 말하고 있지만

 

딥러닝의 기초, 아두이노와 환경세팅 그리고 C++ 도 어느 정도의

 

이해가 있어야 한다.

 

또한 초소형 머신러닝 관련 책인 만큼

이론만 보는 것이 아니라 아두이노를 통해

초소형 머신을 직접 다루어야 한다.

 

 

 

※여기서는 아두이노라고만 썼지만

 

관련 유사 기계들이 있으니 책을 통해 참고하면 된다. (구입처도 제공)

 

앞서 말한 바와 같이

 

차린 밥상에 숟가락만 떠먹여 주지는 않기 때문에

 

실습 중에 구글링과 시행 착오를 필요로 한다.

(C 컴파일 중 makefile 중에 에러라도 나는 순간...)

 

 

 

여러 역경(?)들을 해쳐나가야 하며

 

이러한 과정을 배우고 극복해 나간다면 훌륭한 개발자라고 나는 확신한다.

 

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


머신러닝은 항상 핫하지만, 입문 허들이 높아서 쉽게 도전하지 못하고 있는 분야입니다.

저도 라이트 버전인 ‘생활코딩 - 머신러닝야학’ 정도만 겨우 진행해 보았습니다.

그러던 중 8원 리뷰어로 ‘초소형 머신러닝 TinyML’을 진행하게 되었습니다.

사실 저는 ML을 거의 모르기 때문에 겁이 났습니다.

하지만, 이 책은 초보자들도 시작할 수 있도록 용기를 주고 있습니다 ㅎ

TinyML은 저전력의 임베디드 기기에서 사용하는 ML입니다. 그래서 이 책을 100% 활용하기 위해선 노트북 뿐만 아니라 스파크펀 에지, 아두이노, ST마이크로 STM32F 746G 디스커버리 키트와 같은 일부 장비가 필요합니다. (저는 집에 아이들이 있어서 장비 마련이 어려워서.. ML만 진행했습니다.)

Chater3 에서 머신러닝의 기본적인 부분들을 설명합니다. 머신러닝을 잘 모르는 입문자도 이해하기 수월했습니다. 저는 생활코딩의 머신러닝야학을 수강한 후에 봐서 그런지 잘 이해가 되었는데, 이 부분이 어렵게 느껴지는 입문자는 머신러닝야학을 수강하신 후에 보시면 도움이 많이 됩니다.(강추)

개인적으로 이 파트에서는 인상적인 부분은 ML이 “잘” 동작하기 위해 고민하는 부분들이였습니다. 만약 이 부분을 아무 도움 없이 진행했다면 많은 삽집이 선행되어야만 하는 부분이 아닌가 싶습니다.

이제 진짜 시작은 Chapter4부터 진행이 되는데, 예제들을 실행할 수 있는 주피터 노트북을 colab을 통해 제공해주고 있기 때문에, 막혀도 큰 걱정없이 진행할 수 있습니다.

예전에 현재 테스트 서버로 사용하고 있는 미니 PC에서 Tensorflow를 원격에서 주피터로 실행하려고 했을때 실패 했던 기억이 있어서 걱정했는데, Tensorflow Lite를 사용하는 점과, Colab을 통해 구글의 컴퓨터를 사용하여 컴퓨터 사양 때문에 막힐까 하는 걱정은 접어두게 되었습니다.

이 책에서는 여러 예제들을 다루는데, 해당 예제들은 Tensorflow Lite의 공식 예제라고 합니다.

Hello World (사인파 예측하는 모델)
호출어 감지(음성 인식 모델)
인체 감지
마술 지팡이(제스처 인식)
아두이노와 같은 보드들이 저렴한 가격으로 IOT가 활발해지고 있는데, 거기에 ML을 적용한다면 세상은 지금도 빠르게 발전하고 있지만, 거기에 더욱 가속을 할 수 있을 것 같습니다. IOT, 임베디드에 관심이 있는 사람과 ML에 익숙하신 분들에게 큰 도움이 될 수 있을 것 같습니다. 다른 입문서는 아직 보지 않아서 모르겠지만, ML 입문서로도 괜찮을 것 같습니다.

단, 아무래도 임베디드를 다루기 때문에 ML을 다루기 위해 Python 뿐만 아니라, 기본적으로 C/C++ 도 다룰 줄 아셔야 합니다.

저자의 Git 을 통해 모든 부분을 공유하고 있는데, 잘 만들어 두시기도 했고, 계속 발전하는 Git이라 계속 지켜보며 ML을 공부하시는걸 추천

한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.

이 책은 GPU등을 이용한 거대한 하드웨어가 필요한 머신러닝 운용이 아닌 작은 기기등을 이용한 머신러닝 운용을 위한 임베디드 소프트웨어 기술인 TinyML에 대한 소개를 한 책으로 구글의 텐서플로 라이트와 임베디드 컴퓨터인 아두이노를 활용하여 음성, 화상인식등 여러가지 문제해결을 할 수 있게 하는데 도움이 되도록 하고 있다. 


이 책은 기본적으로 머신러닝을 운용해 보았거나 임베디드에 대한 아주 깊이 있는 지식이 없어도 학습이 가능하도록 설명이 되었으며 책에서의 소스코드는 C/C++를 중심으로 작성되어 있으므로 앞의 두 언어에 대한 기본적인 숙지도 필요하다 하겠다. 하지만 깊은 난이도를 요구하는 것이 아니므로 책을 읽다 막히거나 부족한 부분은 그에 해당하는 도서를 펼쳐놓고 학습하여도 충분히 원하는 길을 찾아갈 수 있을 것으로 사료된다.


한편, 이 책은 글로벌 대기업과 같이 대규모 서버를 이용한 시스템 환경이 아닌 아두이노와 같이 매우 간단한 환경에서 머신러닝을 학습할 수 있으므로 대학생이나 앞에서와 같은 대규모 메인프레임에 접근이 곤란한 사람들에게 큰 도움이 되리라 생각된다.


<이 리뷰는 한빛미디어 도서협찬을 받아 작성하였습니다>

[나의 한줄 추천사]

라즈베리파이에서 구동하는 머신러닝이겠지 선입견(?)으로 접근했는데, 전혀 아니였다. OS 없는 초전력 초경량 머신러닝에 입문하고 싶다면 이책을 보라

[책을 구매한 이유]

초경량화 Tensorflow Lite 로 변환 포팅하고, 서비스 구현(음성인식, 인체감지, 마술 지팡이) 까지 해볼 수 있다.

※ 마술 지팡이 : 지팡이에 가속도 센서를 달아서 지팡이를 휘드르면 LED 에 불을 켜는 프로젝트

[내가 찾고자 했던 질문과 대답들]

- 기존 ML과 어떤 차이점이 있나?

1mW 코인배터리로 1년의 수명을 유지할수 있는 초전력, 초경량화 Edge 센서 동작하는 TinyML 이다. 기존 딥러닝같은 경우 추론하는 과정에서도 엄청난 컴퓨팅이 들어가는데, TinyML은 센서에 발생하는 원시적인 데이터를 추론시켜서 의미있는 데이터로 보여주기 때문에 그자체 하나만으로 초전력, 초경량화 가격도 싼 Edge 컴퓨팅이 가능하다.

- TinyML 포팅하는 방법?

앞단에 머신러닝 모델 방법은 똑같다. 뒷단에 Tensorflow Lite 변환하는 부분부터가 다르다.

소형 마이크로컨트롤러에서 모델을 실행하려면 그것에 맞게 다른 인터프리터와 도구가 필요한데 바로 Tensorflow Lite

이다. "Converter" 통해서 모델의 크기를 줄이고, 성능 저하시키지 않으면서 빠르게 실행하기 위한 특수 최적화 가능하다. 모델 변환이 끝나면, 모델을 배포하는데 마이크로컨트롤러용 "Tensorflow Lite C++ 라이브러리"를 사용하여 모델을 로드하고 추론할수 있다.

- TinyML 무엇을 할수 있나?

저자도 현재까지 "킬러앱" 없다고 한다. TinyML 생소한 이유도 그러한 이유인것 같다. 하지만 극한 작업이 필요한 소방관이나, 우주탐사 등 전력소모가 최소화하면서 오랫동안 꾸준히 동작해야하는 경우 적용해볼수 있을것 같다.

그래서 더욱 끌리는 것인지도 모른다.

바람이 부니 기술의 발전은 정말이지 엄청나다, 두어번의 침체기 끝에 새롭게 붐업된 인공지능 분야의 변화는 자고나면 새로운 내용 발표되고 실시간으로 전세계로 전파되는 가장 핫한 분야이다.

 

머신러닝, 딥러닝 하면 떠오르는게 뭐가 있을까?

 

알파고? 이런것 들먹이면 아재소리 들어야 하지 않을까 싶다.

 

좀더 원론적으로 들어가보면 데이터 그것도 충분한 학습을 위한 소위 빅데이터가 필요할 것이고 학습을 위한 엄청난 컴퓨팅파워, 그렇기에 GPU도 필요하고 한 것이 아니겠는가...

말그대로 딥러닝, 엄청난 레이어를 통과하며 엄청난 계산을 통해 최적화 해나가는 것 그래서 난 머신러닝, 딥러닝 하면 무겁다는 생각이 먼저 든다.

 

요즘 한참 열과성의를 다하고 있는 20여만건의 텍스트 분석을 위해 이런저런 언어모델을 돌리자니 컴퓨팅 파워도 파워지만 메모리 리소스도 10~20GB는 그냥 우습게 잡아먹는다.

 

이렇게 무거운데 4차산업혁명으로 지칭되는 초연결사회에서의 딥러닝은? 흔히들 말하는 이상적인 5G 세상은 아직도 요원하고 소위 IoT로 대변되는 초소형 디바이스들에서는 이 무거운걸 어떻게 돌려야 할까 하는 생각도 해봤다.

 

사실 학습과 모델은 백엔드에서 만들겠지만 이 학습된 모델을 임베딩 하여 효과적으로 돌릴수 있다면 좀더 우리 주변에 현실적인 서비스로 와닿지 않을까

 

TinyML은 그런 의문에 대한 비젼을 보여주는 책이다.

이 책은 여타의 머신러닝, 딥러닝 책과는 다른 주제를 다룬다, 기 학습된 모델을 어떻게 압축하고 탑재할 수 있을지에 대한 방안을 제시하고 있다.

 

에너지 비용이 1mW 미만의 하드웨어 플랫폼에서 돌아가는 ML이라 그것도 수백 KB의 메모리에서... 이 책은 Tensorflow Lite를 베이스로 그렇게 할 수 있는 방법에 대해서 알아가는 과정을 보여준다.

 

지향하는 바가 그렇기에 이 책은 이 책만으로는 원하는 바를 달성하기 어렵다. 책에서 제시하는 임베디드 개발 보드가 필요하다.

 

일반적인 머신러닝 보다 4차산업혁명으로 총칭되는 초연결시대에 필요한 머신러닝을 배우고자 하는 사람들에 매우 중요한 입문서가 될 것 이다.

 

※ 본 리뷰는 IT 현업개발자로서 한빛미디어 리뷰어로 출판사로부터 제공받아 읽고 작성한 글입니다.


 

오늘 리뷰할 도서는 [초소형 머신러닝 TinyML] 이다.

 
 
요즘 갑자기 IoT에 빠져 늘어나는 장비들에 얇아지는 내 지갑 ㅠ.ㅠ, 그러던 와중에 반갑게 나온 책!
 
 
이 책이야 말로 IoT 넘어선 본격 "엣지 컴퓨팅" 을 다루는 몇 안되는 책이라 볼 수 있다.


아래처럼 소개하고 있다.
 
 
게다가 요즘 핫한 주제인 머신러닝/딥러닝을 이용하게 되는데, 책 소개 페이지에 보면 이 책은 "중급용" 이라고 되어 있다.
 
또한 책에서는 기본적으로 임베디드 장비를 위한 C++ 코드와 텐서플로우 파이썬 코드 두가지로 주로 설명 한다.
 
책 앞부분에 머신러닝/딥러닝, 텐서플로우에 대해 소개를 하고 있기는 하지만, 워낙 쉽지 않은 분야라서 이런 내용은

다른 책을 참고해야 할 것이다.
 
아래는 책의 앞부분에 나오는 예제를 구글 코랩에서 실행해본 것이다. 약간 아쉬운 점은 책이 흑백으로 출판되어
 
아름다운 컬러를 볼 수 없다는 점. 하지만 책 내용에 크게 방해가 되지는 않는다.
 
 
그리고 이 책은 주제상 실제 소형 임베디드 장비를 사용하는 부분이 대부분이다. 소형 임베디드 장비를 사용 해본 경험이

없는 분들은 아마 이 부분에서도 상당히 허들 일거라 예상한다. 이 책에서는 이런 부분에 대해서는 자세히 설명하지

않으므로 중급용 이다. 다른 기본 서적을 참고하도록 하자.
 
아래는 이 책에서 실제 사용되는 장비인 "아두이노 나노 33 BLE Sense" 인데 책에서 사용하는 여러 장비들 중의 하나이다.
 
사실 나는 구형 "라즈베리 파이"가 있지만 이사 하면서 도대체 어디 있는지 찾지 못하고 있고, 
 
ESP32 칩을 사용하는 개발 보드가 두개나 있다. 
 
 
그런데 이 책에서는 ESP32 장비에 대해서는 다루고 있지 않아, 아직 책에 있는 예제들이 실행 가능한지 확인을 못해봤다. 

그래서 결국 아두이노를 주문했는데...

하필 재고가 없는 상품을 주문해서 아마 추석 연휴 이후에나 도착할듯 =.=

이 책을 전반적으로 살펴 본 결과, 책의 앞부분에서 설명했듯이 요즘 왠만한 집에 하나씩은 있을 듯한 "인공 지능 스피커" 개발에

대한 밑바탕이 되는 기본 기술들을 배울 수 있다.

그동안 머신러닝/딥러닝에 대한 책을 여러 권 봤는데 이론에서 그치는 책들이 있어 아쉬웠는데, 이 책은 소형 디바이스를

아용해서 실무에서 사용 가능한 부분을 다루는 점이 장점이다. 그러나 내용이 쉽지 않을 수 있다는 점은 잊지 말자.
 
그럼 오늘 리뷰 끝~!

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이 해결할 수 있는 문제가 세상에 많이 있다는 사실을 경험으로 알고 있는 점을 생각하면 저서는 독자분들이 문제의 해결책에 익숙해지도록 돕습니다. 농업, 우주 탐사,  의약품, 소비재 등 각 분야의 도메인 전문가에게 문제를 스스로 해결하는 방법에 대해 이해하고 최소한 이러한 기술로 해결할 수 있는 문제가 무엇인지 인식하게 만들어 줍니다. 이처럼 리소스가 제한된 기기에서 기계 학습에 관심 있는 사람이라면 반드시 읽어야 할 책이라고 생각합니다.

 

이책은 사실 특수한 관심이 있는 책이었다.

 머신러닝을 통해 임베디드 소프트웨어 적용한다는 것이 현재 관련업무랑도 좀 떨어지고, 어려운분야로 생각했는데,


막상 이책을 접하고 거기에 대한 두려움이 없어졌다.


번역서라 다소 어려울수도 있을것이라 생각했는데


전체 소스는 github로 제공되고 실행도 개발환경에서도 일단 가능 하기 때문에 무난하게 배울수가 있고, 기초 모델부터 접할수있기 때문에


매우 기본기부터 탄탄히 익힐수있고, 흥미로운 책이다.


 

 


 

 


모델 실습화면.

 

 


 

 


모델을 실습하기 원하면 아래와 같은 장비에서 실행이 가능한데 보드에 따라 실습이 가능하거나, 불가능한부분이 있기때문에 아래표를 꼭확인하고

 

 


보드를 구매 하기 바란다.

 

프로젝트

스파크 에지

아두이노 나노 33LBE센스

STM32F746G 디스커버리 키트

Hello World

5장

포함

포함

포함

음성 인식

7장

포함

포함

포함

인체감지

9장

포함

포함

불포함

마술지팡이

11장

포함

포함

불포함

 


아두이노 나노 33 센스 BLE센스가 10만원이하에서 구매 가 가능한것같다.

 

 


이책을 아직 다실습해보 지는 못했는데 어느정도 학습이되면 곧 구매해서 포팅해볼 계획이다.

 

 


평소 머신러닝과 임베디드 소프트웨어 에 관심이 많다면 꼭 접해볼만한 책이다.

 

 


 


 



 

KakaoTalk_20200927_181917919.jpg

 

한빛미디어에서 나는 리뷰어다 활동을 통해 제공받은 책을 읽고작성하였습니다.

 

글에 나온 아두이노는 책을 이해하는데 필요해서 메카솔루션의 베타리워즈를 통해 필자가 직접 신청 후 제공받았습니다.

 

려고 보니까GTX1080TI는 가성비 GPU라는데 오케이 구글 하는 음성인식은 왜 라즈베리파이에서도잘돌아가나요?

솔직히 머신러닝도 연구나 업무를 위해 사용되는게 아니라 단순히공부목적이라면 고성능의 GPU까지는 필요가 없긴 하다.

그래도 논문이나 이번PYCON2020같은 곳에서 발표된 것을 보면 GPX 1080혹은 RTX2080, Titan 같은거를 사용했다는 것을 자주 볼 수 있다.

그러면 클로바나 구글 홈 미니 같은 것들은?

음성이 인식되면 인터넷을 통해 멀리 연결된 서버에서 인식을 한후, 결과에 따라 사용자의 요구를 처리한다.

이때, 우리가 구글어시스턴트를 부르기 위해 사용하는 'OK Google'이라는 트리거 워드는 사용자의 음성을 인식하기위해 고성능의 GPU처럼 엄청난 전력을 소비해서도 안되고 용량또한 작아야 하며 인식 속도 또한 중요하다.

이 책의 저자 중 1명피트 워든 또한 서론에서 밝혔듯이 구글에 입사했을때 14KB짜리 신경망이 전력도 mW단위로 먹고 '오케 구글'도잘 인식하는 것을 보며 놀랐다고 한다.

이 책은 이런거 만드는 것에 관한 책이다.

 

저자:

피트워든

맨날 내가 설치하고 재설치하고 이책 저책 찾아보고, 검색도 많이하고, 공부도 많이 하게 하는 Tensorflow의 창립 맴버라고 한다.

대니얼 시투나야케

텐서플로 라이트의 개발자 홍보를 이끌고 있고, 미국 최초 자동화를 사용한 대규모 곤충 단백질 생산기업 타이니 팜의 공동설립자라고 한다.

예전에 학교 대회 때문에 밀웜 블루베리 쉐이크랑 곤충 쿠키같은거먹으러 간적이 있는데 꽤 맛있었다!!!

 

 

재미있는 내용이 많다.

아두이노! 하면 전까진간단한 회로 작동 키거나 더 해봐야 node mcu같은거로 IOT를만들거나 레오나르도 계열 보드로 HID장치, 로봇 등등등뿐이고,

얼굴인식! 머신러닝! 딥러닝! 이런거는 최소 라즈베리파이는 되야 간단하게 만들수 있다고생각했고 작년쯤 ble sense나왔을때도 그냥 조금 비싼 아두이노가 나왔나보다 했다.

그런데 이번에 책을 읽어보니 아두이노가 조금더 지능적이게 됐구나하는 느낌이 들었다.

이번 서평도서목록에는 신간이 많았는데 다른 재밌는 책들말고 이책을 고른 이유는 '14KB만으로 작동되는 구글어시스턴트 같은거에 관한책!' 이라는 문구 때문이었다.

아이언맨을 보고 대부분의 사람들이 느끼는 것처럼 나도 자비스가갖고싶어졌고, '그래서 어떻게 하면 만들까?' 해서 '라즈베리파이에 음성인식 기능을 넣어서 내말을 알아듣게 만든 후, 다양한 API를 연동시켜서 처리한뒤, 음성합성을 하면 되겠다!. 그리고 API를 불러올 인터넷은 휴대폰 핫스팟으로 하면 어디서든돌아가겠네!' 라는 생각을 했다.

차라리 휴대폰에 구글어시스턴트나 빅스비 대신 내가 앱을 만들어도되긴 했지만 자바나 코틀린을 따로 배우긴 귀찮기도 했고, python의 경우 텐서플로나 파이토치로 이러쿵저러쿵 하면 되겠지만 한번도 안써본 자바는 어떻게 해야할지 몰랐었기도 하다.(요즘엔 자바에서도 아마돌아가는 듯 하다.)

그래서 이때부터 음성인식이나 음성합성 분야에 대해 항상 찾아보다발견한게 tacotron이라던지 그런건데 아시는 분들은 아시다시피 라즈베리파이에서 돌아갈 수준은 아닌것같다.

어쨌든 이책에 나온TinyML이면 비슷하게 뭐라도 되지 않을까 하는 생각에 읽게 되었다.

 

그래서 TinyML이뭐냐 하면

에너지 비용이 1mW 미만인하드웨어 플랫폼

이라고 한다.

책에선 이정도면 동전모양 베터리로 1년은 버틸 수 있다고도 하고, 실제로 책에서도 모델 용량을 아두이노의작은 머리속에 들어갈 크기로 줄이기 위해 양자화라던지 많은 내용을 다루고 있다.

책에서 다루는 보드는 내가 사용한 아두이노 나노 33 ble sense 말고도 sparkfun edge나 stm32의 보드를 사용한다.

 

예전에 Node MCU보다느리다는 말을 들어서 별로 쓰고 싶지 않은 보드라는 생각이 들어 쓸일이 없을 줄 알았고, ble sense에달린 센서를 통한 간단한 예제를 돌려볼때도 이정도는 아니라 나쁘지 않다는 생각이 들었는데

아니었다.

업로드 과정도 길고, 컴파일과정은 더 길다. 그리고 버그인지 업로드가 끝나면 포트연결이 바뀌는등의 문제로 다시 포트를 선택해줘야한다.

 

그리고 이건 책읽다가 아두이노ble sense를 구해야겠다!는 생각을 들게한 예제를 돌려본 결과다.

tensorflow lite로 학습된 모델을 바탕으로'yes'가 인식되면 초록색, 'no'가 인식되면 '빨간색', 뭔소리는 들렸는데 무슨말인지 모르겠으면 파란불을 켜는 예제인데 한마디로 아두이노에서 간단한 음성인식을 돌려보는예제다.

아무래도 아두이노에 작고 다양한 센서들을 내장해야하기 때문에센서의 성능이 respeaker모듈에 달린것 많큼 좋은것 같지 않아서인지 닥터후 보고 배운 내 발음이별로라 그런지 너무 가깝거나 너무 먼거리에선 인식되지 않기도 하고 ( 아마 말할 때 나오는 바람이센서에 노이즈로 작용할 수도 있겠다.) 하지만 아두이노 치곤 꽤 빠릿빠릿 한 편이다!

책을 읽기 전에

'tensorflow가 c++에서 돌아가는건아는데 파일 시스템이 없는 아두이노 같은 마이크로 컨트롤러에 python에서 작성한 코드를 어떻게 아두이노에집어넣지?',

'학습은 아두이노에서 이루어 지는가?'

라는 의문이 있었는데 해답은 이렇다.

colab 혹은 자신의 컴에서python으로 코드 작성 및 학습을 한다.

양자화를 통해 정확도손실을 최대한 줄여가며 모델의 크기를 줄인다.

tensorflow lite형식으로 변환한다.

모델을 저장한다.

xxd로 저장된 모델을 c 소스파일로저장한다.(모델은 바이트 배열로 정의된다고 한다.)

아두이노에 넣어준다!

책에서 이 과정을 통해 저장된c 소스파일을 보여주는데 별로 잘생기진 않았다..

 

이건 Sin함수 근사예제에서 학습된 모델이다.

사실 이건 일부고,

 

 

여기 커다란 직사각형 덩어리가 변환된 모델이다..

그렇다면 yes no 음성인식의경우엔?

 

 

이만큼 있다. +로스크롤바 크기를 보면 알 수 있듯이 내리면 더있다!!!

저거를 바탕으로 음성인식을 하는걸 보면 참 신기하다.

 

혹시 이 책에 나온 코드를 돌려보고 싶다면

Tensorflow micro 공식 튜토리얼이나

역자분께서 번역하신 깃헙을 참고해보면 좋을 것 같다.

 

tensorflow lite로 ios나 app watch에서 만든 앱이나 라즈베리파이에서 coral을 사용한프로젝트 소개도 있다!

 

업로드용량때문에 세부 사진은 삭제했습니다..



SAM_8778.JPG

 
이 책이 나오자마자 많은 분들의 관심가졌던 책을 오늘 리뷰합니다.
다만, 많은 분들이 책 내용 자체에 대한 서평을 많이 올리실 것 같아서, 전 좀 다른 측면에서 이야기 해보고자 합니다.
그동안 말만 들었지, 엣지 컴퓨터단에서 머신러닝을 돌리는 것을 실제로 본적이 없다가, 이 책을 보고서 아하! 이런식으로 돌아가는구나 하는 것을 느꼈습니다.
기본 딥러닝 모델 만들고 학습하는 것은 거의 비슷합니다.
이 책에서도 앞 부분 도입부분에 텐서플로, 케라스로 설명하는데, 복습 정도로 좋은 것 같습니다. 

 

소스 코드 내용을 상세하게 설명하는 편이라서, 딥러닝 지식이 조금 약하더라도, 소스 코드를 통한 이해에 별 무리가 없어요.
 

SAM_8779.JPG

 

이 책을 구입하시는 분들에게 실제로 도움이 되시는 부분을 알려드리겠습니다.
엣지 컴퓨터를 다루어본 분들은 아시겠지만, IOT 에서는 실제 기기로 연습해보는 것이 좋습니다.
일단 기기에 불이 들어오는 것을 봐야, iot에서는 'Hello, World'를 찍은 것이랑 같은 것이죠.

 

아무리 책으로 읽어봐야, 실제로 감이 잘 안 잡히는 경우가 많죠. 그래서 저는 책 배송 알림 시점에 미리보기에 나온대로 개발에 필요한 하드웨어를 주문하였습니다.
 
 
< 사진 누락>
 
책에서는 이렇게 구입하라고 되어있었습니다.
그럼 실제로 기기가 작동 될까요? 네, 안됩니다. 
 
 

 

 

SAM_8779-3.jpg

에잉, 컴퓨터랑 iot 기기랑 연결하는 기기를 사야 했습니다. 해외 배송이라서 시간이 걸립니다. 한 1주일 정도...

 

이런 부분은 책의 흥미를 확 떨어뜨리죠. 이런 부분은 좀 더 신경쓰면 좋겠습니다.
 

SAM_8779-4.JPG

 

구입하는 김에 아두이노까지 그래서 이렇게 완전체를 구성하였습니다.
이렇게 구입하기를 잘하였습니다. 왜냐하면, iot나 초소형 기기를 잘 모르는 입장에서 실습하기에 아두이노가 훨씬 좋았습니다. 아두이노 IDE 가 따로 있어서 편하거든요.
Make 설치하는데, 제 컴퓨터는 윈도우, 노트북은 맥북인데... 책 실습에 필요한 설치 프로그램때문에 노트북에서 하는 것이 더 좋아보였습니다.

 

윈도우에서 하신다면 구글 검색을 좀 하셔야 해요.
 

SAM_8779-5.jpg

 

책에는 아두이노랑 카메라 연결에 대해서 텍스트로 설명되어 있어서, 아두이노를 처음하시면 이게 무슨 소린가 싶은데, 이렇게 연결 사진이나 삽화 등을 올려주셨으면 얼마나 좋았을까요? 아는 사람들이 보면 무척 쉬운 이야기이지만, 딥러닝 배워서 이제 처음 아두이노를 다루는 사람에게는 힘든 면이 있습니다.

 

SAM_8781.JPG

 

TinyML 을 하려면, C++ 은 필수인 것 같아요. 저도 책보면서 대충 이런 기능이구나 하면서 눈짐작으로 이해하였는데, C++ 언어를 좀 알고 있으면, 도움이 많이 될 것 같아요.

 

SAM_8784.JPG

 

사실은 케라서, C++ 을 잘 몰라도, 아두이노 IDE 에서 실행하는 방법만 잘 따라하면,

 

http://blog.naver.com/eonnow/222101071611 <하단 동영상 참조>

 

위와 같이 결과물이 잘 나옵니다.
책에서는 yes는 잘 인식하고, No는 잘 인식하지 못한다고 했는데, 저는 No를 더 잘 인식하는 것 같아요.
그동안 아두이노 같은 초소형 기기 다루는 수업을 들으면서 느낀 점은, 일단 기기를 한번 제대로 작동시켜 보는 것이 정말 중요한 것 같아요.
불 들어오고, 내 목소리 알아듣고, 내가 사람인지, 나의 행동 패턴을 읽는 것을 보고 나면,
그 이후 필요에 따라, 조금 힘들지만, 재미나게 깊게 파고 들어가면서 공부할 수 있거든요. C++ 도 필요하니까 배우게 되구요.
불 안 들어오면, 그 수업은 망했다고 봐야 합니다.
이번 TinyML 책은 기존 딥러닝 책에서 보여주는 화려한 것은 없지만, 그 간단한 것을 학습하기 위해서 가장 중요한 핵심 기술을 보여주고, iot 변환에 필요한 기술은 또 무엇이며, 어느 정도 공부하면 할 수 있는지 보여주는 매우 소중한 책이라고 봅니다.
 

 

장치 빠짐 없이 잘 챙기시고, 한번 목소리 인식시켜보세요. 그때부터 TinyML 시작이라고 봅니다.
 
이 서평은 교재를 제공받아 작성되었으며, Yes24, 한빛 홈 사이트에도 같이 등록됩니다.
 

 

 



초소형머신러닝, 즉 Tiny Machine Learning에 대한 내용을 담고 있는 책이다.

우리가흔히 접하는 머신러닝 알고리즘은 고성능의 데스크탑, 서버에서 돌아가는 것들이 대부분이다. 이런 알고리즘을 임베디드 보드에 그냥 올리기에는기존의 하드웨어 플랫폼에 비해서 스펙이 상당히 부족하다는 것을 감안한 새로운 접근이 필요하다. 이를 위한 것이 TinyML이고 이 책에서는이것에 대해서 여러 프로젝트를 경험하면서 익숙하지 않은 임베디드 환경과 그 환경에서의 ML 개발에 대해 다룬다. 딱 한 문장으로, 이 책은TinyML로 무언가를 해보려는 사람들을 적합하다.

 

사전준비물

TinyML프로젝트를 직접 활용해보기 위해서는 아무래도 간단한 임베디드 보드가 필요하다. 이 책에서는 진행되는 프로젝트에 따라 포함 장치가 다른데,책에서 권장하는 임베디드 보드와 센서를 미리 구비해두는 것이 좋으며 기본적으로는 SparkFun Edge를 사용하고, Arduino Nano33 BLE Sense나, Mbed 기반의 STM32F2746G 디스커버리 키트를 활용한다. 경험 상 가장 속 편하게 활용할 수 있는 건아무래도 SparkFun과 Arduino다.

 

모두를위한 책

적은컴퓨팅 자원에서, 특히 임베디드 플랫폼에서 ML에 대해 학습하는 책이기 때문에 큰 틀에서 보면 ML을 좀 더 중점적으로 다루는 편이긴 하지만,임베디드 관련 내용을 제외할 수는 없는 것이 사실이다. 이 책에서도 초반부에 언급되는 내용대로, 임베디드 개발자가 ML을 활용하려는 경우와ML 개발자가 임베디드 환경을 활용하려는 경우, 둘 다 경험이 적은 경우를 고려하여 필요한 경우 두 분야 모두를 다루며, 두 분야에 처음입문하는 사람들을 기준으로 작성하였다고 되어 있다. 임베디드 보드를 활용할 수 있는 터미널 경험 정도가 사전 지식으로 작용할 수 있다.

 

프로젝트형구조

책목표가 ML을 주로 다루긴 하지만, 목적은 임베디드 환경에서 사용할 수 있는 TinyML을 개발하는 것이 목표다 보니, 무작정 개념만 다루는게 아니라 실습형 프로젝트를 따라가며 배운다. Hello World을 포함해서 음성 인식, 인체 감지, 마술 지팡이 총 4개의 프로젝트를진행할 수 있고, 개발 과정에서 막히는 부분에 대해서는 별도로 설명도 되어 있고 GitHub Repository를 적극적으로 활용해서 해결할수 있을 것이라 기대된다.

 

총평

기술서적이라고 하면, 그 책을 읽고 나서 어떤 하나의 목표를 반드시 달성해야 한다고 생각한다. 그것이 이론적인 기초를 닦는 것이 될 수도 있고프로젝트 기반의 결과물을 내는 것일 수도 있다. 이 책은 Hello World를 제외하고서도 3개의 프로젝트를 진행하여 실질적인 결과물을 낼수 있고, 그 과정에서 익숙하지 않은 환경에서의 다양한 경험을 가지고 갈 수 있도록 해준다. 지금까지 다양한 기술의 입문서와 활용서를접해보면서 ML 관련 서적도 많이 접해보았는데, TinyML이라는 확고한 목표가 있다면 다른 책을 찾아볼 필요 없이 이 책을 강력 추천해 줄수 있을 것 같다.

 

추천독자

임베디드환경에서 머신러닝도 하고 싶은 개발자

프로젝트,졸업 프로젝트를 고민하고 있는 관련 전공 학생

 

O'REILLY에서 나온 머신러닝, 딥러닝 신간이 나왔습니다.

 

20년 회사에서 빅데이터, 딥러닝 미니프로젝트 교육을 장기간 참여하고 있습니다. 이미 수료가 되어야 하는데, 코로나로 비대면 수업이 온라인으로 일정이 순연되고 있는 사항이고, 10월에 마무리가 됩니다. 하여 나름 최신 책으로 딥러닝 내용을 한번 정리하고 싶고, 해당 프로젝트에 적용할 항목이 있는지 한번 더 확인해 봅니다. 그래서 접하게 된 책입니다.

 

책이름이 "초소형 머신러닝 TinyML"입니다.

생각보다 책이 다루고 있는 범위가 넓습니다. 일찌기 이런 책을 접해본 적이 없었는데, 딥러닝 실습이 장치까지 진행됩니다.

 

20200927_102738.jpg

 

책의 부제가 바로 모델 최적화부터 에지 컴퓨팅까지 작고 빠른 딥러닝을 위한 텐서플로 라이트 입니다.

2020-09-27-10-18-57-102.jpg

-마이크로컨트롤러용 텐서플로 라이드

-오디오,이미지,가속도계 데이터로 머신러닝(딥러닝) 모델 학습

-음성 인식, 인체 감지, 제스처 인식 등 임베디드 기기에서 작동하는 머신러닝 애플리케이션

-아두이노를 비롯한 저전력 마이크로컨트롤러에 머신러닝 탑재

-지연, 에너지 사용, 모델 크기, 바이너리 크기 최적화 기법

-머신러닝 필수 사항과 자신만의 모델 훈련 방법

-애플리케이션 디버깅, 개인 정보 보호, 보안을 고려한 설계 노하우

2020-09-27-10-19-12-817.jpg

 

머신러닝과 딥러닝 기초부터 진행이 됩니다.

 

차원, 벡터/행렬/고차원텐서

2020-09-27-10-19-39-216.jpg

딥러닝 네트워크

2020-09-27-10-19-53-117.jpg

 

모델 추론을 통해 예측을 포함하는 출력 데이터 생성, 이런 장표가 이제는 익숙합니다.

2020-09-27-10-20-05-354.jpg

훈련 손실, 검증 손실

2020-09-27-10-20-18-573.jpg

마이크로콘트롤러에 배포

2020-09-27-10-21-27-533.jpg

 

 

익숙하지 않은 부문이지만, 마이크로컨트롤러입니다.

 

2020-09-27-10-21-42-727.jpg

아두이노는 자주 들어보았습니다.

2020-09-27-10-21-52-000.jpg

마술 지팡이 애플리케이션 구성요소, 책이 이런 구성으로 실습을 시작합니다.

2020-09-27-10-22-16-472.jpg

스파이크펀 에지

2020-09-27-10-24-55-496.jpg

 

TinyML재단

20200927_103042.jpg

실습 절차, 프로세스

20200927_103111.jpg

 

한빛미디어 미리보기에서 책의 내용을 상세히, 책처럼 알 수 있습니다.

Screenshot_20200927-084614_Chrome.png

 

Screenshot_20200927-084624_Chrome.png

 

Screenshot_20200927-084630_Chrome.png

 

Screenshot_20200927-084642_Chrome.png

 

전체적으로 보드까지 다룬 책입니다.

이렇게 구성하려면 실제 보드까지 활용이 가능한 사람만이 책을 쓸 수 있을거고, 실제로 요새는 대학에서도 취미로 보드, 아두이노를 활용하는 사례가 많아서 깊이 파보는 좋은 계기가 될 듯합니다. 보통은 제어, 로봇 이런 것에만 관심이 높았는데, 학습 딥러닝 개념으로 새로운 장을 열게 된 것 같습니다. 그리고 저용량 바이러니와 저전력에도 관심을 가질 수 있는 대목입니다.

 

특별히 실습항목이 첨부터 끝까지라는 것이 맘에 듭니다.

1.간단한 데이터셋 얻기

2.딥러닝 모델 훈련시키기

3.모델 성능 평가하기

4.장치에서 실행되도록 모델 변환하기

5.장치에서 추론하는 코드 작성하기

6.코드를 바이너리로 빌드하기

7.바이너리를 마이크로컨트롤러에 배포하기

 

앞으로 Iot로 향하는 수순이기도 합니다. 좀더 더 확대 될 부문이라도 봅니다.

[한줄평]

임베디드에 머신러닝을 구현한다면 꼭 봐야 하는책


[목차구성]

CHAPTER 1 서론

CHAPTER 2 시작하기

CHAPTER 3 머신러닝 빠르게 훑어보기

CHAPTER 4 TinyML ‘Hello World’ 시작하기: 모델 구축과 훈련

CHAPTER 5 TinyML ‘Hello World’: 애플리케이션 구축

CHAPTER 6 TinyML ‘Hello World’: 마이크로컨트롤러에 배포하기

CHAPTER 7 호출어 감지: 애플리케이션 만들기

CHAPTER 8 호출어 감지: 모델 훈련하기

CHAPTER 9 인체 감지: 애플리케이션 만들기

CHAPTER 10 인체 감지: 모델 훈련하기

CHAPTER 11 마술 지팡이: 애플리케이션 만들기

CHAPTER 12 마술 지팡이: 모델 훈련하기

CHAPTER 13 마이크로컨트롤러용 텐서플로 라이트

CHAPTER 14 자신만의 TinyML 애플리케이션 설계하기

CHAPTER 15 지연 최적화

CHAPTER 16 에너지 사용 최적화

CHAPTER 17 모델과 바이너리 크기 최적화

CHAPTER 18 디버깅

CHAPTER 19 텐서플로에서 텐서플로 라이트로 모델 포팅하기

CHAPTER 20 개인 정보, 보안, 배포

CHAPTER 21 파도를 따라잡기 위하여


부록 A 아두이노 라이브러리 Zip 사용과 생성

부록 B 아두이노에서 오디오 받기


[이 책의 특징]

ㆍ 마이크로컨트롤러용 텐서플로 라이트

ㆍ 오디오, 이미지, 가속도계 데이터로 머신러닝(딥러닝) 모델 학습

ㆍ 음성 인식, 제스처 인식 등 임베디드 기기에서 작동하는 머신러닝 애플리케이션

ㆍ 아두이노를 비롯한 저전력 마이크로컨트롤러에 머신러닝 탑재

ㆍ 지연, 에너지 사용, 모델 크기, 바이너리 크기 최적화 기법

ㆍ 머신러닝 필수 사항과 자신만의 모델 훈련 방법

ㆍ 애플리케이션 디버깅, 개인 정보 보호, 보안을 고려한 설계 노하우


[대상 독자]

ㆍ마이크로컨트롤러에서 머신러닝을 구현하려는 개발자

ㆍ머신러닝을 사용해서 실제 제품을 만들고 싶은 기획자 및 개발자

ㆍ아두이노에 머신러닝 기능을 사용하고 싶은 개발자

ㆍIoT에 딥러닝을 적용하고 싶은 개발자


[서평]

알파고가 나온지 벌써 4년이 지났다. 알파고 이후 머신러닝, 딥러닝등 AI에 대한 투자 및 관심도가 엄청나게 증가하게 되었다. 이제 연구에 대한 성과가 나와야 할 시기가 된것이다. 지금까지는 딥러닝, 머신러닝을 하려면 엄청난 컴퓨팅 파워가 필요 했다. 하지만 실제 제품에 사용할때는 그런 엄청난 컴퓨팅 파워 보다는 저전력에서 돌아갈수 있는 인공지능 기능이 필요 하다. 이책에서는 TinyML로 마이크로컨트롤러, 임베디드 환경에서 딥러닝, 머신러닝을 사용할수 있는 방법을 배울수 있다. 먼저 이책으로 tinyML 프로젝트를 구축하려면 하드웨어 장비가 필요하다. 머신러닝 모델을 훈련할 때는 구글의 코랩으로 무료로 이용 할수 있다. 하지만 프로그램을 실제로 테스트하려면 임베디드 개발 보드가 필요하다. 보통 딥러닝 책들은 수학 모델을 학습 하고 컴퓨터만 있으면 해결이 되는데 TinyML은 모델학습에서 끝나는게 아니라 제품으로 만드는것이라서 모델을 경량화하고 저전력 환경에서도 실행하고, 텐서플로 라이트를 배울수 있습니다. 이책을 학습 하면서 임베디드 시스템에서 딥러닝을 사용하여 가능한 것이 무엇이며 앞으로 어떤것들이 만들수 있는지 좋은 아이디어를 얻을수 있었습니다. 아마 IoT를 하면서 딥러닝을 도입하고 싶다면

이책이 해답이 될것이다.

IMG_7962.jpg

저자는 서두에서 다음과 같이 말했습니다.

 

이 책은 그동안의 딥러닝&머신러닝 '모델 성능 향상' 패러다임 속에서  이를 어떻게 잘 '활용'할지에 대한 단서를 제공하는 책입니다.

 

이 한 문장이 이 책을 있는 그대로 설명해 주는 문장인 것 같습니다. 

 

딥러닝과 머신러닝은 에지 컴퓨팅부터 대용량 GPU 클러스터까지 그 역할이 다릅니다. 

그렇지만 그동안 에지 컴퓨팅에서 딥러닝과 머신러닝을 활용하는 방법에 대한 책은 그렇게 많이 보지 못했습니다. 

 

그런 면에서 이 책은 의미가 남다르다고 생각합니다. 이 책에서 다루는 TinyML 초소형 마이크로컨트롤러에서 동작하는 딥러닝의 새로운 분야라고 합니다.

실제로 이 책은 임베디드 개발 보드에서 동작하는 여러 가지 간단한 프로젝트를 제공하고 있습니다.

 

앞부분에는 일반적인 머신 러닝의 개념과 마이크로컨트롤러에서 동작하는 애플리케이션 머신러닝/딥러닝 개발 방법, 배포 방법에 대해 설명을 합니다.

그리고 임베디드에서 머신러닝, 딥러닝을 구현하기 위해 고려해야 할 주제들을 다루고 있습니다.

사실, 이런 주제는 머신러닝, 딥러닝뿐만 아니라 임베디드에서 애플리케이션을 개발할 때 반드시 고려해야 할 주제입니다.

 

  • 지연시간에 대한 최적화
  • 에너지 사용에 대한 최적화 
  • 모델과 바이너리 크기 최적화 
  • 디버깅 방법

 

등입니다.

 

 

저는 개인적으로 이 부분이 실제로 마이크로 컨트롤러에서 동작하는 딥러닝용 애플리케이션을 개발할 때 가장 중요한 부분이라 생각합니다.

뒷부분에서는 텐서플로로 학습한 모델을 텐서플로 라이브로 모델 포팅 하는 방법을 설명하고 반드시 고려해야 할 개인 정보, 보안에 대해서 설명하면서 마무리를 하고 있습니다.

 

이 책에서 제공하고 있는 각 단계별 프로젝트는 실제 응용 프로그램을 개발하는 개발자에게는 좋은 가이드가 될 것 같습니다.

요새는 소위 말하자면 인공지능 관련 주제들이 관심을 많이 받는 세상이다. 현업에서도 과제 제안 내용을 받아보면 적어도 어딘가에는 인공지능 기술을 반영하겠다거나, 빅데이터를 통해서 사용자 패턴을 분석하겠다는 내용이 들어있다. 소비자가 생각하는 인공지능 기술이랑 개발자/기획자가 생각하는 인공지능 기술간에는 약간의 괴리가 있겠지만, 요새는 인공지능으로 기존에 못 풀었던 문제들을 해결하고자 하는 시도를 해보고 있다. 

 그런데 인공지능 기술, 짧게 머신러닝/딥러닝을 실생활에 적용하려면 적어도, 학습하려는 데이터와 어느정도 모사화시킨 모델이 필요하고, 그 모델이 "잘" 동작하게 하려면 데이터를 가지고 모사화시킨 모델을 사전에 많이 학습시켜야 한다. 물론 이에 필요한 computation power도 있을 것이고, 잘 동작하는 모델일수록 이런 computation power도 더 많이 필요할 것이다. 그래서 사람들이 많이 알고 있기론 딥러닝/머신러닝을 하기 위해서는 고성능 GPU/CPU가 달린 서버용 컴퓨터가 필요하다고 한다.

 그런데 최근의 동향을 살펴보면, 그런 기술들을 저성능 임베디드 장치에 탑재하려는 노력을 많이 하고 있다. 사실 임베디드 장치에 해당 기술들이 올라갈 수 있으면 그 효과는 파급적이 된다. 제조업체 입장에서는 저렴한 비용으로 인공지능 기술을 구현할 수 있게 되고, 그런 장치들이 TV, 냉장고, 세탁기, 에어콘에 들어가므로, 더 확장시킬 수 있는 것이다. 그래서 많이 시도하고 있는 방법론으로는 

- 임베디드 장치 자체 성능으로 학습/추론
- 고성능 컴퓨터에서 학습한 후, 임베디드 장치에서 추론
- 임베디드 장치에 가속기를 장착한 후 학습/추론

 표현은 on-Device AI, Edge AI라고 표현하는 것 같은데, 학회까지 나온것으로 보면 tinyML이라는 명칭이 조금 더 보편적으로 쓰이는 것 같다. 아무튼 이번 포스트에서 다룰 책도 이 tinyML에 대한 책이다.

 

20200925_194749.jpg

 

 

이 책은 작년말에 출간된 "TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low Power Microcontrollers"의 번역본이며, Google에서 Tensorflow Lite 개발 업무를 하는 Pete Warden이 썼다. 사실 이 책은 머신러닝/딥러닝에 대한 이론적인 내용을 다룬다기 보다는 사전에 학습시킨 모델이 있을때, 어떤식으로 모델을 압축하고 탑재할 수 있는지에 대한 노하우를 전달하는 책이다. 아마 아는 사람은 알겠지만, Tensorflow Lite는 Tensorflow 1.x대에서 experimental feature로 들어가 있다가 2.x로 올라가면서 정식으로 반영된 기능으로, 소위 말하면 quantization을 통한 학습 모델을 압축시키고, 임베디드 장치에 최적화된 Layer들을 제공해준다. 간단하게 quantization에 대해서 얘기하자면, 딥러닝 모델 구현시 출력으로 나오는 것이 각 layer별 weight들이다. 그런데 이런 weight들이 소수점으로 표현되고, 실제 데이터 형식상 소수점을 표현하기 위해서는 32bit 자료형이 필요하다. 그런데 만약 이 weight들을 정수로 표현할 수 있으면 어떨까? 특히 8bit 정수형으로 weight들을 표현할 수 있으면 자료형이  1 4  으로 줄게 되므로 사이즈를 많이 줄일 수 있다. 상세한 내용은 다음 링크를 참고하면 좋을거 같다.

 전체 책들이 어떻게 하면 모델을 잘 설계하고, layer를 tuning할 수 있다를 설명하기 보다는 tensorflow lite를 사용해서 임베디드 기기에 넣는 방법을 설명하고 있다. 보통 임베디드 기기에는 OS가 없는 케이스가 많기 때문에 C/C++로 개발하는 케이스가 많으며, 이 때문에 (모델학습을 제외한) 책내의 코드들이 대부분 C/C++으로 제공되고 있다. 

 그래서 어떻게보면 여타 인공지능 관련 서적과 다르고, 전혀 새로운 내용을 다룬다. 어떻게 보면 임베디드 장치에 머신러닝 모델을 올리고 싶은 사람한테는 딱 적당한 책이다. 단 유의할 점이라면, 이 책은 단순히 책만 가지고 있으면 무슨 내용인지 모를 부분이 많다. 그렇기 때문에 여기서 예제에 활용하는 데모보드 (Arduino Nano 33 BLE Sense나 Sparkfun Edge)는 하나 구비하고 실습하면서 같이 볼 것을 권한다. 내용이 그렇다보니 도식화를 통한 설명보다는 코드의 구성이나 기능 설명에 많이 치중되어 있다.

 

그림 2. Sparkfun Edge

 

책에서 다루는 예제는 다음과 같다. (참고로 해당 예제는 Tensorflow lite 에서도 공식적으로 제공하는 예제이기도 하다.

- Linear Regression 모델 학습 (Hello World)
- 호출어 감지 (Visual Wake Word)
- 인체 감지 (Person Detection)
- 마술 지팡이 (Magic Wand)

개인적으로는 임베디드에 관심이 많은 입장에서 이런 책이 나온 것 같아 매우 흥미가 있었고, 책에 들어있던 내용 역시 그런 기대를 저버리지 않았다. 더구나 TinyML이 개발되는 전체적인 process를 이 책을 통해서 이해할 수 있던 부분이 좋았다. 특히 여타 인공지능 책들이 절대 다루지 않을만한 주제가 잘 담겨있어서, 아마 동일한 시도를 해보려는 사람한테는 최고의 책이 되지 않을까 싶다.

 참고로 아직 tinyML 분야가 많이 활성화되지 않아서 일부 공부 자료는 학회 논문이나 MIT Song Han 교수 랩, 혹은 (추후에 열릴) harvard tinyML Lecture를 참조하면 좋을거 같다. 관련링크는 하단부를 참고하면 좋을 듯 싶다.

- 학회: https://www.tinyml.org/summit/

 

tinyML Summit | Home

Endowed Chair Professor, School of Electrical Engineering, KAIST Hoi-Jun Yoo is the KAIST ICT Endowed Chair Professor, School of Electrical Engineering, KAIST. He was the VCSEL pioneer in Bell Communications Research at Red Bank, NJ. USA and Manager of DRA

www.tinyml.org

- MIT Prof. Song Han (Han Lab): https://songhan.mit.edu/

 

Song Han – Assistant Professor, MIT EECS

Song Han is an assistant professor in MIT’s Department of Electrical Engineering and Computer Science. He received his PhD degree from Stanford University. His research focuses on efficient deep learning computing. He proposed “deep compression” te

songhan.mit.edu

- Havard TinyML lecture: https://sites.google.com/g.harvard.edu/tinyml/home

 

TinyML

College Calculus, Linear Algebra, Basic Probability, and Statistics: Many ML topics revolve around taking derivatives, understanding matrix vector operations and notation, and the concepts of gaussian distributions, means, standard deviations, etc.

sites.google.com

- edX Lecture (2020.10 open): https://www.edx.org/professional-certificate/harvardx-tiny-machine-learning

 

Tiny Machine Learning (TinyML) Professional Certificate

 

www.edx.org

 

출처: https://talkingaboutme.tistory.com/entry/Book-TinyML [자신에 대한 고찰]

임베디드 소프트웨어에 머신러닝을 적용하는 방법에 대해 다룬다. 

책은 음성인식, 모션 센서를 이용한 제스처 감지, 카메라 센서를 이용한 인체 감지 프로젝트를 실제 예시로 보여준다.

프로그램을 테스트하려면 프로젝트에 따라 조금 다르긴 하지만 3개의 하드웨어 장치가 필요하다.

스파크펀 에지, 아두이노 나노 33 BLE 센스, STM32F746G 디스커버리 키트.

 

ML의 세부 원리에 대해서는 다루지 않는다. 대신 딥러닝 모델 훈련 및 제작, 오류 해결, 프로세스 커스터마이징 등이 담겼다. 예시로 공장 기계의 고장 여부 예측이 나오며 딥러닝 워크플로를 소개한다. 기본적으로 코랩을 사용한다는 설정이므로 다른 환경 등에 대한 고려는 안해도 된다. 대신 모델 제작 외에 모델 실행 환경 설정, 입력 제공, 출력으로 동작을 생성하는 코드 또한 필요한데 이 부분은 C++로 되어 있다. 처음부터 테스트 코드를 훑으며 설명하니 간단하게 이해하기 좋았다. 각 보드마다 필요한 IDE 등과 USB 가 명시되어 있으니 참고해서 프로젝트를 빌드하고 장치에 배포할 수 있다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
초소형 머신러닝 TinyML
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
초소형 머신러닝 TinyML
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
초소형 머신러닝 TinyML
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1