텐서플로와 케라스로 구현하는 딥러닝 3/e
- 원서명Deep Learning with TensorFlow and Keras: Build and deploy supervised, unsupervised, deep, and reinforcement learning models, 3rd Edition (ISBN 9781803232911)
- 지은이아미타 카푸어(Amita Kapoor), 안토니오 걸리(Antonio Gulli), 수짓 팔(Sujit Pal)
- 옮긴이이병욱
- ISBN : 9791161757773
- 50,000원 (eBook 40,000원)
- 2023년 08월 28일 펴냄
- 페이퍼백 | 860쪽 | 188*235mm
- 시리즈 : 데이터 과학
책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/tensorflow-keras-deeplearning-3e
요약
딥러닝에 관련된 거의 모든 최신 기술을 설명한다. 회귀부터 시작해 딥러닝의 기초를 설명하고, 컨볼루션 신경망, 순환 신경망, LTSM, 자연어 처리, 이미지 합성 등에 대한 최신 기술 동향을 소개한다. 특히 현재 활발히 연구 중인 AutoML 분야의 현황과 구글 클라우드를 이용한 AutoML 실습도 다루며, 확률적 텐서플로와 그래프 신경망에 대해서도 친절하게 안내한다.
풍부한 예제를 통해 케라스가 완전 통합된 텐서플로의 사용 방법을 다양한 응용분야에 걸쳐 직접 구축해볼 수 있다. GAN을 통한 필기체 숫자의 생성, RNN과 LTSM이 나오게 된 배경 및 어떤 문제를 해결하고자 했는지에 대한 배경 설명을 듣고 나면 다양한 각도에서 딥러닝을 이해하게 될 것이다.
트랜스포머를 별도로 다루는 새로운 장을 추가했고, BERT, GPT-2, GPT3, Reformer 등 다양한 언어 모델에 대한 상세한 설명과 비교 및 Huggin Face 라이브러리를 통한 다양한 언어 예제 등 2판에 비해 여러 내용을 보강했다. 그래프 신경망 또한 예제와 함께 그 기능과 특징을 자세히 설명한다.
추천의 글
“이해하기 쉽게 잘 쓰였으며 이론과 실제 사이에서의 균형이 잘 잡힌 훌륭한 책이다.
소프트웨어 개발자를 위한 매우 흥미로운 머신러닝 입문서다.”
─프랑소와 숄레(François Chollet), 케라스 창시자
이 책에서 다루는 내용
◆ 텐서플로로 보편적인 GNN을 사용한 그래프 마이닝 과제 해결 방법
◆ 사전 학습 단계부터 평가하는 미세-튜닝 단계까지 트랜스포머의 세계 탐구
◆ 자기-지도학습을 적용한 자연어 처리, 컴퓨터 비전, 자동 신호 처리 방법
◆ TensorFlow Probability를 이용한 확률과 딥러닝 모델 병합
◆ 클라우드에서 모델을 훈련하고 텐서플로를 실제 환경에서 작동시키는 방법
◆ 텐서플로 2.x와 케라스 API를 통한 머신러닝과 딥러닝 모델 구축
이 책의 대상 독자
머신러닝 경험이 있는 데이터 과학자이거나 신경망에 어느 정도 노출된 AI 프로그래머라면 이 책이 TensorFlow를 사용한 딥러닝에 대한 유용한 시작점임을 알게 될 것이다. 딥러닝 쓰나미에 대한 관심이 높아지고 있는 소프트웨어 엔지니어라면 이 책이 해당 주제에 대한 지식을 넓힐 수 있는 기초 플랫폼이 될 것이다. 이 책을 읽으려면 Python에 대한 기본 지식이 필요하다.
이 책의 구성
1장은 머신러닝 및 딥러닝을 위해 Google에서 개발한 오픈 소스 라이브러리인 텐서플로의 기본 사항을 배운다. 또한 지난 몇 년 동안 놀라운 성장을 이룬 머신러닝의 두 가지 영역인 신경망과 딥러닝의 기초를 소개한다. 1장의 기본 목적은 기본적이지만 완전한 딥러닝 실습을 수행하는 데 필요한 모든 도구를 소개하는 것이다.
2장은 머신러닝 기술의 기본 작업인 회귀와 분류에 중점을 둔다. 텐서플로를 사용해 단순, 다중 및 다변량 회귀 모델을 구축하는 방법을 배운다. 또한 다중 클래스 분류 문제를 해결하기 위해 로지스틱 회귀를 사용한다.
3장은 MNIST 필기 문자를 높은 정확도로 인식하기 위해 딥러닝 ConvNet을 사용하는 방법을 다룬다. CIFAR 10 데이터셋을 사용해 10개의 카테고리로 딥러닝 분류기를 구축하고 ImageNet 데이터셋으로 1,000개의 카테고리로 정확한 분류기를 구축할 것이다. 또한 VGG16과 같은 대규모 딥러닝 네트워크와 InceptionV3와 같은 매우 깊은 네트워크를 사용하는 방법을 조사한다. 아울러 전이학습에 대한 논의로 마무리한다.
4장은 분산 표현과 단어 임베딩의 기원과 이론을 소개한다. 그다음 문장과 단락을 기반으로 하는 정적 단어 기반 임베딩보다 더 역동적이고 표현적인 단어 임베딩의 진행 상황을 차트로 설명한다. 또한 그래프의 노드 또는 웹 애플리케이션의 사용자 세션과 같이 단어가 아닌 시퀀스도 포함하도록 단어 임베딩의 아이디어를 확장할 수 있는 방법을 살펴본다. 다양한 종류의 단어 임베딩을 사용하는 여러 예 역시 포함한다.
5장에서는 순환 신경망을 다루며, 자연어 또는 시계열과 같은 시퀀스 데이터를 처리하는 데 최적화된 신경망의 중요한 아키텍처 하위 부류에 대해 설명한다. LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Unit)와 같은 중요한 아키텍처를 설명하고 양방향 상태 및 일괄 처리 상태를 처리하도록 확장할 수 있는 방법을 보여준다. 또한 텍스트 생성, 감정 분석 및 품사 태깅과 같은 특정 작업에 대한 다양한 토폴로지와 함께 RNN을 사용하는 예를 소개한다. 또한 인코더-디코더 파이프라인에서 한 쌍의 RNN을 사용해 다양한 NLP 작업을 해결하는 인기 있는 seq2seq 아키텍처에 대해서도 설명한다.
6장에서는 전통적인 자연어 처리 분야를 혁신한 딥러닝 아키텍처인 트랜스포머를 다룬다. 먼저 가장 인기 있는 모델에 대한 심층 분석과 함께 아키텍처 및 다양한 범주의 트랜스포머에 대한 핵심 직관을 검토하는 것으로 시작한다. 그런 다음 Hugging Face 및 TensorFlow Hub와 같은 인기 있는 라이브러리와 바닐라 아키텍처를 기반으로 하는 구현에 중점을 둔다. 그다음 평가, 최적화 및 트랜스포머를 사용할 때 일반적으로 채택되는 몇 가지 모범 사례에 대해 간략하게 설명한다. 마지막 절은 트랜스포머를 사용해 NLP와 완전히 다른 영역인 컴퓨터 비전 작업을 수행하는 방법을 검토하는 데 전념한다. 이를 위해서는 어텐션(attention) 메커니즘에 대한 신중한 정의가 필요하다. 결국, “필요한 것은 어텐션이 전부다”. 그리고 관심의 핵심에는 벡터 간의 코사인 유사성 외에는 아무것도 없다.
7장에서는 비지도학습 모델에 대해 자세히 설명한다. PCA, k-평균 및 자체 구성 맵과 같은 클러스터링 및 차원 감소에 필요한 기술을 다룬다. 볼츠만(Boltzmann) 머신과 텐서플로를 사용한 구현에 대해 자세히 설명한다. 다루는 개념은 RBM(Restricted Boltzmann Machines) 구축으로 확장된다.
8장에서는 입력을 대상으로 재생성하려는 신경망 부류인 오토인코더에 대해 설명한다. 희소 오토인코더, 컨볼루션 오토인코더, 디노이징(denosing) 오토인코더와 같은 다양한 종류의 오토인코더를 다룰 것이다. 여기서는 잡음 제거 자동 인코더를 훈련해 입력 이미지에서 잡음을 제거한다. 오토인코더를 사용해 MNIST 숫자를 생성하는 방법을 보여준다. 또한 문장 벡터를 생성하기 위해 LSTM 자동 인코더를 구축하는 것과 관련된 단계도 다룬다. 마지막으로, 이미지를 생성하기 위해 가변 오토인코더를 구축하는 방법을 배운다.
9장에서는 생성적 적대 신경망(GAN)에 중점을 둔다. 먼저 첫 번째 제안된 GAN 모델로 시작해 MNIST 문자를 위조하는 데 사용한다. 또한 심층 컨볼루션 GAN을 사용해 유명인 이미지를 만드는 방법을 보여준다. 그리고 SRGAN, InfoGAN 및 CycleGAN과 같은 다양한 GAN 아키텍처에 대해 설명한다. 다양하고 멋진 GAN 애플리케이션도 다룬다. 마지막으로 겨울-여름 이미지를 변환하기 위해 CycleGAN의 텐서플로 구현으로 결론을 내린다.
10장에서는 컴퓨터 비전, 오디오 및 자연어 처리에서 자기-지도학습에 사용되는 다양한 전략에 대한 개요를 제공한다. 자기회귀 생성, 마스킹된 생성, 관계 예측 및 이러한 접근 방식의 하이브리드와 같은 전략을 통한 자기 예측을 다룬다. 또한 자기-지도학습을 위한 인기 있는 기술인 대조학습과 다양한 응용 분야의 다양한 구실 작업에 대한 응용을 다룬다.
11장에서는 Q-러닝 알고리듬과 벨만(Bellman) 방정식을 다루는 강화학습에 중점을 둔다. 할인된 보상, 탐색 및 활용, 할인 요소를 다룬다. 또한 정책 기반 및 모델 기반 강화학습에 대해 설명한다. 아타리(Atari) 게임을 플레이하기 위해 DQN(Deep Q-Learning Network)을 구축할 것이다. 마지막으로 정책 기울기 알고리듬을 사용해 에이전트를 교육하는 방법을 배운다.
12장에서는 확률론적 추론과 통계 분석을 수행하기 위해 텐서플로 위에 구축된 라이브러리인 텐서플로 확률을 소개한다. TensorFlow Probability를 사용해 합성 데이터를 생성하는 방법을 보여준다. 베이즈 네트워크를 구축하고 추론을 수행한다. 12장에서는 또한 불확실성, 우발적 및 인식적 개념과 훈련된 모델의 불확실성을 계산하는 방법을 소개한다.
13장에서는 기계학습 기술에 익숙하지 않은 도메인 전문가가 머신러닝 기술을 쉽게 사용할 수 있도록 하는 것을 목표로 하는 AutoML을 소개한다. 먼저 Google Cloud Platform을 사용해 실습을 진행하고 기본 사항에 대해 간략히 논의한 후 실질적인 실습 작업을 수행한다. 자동 데이터 준비, 자동 기능 엔지니어링 및 자동 모델 생성을 다룬다. 그런 다음 테이블, 비전, 텍스트, 번역 및 비디오 처리를 위한 여러 솔루션과 함께 오토케라스 및 Google Cloud AutoML을 소개한다.
14장에서는 딥러닝의 이면의 수학을 다룬다. 이 주제는 상당히 고급 과정이므로 실무자에게 반드시 필요하진 않다. 그러나 신경망을 다룰 때 “내부적으로” 어떤 일이 일어나고 있는지 이해하고자 한다면 읽어보길 권한다. 역사적 소개부터 시작해 미분과 그래디언트의 고등학교 수준의 개념을 검토하고 딥러닝 네트워크를 최적화하는 데 일반적으로 사용되는 그래디언트 디센트 및 역전파 알고리듬을 소개한다.
15장에서는 TPU에 대해 설명한다. TPU는 초고속 방식으로 신경망 수학 연산을 실행하기 위해 Google에서 개발한 매우 특별한 ASIC 칩이다. 연산의 핵심은 여러 내적(행*열)을 병렬로 계산하는 수축기 승수이므로 기본 딥러닝 작업의 계산을 가속화한다. TPU를 행렬 또는 텐서 작업에 초점을 맞춘 딥러닝을 위한 특수 목적의 보조 프로세서로 생각하라. 지금까지의 4세대 TPU와 추가 IoT용 Edge TPU를 검토할 것이다.
16장에서는 다른 딥러닝 프레임워크를 소개한다. Hugging Face, OpenAI의 GPT3 및 DALL-E 2를 살펴본다. 또 다른 인기 있는 딥러닝 프레임워크인 PyTorch를 소개한다. 또한 H2O.ai와 AutoML 모듈도 다룬다. 아울러 딥러닝 모델을 위한 ONNX 오픈 소스 형식에 대해서도 간략하게 설명한다.
17장에서는 그래프 신경망과 인기 있는 딥 그래프 라이브러리(DGL)를 특히 강조하면서 그래프와 그래프 기계학습을 소개한다. 먼저 GNN(및 DGL에서 사용 가능)에서 사용되는 일반적으로 사용되는 다양한 그래프 계층의 이론을 설명하고 노드 분류, 링크 예측 및 그래프 분류에 사용되는 GNN의 예를 제공한다. 또한 고유한 그래프 데이터셋으로 작업하고 그래프 계층을 사용자 지정해 새로운 GNN 아키텍처를 생성하는 방법도 보여준다. 그다음 이기종 그래프 및 시간 그래프와 같은 Graph ML 분야의 최첨단 발전을 다룬다.
18장에서는 훈련과 제품에서 최상의 모델을 얻기 위해 따라야 할 전략과 사례에 중점을 둔다. 여기서는 데이터 관련 사례와 모델 관련 사례라는 두 가지 관점에서 모범 사례를 설명한다.
19장에서는 텐서플로 생태계의 다양한 구성 요소를 설명한다. 사전 학습된 딥러닝 모델의 저장소인 TensorFlow Hub를 소개한다. 여기서는 바로 사용할 수 있는 데이터셋 모음인 텐서플로 데이터셋에 관해 설명한다. 또한 모바일 및 임베디드 시스템과 웹을 위한 프레임워크인 TensorFlow Lite 및 TensorFlow JS에 대해서도 이야기할 것이다. 마지막으로 분산형 기계학습 프레임워크인 연합 학습에 대해 설명한다.
20장에서는 CNN(컨볼루션 신경망)의 고급 사용법을 보여준다. CNN이 컴퓨터 비전, 비디오, 텍스트 문서, 오디오 및 음악 영역 내에서 어떻게 적용될 수 있는지 탐구할 것이다. 그리고 컨볼루션 연산을 요약하는 절로 마무리한다.
상세 이미지
목차
목차
- 1장. TF와 신경망 기초
- TensorFlow(TF)란 무엇인가?
- Keras란 무엇인가?
- 신경망 소개
- 퍼셉트론
- TensorFlow 첫 코드 예제
- 다층 퍼셉트론 - 신경망 첫 예제
- 퍼셉트론 훈련의 문제점과 그 해결책
- 활성화 함수 - 시그모이드
- 활성화 함수 - tanh
- 활성화 함수 - ReLU
- 추가적인 2개의 활성화 함수 - ELU와 LeakyReLU
- 활성화 함수들
- 간단히 말해 - 결국 신경망이란 무엇인가?
- 실제 예제 - 필기체 숫자 인식
- 원-핫 인코딩
- TensorFlow로 단순 신경망 정의
- 단순 TensorFlow망 실행과 베이스라인 구축
- TensorFlow의 단순 신경망을 은닉층으로 개선
- TensorFlow에서 드롭아웃으로 단순망 개선
- TensorFlow에서 서로 다른 최적기 테스트
- 에폭 수 증가시키기
- 최적기 학습률 조절
- 내부 은닉층 개수 증가
- 배치 계산 크기 증가
- 필기체 인식 실행 차트 요약
- 규제화
- 과적합을 피하기 위한 규제화 적용
- 배치 정규화의 이해
- Google Colab 사용 - CPUs, GPUs, TPUs
- 감정 분석
- 초매개변수 튜닝과 AutoML
- 출력 예측
- 역전파에 대한 실용적 개괄
- 지금까지 배운 것?
- 딥러닝 접근법을 향해
- 요약
- 참고문헌
- 2장. 회귀와 분류
- 회귀란 무엇인가?
- 선형회귀를 사용한 예측
- 단순 선형회귀
- 다중 선형회귀
- 다변량 선형회귀
- 선형회귀를 위한 신경망
- TensorFlow Keras를 사용한 단순 선형회귀
- TensorFlow Keras API를 사용한 다중과 다변량 선형회귀
- 분류 과제와 결정 경계
- 로지스틱 회귀
- MNIST 데이터셋에 로지스틱 회귀 적용
- 요약
- 참고문헌
- 3장. 컨볼루션 신경망
- 심층 컨볼루션 신경망
- 지역 수용 필드
- 가중치 공유 및 편향
- 수학적 예제
- TensorFlow의 ConvNets
- 풀링 계층
- 최댓값 풀링
- 평균값 풀링
- ConvNets 요약
- DCNN의 예시 - LeNet
- TF에서 LeNet 코드
- 딥러닝의 위력 이해하기
- 딥러닝으로 CIFAR-10 이미지 인식
- 심층 신경망으로 CIFAR-10 성능 향상
- 데이터 증강을 통해 CIFAR-10 성능 개선
- CIFAR-10으로 예측
- 대형 이미지 인식을 위한 고심층 컨볼루션 신경망
- VGG16 신경망으로 고양이 인식
- tf.keras의 내장 VGG16 Net 활용
- 특징 추출을 위해 사전 구축된 딥러닝 모델 재활용
- 전이학습을 위한 심층 인셉션 V3망
- 다른 CNN 아키텍처
- AlexNet
- 잔차 네트워크
- HighwayNets와 DenseNets
- Xception
- 스타일 변환
- 콘텐츠 거리
- 스타일 거리
- 요약
- 참고문헌
- 심층 컨볼루션 신경망
- 4장. 단어 임베딩
- 단어 임베딩 - 유래와 기초
- 분산 표현
- 정적 임베딩
- Word2Vec
- GloVe
- Gensim을 사용한 자신만의 임베딩 생성
- gensim을 사용한 임베딩 공간 탐색
- 워드 임베딩을 사용한 스팸 탐지
- 데이터 얻기
- 데이터를 사용 준비
- 임베딩 행렬 구축
- 스팸 분류기 정의
- 모델의 훈련과 평가
- 스팸 탐지기 실행
- 신경망 임베딩 - 단어 이외의 용도
- Item2Vec
- node2vec
- 문자와 부분 단어 임베딩
- 동적 임베딩
- 문장과 문단 임베딩
- 언어 모델 기반 임베딩
- BERT를 특징 추출기로 사용
- 요약
- 참고문헌
- 5장. 순환 신경망
- 기본 RNN 셀
- BPTT
- 사라지고 폭발하는 그래디언트
- RNN 셀 변형
- LSTM
- GRU
- 핍홀 LSTM
- RNN 변형
- 양방향 RNN
- 상태 저장 RNN
- RNN 위상들
- 예제: 일대다-텍스트 생성을 학습
- 예제: 다대일-감정 분석
- 예제: 다대다 - POS 태깅
- 인코더-디코더 아키텍처 ― seq2seq
- 예제: 기계 번역을 위한 어텐션 없는 seq2seq
- 어텐션 매커니즘
- 예제: 머신 번역을 위한 어텐션이 있는 seq2seq
- 요약
- 참고문헌
- 기본 RNN 셀
- 6장. 트랜스포머
- 아키텍처
- 핵심 직관
- 위치 인코딩
- 어텐션
- 셀프-어텐션
- 멀티-헤드 (셀프-)어텐션
- 어텐션을 계산하는 방법
- 인코더-디코더 아키텍처
- 잔류와 정규화 계층
- 트랜스포머 아키텍처 개요
- 훈련
- 핵심 직관
- 트랜스포머의 아키텍처
- 트랜스포머 종류
- 디코더 또는 자기회귀
- 인코더 또는 오토인코딩
- Seq2seq
- 멀티모달
- 검색
- 어텐션
- 전체 대 희소
- LSH 어텐션
- 지역 어텐션
- 트랜스포머 종류
- 사전 훈련
- 인코더 사전 훈련
- 디코더 사전 훈련
- 인코더-디코더 사전 훈련
- 사전 훈련 과제의 종류
- 대중적이고 잘 알려진 모델에 대한 개요
- BERT
- GPT-2
- GPT-3
- 리포머
- 빅버드
- 트랜스포머-XL
- XLNet
- RoBERTa
- ALBERT
- StructBERT
- T5 및 MUM
- ELECTRA
- DeBERTa
- 진화된 트랜스포머와 MEENA
- LaMDA
- 스위치 트랜스포머
- RETRO
- 패스웨이와 PaLM
- 구현
- 트랜스포머 참조 구현: 번역의 예
- 허깅 페이스
- 텍스트 생성
- 모델 자동 선택 및 자동 토큰화
- 명명된 개체 인식
- 요약
- 미세 조정
- TFHub
- 평가
- 품질
- GLUE
- SuperGLUE
- SQuAD
- RACE
- NLP-progress
- 크기
- 크다고 항상 더 좋지는 않다
- 제공 비용
- 품질
- 최적화
- 양자화
- 가중치 가지치기
- 증류
- 일반적인 함정: 해야 할 일과 하지 말아야 할 일
- 권장
- 금지 사항
- 트랜스포머의 미래
- 요약
- 아키텍처
- 7장. 비지도학습
- 주성분 분석
- MNIST 데이터셋에 PCA
- TensorFlow 임베딩 API
- K-평균 군집화
- TensorFlow에서의 K-평균
- k-평균 변형
- 자기 조직화 지도
- SOM을 사용한 컬러 매핑
- 제한된 볼츠만 머신
- RBM을 사용한 이미지 재구성
- 심층 신뢰 신경망
- 요약
- 참고문헌
- 주성분 분석
- 8장. 오토인코더
- 오토인코더 소개
- 바닐라 오토인코더
- TensorFlow Keras layers - 맞춤형 계층 정의
- 오토인코더를 사용해 필기체 숫자 재구성
- 희소 오토인코더
- 디노이징 오토인코더
- 디노이징 오토인코더를 이용한 이미지 정리
- 스택된 오토인코더
- 이미지의 노이즈 제거를 위한 컨볼루션 오토인코더
- Keras 오토인코더 예제: 문장 벡터
- 가변 인코더
- 요약
- 참고문헌
- 9장. 생성 모델
- GAN이란 무엇인가?
- TensorFlow에서 GAN을 사용하는 MNIST
- 심층 컨볼루션 GAN(DCGAN)
- MNIST 숫자를 위한 DCGAN
- 몇 가지 흥미로운 GAN 아키텍처
- SRGAN
- CycleGAN
- InfoGAN
- GAN의 흥미로운 응용들
- TensorFlow로 CycleGAN 구현
- 데이터 생성을 위한 흐름 기반 모델
- 데이터 생성을 위한 확산 모델
- 요약
- 참고문헌
- GAN이란 무엇인가?
- 10장. 자기-지도학습
- 선행 연구
- 자기-지도학습
- 자기 예측
- 자기회귀 생성
- PixelRNN
- 이미지 GPT(IPT)
- GPT-3
- XLNet
- WaveNet
- WaveRNN
- 마스킹된 생성
- BERT
- 스택 잡음 제거 오토인코더
- 컨텍스트 오토인코더
- 채색
- 본질적 관계 예측
- 상대적 위치
- 조각 그림 퍼즐 풀기
- 회전
- 하이브리드 자기 예측
- VQ-VAE
- Jukebox
- DALL-E
- VQ-GAN
- 자기회귀 생성
- 대조학습
- 훈련 목표
- 대조 손실
- 3중항 손실
- N-쌍 손실
- 리프트된 구조적 손실
- NCE 손실
- InfoNCE 손실
- 소프트 최근접 이웃 손실
- 인스턴스 변환
- SimCLR
- Barlow Twins
- BYOL
- 특징 군집화
- DeepCluster
- SwAV
- InterCLR
- 다중 뷰 코딩
- AMDIM
- CMC
- 다중 모드 모델
- CLIP
- CodeSearchNet
- Data2Vec
- 훈련 목표
- 프리텍스트 과제
- 요약
- 참고문헌
- 11장. 강화학습
- 소개
- RL 용어
- 심층 강화학습 알고리듬
- 훈련되지 않은 에이전트가 행동을 선택하는 방법
- 에이전트가 탐색과 활용 사이의 균형을 맞추는 방법
- 고도로 상관된 입력 상태 공간을 다루는 방법
- 움직이는 목표를 다루는 방법
- 최근 몇 년 간의 강화학습 성공
- RL의 시뮬레이션 환경
- OpenAI Gym 소개
- <Breakout>을 하는 랜덤 에이전트
- Gym의 래퍼
- 심층 Q-신경망
- 카트폴을 위한 DQN
- 아타리 게임을 위한 DQN
- DQN 변종
- 더블 DQN
- 듀얼링 DQN
- 레인보우
- 딥 확정적 정책 그래디언트
- 요약
- 참고문헌
- 소개
- 12장. 확률적 TensorFlow
- TensorFlow Probability
- TensorFlow Probability 분포
- TFP 분포 사용
- 동전 뒤집기 예
- 정규분포
- 베이즈 네트워크
- TensorFlow Probability를 사용해 예측의 불확실성 처리
- 우연적 불확실성
- 인식론적 불확실성
- 합성 데이터셋 만들기
- TensorFlow를 사용한 회귀 모델 구축
- 우연적 불확실성에 대한 확률론적 신경망
- 인식적 불확실성에 대한 설명
- TFP 분포 사용
- 요약
- 참고문헌
- 13장. AutoML 소개
- AutoML이란 무엇인가?
- AutoML의 성취
- 자동 데이터 준비
- 자동 특징 공학
- 자동 모델 생성
- AutoKeras
- Google 클라우드 AutoML과 Vertex AI
- Google 클라우드 AutoML 표 솔루션의 사용
- Google 클라우드 AutoML 텍스트 솔루션 사용
- Google 클라우드 AutoML 비디오 솔루션 사용
- 비용
- 요약
- 참고문헌
- 14장. 딥러닝 배경 수학
- 역사
- 몇 가지 수학 도구
- 벡터
- 미분과 그래디언트
- 그래디언트 하강
- 연쇄 법칙
- 몇 가지 미분 규칙
- 행렬 연산
- 활성화 함수
- Sigmoid의 도함수
- tanh의 도함수
- ReLU의 도함수
- 역전파
- 전방 단계
- 역단계
- 경우 1: 은닉층에서 출력층까지
- 경우 2: 은닉층에서 은닉층으로
- 교차엔트로피와 그 도함수
- 배치 그래디언트 하강, 확률적 그래디언트 하강, 미니-배치
- 배치 그래디언트 하강(BGD)
- 확률적 그래디언트 하강(SGD)
- 미니-배치 그래디언트 하강(MBGD)
- 역전파와 ConvNets 생각하기
- 역전파와 RNN 생각하기
- TensorFlow 참고 사항과 자동 미분
- 요약
- 참고문헌
- 15장. TPU
- C/G/T 프로세스 유닛
- CPU와 GPU
- TPU
- 4세대 TPU와 에지 TPU
- 1세대 TPU
- 2세대 TPU
- 3세대 TPU
- 4세대 TPU
- 에지 TPU
- TPU 성능
- TPU를 Colab에서 사용하기
- TPU를 쓸 수 있는지 확인하기
- Keras MNIST TPU 엔드-투-엔드 훈련
- 사전 훈련된 TPU 모델 사용
- 요약
- 참고문헌
- C/G/T 프로세스 유닛
- 16장. 기타 유용한 딥러닝 라이브러리
- 허깅 페이스
- OpenAI
- OpenAI GPT-3 API
- OpenAI DALL-E 2
- OpenAI Codex
- PyTorch
- ONNX
- H2O.ai
- H2O AutoML
- H2O를 사용한 AutoML
- H2O 모델 설명 가능성
- 부분 종속 도표
- 변수 중요도 히트맵
- 모델 상관관계
- 요약
- 17장. 그래프 신경망
- 그래프 기초
- 그래프 머신러닝
- 그래프 컨볼루션 - GNN의 직관
- 일반 그래프 계층
- 그래프 컨볼루션 네트워크
- 그래프 어텐션 네트워크
- GraphSAGE
- 그래프 동형 네트워크
- 일반 그래프 응용
- 노드 분류
- 그래프 분류
- 링크 예측
- 그래프 사용자 지정
- 사용자 지정 계층 및 메시지 전달
- 사용자 정의 그래프 데이터셋
- 데이터셋의 단일 그래프
- 데이터셋의 복수 그래프 집합
- 향후 방향
- 이종 그래프
- 임시 그래프
- 요약
- 참고문헌
- 18장. 머신러닝 모범 사례
- 모범 사례의 필요성
- 데이터 모범 사례
- 특징 선택
- 특징과 데이터
- 텍스트 데이터 증강
- 모델 모범 사례
- 기준 모델
- 사전 훈련된 모델, 모델 API 및 AutoML
- 모델 평가 및 검증
- 모델 개선
- 요약
- 참고문헌
- 19장. TensorFlow 2 생태계
- TensorFlow Hub
- 추론을 위해 사전 훈련된 모델 사용
- TensorFlow Datasets
- TFDS 데이터셋 로드
- TFDS를 사용한 데이터 파이프라인 구축
- TensorFlow Lite
- 양자화
- FlatBuffers
- 모바일 변환기
- 모바일에 최적화된 인터프리터
- 지원되는 플랫폼
- 아키텍처
- TensorFlow Lite 사용
- 응용 일반 사례
- GPU 및 가속기 사용
- 응용 사례
- TensorFlow Lite에서 사전 학습된 모델
- 이미지 분류
- 객체 탐지
- 자세 추정
- 스마트 응답
- 세그멘테이션
- 스타일 변환
- 텍스트 분류
- 거대 언어 모델
- 모바일 GPU 사용에 대한 참고 사항
- 에지에서의 연합 학습 개요
- TensorFlow FL API
- TensorFlow.js
- 바닐라 TensorFlow.js
- 모델 변환
- 사전 훈련된 모델
- Node.js
- 요약
- 참고문헌
- TensorFlow Hub
- 20장. 고급 컨볼루션 신경망
- 복잡한 작업을 위한 CNN 구성
- 분류 및 지역화
- 의미론적 세그멘테이션
- 개체 탐지
- 인스턴스 세그멘테이션
- tf.Keras 및 TensorFlow Hub를 사용한 응용 동물원
- Keras 애플리케이션
- TensorFlow Hub
- 이미지에 대한 질문에 답하기(시각적 Q&A)
- DeepDream 네트워크 만들기
- 네트워크가 학습한 내용 검사
- 비디오
- 여섯 가지 방식으로 사전 훈련된 네트워크로 비디오 분류
- 텍스트 문서
- 감정 분석을 위한 CNN 사용
- 오디오와 음악
- Dilated ConvNets, WaveNet 및 NSynth
- 컨볼루션 작업 요약
- 기본 CNN
- 확장된 컨볼루션
- 전치 컨볼루션
- 분리 가능한 컨볼루션
- 깊이별 컨볼루션
- 깊이별 분리 가능한 컨볼루션
- 캡슐 네트워크
- CNN의 문제점
- 캡슐 네트워크의 새로운 기능
- 요약
- 참고문헌
- 복잡한 작업을 위한 CNN 구성