상세정보
미리보기
파이토치 딥러닝 마스터 : 모의 암 진단 프로젝트로 배우는 신경망 모델 구축부터 훈련, 튜닝, 모델 서빙까지
- 저자
- 엘리 스티븐스,루카 안티가,토마스 피이만 저/현동석 역
- 출판사
- 책만
- 출판일
- 2022-08-31
- 등록일
- 2022-11-09
- 파일포맷
- PDF
- 파일크기
- 43MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
파이토치 핵심 개발진이 직접 집필한 책으로, 최고 실무자가 바로 옆에 앉아서 딥러닝의 기초부터 실제 프로젝트 활용까지, 모델 성능 평가와 개선 방안을 차근차근 알려주는 느낌을 준다! 텐서, 신경망 같은 딥러닝 데이터 구조의 개념과 원리부터 파이토치와 의료 데이터를 활용한 완전하게 동작 가능한 딥러닝 서비스 구축부터 배포까지, 딥러닝 전체 워크플로를 모두 다룬다!이 책에서는 파이토치를 활용해 신경망과 딥러닝 시스템을 만드는 방법을 알려준다. 종양 이미지 분류기라는 실전 예제 구축 작업을 바닥부터 배우는 실용적인 내용이 가득하다. 동시에 파이토치 텐서 API, 파이썬의 데이터 로딩, 훈련 모니터링, 결과 시각화 등 딥러닝 파이프라인 전체에 대한 최고의 실습 사례를 다룬다.
저자소개
실리콘 밸리 스타트업에서 대부분의 커리어를 이어왔다. (기업용 네트워크 장비를 만드는) 소프트웨어 엔지니어부터 (종양영상학을 위한 소프트웨어 개발) 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.1 GAN 게임____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.1 dtype으로 숫자 타입 지정하기____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.1 h5py로 HDF5 병렬화하기__3.13 결론__3.14 연습 문제__3.15 핵심 요약4장 실제 데이터를 텐서로 표현해보기__4.1 이미지 다루기____4.1.1 컬러 채널 더하기____4.1.2 이미지 파일 로딩____4.1.3 레이아웃 변경하기____4.1.4 데이터 정규화__4.2 3차원 이미지: 용적 데이터____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.1 forward 대신 __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.1 CIFAR-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.3 nn.Module 서브클래싱하기____8.3.1 nn.Module로 정의된 우리의 신경망____8.3.2 파이토치가 파라미터와 서브모듈을 유지하는 방법____8.3.3 함수형 API__8.4 우리가 만든 컨볼루션 신경망 훈련시키기 ____8.4.1 정확도 측정____8.4.2 모델을 저장하고 불러오기____8.4.3 GPU에서 훈련시키기__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.3 CT 스캔이란__9.4 프로젝트: 엔드투엔드 폐암 진단기____9.4.1 신경망이 동작할 때까지 데이터를 던져넣을 수 없는 이유____9.4.2 결절이란 무엇인가____9.4.3 데이터 소스: LUNA 그랜드 챌린지____9.4.4 LUNA 데이터 다운로드__9.5 결론__9.6 핵심 요약10장 여러 데이터 소스를 통합 데이터셋으로 합치기__10.1 원본 CT 데이터 파일__10.2 LUNA 애노테이션 데이터 파싱____10.2.1 훈련셋과 검증셋____10.2.2 애노테이션 데이터와 후보 데이터 합치기__10.3 개별 CT 스캔 로딩____10.3.1 하운스필드 단위__10.4 환자 좌표계를 사용해 결절 위치 정하기____10.4.1 환자 좌표계____10.4.2 CT 스캔 형태와 복셀 크기____10.4.3 밀리미터를 복셀 주소로 변환하기____10.4.4 CT 스캔에서 결절 추출하기__10.5 간단한 데이터셋 구현____10.5.1 getCtRawCandidate 함수로 후보 배열 캐싱하기____10.5.2 LunaDataset.__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.1 computeBatchLoss 함수____11.5.2 훈련 때와 유사한 검증 루프__11.6 성능 메트릭 출력____11.6.1 logMetrics 함수__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.3 logMetrics으로 정밀도와 재현율 구하기____12.3.4 궁극의 메트릭: F1 점수____12.3.5 새 메트릭으로 모델이 잘 동작하는지 확인하기__12.4 이상적인 데이터셋의 모습____12.4.1 데이터를 실제보다 ‘이상’에 가깝게 만들기____12.4.2 균형잡힌 LunaDataset으로 훈련시킨 결과의 차이____12.4.3 과적합 증상 알아채기__12.5 과적합 문제 다시 살펴보기____12.5.1 과적합된 얼굴-나이 예측 모델__12.6 데이터 증강으로 과적합 방지하기____12.6.1 특별 데이터 증강 기술____12.6.2 데이터 증강 효과 확인하기__12.7 결론__12.8 연습 문제__12.9 핵심 요약13장 세그멘테이션을 활용한 의심 결절 탐색__13.1 프로젝트에 두 번째 모델 추가하기__13.2 다양한 세그멘테이션 유형__13.3 시맨틱 세그멘테이션: 픽셀 단위 분류____13.3.1 유넷 아키텍처__13.4 세그멘테이션을 위한 모델 업데이트 ____13.4.1 기성품 모델을 프로젝트에 적용하기__13.5 세그멘테이션을 위한 데이터셋 업데이트____13.5.1 매우 제한된 입력 크기를 갖는 유넷____13.5.2 2차원 vs 3차원 데이터의 유넷 사용시 장단점____13.5.3 실측 데이터 만들기____13.5.4 Luna2dSegmentationDataset 구현____13.5.5 훈련 데이터와 검증 데이터 설계____13.5.6 TrainingLuna2dSegmentationDataset 구현____13.5.7 GPU에서 돌리는 증강__13.6 세그멘테이션을 위한 훈련 스크립트 업데이트____13.6.1 세그멘테이션과 증강 모델 초기화____13.6.2 아담 옵티마이저 사용하기____13.6.3 다이스 손실____13.6.4 이미지를 텐서보드에 넣기____13.6.5 메트릭 로깅 업데이트____13.6.6 모델 저장__13.7 결과__13.8 결론__13.9 연습 문제__13.10 핵심 요약14장 엔드투엔드 결절 분석, 그리고 남겨진 과제__14.1 결승선을 향하여__14.2 검증셋 독립__14.3 CT 세그멘테이션과 결절 후보 분류 연결____14.3.1 세그멘테이션____14.3.2 복셀을 그룹화하여 결절 후보로 만들기____14.3.3 결절을 찾았나? 거짓 양성을 줄이기 위한 분류__14.4 정량적인 검증__14.5 악성 예측____14.5.1 악성 정보 습득____14.5.2 AUC 베이스라인: 직경으로 분류하기____14.5.3 이전 가중치의 재활용: 미세 튜닝____14.5.4 텐서보드에서의 더 많은 출력__14.6 진단을 통해 보게되는 것____14.6.1 훈련셋, 검증셋, 테스트셋__14.7 다음 단계는? 더 많은 데이터와 영감이 필요하다____14.7.1 과적합 방지: 더 나은 정규화____14.7.2 정제된 훈련 데이터____14.7.3 결과 비교와 리서치 논문__14.8 결론____14.8.1 커튼 뒤에서__14.9 연습 문제__14.10 핵심 요약[3부] 드디어, 배포15장 제품으로 배포하기__15.1 파이토치 모델 서빙____15.1.1 플라스크에 들어간 모델____15.1.2 배포 시 바라는 점____15.1.3 배치 요청__15.2 모델 내보내기____15.2.1 ONNX로 파이토치를 넘어서는 호환성 확보____15.2.2 파이토치로 내보내기: 추적____15.2.3 추적된 모델로 만든 서버__15.3 파이토치 JIT 동작____15.3.1 전통적인 파이썬/파이토치를 넘어서기____15.3.2 인터페이스와 백엔드 관점에서의 파이토치____15.3.3 토치스크립트____15.3.4 추적 가능하도록 토치스크립트로 만들기__15.4 LibTorch: C++ 파이토치____15.4.1 JIT로 처리된 모델을 C++로 실행하기____15.4.2 시작부터 C++: C++ API__15.5 모바일____15.5.1 효율성 개선: 모델 설계와 양자화__15.6 최근 기술: 파이토치 모델 엔터프라이즈 서빙__15.7 결론__15.8 연습 문제__15.9 핵심 요약