콘텐츠 바로가기
본문 바로가기


블로그 전체검색
구글 브레인팀에게 배우는 딥러닝 with TensorFlow.js

[도서] 구글 브레인팀에게 배우는 딥러닝 with TensorFlow.js

프랑소와숄레,에릭 닐슨,스탠 바일시,샨칭 차이 저/박해선 역

내용 평점 5점

구성 평점 5점

 
 

머신러닝, 딥러닝 하면 당연 떠오르는 코딩언어는 파이썬이다.

그런데 책 제목부터  .js 로 끝나 자바스크립트로 인공지능을 구현할수 있음을 강조하고 있다. 자바스크립트 개발자들에겐 엄청난 희소식이 아닐수 없다.

심지어 자바스크립트 책 중엔 제목이 javascripts everywhere 라는 책이 있을정도니

 

이책의 원제는  2020.2.11. 출간된 "Deep learning with Javascript : Neural networks in Tensorflow.js" 이다. 직역하면 , "텐서플로 자바스크립트 신경망을 이용한 자바스크립트로 배우는 딥러닝" 쯤으로 되는데  길벗에서 멋지게 구글 브레인 팀에게 배우는 딥러닝  with  tensorflow.js  로 작명했다 ^^.  현재 아마존에서 고객평점이 5점 만점에 4.8 이다.

오히려 원저보다 페이지수는 늘어난듯 하다.

파이썬 못지 않게 많이 사용되는 언어인 자바스크립트로 파이썬 사용자만이 누려오던 인공지능을 할수 있다 생각하면 그림의 떡 마냥 바라보기만 했을법한 자바스크립트 개발자들은 가슴 설레이며 이책을 펼듯하다.

물론, 자바스크립트는 알고 있어야 된다.  자바스크립트 기초문법을 별도 설명치는 않는다.

책의 저자,역자들의 면면을 살펴보면 이미 게임 끝...

저자 3명은 구글 브레인 팀원이며

나머지 한분은 딥러닝에서 빠질수 없는 독보적인 존제 케라스를 창조한 분 프랑소와 솔레 라고 표기 되었다. 심지어 프랑소와 솔레가 집필한 이책의 토대가된 deep learning with python을 박해선 저자는 케라스 창시자에게 배우는 딥러닝 이란 책으로 제목까지 바꿔 집필하였다.

박해선 저자가 특히 프랑소와 솔레에게 애착이 있으신듯 ^^

딥러닝계의 어벤져스팀들이 자바스크립트 개발자들에게 훌륭한 마중물 제공을 ^^

 

역자는 현재 대한민국 인공지능 계의 명저들을 속속 번역해주시고 계시는 

분으로 최근엔 직접저술한 책이 장기간 top 을 유지 하기도 한 박해선님이니 뭐 ...^^

우리는 그저 주시는대로 잘 소화하면 될듯하다.

 

첫장을 넘기며 나오는 개념도를 보니, 원저에 있는건지...박해선님이 

별도 추가하신건지 몰라도 너무 좋아 보였다. 

딥러닝 책에서 내가 지대한 관심을 갖고 있는 리액트 네이티브, 라즈베리파이 가 떠~억 하니

등장하니 기대가 크다..ㅋ

 

이책은 전반적으로 프랑소와 솔레의 케라스 창시자에게 배우는 딥러닝 에 토대를 한다고 한다. 

 

1부는 동기부여와 기본개념으로,  파이썬이 아니고 왜 자바스크립트로 딥 러닝을 해야되는지 설명한다.

이유는 자바스크립트가 더 많은 곳에서 사용되고 있고

특히, 예측을 하기위해선 어디엔가 배포가 되어야 되는데

이세상, 지금, 가장 많은 사람들이 사용하는것은 바로

웹 브라우저

웹 브라우저의 강자는 바로 자바스크립트

특히, 스마트폰에선 각종 센서들까지 활용가능해서 좋다

서버측에선 구현시 돈,돈,돈, 인데 이것을 클라이언트에 배포해서 하면 

운용자측에선 very good, 

추론 속도에서도 클라이언트에서 서버로 전송해서 하려면 고화질영상시엔  지연, 비용,불안정 등으로 서버에서 추론시 여러가지 마이나스....

데이타 프라이버시:  사용자 정보, 예를들면 사용자 얼굴 피부 사진이나, 법률관련된 문서라던지... 모든일은 서버가 아닌 클라이언트 측에서 하게 해야 ...

원래 게임의 고화질 3D 객체 표면 렌더링에 사용하던 GPU 병렬계산을 신경망 계산에 활용하는 WebGL로  딥러닝에  필요한 컴퓨팅 성능을 밑받침한다.

