PyTorch로 시작하는 딥러닝 [딥러닝 기초에서 최신 모던 아키텍처까지]
- 원서명Deep Learning with PyTorch: A practical approach to building neural network models using PyTorch (ISBN 9781788624336)
- 지은이비슈누 수브라마니안(Vishnu Subramanian)
- 옮긴이김태완
- ISBN : 9791161752594
- 25,000원
- 2019년 02월 18일 펴냄
- 페이퍼백 | 312쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
이 책은 파이토치를 이용한 딥러닝 입문서다. 파이토치는 최근 글로벌하게 가장 큰 주목을 받는 머신 러닝/딥러닝 프레임워크다. 딥러닝 입문자를 대상으로 기본적인 선형/회귀 모델부터 CNN, RNN, GAN과 같은 고급 네트워크까지 다루며, 더 나아가 전이학습(Transfer Learning)과 VGG16, ResNet, Inception, DeseNet 등 최신 모던 아키텍처를 활용하는 기법까지 체계적으로 학습하고 체험할 수 있도록 구성돼 있다. 이 책을 통해 딥러닝 기본 개념, 데이터 전처리, 신경망 고급 모델 및 딥러닝 응용 기법을 이해할 수 있다.
이 책이 다루는 내용
■ 파이토치를 이용한 GPU 가속 텐서 연산
■ torchvision와 torchtext를 사용해 이미지용 사용자 정의 데이터셋과 데이터 로더를 만들고 모델을 테스트하는 기법
■ 파이토치로 CNN 아키텍처를 구현해 이미지 분류기 제작
■ RNN, LSTM 및 GRU를 이용해 텍스트 분류 및 언어 모델링 시스템 구축
■ ResNet, Inception, Densenet 같은 고급 CNN 아키텍처를 소개하고, 전이 학습을 이용해 고급 아키텍처 사용
■ 여러 모델을 혼합해 강력한 앙상블 모델 구축
■ GAN을 사용해 새 이미지를 생성하고 스타일 트랜스퍼를 사용해 예술적 이미지 생성
이 책의 대상 독자
딥러닝에 관심이 있는 엔지니어, 데이터 분석가 및 데이터 과학자 그리고 파이토치를 사용해 고급 알고리즘을 탐색하고 구현하려는 사용자를 대상으로 한다. 이 책을 읽는 데 머신 러닝에 대한 지식은 도움이 되지만 필수는 아니다. 그러나 파이썬 프로그래밍은 다룰 줄 알아야 한다.
이 책의 구성
1장, ‘파이토치 딥러닝 첫걸음’에서는 인공지능(AI, Artificial Intellligence)과 머신 러닝의 역사를 살펴보고 최근의 딥러닝 성장에 대해 알아본다. 하드웨어와 알고리즘의 다양한 개선이 여러 애플리케이션 분야에서 딥러닝을 구현하는 데 얼마나 큰 성공을 가져왔는지에 관해서도 설명한다. 마지막으로 페이스북(Facebook)에서 토치(Torch) 위에 구축한 아름다운 파이토치 파이썬 라이브러리를 소개한다.
2장, ‘신경망 구성 요소’에서는 변수, 텐서 및 nn.module과 같은 파이토치의 구성 요소를 소개한다. 신경망을 개발하는 데 이 구성 요소를 어떻게 사용하는지 알아본다.
3장, ‘신경망 파헤치기’에서는 데이터 준비, 텐서를 배치 처리하기 위한 데이터 로더, 네트워크 아키텍처 생성을 위한 torch.nn 패키지, 파이토치 손실 함수 및 옵티마이저 사용과 같은 신경망을 학습시키는 데 필요한 여러 프로세스를 다룬다.
4장, ‘머신 러닝 입문’에서는 과대적합, 과소적합과 같은 여러 가지 유형의 머신 러닝 문제에 대해 알아본다. 또한 데이터 증식, 드롭아웃, 과대적합을 방지하는 배치 정규화(batch normalization)와 같은 다양한 기법을 소개한다.
5장, ‘컴퓨터 비전 딥러닝’에서는 1차원과 2차원 컨볼루션, 맥스 풀링, 평균 풀링, 기본 CNN 아키텍처와 같은 Convolutional Neural Network(CNN)의 구성 요소에 대해 설명한다. 사전에 학습된 모델을 이용하는 전이 학습에 대해 알아보고, 마지막으로 사전 계산된 컨볼루션 피처를 이용해 전이 학습을 더 빠르게 진행하는 기법을 소개한다.
6장, ‘시퀀스 데이터와 텍스트 딥러닝’에서는 IMDB 데이터셋을 텍스트 분류하는 다양한 아키텍처를 소개한다. 워드 임베딩, 사전 학습된 워드 임베딩 사용 방법, RNN, LSTM과 1차원 컨볼루션에 대해 살펴본다.
7장, ‘생성적 신경망’에서는 딥러닝을 이용해 예술적 이미지를 생성하는 방법을 설명한다. 또한 DCGAN을 사용해 새로운 이미지를 생성해보고, 언어 모델을 이용해 텍스트를 생성하는 방법을 알아본다.
8장, ‘모던 네트워크 아키텍처’에서는 최신 컴퓨터 비전 애플리케이션을 지원하는 ResNet, Inception 및 DenseNet과 같은 아키텍처에 대해 알아본다. 언어 번역 및 이미지 캡션과 같은 최신 시스템을 지원하는 인코더-디코더 아키텍처에 대해 간략하게 살펴본다.
9장, ‘마침표 그리고 새로운 시작’에서는 앞에서 무엇을 배웠는지 요약하고 딥러닝 분야에서 지속적으로 최신 정보와 상태를 유지하는 방법을 소개한다.
목차
목차
- _1장. 파이토치로 딥러닝 시작하기_
- 인공지능
- 인공지능의 역사
- 머신 러닝
- 실생활 머신 러닝 사례
- 딥러닝
- 딥러닝 애플리케이션
- 딥러닝의 과장된 미래
- 딥러닝 역사
- 왜 지금인가?
- 하드웨어 가용성
- 데이터와 알고리즘
- 딥러닝 프레임워크
- 파이토치
- 요약
- 인공지능
- _2장. 신경망 구성 요소_
- 파이토치 설치
- 첫 번째 신경망
- 데이터 준비
- 스칼라(0차원 텐서)
- 벡터(1차원 텐서)
- 행렬(2차원 텐서)
- 3차원 텐서
- 텐서 슬라이싱(텐서 자르기)
- 4차원 텐서
- 5차원 텐서
- GPU 지원 Tensor
- Variable
- 신경망에 사용할 데이터 생성하기
- 학습 파라미터 생성
- 신경망 모델
- 네트워크 구현
- 오차 함수
- 신경망 최적화
- 데이터 로딩
- 데이터셋 클래스
- 데이터로더 클래스
- 데이터 준비
- 요약
- _3장. 신경망 파헤치기_
- 신경망 구성 요소
- 레이어 - 신경망 기본 블록
- 비선형 활성 함수
- 시그모이드
- Tanh
- ReLU
- Leakly ReLU
- 파이토치 비선형 활성화 함수
- 파이토치 딥러닝 알고리즘 구현하기
- 다양한 머신 러닝 문제를 위한 모델 아키텍처
- 손실 함수
- 네트워크 아키텍처 최적화
- 딥러닝을 이용한 이미지 분류
- 파이토치 Tensor로 데이터 로딩
- 일괄 처리 형태로 파이토치 Tensor로 로딩하기
- 네트워크 아키텍처 구축
- 모델 학습
- 요약
- 신경망 구성 요소
- _4장. 머신 러닝 입문_
- 머신 러닝의 세 가지 유형
- 지도학습
- 비지도학습
- 강화학습
- 머신 러닝 용어
- 머신 러닝 모델 평가
- 학습, 검증 및 테스트 분할
- 단순 홀드아웃 검증
- K-겹 검증
- 데이터 혼합이 적용된 K-겹 검증
- 데이터 전처리와 특성 공학
- 벡터화
- 수치 정규화
- 누락 데이터 처리
- 특성 공학
- 과대적합과 과소적합
- 더 많은 데이터 확보
- 네트워크 크기 줄이기
- 가중치 규제 적용
- 드롭아웃
- 과소적합
- 머신 러닝 프로젝트 워크플로
- 문제 정의와 데이터셋 만들기
- 모델 평가 기준
- 평가 프로토콜
- 데이터 준비
- 기준 모델
- 과대적합 될 정도의 모델
- 가중치 규제 적용
- 학습률 선정 전략
- 요약
- 머신 러닝의 세 가지 유형
- _5장. 컴퓨터 비전 딥러닝_
- 신경망 첫걸음
- MNIST - 데이터 가져오기
- CNN 모델 구축
- 신경망 첫걸음
- CONV2D
- 풀링
- 비선형 활성화 레이어- RELU
- 뷰
- 선형 레이어
- 모델 학습
- CNN을 이용1개와 고양이 분류
- 전이 학습을 이용한 개와 고양이 분류
- VGG16 모델 생성과 탐색
- 레이어 고정
- 세부 조정: VGG16
- VGG16 모델 학습
- 사전 계산된 컨볼루션 피처 사용
- CNN 학습에 대한 이해
- 중간 레이어의 출력 시각화
- 중간 레이어의 가중치 시각화
- 요약
- 텍스트 데이터 분석
- 토큰화
- 텍스트를 문자로 변환
- 텍스트를 단어로 변환
- N-그램 표현
- 벡터화
- 원-핫 인코딩
- 워드 임베딩
- 토큰화
- 감성 분류기로 워드 임베딩 학습시키기
- IMDB 다운로드와 텍스트 토큰화
- torchtext
- torchtext
- 어휘 구축
- 벡터 배치 생성
- 임베딩으로 네트워크 모델 만들기
- 모델 학습시키기
- IMDB 다운로드와 텍스트 토큰화
- 사전 학습 워드 임베딩
- 임베딩 다운로드
- 모델에 임베딩 로딩하기
- 임베딩 레이어 가중치 고정
- RNN
- RNN 작동 방식 이해
- LSTM
- 장기 종속성
- LSTM 네트워크
- 데이터 준비하기
- 배치 처리기 생성하기
- 네트워크 생성하기
- 모델 학습시키기
- 시퀀스 데이터와 CNN
- 시퀀스 데이터를 위한 1차원 컨볼루션 이해
- 네트워크 만들기
- 모델 학습시키기
- 시퀀스 데이터를 위한 1차원 컨볼루션 이해
- 요약
- 신경망 스타일 트랜스퍼
- 데이터 로딩
- VGG 모델 생성
- 콘텐츠 손실
- 스타일 손실
- VGG 모델 레이어의 손실 추출
- 각 레이어의 손실 함수 만들기
- 옵티마이저 만들기
- 학습
- 생산적 적대 신경망
- 심층 컨볼루션 GAN
- 생성기 네트워크 정의
- 전치 컨볼루션
- 배치 정규화
- 생성기 네트워크 정의
- 판별기 네트워크 정의
- 오차와 옵티마이저 정의
- 판별기 네트워크 학습
- 실제 이미지로 판별기 학습시키기
- 가짜 이미지로 판별기 학습시키기
- 생성기 네트워크 학습
- 전체 네트워크 학습 시키기
- 생성 이미지 검토
- 언어 모델
- 데이터 준비
- 배치 처리기 생성
- 배치
- Backpropagation through time
- LSTM에 기반한 모델 정의
- 학습과 평가 함수 정의
- 모델 학습
- 요약
- 최신 네트워크 아키텍처
- ResNe
- 파이토치 데이터셋 만들기
- 학습과 검증을 위한 로더 생성
- ResNet 모델 만들기
- 컨볼루션 피처 추출
- 미리 계산된 컨볼루션 피처와 로더를 위한 사용자 정의 파이토치 데이터셋 클래스 만들기
- 단순한 선형 모델 만들기
- 모델 학습과 검증
- 인셉션
- 인셉션 모델 만들기
- registerforwardhood을 이용해 컨볼루션 피처 추출하기
- 컨볼루션 피처를 위한 새로운 데이터셋 만들기
- 전연결 모델 만들기
- 모델 학습과 검증
- ResNe
- DenseNet: 컨볼루션 네트워크의 전연결 아키텍처
- DenseBlock
- DenseLayer
- 덴스넷 모델 생성
- 덴스넷 피처 추출
- 데이터셋과 로더 만들기
- 전연결 모델을 생성하고 학습
- 앙상블 모델
- 3개 모델 만들기
- Extracting the image features
- 데이터 로더와 사용자 정의 데이터셋 생성
- 앙상블 모델 만들기
- 모델 학습시키고 검증
- 인코더-디코더 아키텍처
- 인코더
- 디코더
- 요약
- 다음은?
- 개요
- 연구 가치가 있는 흥미로운 아이디어
- 객체 인식
- 이미지 분할
- 파이토치 OPENNMT
- ALIEN NLP
- FAST
- ONNX
- 지속적인 정보 업데이트 방법
도서 오류 신고
정오표
정오표
[p.68 : 아래에서 5행]
딥러닝 프레임워크애서는
->
딥러닝 프레임워크에서는
[p.74]
그림 3.3 tahn 함수의 시각화 다이어그램
->
그림 3.3 Tanh 함수의 시각화 다이어그램
[p.75]
그림 3.4 tahn 함수의 시각화 다이어그램
->
그림 3.4 ReLU 함수의 시각화 다이어그램
[p.76 : 소제목]
Leakly ReLU
->
Leaky ReLU
[p.76 : 1행]
Leaky Relu는
->
Leaky ReLU는
[p.77 : 8행]
nn.Modue 클래스를 상속하고
->
nn.Module 클래스를 상속하고
[p.82 : 8행]
SDG 옵티마이저를
->
SGD 옵티마이저를
[p.192 아래에서 3행]
순차 데이터에를 이용해
->
순차 데이터를 통해