프로그래머라는 직업으로 일하다 보니 기술의 유행에 대해서도 어느정도 민감하다.
요즘 많이 듣게되는 단어가 인공지능, 딥러닝, 데이터 사이언티스트, 신경망, 빅데이터, 파이썬이다.
이를 위해 이 책을 선택하였다.
이 책의 목표는 딥러닝 알고리즘의 원리를 이해하고 이를 파이썬으로 구현하는데 있다.
파이썬 문법을 따로 다루지는 않는다.
CHAPTER 0 들어가기
0.1 이 책의 구성
0.2 인공지능과 머신러닝, 딥러닝
0.3 동물의 신경세포, 뉴런
0.4 인공 신경망의 기본 유닛, 퍼셉트론
0.5 딥러닝을 위한 수학
0.6 예제 실습 환경 소개
0.7 마치며
[ PART I 단층 퍼셉트론(SLP) ]
CHAPTER 1 회귀 분석 : 전복의 고리 수 추정 신경망
1.1 단층 퍼셉트론 신경망 구조
1.2 텐서 연산과 미니배치의 활용
1.3 신경망의 세 가지 기본 출력 유형과 회귀 분석
1.4 전복의 고리 수 추정 문제
1.5 회귀 분석과 평균제곱오차(MSE) 손실 함수
1.6 경사하강법과 역전파
1.7 편미분과 손실 기울기의 계산
1.8 하이퍼파라미터
1.9 비선형 정보와 원-핫 벡터 표현
1.10 구현하기 : 전복 고리 수 추정 신경망
1.11 실행하기
1.12 마치며
CHAPTER 2 이진 판단 : 천체의 펄서 여부 판정 신경망
2.1 펄서 판정 문제
2.2 이진 판단 문제의 신경망 처리
2.3 시그모이드 함수
2.4 확률 분포와 정보 엔트로피
2.5 확률 분포의 추정과 교차 엔트로피
2.6 딥러닝 학습에서의 교차 엔트로피
2.7 시그모이드 교차 엔트로피와 편미분
2.8 계산값 폭주 문제와 시그모이드 관련 함수의 안전한 계산법
2.9 구현하기 : 펄서 여부 판정 신경망
2.10 실행하기
2.11 확장하기 : 균형 잡힌 데이터셋과 착시 없는 평가 방법
2.12 실행하기 : 확장된 펄서 여부 판정 신경망
2.13 마치며
CHAPTER 3 선택 분류 : 철판 불량 상태 분류 신경망
3.1 불량 철판 판별 문제
3.2 선택 분류 문제의 신경망 처리
3.3 소프트맥스 함수
3.4 소프트맥스 함수의 편미분
3.5 소프트맥스 교차 엔트로피
3.6 소프트맥스 교차 엔트로피의 편미분
3.7 시그모이드 함수와 소프트맥스 함수의 관계
3.8 구현하기 : 불량 철판 판별 신경망
3.9 실행하기
3.10 마치며
[ PART II 다층 퍼셉트론(MLP ]
CHAPTER 4 다층 퍼셉트론 기본 구조 : 세 가지 신경망의 재구성
4.1 다층 퍼셉트론 신경망 구조
4.2 은닉 계층의 수와 폭
4.3 비선형 활성화 함수
4.4 ReLU 함수
4.5 민스키의 XOR 문제와 비선형 활성화 함수
4.6 구현하기 : 다층 퍼셉트론 신경망 지원 함수
4.7 실행하기
4.8 마치며
CHAPTER 5 다층 퍼셉트론 모델 구조 : 꽃 이미지 분류 신경망
5.1 다층 퍼셉트론을 위한 클래스 설계
5.2 데이터 분할 : 학습, 검증, 평가
5.3 시각화
5.4 이미지 분류 문제와 꽃 이미지 분류 데이터셋
5.5 구현하기 : 모델 클래스
5.6 구현하기 : 데이터셋 클래스
5.7 구현하기 : 네 가지 데이터셋 파생 클래스
5.8 구현하기 : 꽃 이미지 분류 데이터셋 클래스
5.9 구현하기 : 수학 연산과 각종 부수적 기능
5.10 실행하기
5.11 마치며
CHAPTER 6 복합 출력의 처리 방법 : 오피스31 다차원 분류 신경망
6.1 오피스31 데이터셋과 다차원 분류
6.2 딥러닝에서의 복합 출력의 학습법
6.3 복합 출력을 위한 MlpModel 클래스와 Dataset 클래스의 역할
6.4 아담 알고리즘
6.5 구현하기 : 아담 모델 클래스
6.6 구현하기 : 오피스31 데이터셋 클래스
6.7 실행하기
6.8 마치며
[ PART III 합성곱 신경망(CNN) ]
CHAPTER 7 간단한 합성곱 모델 : 꽃 이미지 분류 신경망
7.1 다층 퍼셉트론의 문제점과 새로운 구조의 필요성
7.2 합성곱 계층
7.3 합성곱 연산의 패딩과 건너뛰기
7.4 풀링 계층
7.5 채널의 도입과 커널의 확장
7.6 합성곱과 풀링의 역전파 처리
7.7 합성곱 신경망의 일반적인 구성
7.8 세 가지 합성곱 연산 방법
7.9 다양한 계층의 처리를 위한 모델 확장
7.10 구현하기 : 간단한 합성곱 신경망 클래스
7.11 실행하기
7.12 마치며
CHAPTER 8 다섯 가지 정규화 확장 : 꽃 이미지 분류 신경망
8.1 부적합과 과적합
8.2 L2 손실
8.3 L1 손실
8.4 드롭아웃
8.5 잡음 주입
8.6 배치 정규화
8.7 정규화 기법 도입을 위한 계층의 추가
8.8 구현하기 : 정규화 확장 클래스
8.9 실행하기
8.10 마치며
CHAPTER 9 인셉션 모델과 레스넷 모델 : 꽃 이미지 분류 신경망
9.1 인셉션 모델
9.2 레스넷 모델
9.3 인셉션 모델과 레스넷 모델 구현을 위해 필요한 확장들
9.4 구현하기 : 확장된 합성곱 신경망 모델 클래스
9.5 구현하기 : 더미 데이터셋 클래스
9.6 실행하기 : 인셉션 모델
9.7 실행하기 : 레스넷 모델
9.8 마치며
[ PART IV 순환 신경망(RNN) ]
CHAPTER 10 기본 셀 순환 신경망 : 오토마타 문장 판별 신경망
10.1 시계열 데이터
10.2 순환 계층과 순환 벡터의 활용
10.3 순환 계층의 입출력 형태
10.4 순환 계층을 위한 시계열 데이터의 표현
10.5 순환 계층의 순전파와 역전파 처리
10.6 오토마타를 이용한 수식 표현의 생성과 검사
10.7 구현하기 : 간단한 순환 신경망 클래스
10.8 구현하기 : 오토마타 데이터셋
10.9 실행하기
10.10 마치며
CHAPTER 11 LSTM 순환 신경망 : 도시 소음 분류 신경망
11.1 순환 벡터와 기울기 정보의 소멸 및 폭주
11.2 LSTM의 구조와 동작 방식
11.3 쌍곡탄젠트 함수
11.4 LSTM 계층의 순전파와 역전파 처리
11.5 주파수 스펙트럼 분석을 이용한 음원 처리
11.6 음원 분류 데이터셋
11.7 구현하기 : LSTM 신경망 클래스
11.8 구현하기 : 음원 분류 데이터셋
11.9 실행하기
11.10 마치며
CHAPTER 12 CNN과 RNN의 결합 : 장면 전환 판별 신경망
12.1 비순환 계층에서의 시계열 데이터 처리
12.2 동영상 처리를 위한 합성곱 신경망과 순환 신경망의 결합
12.3 출력 계층과 후처리 단계에서의 시계열 데이터 처리
12.4 장면 전환 데이터셋
12.5 실행 부담을 줄이는 방법들
12.6 구현하기 : 확장된 순환 신경망 클래스
12.7 구현하기 : 장면 전환 데이터셋
12.8 실행하기
12.9 마치며
[ PART V 고급 응용 신경망 구조들 ]
CHAPTER 13 오토인코더 : 엠니스트 이미지 재현 및 분류 신경망
13.1 오토인코더의 구조
13.2 지도학습과 비지도학습
13.3 잡음 제거용 오토인코더
13.4 유사 이진 코드 생성과 시맨틱 해싱
13.5 지도학습이 추가된 확장 오토인코더 모델
13.6 확장 인코더 모델을 위한 엠니스트 데이터셋
13.7 구현하기 : 확장 오토인코더 모델 클래스
13.8 구현하기 : 오토인코더를 위한 엠니스트 데이터셋
13.9 실행하기
13.10 마치며
CHAPTER 14 인코더-디코더 : 엠니스트 이미지 숫자 읽기 신경망
14.1 인코더-디코더의 구조
14.2 인코더-디코더와 언어 처리
14.3 필기체 숫자 이미지를 영어로 읽기
14.4 필기체 숫자 이미지열을 한글로 읽기
14.5 인코더-디코더의 분리 학습 문제
14.6 구현하기 : 인코더-디코더 모델 클래스
14.7 구현하기 : 인코더-디코더를 위한 엠니스트 데이터셋
14.8 실행하기
14.9 마치며
CHAPTER 15 생성적 적대 신경망 : 회화 및 숫자 이미지 생성 신경망
15.1 생성적 적대 신경망의 구조
15.2 생성적 적대 신경망과 데이터 생성
15.3 생성적 적대 신경망의 순전파와 역전파 처리
15.4 구현하기 : 생성적 적대 신경망 모델 클래스
15.5 구현하기 : 생성적 적대 신경망을 위한 데이터셋
15.6 실행하기
15.7 마치며
책의 내용은 크게 5파트로 나누어져 있다.
첫번째 파트는 딥러닝을 간단히 맛볼 수 있도록 간단한 신경망 구조인 단층 퍼셉트론 구조를 다룬다.
그리고 철판의 불량 상태 분류 신경망 예제를 통해 선택 분류 문제를 다룬다.
내용들이 주를 이룬다.
오피스 31 이미지의 다차우너 분류 예제를 사용해 복합 출력을 다룬다.
이용되는 12가지 계층의 기능과 구현 방법을 살펴본다.
종류의 데이터를 다루는 과정을 살펴본다.
다섯번째 파트는 고급 응용파트로 세가지 딥러닝 응용구조를 소개한다.
실제로 내용을 진행하면서 기존의 내용을 재활용 하거나 확장하는 부분이 많다.
아래의 표를 보면 잘 정리되어 있다.
이 그림 하나가 책을 읽으면서, 읽고 나서도 많은 개념 정리를 도와 주었다.
어떤 알고리즘, 이론이 어떤식으로 이어지는지를 알려준다.
우선 이 책은 특정 기술에 대한 입문서라고 하기에는 난이도가 있다.
사실 인공지능, 딥러닝등의 학문이 기본적으로 허들이 높다.
기반 지식이 많이 필요하기 때문이다.
생각하고 책의 내용으 풀어 나간다.
책의 내용은 무척 체계적이고 깔끔하다.
배울 수 있도록 배려하였다.
코드로 직접 구현을 한다.
공부는 어렵게 해야 하고 깊이있게 해야 한다.
그래야 기본을 닦고 응용을 할 수 있다.
앞으로도 이정도의 깊이있는 책이 많이 나와 현업자들의 갈망을 많이 채워줬으면 좋겠다.
그런 의미에서 딥러닝을 체계적으로 깊이있게 배우고자 하는 이에게 이 책을 추천한다.