딥러닝을 위해 복잡한 설치가 필요없이 바로 웹브라우저에서 할수 있다는 장점이 있다.

 

이쯔음에서 tensorflow.js  가 어떻게 태동했는지 설명을 하는데

초기엔 그저 웹브라우저에서 신경망 동작과 내부를 설명하려고 시작했던게 

발전에 발전을 거듭하여  tensorflow.js 까지 온걸로 설명을한다.

여기서 반드시 방문해야될 곳은

playground.tensorflow.org


 

보다더 강력한 성능을 Node.js가 밑받침을 한다. 더불어, RAM, file system 자원도 모두 사용가능하단다.

충분히 작은 모델일경우엔 파이썬보다 훈련속도가 빠르다한다.

서버, 클라이언트 양측에서 쉽게 사용가능하다는 장점도 있단다.

 

자바스크립트의 생태계는 너무 거대하고 특히 웹브라우저, node.js  백엔드에서

데스크톱 애플리케이션, 네이티브 모바일 애플리케이션까지

거침없이 영토를 확장하고 있다.

 

딥러닝 자바스클립트 라이브러리가 여럿 있는데 그중에 왜

tensorflow.js 인지는 머신러닝과 딥러닝의 대표선수인 텐서플로와 케라스와 밀접하게 연동되어 쉽고 구글TPU 같은것도 쉽게 사용할수 있다고 한다.

당연하겠지만 텐서플로 케라스 구글TPU등 죄다 구글이 만들었으니..ㅎ

 

2장에서는 기본적인 선형회귀를 이야기하며 tensorflow.js 사용하는것을 설명한다.

