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

한빛출판네트워크

초소형 머신러닝 TinyML

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

한빛미디어

번역서

판매중

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

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

 

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

 

 

▶ 출판사 리뷰

 

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

 

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

 

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

 

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

 

 

이 책에서 다루는 내용

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

 

 

▶ 추천사

 

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

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

 

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

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

저자

피트 워든

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

저자

대니얼 시투나야케

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

역자

임지순

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

 

역자

맹윤호

IBM Data & AI에서 엔지니어로 근무하고 있다. 연세대학교에서 데이터 분석 전공으로 석사 과정을 졸업하고 박사 과정을 밟고 있는 샐러던트다. SK C&C, KISTI, NRF, DBpia 등에서 프로젝트를 진행하고 Apache Zeppelin, Qiskit, KoGPT-2 등 오픈소스 프로젝트에 기여했다. 삼성, 현대, LG, 딜로이트 등 기업을 대상으로 강연하고 연세대학교, 중앙대학교, 상명대학교, 순천대학교 등에서도 강연한 바 있다. 참여 도서로는 『하이퍼레저 블록체인 개발』(한빛미디어, 2019), 『블록체인의 정석』(지앤선, 2019)이 있으며 IT 잡지 「마이크로 소프트웨어」에도 글을 실었다. 깃허브에서 @yunho0130으로 활동하고 기술 블로그(http://maengdev.tistory.com/)와 유튜브 채널(https://www.youtube.com/myh0130)을 운영하고 있다.

 

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 아두이노에서 오디오 받기

  • 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 가 명시되어 있으니 참고해서 프로젝트를 빌드하고 장치에 배포할 수 있다.

결재하기
• 문화비 소득공제 가능

배송료 안내

  • 책, 아이템 등 상품을 1만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

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

* 리뷰 작성시 유의사항

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

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

오탈자 등록

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

도서 인증

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

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실