메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

딥러닝의 정석

텐서플로와 최신 기법으로 배우는 딥러닝 알고리즘 설계

한빛미디어

번역서

절판

  • 저자 : 니킬 부두마
  • 번역 : 고광원 , 금경목
  • 출간 : 2018-02-26
  • 페이지 : 304 쪽
  • ISBN : 9791162240519
  • 물류코드 :10051
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
4.2점 (9명)
좋아요 : 15

신경망 기초부터 강화학습까지, 텐서플로로 익히는 딥러닝 이론과 구현 

딥러닝에 대한 연구가 매우 활발해지면서 현대 머신러닝의 새로운 길이 열리고 있다. 구글, 마이크로소프트, 페이스북 같은 글로벌 기업들도 사활을 걸고 딥러닝을 연구하고 있다. 이 책은 딥러닝의 주요 개념을 이해할 수 있도록 상세한 설명과 예제를 제공한다. 파이썬에 익숙하고 머신러닝 및 미적분에 대한 배경지식이 있다면 이 책으로 딥러닝을 제대로 시작할 수 있다.

 

이 책의 주요 내용

· 머신러닝과 신경망의 기초 탐구

· 전방향 신경망 학습법

· 신경망 구현을 위한 텐서플로 사용법

· 심층 신경망 구현 시 발생하는 문제 관리

· 복잡한 이미지를 분석하는 신경망 구축

· 오토인코더를 사용한 효과적인 차원 감소 수행

· 언어 처리를 위한 시퀀스 분석 탐구

· 강화학습의 기본 원리 이해

니킬 부두마 저자

니킬 부두마

니킬 부두마는 샌프란시스코에 본사를 둔 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장부터 3장까지는 편안한 마음으로 읽어나갔다.

1장에서는 신경망의 기초적인 내용을 다룬다.
2장에서는 경사하강법, 오차역전파등 딥러닝 학습에 있어 필수적인 내용들을 다룬다.
3장에서는 텐서플로에 대한 소개와 기본적인 설명이 제시된다.

"경사 하강법을 넘어서"라는 제목이 달린 4장을 정말 유심히 읽었다.
딥러닝에 있어서 최적화의 문제는 가장 중요한 문제 중 하나이며 예상치 못한 많은 문제에 직면하게 되는 영역이다. 이 최적화에 대한 내용을 상당히 깊게 잘 다룬 장이다.
오차곡면이 갖게 되는 특징과 그로 인해 발생하는 문제점을 진단하고 그를 해결하기 위한 다양한 해결책들을 제시한다.
막연하게만 생각해오던 오차함수에 대해 더 깊게 생각하고 고민할 수 있었던 장이며. 다양한 최적화 기법들의 원리를 공부할 수 있었던 아주 만족스러운 장이었다.

합성곱 신경망을 다루는 5장은 복습 삼아 읽어나가며 머릿속 개념을 정리하기에 충분했다.

6장부터 책의 난이도가 올라갔다.
임베딩과 오토인코더를 통해 적절한 특징의 표현과 차원 감소의 중요성과 그 효과에 대해서 배울 수 있었다.

7장과 8장에서는 시퀀스 모델을 다루었는데 이 책에서 가장 난이도가 높은 부분이라고 생각한다. 대신 그만큼 내용이 깊고 충실하기에 여러번 읽으며 습득해야할 중요한 장이다. 다루고 있는 내용 자체가 번역, 감정분석 등 최근 굉장히 주목되고 있는 분야이기에 자세하게 서술한 점이 마음에 들었다.

마지막 9장에서는 강화학습을 다룬다. 최근 출간되는 딥러닝 책들은 대부분 강화학습의 내용을 포함하고 있는듯 하다. 강화학습의 전반적인 개념을 배울 수 있게끔 잘 정리되어 있는 장이다. 다만 강화학습을 한장에 담아내기엔 강화학습의 덩치가 너무 크기에 강화학습을 공부해본적이 없는 사람이라면 9장을 읽기가 어려울거란 생각이 든다. 나름 DRQN과 UNREAL이란 최신기법도 소개를 해주기에 흥미롭게 읽을 수 있었다. 강화학습을 소개하고 그 가능성을 설득시키는 역할은 충분히 한듯 하다.

