텐서플로를 이용한 고급 딥러닝 [수학의 기초와 함께 이해하는 파이썬 딥러닝]
- 원서명Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial Intelligence in Python (ISBN 9781484230954)
- 지은이산타누 파타나야크(Santanu Pattanayak)
- 옮긴이이지훈
- ISBN : 9791161752761
- 35,000원
- 2019년 02월 28일 펴냄 (절판)
- 페이퍼백 | 536쪽 | 188*235mm
- 시리즈 : 데이터 과학
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
가장 최신 버전의 소스 파일은 저자의 깃허브 저장소 https://github.com/apress/pro-deep-learning-w-tensorflow에서 내려 받으실 수 있습니다.
요약
딥러닝에 필요한 수학적 기초부터 딥러닝의 기본 이론, CNN, RNN, RBM 및 GAN까지 모두 다루고 있는 책이다. 먼저, 딥러닝에 필요한 선형대수, 확률, 미적분, 최적화와 같은 기본적인 수학적인 기초를 탄탄히 다진다. 이를 기반으로 딥러닝의 기본 개념을 쉽게 설명한다. 또한 텐서플로의 기본 구문을 설명해 텐서플로에 익숙할 수 있도록 돕는다. CNN을 소개하면서 기본적인 신경망의 구조를 상세히 설명하고, RNN, LSTM, 양방향 RNN 및 GRU와 같은 고급 주제를 다룬다. 그리고 RBM 및 인코더를 다루면서 세부 주제인 깁스 샘플링, 베이지안 추론, 마르코프 체인 몬테 카를로 방법 및 PCA, ZCA 화이트닝과 같은 같은 기법에 상세히 설명한다. 이와 더불어 DBN에 대해서도 자세히 다룬다. 마지막으로 신경망의 고급 주제인 R-CNN, Fast R-CNN 및 GAN에 대해 관련된 예제와 함께 상세히 설명하고 있다. 이 책 한 권으로 딥러닝의 수학적인 기초 및 고급 주제까지 모두 배울 수 있다.
이 책에서 다루는 내용
■ 텐서플로를 사용해 딥러닝의 전체 스택을 이해하고 딥러닝을 위한 견고한 수학적 토대 마련하기
■ 텐서플로를 사용해 실무에 적용할 수 있는 복잡한 딥러닝 솔루션 구축하기
■ 텐서플로를 사용해 딥러닝에 대한 연구 및 실험 수행하기
이 책의 대상 독자
이 책은 복잡한 비즈니스 문제를 해결하기 위한 딥러닝 솔루션을 찾고 있는 데이터 과학자와 머신 러닝 전문가를 대상으로 한다. 텐서플로를 통해 딥러닝 솔루션을 연구하는 소프트웨어 개발자들에게도 적합하다. 또한 대학원생을 위한 저술한 책이며, 끊임없이 배우고자 하는 오픈소스 마니아들을 위해 저술됐다.
이 책의 구성
1장. ‘수학 기초’에서는 선형대수, 확률, 미적분, 최적화, 머신 러닝 수식과 관련된 모든 수학 개념을 자세히 설명하며, 딥러닝을 위해 필요한 수학적 기초를 다룬다. 여기서 다룬 다양한 수학 개념들은 머신 러닝과 딥러닝 분야에서 사용하는 데 초점을 맞춰 설명한다.
2장. ‘딥러닝 개념과 텐서플로 소개’에서는 딥러닝 세계를 소개하고 지난 몇 년 동안의 발전 과정을 논의한다. 퍼셉트론 학습 규칙과 역전파(backpropagation) 방법 같은 몇 가지 학습 방법과 함께 신경망의 주요 구성 요소를 상세히 설명한다. 또한 독자들이 텐서플로를 더 많이 사용하기 전에 텐서플로에 대한 기본 구문에 익숙해질 수 있도록 텐서플로 코딩의 패러다임을 소개한다.
3장. ‘컨볼루션 신경망’에서는 이미지 처리에 사용되는 컨볼루션 신경망(Convolutional Neural Network)을 다룬다. 이미지 처리는 컴퓨터 비전 분야에서 주로 사용되며, 컨볼루션 신경망을 사용해 개체 인식 및 탐지, 개체 분류, 지역화(localization), 분할(segmentation) 분야에서 성능이 크게 향상됐다. 이 장은 컨볼루션의 동작을 자세히 설명하는 것부터 시작해서 컨볼루션 신경망의 작동 원리를 다룬다. 신경망을 실험하고 확장하는 데 필요한 도구를 독자에게 제공하기 위해 컨볼루션 신경망의 각 컴포넌트 블록을 구축하는 데 중점을 둔다. 또한 컨볼루션(convolutional) 및 풀링(pooling) 계층을 통한 역전파를 자세히 논의해 독자가 컨볼루션 신경망의 훈련 프로세스에 대해 종합적인 시각을 갖도록 도와준다. 마지막으로 컨볼루션 신경망의 핵심적인 성공 요소인 등가성(equivariance)과 변환 불변(translation invariance)의 속성에 대해서도 다룬다.
4장. ‘순환 신경망을 이용한 자연어 처리’에서는 딥러닝을 이용한 자연어 처리를 다룬다. 연속적인 단어 모음과 스킵그램(skip-gram) 등의 단어 대 벡터 삽입 모델과 같은 텍스트 처리를 위한 벡터 공간 모델을 논의하고, 순환 신경망(RNN), LSTM, 양방향 RNN, GRU와 같은 고급 주제를 설명한다. 이 장에서는 언어 모델링을 자세히 설명함으로써 독자가 이러한 네트워크와 관련된 실제 문제를 다룰 때, 이 네트워크를 활용할 수 있도록 도와준다. 또한 RNN 및 LSTM의 경우 소실 기울기 문제 역전파 메커니즘을 자세히 설명한다.
5장. ‘제한된 볼츠만 머신과 자동 인코더를 사용한 자율 학습’에서는 제한된 볼츠만 머신(RBM)과 자동 인코더를 사용해 딥러닝의 비지도 학습 방법을 논의한다. 또한 RBM 훈련 과정의 경우, 샘플링에 대한 지식이 필요하기 때문에 메트로폴리스 알고리즘과 깁스 샘플링 같은 베이지안 추론과 마르코프 체인 몬테 카를로(MCMC) 방법을 설명한다. 또한 이 장에서는 RBM의 실제 훈련을 허용하는 깁스 샘플링의 커스터마이즈 버전인 대조 발산(contrastive divergence)을 설명한다. 추천 시스템에서의 협업 필터링뿐만 아니라 딥 빌리프 네트워크(DBN)의 비지도 학습에 RBM이 어떻게 사용될 수 있는지를 더 논의할 것이다.
그리고 5장에서는 희소 인코더, 잡음 제거 자동 인코더와 같은 다양한 종류의 자동 인코더를 다룬다. 또한 자동 인코더에서 학습한 내부 피처를 지도 학습뿐만 아니라 차원 감소에도 활용할 수 있는 방법을 학습할 수 있다. 마지막으로, PCA 화이트닝과 ZCA 화이트닝 같은 데이터 사전 처리 기술도 간단히 설명한다.
6장. ‘고급 신경망’에서 독자는 완전 컨볼루션 신경망, R-CNN, Fast R-CNN, Faster, U-Net 등과 같은 고급 신경망(Advanced Neural Network)을 살펴보며 이미지의 의미론적 분할, 객체 감지, 지역화를 다룬다. 전통적인 이미지 분할 방법을 소개하고, 두 세계의 장점을 적절하게 결합할 수 있도록 돕는다. 이 장의 후반부에서는 주어진 분포에 의해 생성된 데이터인 합성 데이터를 생성하는 데 사용되는 생성 모델의 새로운 토픽인 GAN(Generative Adversarial Network)에 대해 배운다. GAN은 이미지 생성, 이미지 수리, 추상적 추론, 의미론적 세분화, 비디오 생성, 한 도메인에서 다른 도메인으로의 스타일 이전, 텍스트-이미지 생성 애플리케이션과 같은 여러 분야에서 사용될 수 있다.
요약하면, 독자가 이 책에서 배울 수 있는 주요 학습 내용은 다음과 같다.
■ 텐서플로를 사용해 풀스택 딥러닝을 이해하고, 딥러닝을 위한 탄탄한 수학적 기초를 쌓는다.
■ 텐서플로를 사용해 복잡한 딥러닝 솔루션을 프로덕션 환경에 배포한다.
■ 딥러닝에 대한 연구를 수행하고 텐서플로를 사용해 실험을 수행한다.
목차
목차
- 1장. 수학적 기초
- 선형대수학
- 벡터
- 스칼라
- 행렬
- 텐서
- 행렬 연산 및 조작
- 벡터의 일차독립
- 행렬의 랭크
- 단위 행렬 및 연산자
- 행렬식
- 역행렬
- 벡터의 노름
- 의사 역행렬
- 특정 벡터 방향의 단위 벡터
- 특정 벡터 방향의 프로젝션 벡터
- 고유벡터
- 미적분학
- 미분
- 함수의 기울기
- 연속 편미분
- 함수의 헤세 행렬
- 함수의 최대 및 최소
- 로컬 미니마와 글로벌 미니마
- 양반정치 행렬 및 정치 행렬
- 볼록 집합
- 볼록 함수
- 오목 함수
- 다변수 볼록 및 오목 함수 예제
- 테일러 급수
- 확률
- 합집합, 교집합, 조건부 확률
- 이벤트 교차점에 대한 확률의 체인 규칙
- 상호 배타적인 이벤트
- 이벤트의 독립
- 이벤트의 조건부 독립
- 베이즈 규칙
- 확률 질량 함수
- 확률 밀도 함수
- 확률 변수의 기댓값
- 확률 변수의 분산
- 왜도 및 첨도
- 공분산
- 상관계수
- 몇 가지 공통 확률분포
- 우도 함수
- 최대 우도 추정
- 가설검정 및 p 값
- 머신 러닝 알고리즘 및 최적화 기법의 공식화
- 지도 학습
- 비지도 학습
- 머신 러닝을 위한 최적화 기법
- 제약 조건이 있는 최적화 문제
- 머신 러닝에 중요한 몇 가지 주제들
- 차원 감소 방법
- 정규화
- 제약 조건이 있는 문제의 최적화를 위한 정규화
- 요약
- 선형대수학
- 2장. 딥러닝 개념과 텐서플로 소개
- 딥러닝과 그 진화
- 퍼셉트론과 퍼셉트론 학습 알고리즘
- 퍼셉트론 학습의 기하학적 해석
- 퍼셉트론 학습의 한계
- 비선형에 대한 필요성
- 은닉층 퍼셉트론의 비선형성 활성화 함수
- 뉴런/퍼셉트론에 대한 다양한 활성화 함수
- 다층 퍼셉트론 네트워크에 대한 학습 규칙
- 기울기 계산을 위한 역전파
- 기울기 계산을 위한 역전파 일반화
- 텐서플로
- 일반적인 딥러닝 패키지
- 텐서플로 설치
- 개발을 위한 텐서플로 기본
- 딥러닝 관점에서의 기울기 하강 최적화
- 확률적 기울기 하강에 대한 미니 배치 접근법의 학습 속도
- 텐서플로 최적화 도구
- 텐서플로를 이용한 XOR 구현
- 텐서플로의 선형 회귀
- 전체 배치 기울기 하강을 이용한 소프트맥스 함수로 다중 클래스 분류
- 확률적 기울기 하강을 이용한 소프트맥스 함수의 다중 클래스 분류
- GPU
- 요약
- 3장. 컨볼루션 신경망
- 컨볼루션 연산
- 선형 시간 불변 시스템/선형 시프트 불변 시스템
- 한 차원의 신호를 위한 컨볼루션
- 아날로그 및 디지털 신호
- 2D 및 3D 신호
- 2D 컨볼루션
- 2차원 단위 스텝 함수
- LSI 시스템 단위 스텝 응답이 있는 신호의 2D 변환
- 다른 LSI 시스템 응답에 대한 이미지의 2D 컨볼루션
- 일반적인 이미지 처리 필터
- 평균값 필터
- 중앙값 필터
- 가우시안 필터
- 기울기 기반 필터
- 소벨 에지 감지 필터
- 항등 변환
- 컨볼루션 신경망
- 컨볼루션 신경망의 구성 요소
- 입력층
- 컨볼루션 계층
- 풀링 계층
- 컨볼루션 계층을 통한 역전파
- 풀링 계층을 통한 역전파
- 컨볼루션을 통한 가중치 공유와 그 장점
- 변환 평형
- 풀링으로 인한 변환 불변
- 드롭아웃 계층 및 정규화
- MNIST 데이터셋에서 숫자 인식을 위한 컨볼루션 신경망
- 현실 문제 해결을 위한 컨볼루션 신경망
- 배치 정규화
- 컨볼루션 신경망의 또 다른 아키텍처
- LeNet
- 알렉스넷
- VGG16
- ResNet
- 전이 학습
- 전이 학습 가이드라인
- 구글의 인셉션v3를 통한 전이 학습
- 사전 훈련된 VGG16을 이용한 전이 학습
- 요약
- 컨볼루션 연산
- 4장. RNN을 활용한 자연어 처리
- 벡터 공간 모델(VSM)
- 단어의 벡터 표현
- Word2Vec
- CBOW
- 텐서플로에서 CBOW 구현
- 단어 임베딩을 위한 스킵그램 모델
- 텐서플로로 스킵그램 모델 구현
- 글로벌 동시 발생 통계 기반의 단어 벡터
- GloVe
- 단어 벡터를 이용한 단어 유추
- 순환 신경망의 소개
- 언어 모델링
- RNN을 통한 문장에서의 다음 단어 예측과 전통적인 방법의 비교
- 시간에 따른 역전파(BPTT)
- RNN에서 기울기의 소실 및 발산 문제
- RNN의 소실 및 발산 기울기 문제 해결 방법
- LSTM
- 발산 및 소실 기울기를 줄이기 위한 LSTM
- 순환 신경망을 이용한 텐서플로의 MNIST 숫자 식별
- GRU
- 양방향 RNN
- 요약
- 5장. 제한된 볼츠만 머신과 자동 인코더를 사용한 비지도 학습
- 볼츠만 분포
- 베이지안 추론: 우도, 사전확률분포, 사후확률분포
- 샘플링을 위한 마르코프 체인 몬테 카를로 방법
- 메트로폴리스 알고리즘
- 제한된 볼츠만 머신
- 제한된 볼츠만 머신 훈련
- 깁스 샘플링
- 블럭 깁스 샘플링
- 번인 기간과 깁스 샘플링으로 샘플 만들기
- 제한된 볼츠만 머신에서 깁스 샘플링 사용하기
- 대조 발산
- 텐서플로로 제한된 볼츠만 머신 구현
- 제한된 볼츠만 머신을 사용한 협업 필터링
- 딥 빌리프 네트워크
- 자동 인코더
- 지도 학습을 위해 자동 인코더를 사용한 피처 학습
- KL 발산
- 텐서플로로 희소 자동 인코더 구현
- 잡음 제거 자동 인코더
- 텐서플로에서 잡음 제거 자동 인코더 구현
- PCA 및 ZCA 화이트닝
- 요약
- 6장. 고급 신경망 기법
- 이미지 분할
- 픽셀 강도 히스토그램 기반 이진 임곗값 지정 기법
- 오츠 기법
- 이미지 분할을 위한 워터쉐드 알고리즘
- K-평균 클러스터링을 통한 이미지 분할
- 시맨틱 분할
- 슬라이딩 윈도우 방식
- 완전 컨볼루션 네트워크
- 다운샘플링과 업샘플링을 가진 완전 컨볼루션 네트워크
- U-Net
- 완전 연결 신경망으로 텐서플로에서 시맨틱 분할 작업하기
- 이미지 분류 및 지역화 네트워크
- 객체 감지
- R-CNN
- Fast R-CNN과 Faster R-CNN
- 생성적 적대 네트워크
- 맥스미니 및 미니맥스 문제
- 제로섬 게임
- 미니맥스와 안장점
- GAN 비용 함수 및 훈련
- 생성기를 위한 소실 기울기
- 텐서플로로 GAN 네트워크 구현하기
- 프로덕션 환경으로 텐서플로 모델 배포
- 요약
- 이미지 분할