파이토치 딥러닝 마스터 (모의 암 진단 프로젝트로 배우는 신경망 모델 구축부터 훈련)

파이토치 딥러닝 마스터 (모의 암 진단 프로젝트로 배우는 신경망 모델 구축부터 훈련)

$36.93
Description
파이토치 핵심 개발진이 직접 집필한 책으로, 최고 실무자가 바로 옆에 앉아서 딥러닝의 기초부터 실제 프로젝트 활용까지, 모델 성능 평가와 개선 방안을 차근차근 알려주는 느낌을 준다!
텐서, 신경망 같은 딥러닝 데이터 구조의 개념과 원리부터 파이토치와 의료 데이터를 활용한 완전하게 동작 가능한 딥러닝 서비스 구축부터 배포까지, 딥러닝 전체 워크플로를 모두 다룬다!

이 책에서는 파이토치를 활용해 신경망과 딥러닝 시스템을 만드는 방법을 알려준다. 종양 이미지 분류기라는 실전 예제 구축 작업을 바닥부터 배우는 실용적인 내용이 가득하다. 동시에 파이토치 텐서 API, 파이썬의 데이터 로딩, 훈련 모니터링, 결과 시각화 등 딥러닝 파이프라인 전체에 대한 최고의 실습 사례를 다룬다.

| 이 책에서 다루는 내용 |
- 심층 신경망 훈련
- 모듈과 손실 함수 구현
- 파이토치 허브의 사전 훈련된 모델 활용
- 주피터 노트북 코드 샘플 탐구
- 딥러닝 모델 성능의 분석, 평가, 개선
- 폐 종양 CT 영상 데이터를 활용한 모델 분석부터 서빙까지 엔드투엔드 모의 암 진단 프로젝트
저자

엘리스티븐스.루카안티가.토마스피이만지음,현동석

EliStevens
실리콘밸리스타트업에서대부분의커리어를이어왔다.(기업용네트워크장비를만드는)소프트웨어엔지니어부터(종양영상학을위한소프트웨어개발)CTO까지다양한경력을쌓았으며지금은자율주행산업에서머신러닝분야에종사하고있다.

목차

[1부]파이토치핵심

1장딥러닝과파이토치라이브러리소개
__1.1딥러닝혁명
__1.2딥러닝을위한파이토치
__1.3왜파이토치인가?
____1.3.1딥러닝경쟁구도
__1.4파이토치딥러닝프로젝트둘러보기
__1.5하드웨어와소프트웨어요구사항
____1.5.1주피터노트북
__1.6연습문제
__1.7핵심요약

2장사전훈련된신경망
__2.1이미지를인식하는사전훈련된신경망
____2.1.1이미지인식을위해사전훈련된신경망가져오기
____2.1.2알렉스넷
____2.1.3레즈넷
____2.1.4준비,시...작전에잠깐만
____2.1.5실행!
____2.2가짜이미지를만드는사전훈련된모델
____2.2.1GAN게임
____2.2.2사이클GAN
____2.2.3말을얼룩말로바꾸는신경망
__2.3장면을설명하는사전훈련된신경망
____2.3.1뉴럴토크2
__2.4토치허브
__2.5결론
__2.6연습문제
__2.7핵심요약

3장텐서구조체
__3.1부동소수점수의세계
__3.2텐서:다차원배열
____3.2.1파이썬리스트에서파이토치텐서로
____3.2.2첫텐서만들어보기
____3.2.3텐서의핵심
__3.3텐서인덱싱
__3.4이름이있는텐서
__3.5텐서요소타입
____3.5.1dtype으로숫자타입지정하기
____3.5.2모든경우에사용하는dtype
____3.5.3텐서의dtype속성관리
__3.6텐서API
__3.7텐서를저장소관점에서머릿속에그려보기
____3.7.1저장공간인덱싱
____3.7.2저장된값을수정하기:텐서내부연산
__3.8텐서메타데이터:사이즈,오프셋,스트라이드
____3.8.1다른텐서의저장공간에대한뷰만들기
____3.8.2복사없이텐서전치하기
____3.8.3더높은차원에서의전치연산
____3.8.4인접한텐서
__3.9텐서를GPU로옮기기
____3.9.1텐서디바이스속성관리
__3.10넘파이호환
__3.11일반화된텐서도텐서다
__3.12텐서직렬화
____3.12.1h5py로HDF5병렬화하기
__3.13결론
__3.14연습문제
__3.15핵심요약

