개발자를 위한 머신러닝&딥러닝
수학이 어려운 개발자를 위한 코드 실습형 머신러닝 가이드북. 머신러닝 모델 구축부터 활용법까지 단계별로 설명하며 개발자가 마주하게 될 다양한 문제를 머신러닝으로 해결하는 법을 안내한다.
- 저자 : 로런스 모로니
- 번역 : 박해선
- 출간 : 2022-08-24
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받았습니다.
요약: Tensorflow로 시작해 컴퓨터 비전, 자연어처리, CNN, RNN 모델을 다루고, Tensorflow Lite로 Android, iOS, Tensorflow.js, 서빙으로 배포까지 책임지는 책!
나는 Tensorflow Lite를 좋아한다.
아직 개인 프로젝트나 이곳저곳에 활용해 본 적은 없고, Arduino Nano BLE Sense나 Raspberry PI pico로 음성감지에만 적용시켜봤는데 손가락 만한 보드에서 ML/DL을 돌릴 수 있다는 것이 맘에 들었다.
슈퍼컴퓨터 300대 놓고 초거대 인공지능 모델도 유용하겠지만,
잘 작동하는 인공지능 모델을 적당히 뺄건 빼고, 정확도와 속도와 타협하며 만들어낸 최적화의 결과물로 작동하는 귀엽지만 강력한 모델또한 우리 삶 속에서 필수적이다.
일단 책 제목만 보면 그다지 흥미있을 것 같진 않은데, Tensorflow Lite를 다루길래 읽게 되었다.
아쉽게도 책에선 Tensorflow Lite를 통해 아두이노같은 MCU나 라즈베리파이에 배포하는 내용은 TinyML도서를 참고하라고 하면서 다루지 않지만, 안드로이드나 iOS환경에 배포하는 법을 설명한다.
다른 책들은 CNN, RNN 주구장창 설명하고 끝이지만 이 책은 모델의 배포까지 알려주는 책임감있는 책이다.
문제는 내가 Windows/Linux PC+아이폰을 쓰고 있어서, 책에서 다루는 두 모바일 환경 모두 체험할 수 없다.
개발용 안드로이드 폰이나, ios 앱 개발용 사과 PC가 있어야 하는데 말이다.
그리고 모델에 관한 이론을 다루는 부분에선 상당히 친절하고 자세하다.
주입식으로 그냥 생략하고 넘어가지 않고, 왜 뉴런수를 128로 설정하냐, 많으면 똑똑해지는거 아니냐, 많이 설정했는데 왜 바보가 되었냐 등등 예전에 찾아봤더니 의외로 많은 사람들이 설명하지도 않고 당연하게 넘어갈법한 의문들이나, categorical cross entropy 앞에 sparse가 있고 없고의 차이, 그래서 도대체 어떤 손실함수를 써야하고, optimizer는 왜 다 adam인지 사소하지만 중요한 것들을 언급하면서 진행한다.
또한 시간과 자원절약 뿐만 아니라 여러가지 측면에서 유용할 수 있는 콜백을 구현도 짧게 다루고,
keras의 ImageDataGenerator를 쓸때 디렉토리를 어떻게 구성해야 하는가, 이미지 증식은 어떻게 구현하는가 등 Tensorflow 튜토리얼에서 볼 수 있는 몇몇 내용도 깔끔하게 짚고 넘어간다.
작년에 혼자 프로젝트할 때 막히거나 왜그렇지 하는거는 이 책에 거의 다 있는듯 하다.
이 책 저 책 다 읽어본 후, 드디어 무언가를 만들 상황이 되어서 만들다가 안될 때 잠깐 보면 좋은 책인 것 같다.