딥러닝과 머신러닝의 초보 실무자나 실무 관리자를 위한 책이다. 딥러닝과 머신러닝은 데이터가 가장 중요하며, 데이터에서 모든 것이 시작된다. 데이터를 어떻게 다듬고, 구성하고, 사용해야 하는지를 상세히 설명한다. 모델 산출도 중요하지만 그다음이 더 중요하다. 모델의 성능을 어떻게 평가해야 하는지, 각 성능치가 의미하는 바가 무엇인지, 산출된 모델을 어떤 방식으로 개선해 나가야 하는지를 명료하게 해설한다. 언어 모델이나, 상담 챗봇, 이미지 생성/합성 등 화려한 최신 모델에 대한 책은 아니다. 기본에 충실해 독자가 실무 수행 중에 채워 넣어야 할 항목들을 담백하게 설명한다.
Contents
1장. 시작하기
__프로그램 실행 환경
____넘파이
____싸이킷런
____케라스와 텐서플로
__툴킷 설치
__선형 대수 기초
____벡터
____행렬
____행렬과 벡터의 곱
__통계와 확률
____서술 통계
____확률 분포
____통계적 검정
__그래픽 처리 장치
__요약
2장. 파이썬 사용
__파이썬 인터프리터
__문장과 공백
__변수와 기본적인 자료 구조
____수의 표현
____변수
____문자열
____리스트
____딕셔너리
__제어 구조
____if-elif-else문
____for 반복문
____while 반복문
____break문과 continue문
____with문
____try-except문으로 에러 처리
__함수
__모듈
__요약
3장. 넘파이 사용
__왜 넘파이인가?
____배열과 리스트
____배열과 리스트 간의 처리 속도 비교
__기본 배열
____np.array로 배열 정의
____0과 1로 구성된 배열 정의
__배열 원소에 접근
____배열 인덱싱
____배열 슬라이싱
____말 줄임 기호
__연산자와 브로드캐스팅
__배열 입력과 출력
__난수
__넘파이와 이미지
__요약
4장. 데이터 작업
__클래스와 레이블
__피처와 피처 벡터
____피처의 유형
____피처 선택과 차원의 저주
__좋은 데이터 세트의 특징
____내삽법과 외삽법
____모분포
____사전 클래스 확률
____컨퓨저
____데이터 세트의 크기
__데이터 준비
____피처의 범위 조정
____누락된 피처 값
__학습, 검증, 테스트 데이터
____3개의 부분 데이터
____데이터 세트의 분할
____k-Fold 교차 검증
__데이터 검토
____데이터 점검
____주의할 사항
__요약
5장. 데이터 세트 구축
__아이리스 꽃 데이터
__유방암 데이터 세트
__MNIST 숫자
__CIFAR-10
__데이터 증강
____학습 데이터를 증강시키는 이유
____학습 데이터 증강법
____아이리스 꽃 데이터 세트 증강시키기
____CIFAR-10 데이터 세트 증강시키기
__요약
6장. 고전적인 머신러닝
__최근접 센트로이드
__k-최근접 이웃
__나이브 베이즈
__의사결정 트리와 랜덤 포레스트
____재귀의 개념
____의사결정 트리 만들기
____랜덤 포레스트
__서포트 벡터 머신 (Support Vector Machines)
____마진
____서포트 벡터
____최적화
____커널
__요약
7장. 고전 모델 실습
__아이리스 꽃 데이터 세트 실험
____고전 모델 테스팅
____최근접 센트로이드 분류기의 구현
__유방암 데이터 세트 실험
____두 개의 초기 테스트 실행
____랜덤 분할의 효과
____k-폴드 검증 추가
____하이퍼파라미터 분석
__MNIST 데이터 세트 실험
____고전 모델 테스팅
____실행 시간 분석
____PCA 구성 요소 실험
____데이터 세트 스크램블링
__고전 모델 요약
____최근접 센트로이드
____k-최근접 이웃
____나이브 베이즈
____의사결정 트리
____랜덤 포레스트
____서포트 벡터 머신(SVM)
__고전 모델의 사용
____데이터 세트가 소규모인 경우
____컴퓨팅 자원의 제약이 심한 경우
____판정 결과를 설명할 수 있는 모델이 필요한 경우
____벡터 입력 작업
__요약
8장. 신경망 소개
__신경망의 구조
____뉴런
____활성화 함수
____네트워크의 구조
____출력 계층
____가중치와 편향 표현법
__간단한 신경망의 구현
____데이터 세트 구축
____신경망의 구현
____신경망 학습과 테스팅
__요약
9장. 신경망 학습
__개요
__경사 하강법
____최솟값 찾기
____가중치 갱신
__확률적 경사 하강법
____배치와 미니배치
____콘벡스 함수와 비콘벡스 함수
____학습 종료
____학습률 갱신
____모멘텀
__역전파
____역전파, 첫 번째 설명
____역전파, 두 번째 설명
__손실 함수
____절대 손실과 평균 제곱 오차 손실
____교차 엔트로피 손실
__가중치 초기화
__과적합과 정규화
____과적합의 이해
____정규화의 이해
____L2 정규화
____드롭아웃
__요약
10장. 실용적인 신경망 예제
__데이터 세트
__sklearn의 MLPClassifier 클래스
__네트워크 구조와 활성화 함수
____소스코드
____실행 결과
__배치 크기
__기본 학습률
__학습 데이터 세트의 크기
__L2 정규화
__모멘텀
__가중치 초기화
__피처 간의 순서
__요약
11장. 모델 평가
__정의와 가정
__정확도만으로 충분하지 않은 이유
__2 × 2 혼동 행렬
__2 × 2 혼동 행렬에서 파생된 메트릭
____2 × 2 행렬에서 메트릭 도출
____메트릭으로 모델 해석
__고급 메트릭
____정보도와 표식도
____F1 점수
____코헨 카파 계수
____매튜 상관 계수
____메트릭 구현
__수신자 조작 특성(ROC) 곡선
____모델 수집
____그래프로 메트릭 출력
____ROC 곡선 해석
____ROC 분석을 통한 모델 비교
____ROC 곡선 그리기
____정밀도-재현율 곡선
__다중 클래스 다루기
____혼동 행렬의 확장
____가중치를 고려한 정확도 계산
____다중 클래스 매튜 상관 계수
__요약
12장. 컨볼루션 신경망 소개
__컨볼루션 신경망을 사용하는 이유
__컨볼루션
____커널을 이용한 스캐닝
____이미지 처리에 사용하는 컨볼루션
__컨볼루션 신경망의 해부학
____다양한 유형의 계층
____CNN을 통한 데이터 처리 과정
__컨볼루션 계층
____컨볼루션 계층의 작동 방식
____컨볼루션 계층의 사용
____다중 컨볼루션 계층
____컨볼루션 계층 초기화
__풀링 계층
__완전 연결 계층
__완전 컨볼루션 계층
__단계별 분석
__요약
13장. 케라스와 MNIST를 활용한 CNN 분석
__케라스로 CNN 구축
____MNIST 데이터 로드
____모델 구축
____모델 학습과 평가
____오차 플로팅
__기본 실험
____아키텍처 실험
____학습 세트 크기, 미니배치, 에폭
____옵티마이저
__완전 컨볼루션 네트워크
____모델의 구축과 학습
____테스트 이미지 만들기
____모델 테스트
__스크램블된 MNIST 숫자
__요약
14장. CIFAR-10 데이터 세트 실습
__CIFAR-10 복습
__전체 CIFAR-10 데이터 세트를 이용한 실습
____모델 구축
____모델 분석
__동물과 교통수단 구분
__이진 클래스와 다중 클래스
__전이학습
__모델 미세 조정
____데이터 세트 구축
____미세 조정을 위한 모델 수정
____모델 테스트
__요약
15장. 사례 연구: 오디오 샘플 분류
__데이터 세트 구축
____데이터 세트 증강
____데이터 전처리
__오디오 피처 분류
____클래식 모델 사용
____전통적인 신경망 사용
____컨볼루션 신경망 사용
__스펙트로그램
__스펙트로그램 분류
____초기화, 정규화, 배치 정규화
____혼동 행렬 조사
__앙상블
__요약
16장. 추가 학습
__CNN 추가 연구
__강화학습과 비지도학습
__생성적 적대 신경망(GAN) 모델
__순환 신경망
__온라인 리소스
__학술대회
__서적
__맺음말, So Long and Thanks for All the Fish
Author
로널드 크누젤,백성복
2003년부터 산업 현장에서 머신러닝 기술을 활용해 왔으며 2016년 볼더에 있는 콜로라도 대학교에서 머신러닝 분야의 박사 학위를 받았다. 현재는 L3Harris Technologies Inc.에서 근무하고 있다. 스프링거 출판사에서 『Numbers and Computers』(2015)와 『Random Numbers and Computers』(2018)를 출판하기도 했다.
2003년부터 산업 현장에서 머신러닝 기술을 활용해 왔으며 2016년 볼더에 있는 콜로라도 대학교에서 머신러닝 분야의 박사 학위를 받았다. 현재는 L3Harris Technologies Inc.에서 근무하고 있다. 스프링거 출판사에서 『Numbers and Computers』(2015)와 『Random Numbers and Computers』(2018)를 출판하기도 했다.