4장실제데이터를텐서로표현해보기
__4.1이미지다루기
____4.1.1컬러채널더하기
____4.1.2이미지파일로딩
____4.1.3레이아웃변경하기
____4.1.4데이터정규화
__4.23차원이미지:용적데이터
____4.2.1특수포맷로딩
__4.3테이블데이터표현하기
____4.3.1실세계데이터셋사용하기
____4.3.2와인데이터를텐서로읽어오기
____4.3.3점수표현하기
____4.3.4원핫인코딩
____4.3.5언제카테고리화할것인가
____4.3.6임계값으로찾기
__4.4시계열데이터다루기
____4.4.1시간차원더하기
____4.4.2시간단위로데이터만들기
____4.4.3훈련준비
__4.5텍스트표현하기
____4.5.1텍스트를숫자로변환하기
____4.5.2문자원핫인코딩
____4.5.3모든단어를원핫인코딩하기
____4.5.4텍스트임베딩
____4.5.5청사진으로서의텍스트임베딩
__4.6결론
__4.7연습문제
__4.8핵심요약

5장학습기법
__5.1시대를초월하는모델링학습
__5.2학습은파라미터추정에불과하다
____5.2.1온도문제
____5.2.2데이터수집
____5.2.3데이터시각화
____5.2.4먼저선형모델을골라시도해보기
__5.3손실을줄이기위한방안
____5.3.1파이토치로문제풀어보기
__5.4경사를따라내려가기
____5.4.1손실줄이기
____5.4.2분석
____5.4.3모델적합을위한반복
____5.4.4입력정규화
____5.4.5(다시해보는)시각화
__5.5파이토치의자동미분:모든것을역전파하라
____5.5.1기울기자동계산
____5.5.2골라쓰는옵티마이저
____5.5.3훈련,검증,과적합
____5.5.4자동미분의주의사항과자동미분끄기
__5.6결론
__5.7연습문제
__5.8핵심요약

6장신경망을활용한데이터적합
__6.1인공뉴런
____6.1.1다중계층신경망합성하기
____6.1.2오차함수
____6.1.3우리에게필요한건활성함수
____6.1.4그밖의활성함수
____6.1.5최적의활성함수고르기
____6.1.6신경망에서학습의의미
__6.2파이토치nn모듈
____6.2.1forward대신__call__사용하기
____6.2.2다시선형모델로
__6.3드디어신경망
____6.3.1선형모델대체하기
____6.3.2파라미터살펴보기
____6.3.3선형모델과비교하기
__6.4결론
__6.5연습문제
__6.6핵심요약

7장새와비행기구별하기:이미지학습
__7.1작은이미지를모아놓은데이터셋
____7.1.1CIFAR-10다운로드
____7.1.2데이터셋클래스
____7.1.3데이터변환
____7.1.4데이터정규화
__7.2새와비행기를구별하기
____7.2.1데이터셋구축
____7.2.2완전연결모델
____7.2.3분류기의출력
____7.2.4출력을확률로표현하기
____7.2.5분류를위한손실값
____7.2.6분류기훈련
____7.2.7완전연결의한계
__7.3결론
__7.4연습문제
__7.5핵심요약

