텐서플로로 배우는 수치최적화와 딥러닝 (기초 수학과 함께 비전부터 언어까지!)

텐서플로로 배우는 수치최적화와 딥러닝 (기초 수학과 함께 비전부터 언어까지!)

$33.29
Description
이 책은 텐서플로(TensorFlow)를 사용하여 다양한 딥러닝 모델을 학습하는 방법과 최적화 이론을 다룹니다. 딥러닝에 관련된 많은 수학 이론이 있지만, 가장 핵심적인 최적화 문제를 중심으로 딥러닝 학습을 설명합니다. 2020년도에 발간된 “딥러닝을 위한 최적화와 수치해석”의 개정판 성격이 강합니다.
텐서플로 1이던 기존 실습 예제들이 모두 텐서플로 2로 변경되는 큰 변화가 있습니다. 또한, 기존에는 자연어 데이터에서 중요한 사전학습 관련 파트를 추가하고, 영상, 자연어, 그리고 테이블 데이터가 모두 섞여 있는 데이터를 다루는 파트도 추가하여 실제 현장과 제품에 적용할 때 도움이 되도록 구성하였습니다.
현재까지 출판된 딥러닝 관련 도서와 강의들은 최적화 이론에 대해서 다루지 않거나 너무 간단하게 다룹니다. 하지만 최적화 이론을 이해하기에는 부족한 양입니다. 이 책에서는 가장 먼저 최적화 이론을 소개하고, 최적화 문제는 텐서플로를 사용하여 풉니다.

[이 책에 필요한 선행학습]
이 책의 원활한 이해를 위해서는 다음과 같은 선수 지식이 필요합니다.
이 책은 파이썬 기초 문법과 수식에 관해서 일일이 설명하지 않습니다. 선행학습이 되어 있다면 학습 효과를 더 높일 수 있습니다.
1. 파이썬(Python) 기초 문법에 대한 이해
2. 대학 강의에서 다루는 미분과 편미분의 이해

[이 책의 대상 독자]
이 책은 다음과 같은 독자를 대상으로 합니다.
1. 딥러닝 핵심 이론에 대한 이해가 필요한 독자
2. 딥러닝 관련 논문을 읽는데 어려움을 겪는 독자
3. 텐서플로를 이용한 딥러닝 코드가 있지만, 자신만의 데이터로는 잘 동작하지 않는 현상을 겪은 독자
4. 텐서플로 패키지의 개념이 궁금한 독자
5. 딥러닝의 기초 이론과 텐서플로를 동시에 배우고 싶은 독자

[소스코드 다운로드 및 Q&A]
소스코드 다운로드와 Q&A는 저자 웹페이지에서 확인할 수 있습니다.
* 저자 웹페이지: https://github.com/DNRY/tfopt
저자

황윤구

연세대학교계산과학공학과에서강화학습을통한수리생물학으로응용수학박사학위를마쳤습니다.패스트캠퍼스에서‘딥러닝’강의를했으며,Udacity에서는DeepReinforcementLearning나노디그리의멘토로활동하고있습니다.삼성메디슨연구소에서영상/신호처리알고리즘개발을했었고,현재는LGCNSD&A연구소에서AIProfessional로강화학습파트에서근무하고있습니다.

목차

이책을내며...
들어가며...
추천의말

PART1프로그래밍준비작업

Chapter01개발환경설정하기
1.1아나콘다(Anaconda)
1.1.1아나콘다설치하기
1.1.2터미널실행방법
1.1.3개발환경생성과삭제그리고패키지설치
1.1.4개발환경활성화와비활성화
1.1.5개발환경내에패키지설치하기
1.1.6개발환경내보내기와불러오기

1.2텐서플로(TensorFlow)및관련패키지설치하기
1.2.1yml을통해불러오기
1.2.2yml없이직접설정하기

Chapter02주피터노트북과파이썬튜토리얼
2.1주피터노트북(JupyterNotebook)
2.1.1파이썬코드실행하기
2.1.2마크다운
2.1.3편리한기능소개

2.2파이썬기초문법
2.2.1변수선언및함수선언,그리고익명함수
2.2.2주요변수타입
2.2.3forloop
2.2.4ifstatement
2.2.5제너레이터(Generator)

2.3자주사용되는파이썬문법패턴
2.3.1데이터타입마다다른forloop스타일
2.3.2zip이들어간forloop
2.3.3한줄for문
2.3.4파일읽기/쓰기

