추천 검색어

최근 검색어

도서 IT전문서/IT입문서 데이터베이스/데이터분석
자바스크립트만 알고 있다면 시작하기에 충분하다! 구글 브레인팀에게 배우는 딥러닝 with TensorFlow.js
정 가
44,000원
출 간
2022-03-31
지 은 이
프랑소와숄레,에릭 닐슨,스탠 바일시,샨칭 차이
옮 긴 이
박해선
I S B N
9791165219239
분 량
648쪽
난 이 도
입문,초급,중급
부 록
예제파일

딥러닝 기초부터 구글 브레인 팀의 노하우까지!

브라우저에서 딥러닝 모델을 빌드하고 실행하는 TensorFlow.js

딥러닝 기초부터 구글 브레인 팀의 노하우까지!

딥러닝은 컴퓨터 비전, 이미지 처리, 자연어 처리 등 다양한 분야에 변화를 불러왔다. 이제 자바스크립트 개발자는 파이썬이나 R에 의존하지 않고 TensorFlow.js를 사용하여 딥러닝 모델을 구축할 수 있다. 이 책은 <케라스 창시자에게 배우는 딥러닝> 책을 토대로 구글 브레인 팀 핵심 개발자 3인이 TensorFlow.js에 맞춰 코드를 재작성했고, 자바스크립트 생태계를 위한 새로운 내용을 많이 추가했다. TensorFlow.js의 개요부터 이미지와 사운드 인식, 전이 학습, 모델 시각화, 시퀀스와 텍스트를 위한 딥러닝, 생성적 딥러닝 등 딥러닝 기초부터 심층 강화 학습까지 TensorFlow.js로 딥러닝을 시작하기에 필요한 모든 것을 설명한다. 브라우저에서 얼마나 많은 작업을 수행할 수 있는지 알면 놀랄 것이다. 자바스크립트에 능숙한 개발자라면 TensorFlow.js로 딥러닝을 시작해보자.

· 한국어판 예제 데모 사이트: https://ml-ko.kr/tfjs

 

1부 동기 부여와 기본 개념

 

1장. 딥러닝과 자바스크립트

1.1 인공 지능, 머신 러닝, 신경망 그리고 딥러닝

__1.1.1 인공 지능

__1.1.2 전통적인 프로그래밍과 머신 러닝의 차이점

__1.1.3 신경망과 딥러닝

__1.1.4 왜 딥러닝인가? 왜 지금인가?

1.2 왜 자바스크립트와 머신 러닝을 합쳐야 하나요?

__1.2.1 Node.js를 사용한 딥러닝

__1.2.2 자바스크립트 생태계

1.3 왜 TensorFlow.js인가?

__1.3.1 TensorFlow, Keras, TensorFlow.js에 대한 간략한 역사

__1.3.2 TensorFlow.js를 선택하는 이유: 비슷한 라이브러리와의 간략한 비교

__1.3.3 전 세계에서 TensorFlow.js가 어떻게 사용되고 있나요?

__1.3.4 이 책이 TensorFlow.js에 대해 가르쳐 줄 것과 그렇지 않은 것

1.4 연습 문제

1.5 요약

 

2부 TensorFlow.js 소개

 

2장. TensorFlow.js 시작하기: 간단한 선형 회귀

2.1 예제 1: TensorFlow.js를 사용해 다운로드 시간 예측하기

__2.1.1 프로젝트 개요: 소요 시간 예측

__2.1.2 코드와 콘솔의 상호 작용 안내

__2.1.3 데이터 생성과 포매팅

__2.1.4 간단한 모델 정의하기

__2.1.5 훈련 데이터에서 모델 훈련하기

__2.1.6 훈련된 모델을 사용해 예측 만들기

__2.1.7 첫 번째 예제 요약

2.2 Model.fit( ) 내부: 예제 1의 경사 하강법 분석

__2.2.1 경사 하강법 최적화 이해하기

__2.2.2 역전파: 경사 하강법 내부

2.3 여러 입력 특성을 가진 선형 회귀

__2.3.1 보스턴 주택 데이터셋

__2.3.2 깃허브에서 보스턴 주택 프로젝트를 가져와 실행하기

__2.3.3 보스턴 주택 데이터 얻기

__2.3.4 보스턴 주택 문제를 정확하게 정의하기

__2.3.5 데이터 정규화

__2.3.6 보스턴 주택 데이터에서 선형 회귀 훈련하기

2.4 모델 해석 방법

__2.4.1 학습된 가중치에서 의미 추출하기

__2.4.2 모델에서 가중치 추출하기