다양한 분야와 최신기법들을 자세히 설명해주는 좋은 책이었다.

전체적으로 책의 난이도는 좀 높게 다가왔다. 하지만 내용이 굉장히 알차기에 몇번 더 읽어야 하는 책이라고 생각한다. "밑바닥부터 시작하는 딥러닝"에 비해 코드를 편안하게 읽어가며 이해할 수 있지는 않았다. 코드는 이 책을 한번 더 읽게될때 좀 더 자세히 들여다 봐야겠다.
 
 

딥러닝의 정석.jpg

 

 

딥러닝의 입문서로 소개되어 있는 이 책은 

1장부터 4장까지는 신경망의 기초적이고 핵심적인 이론 및 신경망 구축에 가장 유명한 라이브러리인 텐서플로우에 대해 소개 되어 있다. 

그 뒤로 딥러닝의 대표적인 네트워크들의 활용 예로 각 장마다 CNN, Autoencoder, RNN, LSTM, 강화학습들이 기본적인 이론소개와 함께 코드들이 제공된다.

 

비전공자 입장에서 최근에 읽은 한빛 출판사에서 간행된 <첫걸음> 시리즈 중에서 <딥러닝 첫걸음>, <신경망 첫걸음>, <골빈 해커의 3분 딥러닝> 등과 간단히 비교해 보면,

 

일단 코드 중심의 책이라 생각한다. 다른 책에서 접했던 것보다 상당히 긴 코드로 되어 있다. 코드를 비교하면서 공부하는 것도 좋은 방법일 것 같다. 

 

위의 <첫걸음> 책들과 비교해 보았을 때, 이론이나 개념의 설명이 더 많고 깊으며, 코딩 할 때의 모델 구축에 필요한 지식들이 조금 더 자세하다고 생각된다. 몇몇 숙지되지 못한 지식이나 용어에 대해서 도움을 많이 받았다. 하지만 기본서를 책을 집필해서 그런지, 실제 textbook만큼의 수학적인 설명은 그리 많지 않다.(오히려 다행일지도 ㅎㅎ)

 

또한, 매우 기초적인 개념에 대한 설명은 부족하거나, 매우 간단하다. 그동안 여러 경로로 기초적인 경험이 있는 챕터들은 전체적인 개요을 재정리하고 추가적인 정보를 얻기에 매우 수월한 면이 있었지만, RNN같이 미처 공부해보지 못한 단원들은 쉽게 이해하거나 접근하기 힘들었다.  

 

이런 어려움은 개인적인 문제일 것이다. ㅎㅎ 하지만, 초반 몇 챕터를 읽어나가면서 느끼게 된 바는, 기본서이지만  처음 접하는 사람에게는 상당한 무게감이 있는 책이라는 것이다. 

 

저 같은 비전공자이시면 이 책을 첫 책으로 잡기 전에 <첫걸음> 시리즈나 <3분 딥러닝> 시리즈를 먼저 읽어보고 시작 하시거나, 아니면 조금 더 쉽고 기초적인 sub text를 하나 더 구비하셔서 함께 보시는 것도 좋은 방법일 것 같다.

 

완전 바닥에서 시작하는 초보자가 중급에 한발 더 다가서기에 필요한 징검다리 같은 책이 아닌가 생각한다. 좋은 도움을 받았다.

 

undefined

 

1. 책의 구성 및 내용

기초 지식으로 신경망이 무엇인지, 경사 하강법이나 학습률, 역전파 알고리즘, 미니 배치, 오버피팅 방지 등을 배우고 텐서플로로 간단한 신경망을 구현한다. 그 후 여러 가지 경사 하강법과 CNN, 오토인코더, Word2Vec에 대해 배운 후 시퀀스 분석을 위한 모델 파트를 중점으로 seq2seq, SyntaxNet, LSTM 모델을 다루고있다. 강화 학습도 소개되어 있긴 하나 간단하게 알려주는 정도에서 머문다.