2.4numpyarray
2.4.1n차원배열(Array)
2.4.2배열의모양(Shape)
2.4.3전치연산(Transpose)
2.4.4Reshape
2.4.5배열인덱싱

2.5시각화패키지(matplotlib)튜토리얼
2.5.1분포도(ScatterPlot)그리기
2.5.2PairPlot(페어플랏)그리기
2.5.3단일변수함수그래프그리기
2.5.4여러그래프를한눈에보기
2.5.5그래프스타일링
2.5.6다변수함수그래프그리기

Chapter03텐서플로튜토리얼
3.1텐서플로설치

3.2텐서플로구조이해하기
3.2.1그래프(Graph)
3.2.2텐서(Tensor)
3.2.3연산(Operation)

3.3주요타입2가지
3.3.1Constant
3.3.2Variable

3.4기초수학연산
3.4.1스칼라덧셈
3.4.2텐서플로에서제공하는다양한함수
3.4.3리덕션(Reduction)
3.4.4케라스(Keras)모델

PART2딥러닝에필요한수치해석이론

Chapter04최적화이론에필요한선형대수와미분
4.1선형대수
4.1.1정의및표기법
4.1.2교육과정에따른선형대수의방향성
4.1.3벡터/벡터연산
4.1.4행렬/벡터연산
4.1.5행렬/행렬연산
4.1.6선형시스템의풀이

4.2딥러닝에서자주사용되는선형대수표기법
4.2.1미분과그래디언트(Gradient)

Chapter05딥러닝에필요한최적화이론
5.1딥러닝에나타나는최적화문제

5.2최적화문제의출발

5.3최적화문제표현의독해법
5.3.1선형회귀모델
5.3.2제곱값의합을이용한선형회귀
5.3.3절댓값의합을사용한선형회귀

5.4다양한딥러닝모델과최적화문제미리보기

Chapter06고전수치최적화알고리즘
6.1수치최적화알고리즘이필요한이유

6.2수치최적화알고리즘의패턴

6.3그래디언트디센트(GradientDescent)
6.3.1예제로배우는그래디언트디센트
6.3.2그래디언트디센트방법의한계점

6.4그래디언트디센트를사용한선형회귀모델학습
6.4.1선형회귀문제수식소개
6.4.2그래디언트디센트방법적용
6.4.3한계점

Chapter07딥러닝을위한수치최적화알고리즘
7.1스토캐스틱방법(Stochasticmethod)

7.2스토캐스틱방법의코드구현패턴

7.3탐색방향기반알고리즘
7.3.1스토캐스틱그래디언트디센트방법
7.3.2모멘텀/네스테로프방법

7.4학습률기반알고리즘
7.4.1적응형학습률방법의필요성
7.4.2Adagrad
7.4.3RMSProp(RootMeanSquarePropagation)
7.4.4Adam

PART3텐서플로를사용한딥러닝의기본모델학습

Chapter08선형회귀모델
8.1예측모델과손실함수

8.2결정론적방법과스토캐스틱방법
8.2.1결정론적방법
8.2.2스토캐스틱방법

8.3비선형회귀모델
8.3.1이차곡선데이터
8.3.2삼차곡선데이터
8.3.3삼각함수곡선데이터

8.4비선형특성값추정방법과신경망모델

Chapter09선형분류모델
9.1이항분류모델
9.1.1연속확률모델
9.1.2최대우도법과크로스엔트로피
9.1.3미니배치방법을통한모델학습
9.1.4특성값을이용한비선형분류모델

9.2다중분류모델
9.2.1소프트맥스(Softmax)
9.2.2원-핫(One-hot)인코딩
9.2.3다중분류모델의크로스엔트로피
9.2.4미니배치방법을통한모델학습
9.2.5MNIST

Chapter10신경망회귀모델
10.1신경망모델의필요성
10.2신경망모델용어소개
10.3신경망모델구현
10.4신경망모델의다양한표현
10.5특성값자동추출의원리
10.6신경망모델의단점

Chapter11신경망분류모델
11.1신경망분류모델의필요성

11.2다양한데이터분포와신경망분류모델
11.2.1신경망분류모델학습
11.2.2체커보드예제
11.2.3불규칙한데이터분포예제

11.3신경망분류모델의다양한표현

11.4MNIST분류문제

PART4학습용/테스트용데이터와언더피팅/오버피팅

Chapter12언더피팅/오버피팅소개
12.1딥러닝모델과함수
12.2학습용데이터와정답함수
12.3정답함수와테스트용데이터
12.4언더피팅/오버피팅의2가지요인