__2.4.3 모델 해석 가능성에 대한 주의 사항

2.5 연습 문제

2.6 요약

 

3장. 비선형성 추가: 가중치 합을 넘어서

3.1 비선형성과 그 필요성

__3.1.1 신경망의 비선형성에 대한 직관 기르기

__3.1.2 하이퍼파라미터 최적화

3.2 출력층의 비선형성: 분류를 위한 모델

__3.2.1 이진 분류

__3.2.2 이진 분류기의 품질 측정: 정밀도, 재현율, 정확도, ROC 곡선

__3.2.3 ROC 곡선: 이진 분류의 균형 관계 확인하기

__3.2.4 이진 크로스 엔트로피: 이진 분류를 위한 손실 함수

3.3 다중 분류

__3.3.1 범주형 데이터의 원-핫 인코딩

__3.3.2 소프트맥스 활성화 함수

__3.3.3 범주형 크로스 엔트로피: 다중 분류를 위한 손실 함수

__3.3.4 오차 행렬: 다중 분류를 상세하게 분석하기

3.4 연습 문제

3.5 요약

 

4장. 합성곱 신경망을 사용해 이미지와 사운드 인식하기

4.1 벡터에서 텐서로 이미지 표현하기

__4.1.1 MNIST 데이터셋

4.2 첫 번째 합성곱 신경망

__4.2.1 conv2d 층

__4.2.2 maxPooling2d 층 1

__4.2.3 합성곱과 풀링의 반복

__4.2.4 flatten 층과 밀집 층

__4.2.5 합성곱 신경망 훈련하기

__4.2.6 합성곱 신경망을 사용해 예측하기

4.3 브라우저를 넘어서: Node.js로 모델 훈련 속도 높이기

__4.3.1 tfjs-node 사용하기

__4.3.2 Node.js에서 모델을 저장하고 브라우저에서 불러오기

4.4 음성 인식: 합성곱 신경망을 오디오 데이터에 적용하기

__4.4.1 스펙트로그램: 사운드를 이미지로 표현하기

4.5 연습 문제

4.6 요약

 

5장. 전이 학습: 사전 훈련된 신경망 재사용하기

5.1 전이 학습: 사전 훈련된 모델을 재사용하기

__5.1.1 출력 크기가 같은 전이 학습: 동결 층

__5.1.2 출력 크기가 같지 않은 전이 학습: 베이스 모델의 출력을 사용해 새로운 모델 만들기

__5.1.3 미세 튜닝을 통해 전이 학습을 최대로 활용하기: 오디오 예제

5.2 합성곱 신경망에서 전이 학습을 통한 객체 탐지

__5.2.1 합성된 장면을 기반으로 한 간단한 객체 탐지 문제

__5.2.2 간단한 객체 탐지 자세히 알아보기

5.3 연습 문제

5.4 요약

 

3부 TensorFlow.js를 사용한 고급 딥러닝

 

6장. 데이터 다루기

6.1 tf.data를 사용해 데이터 관리하기

__6.1.1 tf.data.Dataset 객체

__6.1.2 tf.data.Dataset 만들기

__6.1.3 데이터셋에서 데이터 가져오기

__6.1.4 tfjs-data 데이터셋 다루기

6.2 model.fitDataset으로 모델 훈련하기

6.3 데이터 추출의 일반적인 패턴

__6.3.1 CSV 데이터 다루기

__6.3.2 tf.data.webcam()을 사용해 비디오 데이터 가져오기

__6.3.3 tf.data.microphone()을 사용해 오디오 데이터 가져오기

6.4 데이터에 있는 문제 처리하기

__6.4.1 데이터 이론

__6.4.2 데이터 문제를 감지하고 처리하기

6.5 데이터 증식

6.6 연습 문제

6.7 요약

 

7장. 데이터와 모델 시각화

7.1 데이터 시각화

__7.1.1 tfjs-vis를 사용해 데이터 시각화하기

__7.1.2 통합 사례 연구: tfjs-vis를 사용한 날씨 데이터 시각화

7.2 훈련된 모델 시각화

__7.2.1 합성곱 신경망의 내부 활성화 값 시각화하기

__7.2.2 합성곱 층을 최대로 활성화하는 이미지 시각화하기

__7.2.3 합성곱 분류 결과에 대한 시각적 해석

7.3 추가 자료

7.4 연습 문제

7.5 요약

 

8장. 과소적합, 과대적합과 머신 러닝의 일반적인 워크플로

8.1 온도 예측 문제 구성