8장컨볼루션을활용한일반화
__8.1컨볼루션
____8.1.1컨볼루션의역할
__8.2컨볼루션사용해보기
____8.2.1경계패딩하기
____8.2.2컨볼루션으로피처찾아내기
____8.2.3깊이와풀링으로한단계더인식하기
____8.2.4우리의신경망에적용하기
__8.3nn.Module서브클래싱하기
____8.3.1nn.Module로정의된우리의신경망
____8.3.2파이토치가파라미터와서브모듈을유지하는방법
____8.3.3함수형API
__8.4우리가만든컨볼루션신경망훈련시키기
____8.4.1정확도측정
____8.4.2모델을저장하고불러오기
____8.4.3GPU에서훈련시키기
__8.5모델설계
____8.5.1메모리용량늘리기:너비
____8.5.2모델이수렴하고일반화하도록돕는방법:정규화
____8.5.3더복잡한구조를배우기위해깊이파헤치기:깊이
____8.5.4모델의성능비교
____8.5.5이미오래된방식
__8.6결론
__8.7연습문제
__8.8핵심요약

[2부]실전이미지학습:폐암조기진단

9장암과싸워이기기위한파이토치활용
__9.1사용사례소개
__9.2대규모프로젝트준비
__9.3CT스캔이란
__9.4프로젝트:엔드투엔드폐암진단기
____9.4.1신경망이동작할때까지데이터를던져넣을수없는이유
____9.4.2결절이란무엇인가
____9.4.3데이터소스:LUNA그랜드챌린지
____9.4.4LUNA데이터다운로드
__9.5결론
__9.6핵심요약

10장여러데이터소스를통합데이터셋으로합치기
__10.1원본CT데이터파일
__10.2LUNA애노테이션데이터파싱
____10.2.1훈련셋과검증셋
____10.2.2애노테이션데이터와후보데이터합치기
__10.3개별CT스캔로딩
____10.3.1하운스필드단위
__10.4환자좌표계를사용해결절위치정하기
____10.4.1환자좌표계
____10.4.2CT스캔형태와복셀크기
____10.4.3밀리미터를복셀주소로변환하기
____10.4.4CT스캔에서결절추출하기
__10.5간단한데이터셋구현
____10.5.1getCtRawCandidate함수로후보배열캐싱하기
____10.5.2LunaDataset.__init__으로데이터셋만들기
____10.5.3훈련/검증분리
____10.5.4데이터렌더링
__10.6결론
__10.7연습문제
__10.8핵심요약

11장종양탐지를위한분류모델훈련
__11.1기본모델과훈련루프
__11.2애플리케이션의메인진입점
__11.3사전훈련설정과초기화
____11.3.1모델과옵티마이저초기화
____11.3.2데이터로더의관리와데이터공급
__11.4첫번째경로신경망설계
____11.4.1핵심컨볼루션
____11.4.2전체모델
__11.5모델훈련과검증
____11.5.1computeBatchLoss함수
____11.5.2훈련때와유사한검증루프
__11.6성능메트릭출력
____11.6.1logMetrics함수
__11.7훈련스크립트실행
____11.7.1훈련에필요한데이터
____11.7.2막간을활용해enumerateWithEstimate함수알아보기
__11.8모델평가:정확도99.7%라면잘끝난것일까?
__11.9텐서보드로훈련관련메트릭을그려보기
____11.9.1텐서보드실행
____11.9.2메트릭로깅함수가텐서보드를지원하도록만들기
__11.10모델이결절탐지를학습하지못하는이유
__11.11결론
__11.12연습문제
__11.13핵심요약

12장메트릭과증강을활용한훈련개선
__12.1개선을위한상위계획
__12.2착한개와나쁜녀석:거짓양성과거짓음성
__12.3긍정과부정의경우를도식화하기
____12.3.1아무나보고짖는록시의장점은재현율
____12.3.2잠은많아도도둑은잘잡는프레스톤의특기는정밀도
____12.3.3logMetrics으로정밀도와재현율구하기
____12.3.4궁극의메트릭:F1점수
____12.3.5새메트릭으로모델이잘동작하는지확인하기
__12.4이상적인데이터셋의모습
____12.4.1

출판사 서평

