이 글은 2020년 3월부터 한빛미디어에서 진행하는 <나는 리뷰어다> 프로그램에 참여하게 되어 글을 작성하게 되었습니다.
내가 이번 3월에 받은 책의 이름은 '그로킹 딥러닝'이라는 책이다.
본 책은 한빛 미디어 측에서 프로그램에 참여하는 리뷰어들에게 사전에 설문조사를 통해 3권의 책을 선택하고, 그중 한 권의 책을 보내주게 된다.
우선 이책을 약 3주 동안 시간이 쪼개어 틈틈이 읽어본 소감을 중심으로 글을 작성하려고 한다.
목차
책의 목차는 크게 16개의 Chapter로 구성되어 있고, 각 Chapter별로 4-15개의 파트로 구성되어 있다.
가장 먼저 1장부터 딥러닝이란 무엇인가에 대해 설명을 시작으로 딥러닝 신경망, CNN, LSTM등 이제 막 딥러닝을 공부하려는 입문자를 위해 간단하게 이해할 수 있도록 구성되어 있다.
CHAPTER 1 딥러닝을 소개합니다 : 당신이 딥러닝을 공부해야 하는 이유
__딥러닝의 세계에 어서 오세요
__왜 딥러닝을 공부해야 할까요?
__딥러닝을 시작하기가 어렵진 않을까요?
__이 책으로 딥러닝을 공부해야 하는 이유
__시작에 앞서 필요한 지식과 실습 환경은?
__파이썬 지식이 조금 필요합니다
__요약
CHAPTER 2 딥러닝의 기초 개념 : 컴퓨터가 학습하는 원리
__딥러닝이란?
__머신러닝이란?
__지도 학습
__비지도 학습
__모수적 학습 vs 비모수적 학습
__모수적 지도 학습
__모수적 비지도 학습
__비모수적 학습
__요약
CHAPTER 3 신경망을 소개합니다 : 순전파
__신경망이 처음으로 할 일 : 예측
__예측을 수행하는 신경망
__신경망이 뭔가요?
__신경망이 하는 일이 궁금합니다
__복수 입력을 받아 예측하기
__신경망은 복수 입력을 어떻게 다루나요?
__복수 입력 코드 : 실행 가능한 완성 버전 코드
__복수 출력을 하는 예측하기
__복수 입력을 받아 복수 출력을 하는 예측
__복수 입력과 복수 출력 : 동작 원리
__예측에 관한 예측
__NumPy 빠르게 입문하기
__요약
CHAPTER 4 딥러닝을 소개합니다 : 경사하강법
__예측하고 비교하고 학습하라
__비교
__학습
__비교 : 여러분의 신경망은 예측을 잘하고 있습니까?
__오차를 측정하는 이유
__신경망 학습의 가장 간단한 형태는 어떤 걸까요?
__온냉 학습
__온냉 학습의 특징
__오차를 이용하여 이동 방향과 거리 계산하기
__경사하강법 1회 반복
__학습이란 오차를 줄이는 것
__학습의 여러 단계를 관찰해보세요
__왜 이게 작동하죠? weight_delta는 뭔가요?
__한 가지 개념에 집중하기
__툭 튀어나오는 막대기가 있는 상자
__미분계수 : 두 번째 이야기
__이건 몰라도 괜찮습니다
__미분계수를 학습에 이용하는 방법
__익숙한가요?
__경사하강법 망가뜨리기
__과잉 교정 시각화하기
__발산
__알파를 소개합니다
__코드 속의 알파
__외우기
CHAPTER 5 복수 가중치 동시에 학습하기 : 경사하강법 일반화 하기
__복수 입력을 받는 경사하강법
__복수 입력을 받는 경사하강법 이해하기
__학습의 각 단계를 관찰해보세요
__가중치 한 개 동결시키기
__복수 출력을 하는 경사하강법
__복수 입력을 받아 복수 출력을 하는 경사하강법
__가중치가 학습하는 것은 무엇일까요?
__가중치 시각화하기
__내적(가중합) 시각화하기
__요약
CHAPTER 6 첫 심층 신경망 만들기 : 역전파를 소개합니다
__신호등 문제
__데이터 준비하기
__행렬과 행렬 관계
__파이썬으로 행렬 만들기
__신경망 구축하기
__전체 데이터셋 학습하기
__전체, 배치, 확률적 경사하강법
__신경망은 상관관계를 학습합니다
__상향 압력과 하향 압력
__경계 조건 : 과적합
__경계 조건 : 서로 충돌하는 압력
__간접 상관관계 학습
__신경망 적층하기 : 복습
__역전파 : 장거리 오차 귀착법
__역전파는 왜 효과가 있는 걸까요?
__선형 vs 비선형
__아직 신경망이 동작하지 않는 이유
__간헐적 상관관계의 비밀
__짧은 휴식
__첫 심층 신경망 만들기
__코드로 만나는 역전파
__역전파의 한살이
__모두 합치기
__심층 신경망이 왜 중요한가요?
CHAPTER 7 신경망 사진 찍기 : 머릿속과 종이 위에
__이제 단순하게 만들어야 합니다
__상관관계 요약
__미리 너무 복잡해져 버린 시각화
__단순화한 시각화
__더 단순하게
__이 신경망이 예측하는 모습을 관찰해봅시다
__그림 대신 문자로 시각화하기
__변수 연결하기
__모두 나란히
__시각화 도구의 중요성
CHAPTER 8 신호 학습과 잡음 제거 : 정규화와 배치 소개
__3계층 신경망으로 MNIST 도전하기
__흠, 쉬운데요
__암기 vs 일반화
__신경망에서의 과적합
__오버피팅의 원인
__가장 단순한 정규화 : 조기 종료
__산업 표준 정규화 : 드롭아웃
__드롭아웃은 왜 효과가 있을까요 : 앙상블
__코드 속의 드롭아웃
__배치 경사하강법
__요약
CHAPTER 9 확률과 비선형성 모델링하기 : 활성화 함수
__활성화 함수란 무엇일까요?
__표준 은닉 계층 활성화 함수
__표준 출력 계층 활성화 함수
__핵심 사안 : 입력에 유사성이 있는 경우
__softmax 계산하기
__신경망 계층에 활성화 함수 추가하기
__delta에 기울기 곱하기
__출력을 기울기로 변환하기(미분계수)
__MNIST 신경망 업그레이드하기
CHAPTER 10 가장자리와 모서리를 학습하는 신경망 : CNN 소개
__여러 장소에서 가중치 재사용하기
__합성곱 계층
__NumPy로 간단하게 구현하기
__요약
CHAPTER 11 언어를 이해하는 신경망 : 왕-남자+여자 == ?
__언어를 이해한다는 것은 무엇을 의미할까요?
__NLP : 자연어 처리
__지도 NLP
__IMDB 영화 리뷰 데이터셋
__입력 데이터 안에서 단어 상관관계 포착하기
__영화 리뷰 예측하기
__임베딩 계층 기초
__출력 해석하기
__신경 아키텍처
__단어 임베딩 비교하기
__뉴런이 가지는 의미는 뭘까요?
__공란 채우기
__King - Man + Woman ~= Queen
__단어 유추
__요약
CHAPTER 12 셰익스피어처럼 글쓰기 : 순환 계층으로 가변 데이터 다루기
__임의의 길이를 향한 도전
__비교가 정말 중요할까요?
__평균 단어 벡터의 놀라운 힘
__임베딩은 어떻게 정보를 저장할까요?
__신경망은 임베딩을 어떻게 활용할까요?
__단어주머니 벡터의 한계
__단위행렬을 이용해서 단어 임베딩 총합하기
__정말 아무것도 바꾸지 않는 행렬
__전이행렬
__유용한 문장 벡터 생성하는 법 학습하기
__파이썬으로 순전파 하기
__어떻게 여기에 역전파를 넣을까요?
__학습시켜 봅시다!
__준비하기
__임의 길이로 순전파 하기
__임의의 길이로 역전파 하기
__임의의 길이로 가중치 갱신하기
__실행과 출력 분석
__요약
CHAPTER 13 자동 최적화를 소개합니다 : 딥러닝 프레임워크를 만들어봅시다
__딥러닝 프레임워크란?
__텐서를 소개합니다
__자동 미분, autograd를 소개합니다
__간단히 점검해보기
__여러 번 재사용되는 텐서
__텐서 재사용을 위한 자동 미분 업그레이드
__덧셈 역전파는 어떻게 이루어질까요?
__부정 연산 지원하기
__몇 가지 함수 더 지원하기
__자동 미분을 이용해서 신경망 학습하기
__자동 최적화 추가하기
__계층 형식 지원하기
__계층을 포함하는 계층
__손실 함수 계층
__프레임워크 배우기
__비선형 계층
__임베딩 계층
__자동 미분에 색인화 추가하기
__임베딩 계층 다시 생각하기
__교차 엔트로피 계층
__순환 신경망 계층
__요약
CHAPTER 14 셰익스피어처럼 글쓰기 : LSTM
__문자 언어 모델링
__부분 역전파의 필요성
__부분 역전파
__출력의 샘플
__소멸하는 기울기, 폭발하는 기울기
__RNN 역전파의 장난감 예제
__LSTM 셀
__LSTM 게이트에 관한 몇 가지 직관
__LSTM 계층
__문자 언어 모델 업그레이드하기
__LSTM 문자 언어 모델 학습하기
__LSTM 문자 언어 모델 튜닝하기
__요약
CHAPTER 15 보이지 않는 데이터로 하는 딥러닝 : 통합 학습 입문
__딥러닝의 개인정보 문제
__통합 학습
__스팸 탐지 학습
__통합해봅시다
__통합 학습 해킹하기
__보안 통합
__동형 암호화
__동형 암호화 통합 학습
__요약
CHAPTER 16 다음 도약을 위한 준비 : 작은 안내서
__축하합니다!
__1단계 : 파이토치를 배우세요
__2단계 : 새 딥러닝 수업을 수강하세요
__3단계 : 수학적으로 접근하는 딥러닝 교과서를 구하세요
__4단계 : 블로그를 개설해서 딥러닝을 가르치세요
__5단계 : 트위터
__6단계 : 학술 논문의 내용을 구현하세요
__7단계 : GPU를 사용할 수 있는 환경을 확보하세요
__8단계 : 급여를 받으면서 일하세요
__9단계 : 오픈소스 프로젝트에 참여하세요
__10단계 : 지역 커뮤니티를 발전시키세요
또한 Chapter가 끝나는 지점에서 요약본으로 다시 한번 설명을 해주기 때문에 일정 시간 후에 읽는 경우에도 다시 한번 내용을 생각하는 계기가 된다.
다른 책과의 차이점
우선 다른 딥러닝 프레임워크를 사용하여 설명하는 책과는 달리 이 책의 경우 이미지와 코드 등을 사용하여 입문자도 쉽게 이해할 수 있도록 설명을 하고 있다.
책에 나오는 코드는 python을 이용하여 코드 설명이 되어 있고, 아래 사진과 같이 그림과 코드를 같이 나타내어 한번에 볼 수 있도록 하고 있다. 따라서 간단하게 코드를 이해하기 쉽다.
예상 독자
나는 딥러닝을 공부해본 입장에서 이 책은 프레임워크를 이용하여 공부하기 전 간단하게 딥러닝에 대한 기본 지식을 공부하기 좋은 책이라고 느꼈다.
나는 딥러닝 분야에선 선형대 수학 지식이 많이 필요하고, 사전 지식이 많이 부족하면 입문하기 어려운 분야라고 생각하고 있다.
물론, 다른 분야 역시 많은 수학적 지식이 필요로 하지만 딥러닝을 공부하려는 입문자의 경우 이 책을 읽고 딥러닝 프레임워크를 선정하여 공부하다 보면 많은 도움이 될 거라고 생각한다.
<본 글은 한빛미디어 측의 "나는 리뷰어다" 프로그램을 통해 무상으로 제공받아 작성한 글입니다.>
'책 서평' 카테고리의 다른 글
[나는 리뷰어다] 이것이 리눅스다 (0) | 2020.05.26 |
---|---|
[나는 리뷰어다] 개발 7년차, 매니저 1일차 (0) | 2020.04.27 |
[서평] 기계는 어떻게 생각하는가? (1) | 2020.01.07 |
[서평]점프 투 파이썬 (1) | 2019.08.31 |
[서평] Do it! 오라클로 배우는 데이터베이스 입문 (0) | 2018.11.21 |