8.2 과소적합, 과대적합 그리고 해결책

__8.2.1 과소적합

__8.2.2 과대적합

__8.2.3 가중치 규제로 과대적합 감소하고 시각화하기

8.3 머신 러닝의 일반적인 워크플로

8.4 연습 문제

8.5 요약

 

9장. 시퀀스와 텍스트를 위한 딥러닝

9.1 두 번째 날씨 예측: RNN 소개

__9.1.1 밀집 층이 순서를 모델링하지 못하는 이유

__9.1.2 RNN이 순서를 모델링하는 방법

9.2 텍스트를 위한 딥러닝 모델 만들기

__9.2.1 머신 러닝에서의 텍스트 표현 방법: 원-핫 인코딩과 멀티-핫 인코딩

__9.2.2 감성 분석 문제를 위한 첫 번째 모델

__9.2.3 더 효율적인 단어 표현: 단어 임베딩

__9.2.4 1D 합성곱 신경망

9.3 어텐션 메커니즘을 사용한 시퀀스-투-시퀀스 작업

__9.3.1 시퀀스-투-시퀀스 작업 정의

__9.3.2 인코더-디코더 구조와 어텐션 메커니즘

__9.3.3 어텐션 기반의 인코더-디코더 모델 자세히 알아보기

9.4 추가 자료

9.5 연습 문제

9.6 요약

 

10장. 생성적 딥러닝

10.1 LSTM을 사용해 텍스트 생성하기

__10.1.1 다음 문자 예측기: 간단하게 텍스트를 생성하는 방법

__10.1.2 LSTM 텍스트 생성 예제

__10.1.3 온도: 생성된 텍스트의 무작위성 조절하기

10.2 변이형 오토인코더: 이미지를 위한 효율적이고 구조적인 벡터 표현 찾기

__10.2.1 오토인코더와 VAE: 기본 아이디어

__10.2.2 VAE 예제: 패션 MNIST

10.3 GAN으로 이미지 생성하기

__10.3.1 GAN의 기본 아이디어

__10.3.2 ACGAN의 구성 요소

__10.3.3 ACGAN 훈련 자세히 알아보기

__10.3.4 MNIST ACGAN 훈련과 이미지 생성

10.4 추가 자료

10.5 연습 문제

10.6 요약

 

11장. 심층 강화 학습

11.1 강화 학습 문제 정의

11.2 정책 네트워크와 정책 그레이디언트: 카트-막대 예제

__11.2.1 카트-막대 강화 학습 문제

__11.2.2 정책 네트워크

__11.2.3 정책 네트워크 훈련하기: REINFORCE 알고리즘

11.3 가치 네트워크와 Q-러닝: 스네이크 게임 예제

__11.3.1 강화 학습 문제로서의 스네이크 게임

__11.3.2 마르코프 결정 과정과 Q-가치

__11.3.3 심층 Q-네트워크

__11.3.4 심층 Q-네트워크 훈련하기

11.4 추가 자료

11.5 연습 문제

11.6 요약

 

4부 정리와 마무리 멘트

 

12장. 모델 테스트, 최적화, 배포

12.1 TensorFlow.js 모델 테스트하기

__12.1.1 전통적인 단위 테스트

__12.1.2 골든 값으로 테스트하기

__12.1.3 지속적인 훈련 고려 사항

12.2 모델 최적화

__12.2.1 훈련 후 가중치 양자화를 통한 모델 크기 최적화

__12.2.2 GraphModel 변환을 사용한 추론 속도 최적화

12.3 다양한 플랫폼과 환경에 TensorFlow.js 모델 배포하기

__12.3.1 웹에 배포할 때 추가적인 고려 사항

__12.3.2 클라우드 서비스에 배포

__12.3.3 크롬 확장 같은 브라우저 확장 프로그램으로 배포하기

__12.3.4 자바스크립트 기반 모바일 애플리케이션에 TensorFlow.js 모델 배포하기

__12.3.5 자바스크립트 기반 크로스 플랫폼 데스크톱 애플리케이션에 TensorFlow.js 모델 배포하기

__12.3.6 위챗과 다른 자바스크립트 기반 모바일 앱 플러그인 시스템에 TensorFlow.js 모델 배포하기

__12.3.7 단일 보드 컴퓨터에 TensorFlow.js 모델 배포하기

__12.3.8 배포 방식 정리

12.4 추가 자료

12.5 연습 문제

12.6 요약

 

13장. 정리, 결론 그리고 그 외 사항

13.1 검토할 주요 개념

__13.1.1 AI, 머신 러닝, 딥러닝