2. 책의 특징

  • 기본적인 내용은 간단하게만 짚고 넘어간다.

  • 수식을 일일이 풀어서 설명하지 않는다.
  • 모든 수식을 뜯어 완전히 이해하고 싶은 사람에게 별로일듯 싶다.
  • 오버피팅을 막기 위한 L2 정규화를 직관적 해석과 시각적으로 설명해준다.

  • 텐서플로를 조금 더 자세히 설명해준다.
  • MNIST 예제 소개는 텐서플로 설명이 자세하다는 점을 제외하면 다른 책과 비슷하다.

  • CNN 쪽도 크게 다를 건 없다.
  • 수식을 좀 더 적극적으로 사용했다. 다만 의미가 크게 잘 다가오진 않는다.
  • 배치 정규화의 의미를 좀 더 잘 설명해준다.

  • PCA 와 오토인코더를 비교해서 구체적으로 설명해준다.
  • 디노이징에 관해 다양체 개념을 알기 쉽게 설명해준다.
  • Word2Vec을 설명하며 단어들의 관계를 발견하고 벡터로 인코딩해야한다는 관점이 잘 다가왔다.
  • 텐서플로 코드가 많다는 점을 빼면 전체적으로 다른 책과 많이 다르진 않다.

  • SyntaxNet 과 빔 탐색 개념이 새로웠다.
  • RNN에 대한 설명은 비슷했으나 그래픽이 좀 더 이해가 잘됐다.
  • 수식에 대한 설명이 친절하진 않다.
  • 대신 LSTM 부분의 설명이 좋다.
  • 시퀀스 분석 모델에 관한 설명이 구체적이다.

  • 8장의 메모리 증강 신경망 파트는 거의 이해하지 못했다. 이책에서만 있는 특별한 부분이며 동시에 매우 흥미로운 주제다.

  • 마지막 강화학습 단락은 비중있게 다루지 않는다.
  • 독자 타겟이 애매하다는 느낌을 받았다.

3. 어떤 사람에게 추천하는가

딥러닝을 아예 처음 시작하는 사람에겐 추천하지 않는다. 다른 텐서플로 첫걸음이나 딥러닝 첫걸음 등의 책을 읽어본 적 있는 사람에게 추천하고 밑바닥부터 시작하는 딥러닝을 읽은 사람에겐 이 책이 약간 애매할 수 있다. 시퀀스 모델쪽이나 메모리 증강 신경망에 대해 더 공부하고 싶은 사람에겐 매우 추천한다.