|이책의구성|
1부‘파이토치핵심’는파이토치프로젝트를이해하는데필요한기반기술을익히고,직접만들어보기시작한다.그리고파이토치API와함께파이토치를라이브러리로만들어주는숨겨진몇가지기능을살펴보고초기분류모델을훈련해본다.1부가끝나면실제프로젝트를건드려볼준비가된셈이다.
1장‘딥러닝과파이토치라이브러리소개’는라이브러리로서파이토치가딥러닝혁명에서차지하는위상을소개하고다른딥러닝프레임워크와차별화되는요인을다룬다.
2장‘사전훈련된신경망’은사전훈련된예제신경망을실행하면서파이토치동작을확인해본다.실습에서는파이토치허브의모델을어떻게내려받고실행하는지설명한다.
3장‘텐서구조체’는파이토치의기본빌딩블럭인텐서(Tensor)를소개하고텐서API와더불어세부구현에서숨겨진부분도보여준다.
4장‘실제데이터를텐서로표현해보기’는텐서로얼마나다양한데이터를표현할수있는지를알아보고딥러닝모델을위해텐서를어떻게만들어야하는지도알려준다.
5장‘학습기법’은경사하강을통해학습메커니즘을따라가보고파이토치가어떻게자동미분으로경사하강을활성화하는지알아본다.
6장‘신경망을활용한데이터적합’은nn과optim모듈을이용하여파이토치에서회귀를위한신경망모델을만들고훈련하는과정을보여준다.
7장‘새와비행기구별하기:이미지학습’은앞장에서배운내용을토대로이미지분류를위한완전연결모델을만들고파이토치API지식을넓힌다.
8장‘컨볼루션을활용한일반화’는컨볼루션신경망을소개하고신경망모델의파이토치구현을위한고급개념을다룬다.

2부‘실전이미지학습:폐암조기진단’는폐암자동진단을위한종합적인솔루션에우리를조금씩가까이데려간다.이런어려운문제는암판별같은광범위한문제를푸는데필요한실세계의접근방식을보여주는동기가된다.깔끔한엔지니어링과트러블슈팅그리고문제해결에집중하는대규모프로젝트다.
9장‘암과싸워이기기위한파이토치활용’은CT이미지에서출발해폐종양분류를위해사용할엔드투엔드전략을설명한다.
10장‘여러데이터소스를통합데이터셋으로합치기’는CT스캔이미지에사람이레이블링한애노테이션데이터를읽고필요한형태의정보로바꾸어텐서로변환하는작업을표준파이토치API로수행한다.
11장‘종양탐지를위한분류모델훈련’은10장에서소개한훈련데이터를사용하는첫분류모델을소개한다.모델을훈련하고기본성능메트릭을수집한다.동시에훈련모니터링을위한텐서보드(TensorBoard)를소개한다.
12장‘메트릭과증강을활용한훈련개선’은표준성능메트릭을알아보고구현하며이메트릭을사용해이전훈련에서어떤약점이있는지를찾아낸다.이후이런약점을극복하기위해데이터밸런싱과증강을사용해개선된훈련셋을만든다.
13장‘세그멘테이션을활용한의심결절탐색’은전체CT스캔을대상으로종양이있을지점을표시하는히트맵(hitmap)을만들기위한세그멘테이션과픽셀투픽셀(pixel-to-pixel)모델아키텍처를설명한다.이히트맵은사람이레이블링한애노테이션데이터가없는경우CT스캔에서폐결절(nodule)을찾는데사용될수있다.
14장‘엔드투엔드결절분석,그리고남겨진과제’는최종엔드투엔드프로젝트를구현한다.분류에따라만들어진새로운세그멘테이션모델을사용해암환자를진단한다.

3부‘드디어,배포’에서는배포를다루는1개장으로구성되어있다.
15장‘제품으로배포하기’에서는파이토치모델을어떻게하면단순웹서버로배포하거나C++프로그램에내장또는스마트폰에넣을수있는지에대해알아본다.

