책소개
신경망 기초부터 강화학습까지, 텐서플로로 익히는 딥러닝 이론과 구현
딥러닝에 대한 연구가 매우 활발해지면서 현대 머신러닝의 새로운 길이 열리고 있다. 구글, 마이크로소프트, 페이스북 같은 글로벌 기업들도 사활을 걸고 딥러닝을 연구하고 있다. 이 책은 딥러닝의 주요 개념을 이해할 수 있도록 상세한 설명과 예제를 제공한다. 파이썬에 익숙하고 머신러닝 및 미적분에 대한 배경지식이 있다면 이 책으로 딥러닝을 제대로 시작할 수 있다.
이 책의 주요 내용
· 머신러닝과 신경망의 기초 탐구
· 전방향 신경망 학습법
· 신경망 구현을 위한 텐서플로 사용법
· 심층 신경망 구현 시 발생하는 문제 관리
· 복잡한 이미지를 분석하는 신경망 구축
· 오토인코더를 사용한 효과적인 차원 감소 수행
· 언어 처리를 위한 시퀀스 분석 탐구
· 강화학습의 기본 원리 이해
저자소개
니킬 부두마
니킬 부두마는 샌프란시스코에 본사를 둔 Remedy의 공동 창립자이자 수석 과학자이다.
Remedy는 데이터 기반의 1차 의료를 위한 새로운 시스템을 구축하고 있는 회사이다.
그는 16세 때 산호세 주립대학교에서 신약 개발 연구소를 운영하며, 자원이 부족한 지역 사회를 위한 저비용 스크리닝 방법론을 개발했다.
19세에는 국제 생물학 올림피아드에서 두 차례 금메달을 획득하였고, MIT에 진학하여 의료 서비스를 개선하기 위한 대규모 데이터 시스템을 개발하는 데 주력하였다. MIT에서는 전국적인 비영리 단체인 Lean On Me를 공동 설립하여 대학 캠퍼스에서 익명의 문자 핫라인을 통해 효과적인 동료 지원을 제공하고
데이터를 활용하여 전국적으로 긍정적인 정신 건강 및 웰니스 결과에 영향을 미치는 비영리 단체를 설립하였다.
현재 니킬은 자신의 벤처 펀드인 Q Venture Partners를 통해 하드웨어 기술 및 데이터 회사에 투자하고 있으며, 밀워키 브루어스 야구팀의 데이터 분석팀을 관리하고 있다.
고광원
머신러닝을 전공한 데이터 과학자다. 고려대학교에서 석사 과정으로 SVM(Support Vector Machine)과 강화학습을 연구했다. 삼성전자에 입사해 빅데이터센터에서 스마트폰과 스마트TV 데이터 분석을 했으며 무선사업부에서 삼성 헬스 사용자 데이터를 다루었다. 현재는 삼성 리서치 AI 센터에서 수석 연구원으로 일하고 있으며, 일과 병행해 박사 과정을 수료하고 딥러닝을 연구하고 있다.
금경목
시스템 소프트웨어 엔지니어이다. 연세대학교 컴퓨터과학과를 졸업하고 삼성전자 DMC연구소와 무선사업부에서 근무했다. 현재 시스템LSI사업부에서 멀티미디어와 신경망 용 DSP 개발 업무를 진행하고 있다.
목차
CHAPTER 1 신경망
_1.1 지능형 기계 만들기
_1.2 기존 컴퓨터 프로그램의 한계
_1.3 머신러닝의 작동 원리
_1.4 뉴런
_1.5 뉴런으로 선형 퍼셉트론 표현하기
_1.6 전방향 신경망
_1.7 선형 뉴런과 그 한계
_1.8 시그모이드, tanh, ReLU 뉴런
_1.9 소프트맥스 출력층
_1.10 요약
CHAPTER 2 전방향 신경망 학습
_2.1 패스트푸드 문제
_2.2 경사 하강법
_2.3 델타 규칙과 학습률
_2.4 시그모이드 뉴런의 경사 하강법
_2.5 역전파 알고리즘
_2.6 확률적 경사 하강법과 미니배치 경사 하강법
_2.7 테스트 데이터와 검증 데이터 그리고 과적합
_2.8 신경망에서 과적합 막기
_2.9 요약
CHAPTER 3 텐서플로로 신경망 구현하기
_3.1 텐서플로란?
_3.2 텐서플로와 대안들을 어떻게 비교할까?
_3.3 텐서플로 설치하기
_3.4 텐서플로 변수 만들기와 조작하기
_3.5 텐서플로 연산
_3.6 placeholder 텐서
_3.7 텐서플로의 세션
_3.8 변수 범위 탐색과 변수 공유
_3.9 CPU와 GPU로 모델 관리하기
_3.10 텐서플로에서 로지스틱 회귀 모델 지정하기
_3.11 로지스틱 회귀 모델 기록하기와 학습시키기
_3.12 텐서보드로 계산 그래프와 학습 시각화하기
_3.13 텐서플로에서 MNIST를 위한 다층 모델 만들기
_3.14 요약
CHAPTER 4 경사 하강법을 넘어서
_4.1 경사 하강법의 과제
_4.2 심층 신경망의 오차 곡면에서 지역 최소값
_4.3 모델 식별성
_4.4 심층 신경망에서 가짜 지역 최소값들은 얼마나 다루기 어려운가?
_4.5 오차 곡면의 평평한 구간
_4.6 잘못된 방향의 경사
_4.7 모멘텀 기반 최적화
_4.8 이차 방법에 대한 개요
_4.9 학습률 적응
_4.10 최적화 도구 선택의 철학
_4.11 요약
CHAPTER 5 합성곱 신경망
_5.1 인간 시각에서의 뉴런
_5.2 특징 선택의 단점
_5.3 크기 조정 없는 기본 심층 신경망
_5.4 필터와 특징 맵
_5.5 합성곱층 정리
_5.6 최대 풀링
_5.7 합성곱 신경망의 전체 구조
_5.8 합성곱 신경망으로 MNIST에서 순환 반복 끝내기
_5.9 더 견고한 모델을 만드는 이미지 전처리 파이프라인
_5.10 배치 정규화로 학습 가속하기
_5.11 CIFAR-10을 위한 합성곱 신경망 만들기
_5.12 합성곱 신경망 학습 시각화하기
_5.13 합성곱 필터로 예술 스타일 복제하기
_5.14 다른 문제 영역에서 합성곱 필터 학습하기
_5.15 요약
CHAPTER 6 임베딩과 표상학습
_6.1 저차원 표현 학습하기
_6.2 주성분 분석
_6.3 오토인코더 구조의 동기
_6.4 텐서플로로 오토인코더 구현하기
_6.5 견고한 표현을 강제하는 디노이징
_6.6 오토인코더의 희소성
_6.7 입력 벡터보다 문맥이 더 유익할 때
_6.8 Word2Vec 프레임워크
_6.9 Skip-Gram 구조 구현하기
_6.10 요약
CHAPTER 7 시퀀스 분석을 위한 모델
_7.1 가변 길이 입력 분석하기
_7.2 신경망 n-gram으로 seq2seq 해결하기
_7.3 품사 태거 구현하기
_7.4 의존 구문 분석과 SyntaxNet
_7.5 빔 탐색과 전역 정규화
_7.6 상태 기반 딥러닝 모델 사례
_7.7 순환 신경망
_7.8 사라지는 경사도 문제
_7.9 LSTM 유닛
_7.10 RNN 모델을 위한 텐서플로 기초 요소
_7.11 감정 분석 모델 구현하기
_7.12 순환 신경망으로 seq2seq 과제 풀기
_7.13 주의집중으로 순환망 증강하기
_7.14 신경 번역망 해부하기
_7.15 요약
CHAPTER 8 메모리 증강 신경망
_8.1 신경 튜링 기계
_8.2 주의집중 기반 메모리 접근
_8.3 NTM 메모리 주소 지정 동작 방식
_8.4 미분 가능 신경 컴퓨터
_8.5 DNC에서 간섭 없는 쓰기
_8.6 DNC 메모리 재사용
_8.7 DNC 쓰기의 시간적 연결
_8.8 DNC 읽기 헤드 이해
_8.9 DNC 제어기 신경망
_8.10 동작 중인 DNC 시각화하기
_8.11 텐서플로에서 DNC 구현하기
_8.12 읽기와 이해를 위한 DNC 가르치기
_8.13 요약
CHAPTER 9 심층 강화학습
_9.1 아타리 게임을 점령한 심층 강화학습
_9.2 강화학습이란?
_9.3 마르코프 결정 과정
_9.4 탐색 대 활용
_9.5 정책 대 가치학습
_9.6 정책 경사가 있는 막대기-수레 문제
_9.7 Q 러닝과 DQN
_9.8 DQN 개선하기
_9.9 요약
출판사리뷰
이 책에서 다루는 내용
이 책은 딥러닝으로 어떻게 문제에 접근해야 하는지를 다룬다. 이 책을 읽고 나면 현대 딥러닝 접근 방식의 역사적 맥락을 이해하고, 텐서플로를 이용해 딥러닝 알고리즘을 구현하는 방법을 이해하게 된다.
- 1장 신경망
머신러닝과 신경망에 대한 기본적인 내용을 살펴본다. 뉴런의 기본 구조와 전방향 신경망이 어떻게 움직이는지 그리고 비선형성이 복잡한 학습 문제들을 해결하는 데 얼마나 중요한 역할을 하는지 알아본다.
- 2장 전방향 신경망 학습
전방향 신경망 학습을 비롯해 기본적인 것들을 배운다. 경사 하강법과 역전파 알고리즘을 살펴보고, 과적합을 방지하는 다양한 방법도 설명한다.
- 3장 텐서플로로 신경망 구현하기
머신러닝 모델을 표현하고 학습시키는 라이브러리인 텐서플로를 사용하는 방법을 배운다. 세션과 변수, 연산, 그래프 계산, 장치 관리를 포함한 텐서플로의 주요 기능을 설명하며 이를 바탕으로 로지스틱 회귀 모델과 확률적 경사 하강법을 이용한 전방향 신경망을 학습시키고 시각화한다.
- 4장 경사 하강법을 넘어서
복잡한 오차 곡면이 있는 심층 신경망을 학습시킬 때 발생하는 여러 문제를 설명한다. 가짜 지역 최솟값 문제가 과장됐을 가능성이 있을 때 안장점과 나쁜 조건이 바닐라 미니배치 경사 하강법의 성공에 어떻게 심각한 위협이 되는지를 살펴본다. 나쁜 조건을 극복하는 데 모멘텀을 어떻게 사용하는지 설명하며, 헤시안 행렬을 근사하는 최근 연구도 간략히 알아본다. 또한, 학습률을 조정하는 학습률 적응 최적화 도구의 진화도 소개한다.
- 5장 합성곱 신경망
이미지를 분석하는 신경망을 어떻게 만드는지 배운다. 합성곱의 개념을 소개하고, 단순하고 더 복잡한 자연 이미지 둘 다를 분석할 수 있는 다루기 쉬운 신경망을 생성하는 데 이 아이디어를 활용한다. 텐서플로로 여러 합성곱 신경망을 만들고, 다양한 이미지 처리 파이프라인과 신경망 학습을 더 빠르고 더 견고하게 만드는 배치 정규화를 활용한다. 마지막으로 합성곱 신경망의 학습을 시각화하며, 이 기술을 사용한 다른 흥미로운 응용들을 알아본다.
- 6장 임베딩과 표상학습
표상학습에 대한 다양한 방법을 살펴본다. 오토인코더로 효과적인 차원 감소를 수행할 방법과, 디노이징과 희소성도 배워 오토인코더에 유용한 속성들을 추가한다. 스킵-그램 모델을 사용해 영어 단어들에 대한 임베딩을 생성하는 방법을 배운다. 이것은 언어를 이해하기 위한 딥러닝 모델을 탐색하는 데 유용하다.
- 7장 시퀀스 분석을 위한 모델
시퀀스 분석의 세계를 깊이 탐구한다. 시퀀스를 처리하는 데 전방향 신경망을 어떻게 사용하는지 분석하고 순환 신경망도 살펴본다. 또한, 주의집중(attention) 동작 방식을 번역에서 오디오 필사본에 이르기까지 다양한 언어 응용 분야에 활용하는 방법을 알아본다.
- 8장 메모리 증강 신경망
신경 튜링 기계(neural Turing machine, NTM)와 미분 가능 신경 컴퓨터(differentiable neural computer, DNC)에 관한 최첨단 딥러닝 기술 연구를 살펴보고, 복잡한 독해 과제를 해결할 수 있는 모델을 구현해 본다.
- 9장 심층 강화학습
마르코프 결정 과정(Markov decision processes, MDP)과 탐색 대 활용을 포함한 강화학습의 기초 내용을 다룬다. 또한, 정책 경사와 DQN(deep Q-network)을 포함한 심층 강화학습에 대한 다양한 접근법도 다룬다. 마지막으로 DQN에 관한 최근 몇 가지 개선 방법과 심층 강화학습의 새로운 모습들도 간단히 언급한다.
독자리뷰
한빛미디어의 "밑바닥부터 시작하는 딥러닝"을 워낙 만족스럽게 읽었기에 새로 출간된 이 책도 굉장히 큰 기대를 가지고 읽었다.
딥러닝의 입문서로 소개되어 있는 이 책은
1장부터 4장까지는 신경망의 기초적이고 핵심적인 이론 및 신경망 구축에 가장 유명한 라이브러리인 텐서플로우에 대해 소개 되어 있다.
그 뒤로 딥러닝의 대표적인 네트워크들의 활용 예로 각 장마다 CNN, Autoencoder, RNN, LSTM, 강화학습들이 기본적인 이론소개와 함께 코드들이 제공된다.
비전공자 입장에서 최근에 읽은 한빛 출판사에서 간행된 <첫걸음> 시리즈 중에서 <딥러닝 첫걸음>, <신경망 첫걸음>, <골빈 해커의 3분 딥러닝> 등과 간단히 비교해 보면,
일단 코드 중심의 책이라 생각한다. 다른 책에서 접했던 것보다 상당히 긴 코드로 되어 있다. 코드를 비교하면서 공부하는 것도 좋은 방법일 것 같다.
위의 <첫걸음> 책들과 비교해 보았을 때, 이론이나 개념의 설명이 더 많고 깊으며, 코딩 할 때의 모델 구축에 필요한 지식들이 조금 더 자세하다고 생각된다. 몇몇 숙지되지 못한 지식이나 용어에 대해서 도움을 많이 받았다. 하지만 기본서를 책을 집필해서 그런지, 실제 textbook만큼의 수학적인 설명은 그리 많지 않다.(오히려 다행일지도 ㅎㅎ)
또한, 매우 기초적인 개념에 대한 설명은 부족하거나, 매우 간단하다. 그동안 여러 경로로 기초적인 경험이 있는 챕터들은 전체적인 개요을 재정리하고 추가적인 정보를 얻기에 매우 수월한 면이 있었지만, RNN같이 미처 공부해보지 못한 단원들은 쉽게 이해하거나 접근하기 힘들었다.
이런 어려움은 개인적인 문제일 것이다. ㅎㅎ 하지만, 초반 몇 챕터를 읽어나가면서 느끼게 된 바는, 기본서이지만 처음 접하는 사람에게는 상당한 무게감이 있는 책이라는 것이다.
저 같은 비전공자이시면 이 책을 첫 책으로 잡기 전에 <첫걸음> 시리즈나 <3분 딥러닝> 시리즈를 먼저 읽어보고 시작 하시거나, 아니면 조금 더 쉽고 기초적인 sub text를 하나 더 구비하셔서 함께 보시는 것도 좋은 방법일 것 같다.
완전 바닥에서 시작하는 초보자가 중급에 한발 더 다가서기에 필요한 징검다리 같은 책이 아닌가 생각한다. 좋은 도움을 받았다.
기초 지식으로 신경망이 무엇인지, 경사 하강법이나 학습률, 역전파 알고리즘, 미니 배치, 오버피팅 방지 등을 배우고 텐서플로로 간단한 신경망을 구현한다. 그 후 여러 가지 경사 하강법과 CNN, 오토인코더, Word2Vec에 대해 배운 후 시퀀스 분석을 위한 모델 파트를 중점으로 seq2seq, SyntaxNet, LSTM 모델을 다루고있다. 강화 학습도 소개되어 있긴 하나 간단하게 알려주는 정도에서 머문다.
기본적인 내용은 간단하게만 짚고 넘어간다.
오버피팅을 막기 위한 L2 정규화를 직관적 해석과 시각적으로 설명해준다.
MNIST 예제 소개는 텐서플로 설명이 자세하다는 점을 제외하면 다른 책과 비슷하다.
배치 정규화의 의미를 좀 더 잘 설명해준다.
텐서플로 코드가 많다는 점을 빼면 전체적으로 다른 책과 많이 다르진 않다.
시퀀스 분석 모델에 관한 설명이 구체적이다.
8장의 메모리 증강 신경망 파트는 거의 이해하지 못했다. 이책에서만 있는 특별한 부분이며 동시에 매우 흥미로운 주제다.
딥러닝을 아예 처음 시작하는 사람에겐 추천하지 않는다. 다른 텐서플로 첫걸음이나 딥러닝 첫걸음 등의 책을 읽어본 적 있는 사람에게 추천하고 밑바닥부터 시작하는 딥러닝을 읽은 사람에겐 이 책이 약간 애매할 수 있다. 시퀀스 모델쪽이나 메모리 증강 신경망에 대해 더 공부하고 싶은 사람에겐 매우 추천한다.
리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.
이 책의 제목만 보았을 때, 또 한 권의, 시중에 나온 많은 딥러닝 책들과 유사한 책이 나왔을 거라 생각을 했다. 하지만 내용을 읽어 나가면서, 생각과는 다르다는 판단을 하였다.
시중에 나와 있는 많은 책들이 기초적인 Python, iPython 사용법, logistic regression, softmax classification, activation function, backpropagation, dropout, CNN, RNN 등등을 다루고 있다. 이 때 기초적인 설명에 많은 지면을 할애하되, 수학적인 어려움을 느낄 수 있는 부분들에 대해서는 최대한 쉽게 설명하거나 스킵하는 경우도 많이 있다. 하지만 이 책은 그 보다는 좀 더 본격적으로 딥러닝의 내용을 다루고 있다는 생각이 든다.
이 책을 제대로 보기 위해서는 기초적인 machine learning 및 python 사용법은 익히고 있어야 하며, 미적분 및 선형대수에 대해서도 지식이 필요하다고 생각된다. 이 부분은 책 서두에도 저자도 밝히고 있다.
이러한 부분이 이 책과 다른 기초를 기술한 책들과는 다른 부분이라고 생각된다. 또 이 부분이 다른 책들에 비해 가지는 장점이라 생각한다. 기초적인 내용들의 설명을 줄이고 수식에 대한 설명이 필요한 부분에 대해서는 꼼꼼히 설명을 하고, 필요하면 이해를 돕기위한 그림, 도표를 사용하고 있다. 또 Google의 Tensorflow를 이용해 실제로 구현을 어떻게 해야하는 지에 대해서도 설명한다.
이 책은 앞서 나열한 여러 책에서 상세히 설명하는 기초적인 부분에 대해서 많은 설명을 하지는 않는다. 이 책의 1~3장에서 상당히 빠른 속도로 기초 개념에 대한 설명을 하고 넘어간다. 3개 장을 할애하여 설명을 하는데 그 정도면 되는 것 아닌가라고 생각할 수도 있다. 하지만 실제 읽어보면 다른 책을 참고할 필요성을 느낄 수도 있을 거라는 생각이 들었다.
4장에서는 학습률 최적화를 위한 여러가지 사례와 설명 등이 나오지만 뭔가 모르게 많이 나열을 하고 끝나버린다. 신경망을 학습 시킬 때의 문제점, 성능 등을 설명하며 모멤텀, RMSProp, Adam optimizer에 대한 설명을 수식과 함께 설명을 하고 있으나 전반적인 소개를 하고 지나가는 느낌이다.
5장과 6장은 CNN에 대한 설명이 그리고 7장과 8장은 RNN 에 대해 기술하고 있다.각각 전체적인 큰 그림을 먼저 제시하기 보다는 하나하나 단계별로 설명을 해 나가면서 이를 위해 어떤 것들이 필요한 지를 수식, 그림 및 도표 등을 이용해 설명하고 있다.
마지막 장(9장)은 강화 학습 관련 부분으로, 이 책에서 다루지 못한 강화 학습의 기본 원리를 설명하고 있다.
책을 계속 읽어나가면서 느낀 점은, 복잡한 내용을 하나 하나 단계적으로 접근해가며 설명을 하고 있고, 관련된 참고할 내용들을 다양하게 기술하고 있어 좀 더 깊게 딥러닝을 공부하려는 분들에게 좋은 참고서가 될 수 있을 거라는 생각을 하였다. 하지만 딥 러닝에 대한 지식이 부족해서 인지, 기초적인 부분에 대해서도 좀 더 많은 설명이 있었으면 더 좋았을 거라는 아쉬움이 있다. 그래서 이 책을 읽기 전에 "파이썬 라이브러리를 이용한 머신러닝", "밑바닥부터 시작하는 딥러닝" 과 같은 책을 먼저 읽고 보는 것이, 내용 이해에 도움이 될 라는 생각이 든다.
책 내용과는 별개로 개인적으로 아쉬운 점을 들어보면
첫째로 책에 오탈자가 여러 부분 있었다. 예전 한빛 미디어 책들을 읽을 때에도, 여러 곳에 오탈자가 있었을 것이라 생각하는데, 이 책이 좀 더 많다는 느낌을 받았다. 독자들이 등록한 관련 내용은, 한빛 미디어 도서 페이지(http://www.hanbit.co.kr/store/books/look.php?p_code=B5128867520&tid=misprint)에서 확인 가능하다. 하지만 모든 부분이 다 체크될 수 없기 때문에, 다음 쇄 나올 때 좀 더 꼼꼼히 수정이 되었으면 하는 바램이다.
둘째로 한빛 미디어 사이트에서 책의 예제 코드들을 챕터별로 분류해서 제공해 주었으면 더 좋았으리라는 아쉬움이 있다. github 사이트(https://github.com/darksigma/Fundamentals-of-Deep-Learning-Book)에 있는 저자의 예제 코드가 챕터 별로 되어 있지 않기 때문이다. 한빛 미디어 사이트에서 다운 받을 수 있는 데이터는, 책 내용 중 현재 다운이 불가능한 CoNLL-2000 데이터셋만 있다. 책 내용 중 코드에 해당하는 파일 이름이 명기 되어 있지 않는 부분들이 있어, 예제 코드를 github 사이트에서 찾는 것이 좀 번거로웠다. 그리고 책에 있는 예제 코드에 오류가 있는 부분들이 있어, 책의 코드를 일일이 typing 하면서 실행해 본다면, 에러가 나는 부분에 대해서는 github 예제 코드를 확인해 보아야 한다.
요즘 정말 핫한 기술이 바로 딥러닝이다.
그래서 좋은 기회에 딥러닝에 대해서 좀 알아가 보고 싶었다.
난 정말 정석을 좋아한다. 기본이 갖추어져 있어야 무한한 응용이 가능하기 때문이다.
그래서 이 책을 처음 선택할 때 정석이라는 말이 너무 좋았다. 한편으로는 정석이라 너무 어려운 말들로 설명하지는 않을까 걱정했다.
그러나 이 책의 정말 좋은 점은 사소한 기술도 정말 그림과 글로 풀어서 설명해준다.
이전에 딥러닝에 대해서 잠깐 공부하고자 다른 책을 사서 본적이 있었는데 생각보다 내가 생각했던것 보다 훨씬 많은 수식과 기호 앞에 좌절했었어야 했다.
하지만 이 책은 조금 다른 것 같다. 내 지식수준이 더 상승했을 수도 있지만 전체적인 책의 친절도가 우수하다. 도식이 없는 페이지가 손꼽을 정도이며, 어렵고 복잡한 수식을 잘 정리하고 증명해주며 글로 풀어준다. 도식을 통해 더 이해하기 좋게 해준다.
또한 정석 답게 이것을 왜 써야 하는지에 대해 설명해주고 있다.
특히 1장을 보고 딥러닝에 대해 인식이 좀 바뀌었다. 인간은 정말 정교하고 위대한 작품이다. 인간이 인간 스스로를 모방해 새로운 기계를 만들고 있으니 말이다.
텐서플로우를 사용해 직접 실습하고 활용할 수 있도록 안내해준다는 것이 또 좋은 부분이다.
정석이라 실습에 대한 개념이 잘 안잡힐까 걱정도 했었는데 이 한 권을 읽음으로 이론과 실습을 둘다 할 수 있다는 것이다.
파이썬과 수학에 어느정도 지식이 있으신 분들은 바로 봐도 손색없을 정도로 좋은 책이다.
<이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>
책소개
신경망 기초부터 강화학습까지, 텐서플로로 익히는 딥러닝 이론과 구현
딥러닝에 대한 연구가 매우 활발해지면서 현대 머신러닝의 새로운 길이 열리고 있다. 구글, 마이크로소프트, 페이스북 같은 글로벌 기업들도 사활을 걸고 딥러닝을 연구하고 있다. 이 책은 딥러닝의 주요 개념을 이해할 수 있도록 상세한 설명과 예제를 제공한다. 파이썬에 익숙하고 머신러닝 및 미적분에 대한 배경지식이 있다면 이 책으로 딥러닝을 제대로 시작할 수 있다.
이 책의 주요 내용
· 머신러닝과 신경망의 기초 탐구
· 전방향 신경망 학습법
· 신경망 구현을 위한 텐서플로 사용법
· 심층 신경망 구현 시 발생하는 문제 관리
· 복잡한 이미지를 분석하는 신경망 구축
· 오토인코더를 사용한 효과적인 차원 감소 수행
· 언어 처리를 위한 시퀀스 분석 탐구
· 강화학습의 기본 원리 이해
자세한 정보 : Link
더보기
딥러닝의 정석
이번에 리뷰를 하게된 책은 딥러닝의 정석이라는 책이에요.
표지만 보면 물고기? 한마리가 돌아다니고 있네요.
책을 펴보도록 하겠습니다.
경사하강법
경사하강법에 관한 내용이 입체적으로 표현 되어 있는 것을 보고 새삼 놀랐어요. 책 전반적으로 그림이 굉장히 많습니다.
그래서 이해하기 쉽습니다. 딥러닝을 배우면서 가장 어려운 부분이 이해가 잘 되지 않는 수식이 많다는 것인데, 정석 책의 경우 수식도 나오지만 그림 표현이 잘 되어 있기 때문에 이해력을 높여줍니다.
임베딩, word2vec
한국어를 다루는데 있어서 가장 중요한 부분이자 어려운 부분 중 하나가 임베딩과 word2vec 라고 생각했기 때문에 중요하게 봤던 부분입니다. 쉽게 설명해주신 것 같지만 제가 이해 하지 못한 부분이기도 합니다. 책의 대부분은 tensorflow 기반입니다. 구글에서 만든 tensorflow 기반이기 때문에 설치방법은 인터넷에 많이 있습니다. 그러나 문제는 GPU가 없는 경우 학습 속도가 느릴 수 있다는 점! 참고하셔야 해요~
감성분석
감성분석도 어려운 부분 중 하나입니다. '힘들었지만 재미있었습니다.', '좋을 것 같으면 너나 사.' 등 한국말은 부정과 긍정을 문장 전체로 분석해야 하기 때문에 감정 분석이 굉장히 어렵습니다. 보통은 SVM(Support Vector Machine) 을 사용해서 표현하는 책이 많은데 책에서는 영화 리뷰를 예로 들고 LSTM을 사용하고 있습니다. 문제는 IMDB 데이터가 유료화 된 부분이 있어서 조심해서 사용해야 한다는 점과 URL이 조금 다를 수 있다는 점! 실습에 참고하시길 바랍니다.
[ 마무리 ]
python은 선행으로 하고 볼 것!
tensorflow 기반이고 이미지가 많아 이해하는데 도움이 많이 되는 책!
디자인 ★☆☆☆☆ 물고기...
내용 ★★★☆☆ 코드의 가독성이 굉장히 떨어진다.
난이도 ★★★☆☆ 딥러닝 자체가 어려운 부분이기 때문에.
딥러닝에 대해 관심만 많았지...
정작 공부는 많이 해 보지 않은 터라서 기대감에 두근두근 거리면서 책을 열어 보았어요.
이 책의 대상독자를 살펴 보니 이 책은 미적분,행렬,파이썬 프로그래밍에 대한 기본적 이해가 있는 독자를 대상으로 한다... 라는 글귀가 있네요.
이책의 목차를 앞부분만 살펴 보면 위와 같은 목차를 가지고 있네요.
저는 미적분 까지는 아니더라도 행렬, 파이썬 프로그래밍도 어느정도 이해 하고 있다고 생각해서 이 책을 읽는데 많은 어려움은 없을것이라고 생각 했는데요...
딥러닝을 이해하기 위한 기법들의 알고리즘 명칭들이 너무 생소하더라구요.^^
그래도 저처럼 완전히 문외한 인 사람도 전체를 모두 이해하기는 어려워도 그림으로 알고리즘의 기법들을 설명해 주는데...
대강의 윤곽은 잡을 수 있었네요.
1장 신경망에서는 머신러닝과 신경망에 대한 기본내용을 살펴보고 뉴런의 기본구조와 전방향 신경망이 어떻게 움직이는지 등을 살펴 봅니다.
2장 전방향 신경망학습 에서는 경사하강법,역전파 알고리즘에 대해 살펴보는데 저는 정확히 이해는 안되어도 그림으로나마 대강의 윤곽을 잡을 수 있었습니다.
3장 텐서플로로 신경망 구현하기에서는 텐서플로를 설치부터 예제를 실행해 보면서 로지스틱 회귀모델과 확률적 경사 하강법을 이용한 전방향 신경망을 학습하고 시각화 하는 것을 살펴 볼수 있었구요.
4장 경사 하강법을 넘어서 에서는 가짜 데이터와 나쁜 조건들이 어떤 위협이 되는지 살펴보고 최적화 도구를 선택하는 방법들에 대해 설명을 하고 있습니다.
5장 합성곱 신경망에서는 제가 가장 궁금해 하던 이미지를 분석하여 신경망을 어떻게 만드는지를 배웠습니다. 합성곱의 개념을 전개하고 단순하고 더 복잡한 자연 이미지를 처리해 이미지 안에 사람이 있는지 없는지 등을 판별해 내는 방법등 아주 흥미있는 내용들이 전개 되었습니다.
이 책의 미리보기나 상세정보를 보시려면 http://www.hanbit.co.kr/store/books/look.php?p_code=B5128867520 을 이용하시면 미리보기를 해 보실 수 있네요.
이 책을 읽으면서 이 책의 대상 독자들이 미적분,행렬,파이썬 프로그래밍에 대한 기본적 이해가 있는 독자들이라고 규정 지었던 내용을 떠 올리게 되었습니다.
아무래도 딥러닝이란 기초지식이 아예 없다 보니 많이 딱딱할 수 있었는데...
그래도 이책이 딥러닝의 입문서적이라고 할 만 한것이 일반적인 딥러닝의 두리뭉실한 내용을 이야기 한것이 아닌 딥러닝에서 사용하는 알고리즘들을 다루었다는 점이 정말 딥러닝에 대해 공부하려고 하는 사람들에게 입문서적이 되지 않을까? 라는 생각을 해 보았네요.
제가 생각하는 이책의 용도는 딥러닝의 기초를 어느정도 알고 있는데 정말 딥러닝이 무엇인지는 모르겠다. 어떻게 딥러닝을 공부해야 할까? 라는 사람이 전문서적으로 가기 위한 징검다리 역할을 하지 않을까? 라는 생각을 해 보게 되더라구요.
아직은 저도 많이 부족해서 이책을 완벽하게 이해 하지는 못했어도...
딥러닝에서 사용하는 알고리즘을 접한 것은 꽤나 흥미 있는 일중에 하나였습니다.^^
(또한 여러번 읽다 보면 알알이 박힌 진주 같은 내용들을 이해 할지도 모른다는 생각을 해 보게 되었습니다. 알고리즘 책들도 처음 한번 읽으면 이해 안되다가 여러번 읽다 보면 어느순간 이해 되는것을 보면 이 책도 그러하지 않을까? 라는 생각이 들어서 옆에 두고 자기전에 한번씩 읽어 볼 생각입니다.^^)
이 책을 읽으면서 도움이 될만한 사이트를 하나 링크해 놓겠습니다.
저도 아직 모든 동영상 강의를 모두 듣지는 못했지만 (강의를 듣다 보니 제가 부족한 부분이 많아서 기초체력을 키운후 들으려고 미뤄둔 강의)
이 강의를 들으면서 이 책과 같이 함께 한다면 더욱더 시너지 효과를 발휘하게 될것 같다는 생각을 해 보게 되네요.
원서로 읽은 위의 책은 핵심적인 내용에대하여 직관적인 저자의 설명이 잘되어 있어 해당 논문을 읽더라고 이해하기 어려웠을 핵심사항을 잘 성명하고 있다. 많은 딥러닝 관련 책들도 있지만, 대부분책들이 책의 내용에 해당하는 참고 문헌을 언급하지 하지 않고 있어, 좀더 자세한 내용을 공비하기 힘든 반면, 이 책은 내용을 간략하게 설명하고, 자세한 내용은 독자가 찾아 볼수 있도록 각주에 참고 문헌을 넣었다.
단, 아주 직관적으로 설명하고 있지만, 내생각에는 초급자책은 아니라고 생각한다. 초중급 정도는 된다고 생각되고, 어느정도 점눈가들도 반복해서 읽으면 읽을때 마다 새로운 생각을 할수있는 책이아닐까 생각한다.
추천도서