__13.1.2 머신 러닝 중에서 딥러닝이 독보적인 이유

__13.1.3 딥러닝에 대한 고수준의 소개

__13.1.4 딥러닝을 가능하게 한 핵심 기술

__13.1.5 자바스크립트에서 딥러닝으로 가능한 애플리케이션과 기회

13.2 딥러닝 워크플로와 TensorFlow.js 소개

__13.2.1 지도 학습 딥러닝의 일반적인 워크플로

__13.2.2 TensorFlow.js의 모델과 층

__13.2.3 TensorFlow.js에서 사전 훈련된 모델 사용하기

__13.2.4 딥러닝의 가능성

__13.2.5 딥러닝의 한계

13.3 딥러닝 트렌드

13.4 추가 학습을 위한 안내

__13.4.1 캐글에서 실전 머신 러닝 문제 연습하기

__13.4.2 아카이브에서 최신 개발 논문 읽기

__13.4.3 TensorFlow.js 생태계

맺음말

 

부록 A. 실습 환경 설정

 

부록 B. tfjs-node-gpu와 필수 라이브러리 설치

B.1 리눅스에서 tfjs-node-gpu 설치하기

B.2 윈도에서 tfjs-node-gpu 설치하기

 

부록 C. TensorFlow.js 텐서와 연산 튜토리얼

C.1 텐서 생성과 텐서 축 규칙

__C.1.1 스칼라(랭크-0 텐서)

__C.1.2 tensor1d(랭크-1 텐서)

__C.1.3 tensor2d(랭크-2 텐서)

__C.1.4 랭크-3과 고차원 텐서

__C.1.5 데이터 배치 개념

__C.1.6 실제 텐서 예시

__C.1.7 텐서 버퍼에서 텐서 만들기

__C.1.8 값이 0인 텐서와 값이 1인 텐서 만들기

__C.1.9 랜덤한 값을 가진 텐서 만들기

C.2 기본 텐서 연산

__C.2.1 단항 연산

__C.2.2 이진 연산

__C.2.3 텐서 연결과 슬라이싱

C.3 TensorFlow.js의 메모리 관리: tf.dispose( )와 tf.tidy( )

C.4 그레이디언트 계산

C.5 연습 문제

 

부록 D. 용어 사전

 

ㆍ지은이 프랑소와숄레
지은이 소개
가장 널리 사용되는 딥러닝 프레임워크인 케라스의 창시자다. 현재 구글의 소프트웨어 엔지니어로 케라스 팀을 이끌고 있으며, 추상화, 추론 그리고 인공 지능의 일반성을 높이기 위한 방법을 연구한다. • https://fchollet.com • https://twitter.com/fchollet • https://github.com/fchollet

ㆍ지은이 에릭 닐슨
지은이 소개
구글 브레인 팀의 소프트웨어 엔지니어이며, TensorFlow.js 고수준 API와 이와 관련된 예제, 문서, 도구의 핵심 개발자다. TensorFlow.js 기반 딥러닝을 장애인을 위한 의사소통 도구 같은 실전 문제에 적용했으며, 모두 MIT에서 학위를 받았다.

ㆍ지은이 스탠 바일시
지은이 소개
구글 브레인 팀의 소프트웨어 엔지니어이며, TensorFlow.js 고수준 API와 이와 관련된 예제, 문서, 도구의 핵심 개발자다. TensorFlow.js 기반 딥러닝을 장애인을 위한 의사소통 도구 같은 실전 문제에 적용했으며, 모두 MIT에서 학위를 받았다.

ㆍ지은이 샨칭 차이
지은이 소개
구글 브레인 팀의 소프트웨어 엔지니어이며, TensorFlow.js 고수준 API와 이와 관련된 예제, 문서, 도구의 핵심 개발자다. TensorFlow.js 기반 딥러닝을 장애인을 위한 의사소통 도구 같은 실전 문제에 적용했으며, 모두 MIT에서 학위를 받았다.

ㆍ옮긴이 박해선
옮긴이 소개
기계 공학을 전공했지만 졸업 후에는 줄곧 코드를 읽고 쓰는 일을 했다. 텐서플로우 블로그(https://tensorflow.blog)를 운영하고 있고, 머신 러닝과 딥러닝에 관한 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하는 중이다. 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했고, 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신 러닝 교과서 3판』(길벗, 2021), 『핸즈온 머신러닝 2판』(한빛미디어, 2020)을 포함하여 여러 권의 책을 우리말로 옮겼다.

필요한 자료를 선택하세요.

추천도서