|이책의대상독자|
이책은딥러닝을실무에활용하거나파이토치를잘쓰고싶은개발자를대상으로한다.독자는아마현업컴퓨터공학전공자나데이터과학자,소프트웨어엔지니어,혹은관련학과의학부이상학생일것이라가정한다.독자가딥러닝에대한사전지식이없다고가정했기때문에,어느정도경험있는실무자라면이미이미알고있는개념을반복적으로설명한다.초보수준을벗어난독자라면이미알고있는주제라하더라도조금다른관점으로설명한부분이잘느껴지기바란다.
이책의독자는명령형프로그래밍과객체지향프로그래밍에대해이미기본지식이있다고가정한다.이책에서는파이썬을사용하므로독자는기본문법과운영환경에익숙해야한다.파이썬패키지를설치하는방법이나자신의플랫폼에서스크립트를실행하는방법정도는미리알고있어야한다.C++,자바,자바스크립트,루비등의언어를사용해본경우라면큰어려움은없을테지만,잘모른다면추가로시간을할애해지식을갖춰야할것이다.넘파이(NumPy)에익숙하면좋지만반드시요구되는사항은아니다.그리고행렬이나벡터혹은내적(dotproduct)이무엇인지아는정도의기본선형대수지식도갖춰두면좋다.

|하드웨어와소프트웨어요구사항|
-8기가RAM이장착된GPU
-최소200기가의디스크공간
-파이썬3.6이상

[옮긴이의말]
만약범용인공지능(AGI,artificialgeneralintelligence)에게질문할기회가생긴다면,이책이출간되기십년전쯤인어느날앤드류응(AndrewNg)이회사키친에서우연히제프딘(JeffDean)을만나지못했어도GPU를활용한학습과이미지로부터사물탐지,그리고지금의네가존재할수있었을까,라고물어보고싶다.저자진도책에서여러번언급하듯이지난십여년의딥러닝의발전은엄청났고매우빠르게일어났다.컴퓨터공학을전공하고업을삼아살아가는우리에게엄청난공부거리가생겨부담이었지만,한편으론영화에서만보던상상이꽤가까운현실로자리잡아가는설렘속에살게된것은기쁜일이다.
2015년의일이다.딥러닝이등장한지도몇년됐으니이젠잘정리된책도좀나왔겠지,라는생각으로여기저기서적을살펴보고온라인서점사이트에서원서도뒤적거려보았으나여전히쓸만한내용은찾기가어려웠고얇은두께에이끌려샀던책은주마간산이라는표현으로는부족할만큼부실하게훑고넘어가는경우도많았다.“딥러닝,무엇부터공부하나요?”라고물어보는분들에게늘스탠포드강의와코세라(Cousera)를추천할수밖에없었다.도서로는딱히추천할만한책이떠오르지않았고이안굿펠로(IanGoodfellow)가쓴딥러닝책은그명성에걸맞게금과옥조같은내용이가득했지만,고백하자면나에게커누스의『TheArtofComputerProgramming』처럼읽기보다는소장의목적이컸다.
그사이딥러닝프레임워크는춘추전국시대를지나텐서플로(TensorFlow)와파이토치(PyTorch)로양분되어가고있었고응당그래야했던것처럼멋진모델과훈련결과로데모를보여주는것을넘어실제서비스와비즈니스에활용되는상용화단계로진화해갔다.그즈음나도발맞추어실무에적용하고제품화를위한엔드투엔드플랫폼도구축했으나,텐서플로보다조금은늦게빛을보던파이토치에대한서적이나자료는공식사이트외에는찾기가힘들었다.그때마침출판사에서이책의번역을의뢰했으니어찌거절할수있었으랴.국내전문가그룹에서도한창화제에올랐던책이드디어한글로출간되고,출간작업에역자로참여하게되어뿌듯하기그지없다.
제목에속거나얇은두께의유혹에못이겨구입했다가후회한여타의딥러닝책과는달리이책은파이토치핵심멤버였던저자진의면면부터책에서다루는상세내용까지,인공지능개발에목마른독자들의갈증을후련하게해소시켜줄것이라믿어의심치않는다.이책은빠르게발전하는딥러닝분야의현실을전제하고그안에서오랫동안남을지식을제공하려는저자진의노력은물론,딥러닝에대한기본적인이해부터다양한용어해설,실무에적용하기위한테크닉과도구그리고평가까지모두를담았다.내용중에전문용어에대한별도공부가필요할수도있겠지만부디포기하지말고끝까지읽어보시고인공지능연구에많은지식과도움을얻어가시길바란다.
-현동석