학부때부터 현재 대학원과정까지 10여년을 컴퓨터 관련 전공에 몸담고 있다. 몇년주기로 계속해서 트렌드가 바뀌고 있는데, 스마트폰 개발 열풍이 불었다가, 빅데이터가 유행하더니, 지금은 머신러닝/딥러닝이 IT분야에서는 최고의 화두이다. 10년쯤 전, 학부 4학년때 전공 수업으로 기계학습이라는 과목을 수강하면서 신경망이라는 개념을 처음 접했었는데 지금 이렇게 화제가 될 줄 알았으면 그 때부터 미리 공부해놓을걸 하는 아쉬움이 크다. 늦었다 싶을때가 늦은것이라는 박명수의 명언도 있지만, 당장 쓸 일은 없어도 어느 정도 기본 지식은 있어야 하지 않을까 하는 생각에, 코세라에서 스탠포드 교수인 Andrew Ng의 머신러닝 강의를 들어보기도 하고, 홍콩과학기술대학교 교수였던 김성 교수님의 머신러닝/딥러닝 강의를 들어보기도 했다. 두 강의 모두 끝까지 듣지는 못했지만 Andrew Ng 교수님의 강의로 대략적인 이론에 대해서 공부하고, 김성 교수님의 강의로 머신러닝 기반지식과 Tensorflow 기본에 대해 공부했다. 마침 한빛미디어를 통해 O'REILLY의 [딥러닝의 정석]이 번역/출간되었기에, 머신러닝 기초 이론과 Tensorflow 기초를 배웠으니 이 책을 통해 기반 지식을 업그레이드 할 수 있겠다는 생각이 들었다.
 
 
이 책의 서두에서는 미적분, 행렬, 파이썬 프로그래밍에 대한 기본적 이해가 있는 독자를 대상으로 한다고 밝히고 있다. 하지만 막상 이 책을 읽기 시작하면서 서두가 조금 수정되어야 할 것 같다는 느낌이 들었다. 이 책은 미적분, 행렬 파이썬 프로그래밍에 대한 기본적 이해와 머신러닝 이론 기본 및 TensorFlow 기초 개념에 대해 이까지 하고 있는 독자가 대상이라고 해야 적절할 것 같다. 그럴것이, 이 책에은 한권 안에 신경망 기초부터 강화학습 활용까지 머신 러닝 전반의 다양한 기술을 다루고 있다. 한권 안에 많은 내용을 꾹꾹 담아내다보니 이 부분에서 호불호가 크게 갈릴 것 같다. 책의 초반부에서는 신경망에 대해 설명하고 있는데, 나는 다행히 선행 지식이 있으니 따라갈 수 있지만 머신 러닝을 처음 접하는 독자라면 이정도 설명으로 이해가 가능할까하는 의문이 들었다. 아마존 웹사이트에서 책 원서를 검색해보니 별점을 낮게 준 사람들 대부분의 리뷰가 not enough explanation and unexplained terms 와 관련되어 있는 것을 보면, 확실히 이 책의 대상은 머신러닝 초보는 아닌 것 같다.
 
머신러닝 기본 및 TensorFlow 기본 지식이 있다면, 책의 초반부까지 가볍게 잊고 있던 개념들을 다시 떠올린다는 느낌으로 읽을 수 있을 것 같다. 개념을 넘어 본격적으로 딥러닝 응용레벨에서 다루는 것은 중반부에서 CNN을 TensorFlow 코드를 이용하여 설명하는 부분부터이다. 여기서부터 TensorFlow 코드가 책의 상당 부분을 차지한다. 지면 한계상 Full source code보다는 함수레벨 정도의 코드만 지면에 할애하고, Full sorcue code는 깃헙 저장소를 통해 접할 수 있었다. 책의 소스코드만 따라치면서 책 내용을 실습해보려니 책에 나온 코드로는 실행이 어려워서 깃헙 저장소를 찾아봤는데, 코드를 챕터별로 관리하지 않고 그냥 한 폴더에 때려박은 식으로 관리를 하고 있어서 찾기가 힘들었다. (책의 코드를 어떤 파이썬 파일에서 찾을 수 있는지 안내가 없다보니 많이 불편했다) 다행히 TensorFlow야 워낙 유명하고 커뮤니티 활성화도 잘 되어있으니, 모르는 용어나 코드 구현 방법에 대해 검색하면 금방금방 찾을 수 있다.
 
책의 중반까지 MINST 손글씨 데이터를 다룰때까지는 볼만했는데, 책의 후반부에서 시퀀스 분석과 강화학습 내용이 나오면서 낯설고 어려워 이해하기가 힘들었다. 나름 자연어처리에 대한 기본 지식도 있으니 금방이해하지 싶었는데, 책의 설명만으로는 힘들어서 TensorFlow 공식문서나 다른 블로그를 많이 참조했다. 결국 코드까지 돌려보지는 못했는데, 이 부분은 다시 복습하면서 봐야겠다.
 
[딥러닝의 정석]을 TensorFlow 기본 지식이 있는 사람이 TensorFlow를 이용하여 머신러닝 기본을 다시 한번 되새겨보고, 시퀀스 분석부터 강화학습까지 활용해보고 싶은 분에게 추천한다.
 