2장에서는 codepen(http://codepen.io)를 활용하여 설명한다.

머신러닝에서 언급되는 기본적인 개념을 설명한다.

참고로

이책에서 javascript의 수준은 javascript 기본서에다

 

비동기함수 처리인 async, await 개념

화살표연산자 또는 화살표 함수라 칭하는 (x) =>  { } 

let 지역변수 선언 같은 특이한것 정도만 알면 코드 보는데 어려움은 없을것 같다.



본인도 기본 개념을 넘어서는 것들은 구글링으로 검색해가며 이해했다.

예제는github.com의 두곳과 codepen.io에 있다.

실습시에는 클론한 코드에서 npx http-server 로 예제 실행후 

브라우저 새탭에서 특정 로컬 주소로 접속하던지

아니면 저자가 제공한 데모사이트에서 실습해볼수 있다

 

특히, tensorflow.js API(https://js.tensorflow.org/api/latest)에서 메서드 정의와 더불어 

실시간으로 수정할수 있는 위젯이 있어 직접 테스트하며 사용법과 사례를 

빠르고 쉽게 이해할수 있다.

이책도 연습문제와 요약이 있는데


특히 연습문제의 경우 여러가지 다양한 색다른 시도를 해보면서 개념을 더욱더 이해할수 있게 하는 문제들로 구성된 점이 이색적이었다.

 

3장의 경우

비선형성이 왜필요한지 어떤 효과를 위해 있는지 설명을 하고

선형성과 비선형성의 중요한 차이에 대해 설명을 한다.

특히 하이퍼파라미터 최적화는 신경망의 깊이에 따라 용량과 이해하기 쉬운 구조중에 택일과 관련있음을 설명한다.


거의 편저자 수준의 번역으로 보이는데 유독 역자주 , 역주가 많이 눈에 띠었다.


더불어 주요 개념을  표로 정리가 간단히 잘비교 되어 있다.

 

본인은 1장, 2장, 3장, 9장, 12장 을 관심있게 보았다.

부록으론 실습환경 설정및 라이브러리 설치와

용어사전도 추가해두었다.

 

가장 인상적인것은 뭐니 뭐니 해도 

저자가 원저에도 없을듯한 예제 온라인 데모를 제공한다는 것이다.

물론 예제 소스도 별도 제공하지만 예제 온라인 데모를 제공하는게 유독 눈에 띠었고

1장을 읽자마자, 곧바로 온라인 데모를 모두 실행해봤다.

심지어 이책을 않사더라도 

https://ml-ko.kr/tfjs/index.html

여기만큼은 꼬~옥 방문해 보세요, 아마.... 책을 사고 싶은 생각이....굴뚝 같을듯...ㅎ


 

말그대로, Javascript의 장점을 십분,백분,만분 ^^  활용한 좋은 시도로 보인다.





 


 



위 예제는 실제로 본인의 스마트폰에서 바로 실행해봤다. 좀 아쉬운 결과이지만

흥미로웠다

위 소스코드는 요즘 크로스플랫폼 개발 도구로 각광 받는 리엑티브 네이티브로 코딩되었다

일단, 책읽기도 전에 신나게 실행해본것중 몇가지 올려봤다.

펙맨 의 경우 신났다 신났어...^^;;;

 

개인적으론 이책에서 가장  궁금했던 장은 1장과 12장이었다.

파이썬과 자바스크립트가 어떻게 달리 머신러닝을 사용하는지의 1장과

그렇다면 그렇게 자바스크립트로 만들어서 어떻게 활용하는지 의 12장이었다

 

12장의 내용중 모델 테스트는 자바스크립트에서는 만들어둔 코드의 테스트를 하여

품질관리를 하는데 이책에선 Jasmin Test Framework를 사용하여 테스트를 하며

테스트할때 주의 사항을 설명을 하였다.

최적화에선 딥러닝 모델을 만들었는데 웹에서 베포해야 하는지라

용량이 작아야 되고 실행이 빨리빨리 될수 있게 튜닝을 어떻게 하는지 설명을 하고 있다.

 

가장 궁금했던 

12장 3절의 다양한 플랫폼과 환경에 tensorflow.js 모델 배포하기이다.

웹 배포 가능하게 하는 mobileNet, 클라우드 서비스 가능케하는 tensorflow serving 시스템,크롬 확장프로그램으로 가능케하는 mobilenett2, 리액트 네이티브 활용한 모바일 앱으로 가능케하는 mobileNet, 

일반 윈도 프로그램같이 배포하는 electron.js와 크로미엄을 활용한다.

심지어 위챗이란 중국 텐센트의  앱의 플러그인으로 배포하는것도 예를 든다.

 

이중, 개념도 내용중 가장흥미로웠던것이 리엑티브 네이티브, 라즈베리파이 배포 예였는데

12.3.7 의 단일보드베포 예  내용은 실제 예제 코드가 없어 아쉬웠다.

라즈베리파이4로 다양한 작품을 만들어본 본인으로선,

라즈베리파이4에서 딥러닝 코드를 파이썬이 아닌 자바스크립트로 돌려볼수 있을거란

생각을 못해봤기에 책 첫페이지 개념도에서 라즈베리가 언급되어 기대했는데 아쉬웠다.

tfjs-backend-nodegl 페키지를 활용하는 그림이 있는데 찾아 봐야 겠다.

박해선님 부탁드려도 될까요? ^^;

 

저자 입장에선 특히나 무지무지 어려운 딥러닝을

쉽게 어디서나 누구에게나 이해 시킬수 있는 좋은 도구인 웹브라우저로

전달할수 있고 독자는 파라미터를 바꿔가며 동작을 한층더 깊게 이해 할수 있어

좋다 생각한듯 하다.

 

이책을 공부하기 위해선

node.js, npm, yarn

CUDA, CuDNN, Micro Visual Studio 설치가 필요하고 이때 nvidia 계정이 필요하다.

CUDA, CuDNN을 사용하기 위해선 CUDA 를 지원하는 NVIDIA GPU가 장착되어 있어야 한다.

이후론

 window-build-tools, tfjs-node-gpu, tfjs, tfjs-node 이렇게 4개의 npm 패키지를 설치해야된다.

 

자바스크립트로 딥러닝 배워보는 책은 수년전에 한권이 나와있었으나 크게 주목받지 못했던듯하다. 아마존에 가니 웬걸... 자바스크립트로 딥러닝 배워보는 책이 적지 않았다.

이책도 이미 2020년에 나왔던 책이다..

 

현재 전세게 개발자 사용언어 1위? 인 자바스크립트 개발자들은 파이썬 개발자들만이 누려왔던 딥러닝의 세계를 딥러닝의 세계를 주도하는 분들이 만든 tensorflow.js로 어느정도

함께 해보는데 이책이 좋은 가이드가 될듯 하다 ... 

 

자바스크립트 개발자들은 딥러닝의 세계로 빠져드는,

기존 파이썬 개발자들에겐 웹및 많은 사용자들의 세계로 영역을 대폭 확장하는,

 

두 거대한 세계를 이어주는 tensorflow.js 와함께

상당히 흥미로운 세상으로 첫발을 이책과 함께 !    ^^


 

아직 모두 읽어보진 못했지만... 소장가치 100% 이지 않을까  강추 해본다 ^^

박해선님 책을 여러권 소장중인데...,  한권 또 추가되었다  ^^

 

 <YES24 리뷰어클럽 서평단 자격으로 작성한 리뷰입니다.> 


https://playground.tensorflow.org/
https://ml-ko.kr/tfjs/index.html
 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PRIDE2