본문 바로가기

book

개발자를 위한 머신러닝&딥러닝

로런스 모로니의 책이 출간되었습니다.

구글 인공지능 팀 리더로 유명하신 분입니다.

제목의 대상이 "개발자를 위한" 이라는 멘트가 어떠한 내용이 있을지 흥미로운 부분입니다.

 

 

■ 대상독자

개발자를 위한 (원서에서는 For Coders)라고 정의된 이유에 대해서 생각해보면,

"로런스 모로니" 저자분도 처음부터 머신러닝 개발을 하시지 않았고,

처음에는 개발자로 구글에서 파이어베이스 제품관련 일을 하시면서, 텐서플로 팀에 합류하시게 되었습니다.
개발자입장에서 머신러닝을 잘 활용하는 방법과, 그것을 실제 서비스에 배포하는 것에 대해서

개발자 입장에서 책을 통해서 전달하려는 내용이 구성되어 있다고 보시면 될거 같습니다.

 

■ 책의 구성

이책은 텐서플로 기반으로 예제 코드가 구성되어 있습니다.

책의 2부에서는 실제 안드로이드 스튜디오 화면도 보이고, XCode의 화면도 있습니다.

 

<<Part1>>

여러가지 경우에 대해서 모델을 구성하는 방법을 실습해봅니다

코드를 통해서 이론등을 설명합니다. 

신경망을 설명할때, 주요 핵심 키워드들이 다 언급됩니다.

은닉층, 과대적합, 하이퍼파리미터 튜닝, 과대적합, 출력층, ReLU, Softmax함수 등등

내용을 처음 보시는 입장에서는 용어, 단어에 익숙해지고 크게 어떠한 흐름으로 동작되는지 파악하는 관점으로

보시면 좋을거 같습니다. 여기서 조금 더 심화학습이 필요한 부분은 다른것으로 보충하시면 좋을거 같습니다.

 

2장에서, 예제로 많이 사용하는 MNIST데이터(0~9까지 숫자)와 비슷한 패선 MNIST데이터를 가지고 실습을 합니다.

3장에서는 여기서 만든 신경망을 이용해서, CNN(합성곱)을 실습합니다.

폴링, 이미지 증식, 드롭아웃과 같은 기법을 활용하여서, 이미지 처리에 대한 합성곱을 실습합니다.

자연어 처리(NLP)에 대한 부분에 대해서 어떻게 단어를 구분하고, 역전파를 통해서 적절한 단어를 구성해서 문장을 도출합니다.

(텍스트를 토큰화 하고 시퀀스로 변환해 신경망에 주입할수 있도록 문장을 숫자 텐서로 만드는 과장)

이것을 기반으로 비슷한 단어를 임베딩하는 하고, RNN(순환신경망)을 만들어봅니다.LSTM기반 모델을 추축하여서 텐서플로를 통해서 텍스트를 구성해봅니다.

10,11장에서는 여러 신경망으로 구성된 시계열데이터를 예측하믄 모델을 추축해보는 과정이 있습니다.

하이퍼파라미터, 신경망 구조를 조정을 통해서 모델의 정확도를 도출해봅니다.

 

<<Part2>>

크게 3가지의 플랫폼에 대해서 설정을 합니다.

1. Android (App)

2. IOS (App)

3. Web

 

안드로이드 스튜디오를 통해서 구성합니다.

build.gradle에 org.tensorflow:tensorflow-lite에 의존성을 주입해서 구성합니다.

 

XCode를 통해서 구성합니다.

Web의 경우 tensorflow.js를 통해서 모델을 이용하는 방법이 이용됩니다.

 

■ 정리

머신러닝,딥러닝으로 무엇을 할수 있을지 실제 코드를 통해서 미리 경험해보고 싶으면 매우 좋습니다.

실습 코드 및 주요 핵심 개념 및 키워드가 잘 bold처리 되어 있고, 정의가 매우 잘 설명되어 있습니다.

다른책에 잘 언급되지 않는, 모델의 배포에 대해서 좋은 내용을 학습할 수 있는 장점이 있는 책이라고 생각됩니다.

 

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