입문자는 아래 링크를 참고하여, 머신러닝과 TensorFlow의 기본을 다지고 이 책을 보도록 하자 (본인이 공부할 때 직접 참고 한 자료들이다)

 

  리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.

 

B5128867520_l.jpg

 

  이 책의 제목만 보았을 때, 또 한 권의, 시중에 나온 많은 딥러닝 책들과 유사한 책이 나왔을 거라 생각을 했다. 하지만 내용을 읽어 나가면서, 생각과는 다르다는 판단을 하였다.   

  시중에 나와 있는 많은 책들이 기초적인 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 을 이용하시면 미리보기를 해 보실 수 있네요.


이 책을 읽으면서 이 책의 대상 독자들이 미적분,행렬,파이썬 프로그래밍에 대한 기본적 이해가 있는 독자들이라고 규정 지었던 내용을 떠 올리게 되었습니다.


아무래도 딥러닝이란 기초지식이 아예 없다 보니 많이 딱딱할 수 있었는데...

그래도 이책이 딥러닝의 입문서적이라고 할 만 한것이 일반적인 딥러닝의 두리뭉실한 내용을 이야기 한것이 아닌 딥러닝에서 사용하는 알고리즘들을 다루었다는 점이 정말 딥러닝에 대해 공부하려고 하는 사람들에게 입문서적이 되지 않을까? 라는 생각을 해 보았네요.


제가 생각하는 이책의 용도는 딥러닝의 기초를 어느정도 알고 있는데 정말 딥러닝이 무엇인지는 모르겠다. 어떻게 딥러닝을 공부해야 할까? 라는 사람이 전문서적으로 가기 위한 징검다리 역할을 하지 않을까? 라는 생각을 해 보게 되더라구요.


아직은 저도 많이 부족해서 이책을 완벽하게 이해 하지는 못했어도...

딥러닝에서 사용하는 알고리즘을 접한 것은 꽤나 흥미 있는 일중에 하나였습니다.^^

(또한 여러번 읽다 보면 알알이 박힌 진주 같은 내용들을 이해 할지도 모른다는 생각을 해 보게 되었습니다. 알고리즘 책들도 처음 한번 읽으면 이해 안되다가 여러번 읽다 보면 어느순간 이해 되는것을 보면 이 책도 그러하지 않을까? 라는 생각이 들어서 옆에 두고 자기전에 한번씩 읽어 볼 생각입니다.^^)


이 책을 읽으면서 도움이 될만한 사이트를 하나 링크해 놓겠습니다.

저도 아직 모든 동영상 강의를 모두 듣지는 못했지만 (강의를 듣다 보니 제가 부족한 부분이 많아서 기초체력을 키운후 들으려고 미뤄둔 강의)

이 강의를 들으면서 이 책과 같이 함께 한다면 더욱더 시너지 효과를 발휘하게 될것 같다는 생각을 해 보게 되네요.


모두를 위한 머신러닝/딥러닝 강의 https://hunkim.github.io/ml/

 

원서로 읽은 위의 책은 핵심적인 내용에대하여 직관적인 저자의 설명이 잘되어 있어 해당 논문을 읽더라고 이해하기 어려웠을 핵심사항을 잘 성명하고 있다.  많은 딥러닝 관련 책들도 있지만, 대부분책들이 책의 내용에 해당하는 참고 문헌을 언급하지 하지 않고 있어, 좀더 자세한 내용을 공비하기 힘든 반면, 이 책은  내용을 간략하게 설명하고,  자세한 내용은  독자가 찾아 볼수 있도록 각주에 참고 문헌을 넣었다.

 

단, 아주 직관적으로 설명하고 있지만, 내생각에는 초급자책은 아니라고 생각한다.  초중급 정도는 된다고 생각되고, 어느정도 점눈가들도 반복해서 읽으면 읽을때 마다 새로운 생각을 할수있는 책이아닐까 생각한다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
딥러닝의 정석
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
딥러닝의 정석
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
딥러닝의 정석
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실