Chapter13언더피팅의진단과해결책
13.1학습반복횟수재설정
13.2학습률재설정
13.3모델복잡도증가
13.4언더피팅된신경망분류모델
13.5언더피팅요약

Chapter14오버피팅의진단과해결책
14.1학습반복횟수재설정

14.2Regularization함수추가
14.2.1L2Regularization
14.2.2L1Regularization

14.3드롭아웃(Dropout)
14.4분류문제
14.5교차검증데이터의등장

Chapter15텐서보드(TensorBoard)활용
15.1그래프그리기
15.2히스토그램그리기
15.3이미지그리기
15.4신경망모델학습과정에텐서보드적용하기
15.5Custom값을텐서보드에출력하기

Chapter16모델저장하기와불러오기
16.1저장하기
16.2불러오기
16.3오버피팅현상해결응용예제

Chapter17딥러닝가이드라인
17.1딥러닝프로젝트진행순서
17.1.1모델과손실함수선택
17.1.2모델학습진행
17.1.3언더피팅확인
17.1.4오버피팅확인
17.1.5최종성능확인

17.2딥러닝학습의근본적한계
17.2.1손실함수에는학습용데이터뿐이다
17.2.2데이터전처리는매우중요하다
17.2.3손실함수와정확도는다르다
17.2.4테스트데이터의분포는완전히알수없다

PART5딥러닝모델

Chapter18CNN모델
18.1딥러닝(DeepLearning)이란
18.2CNN모델소개

18.3콘볼루션(Convolution)
18.3.1커널(Kernel)/Filter
18.3.2Strides
18.3.3Padding

18.4Max-Pooling
18.5Dropout

18.6ReLU활성함수
18.6.1사라지는그래디언트문제(Vanishinggradientproblem)
18.6.2문제의이해
18.6.3문제의원인
18.6.4해결

18.7자동특성(Feature)추출

18.8MNIST숫자분류문제
18.8.1데이터훑어보기
18.8.2One-Hot인코딩
18.8.3CNN모델구축하기
18.8.4최적화문제설정
18.8.5하이퍼파라미터설정
18.8.6학습시작
18.8.7정확도확인
18.8.8전체코드

Chapter19GAN(GenerativeAdversarialNetworks)모델
19.1min-max최적화문제소개

19.2Generator(생성기)
19.2.1학습용데이터준비
19.2.2LeakyReLU(누설ReLU)
19.2.3TanhOutput

19.3Discriminator(판별기)

19.4GAN네트워크만들기
19.4.1Hyperparameters

19.5손실함수

19.6Training(학습)
19.6.1Training(학습)의세부조건설정
19.6.2Trainingoneepoch
19.6.3학습시작
19.6.4Trainingloss(학습손실)
19.6.5생성기로만든샘플영상
19.6.6생성기로새로운영상만들기

19.7유용한링크및전체코드
19.7.1유용한링크
19.7.2전체코드

PART6응용문제

Chapter20영상
20.1TransferLearning(전이학습)

20.2꽃사진분류
20.2.1필요한사전지식
20.2.2환경준비
20.2.3문제소개
20.2.4VGG16모델
20.2.5데이터훑어보기
20.2.6모델만들기
20.2.7최적화문제와하이퍼파라미터설정
20.2.8학습
20.2.9정확도

20.3Fine-tuning
20.4TransferLearning전체코드

출판사 서평

이책은딥러닝모델을실무에적용하며어려움을겪었던실무자/연구자의경험과딥러닝강의를진행하며받은많은분의피드백을토대로만들었습니다.딥러닝의원리를이해할수있도록딥러닝이론에대한설명과실습코드를동시에제공합니다.
이러한딥러닝이론을바탕으로책의후반부에서는실무에서효과적으로사용할수있는딥러닝모델을소개함으로써이론에만치우치지않고실무와실전에도도움이되도록구성했습니다.또한,책에포함된그래프결과와독자분들의결과가항상동일하게나올수있도록신경썼습니다.
혹시질문이나코드가잘못된부분이있다면https://github.com/DNRY/tfopt에서소통할수있도록웹페이지를개설했습니다.

[이책의구성]
이책은다음과같이총7가지PART로구성되어있습니다.
*PART1:프로그래밍준비작업
*PART2:딥러닝에필요한수치해석이론
*PART3:딥러닝기본모델을사용한수치최적화
*PART4:학습/테스트용데이터와언더/오버피팅
*PART5:다양한비전딥러닝모델
*PART6:다양한자연어처리분야딥러닝모델
*PART7:2개이상의복합데이터를다루는딥러닝모델