Top

텐서플로를 이용한 고급 딥러닝 [수학의 기초와 함께 이해하는 파이썬 딥러닝]

  • 원서명Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial Intelligence in Python (ISBN 9781484230954)
  • 지은이산타누 파타나야크(Santanu Pattanayak)
  • 옮긴이이지훈
  • ISBN : 9791161752761
  • 35,000원
  • 2019년 02월 28일 펴냄
  • 페이퍼백 | 536쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

가장 최신 버전의 소스 파일은 저자의 깃허브 저장소 https://github.com/apress/pro-deep-learning-w-tensorflow에서 내려 받으실 수 있습니다.

요약

딥러닝에 필요한 수학적 기초부터 딥러닝의 기본 이론, CNN, RNN, RBM 및 GAN까지 모두 다루고 있는 책이다. 먼저, 딥러닝에 필요한 선형대수, 확률, 미적분, 최적화와 같은 기본적인 수학적인 기초를 탄탄히 다진다. 이를 기반으로 딥러닝의 기본 개념을 쉽게 설명한다. 또한 텐서플로의 기본 구문을 설명해 텐서플로에 익숙할 수 있도록 돕는다. CNN을 소개하면서 기본적인 신경망의 구조를 상세히 설명하고, RNN, LSTM, 양방향 RNN 및 GRU와 같은 고급 주제를 다룬다. 그리고 RBM 및 인코더를 다루면서 세부 주제인 깁스 샘플링, 베이지안 추론, 마르코프 체인 몬테 카를로 방법 및 PCA, ZCA 화이트닝과 같은 같은 기법에 상세히 설명한다. 이와 더불어 DBN에 대해서도 자세히 다룬다. 마지막으로 신경망의 고급 주제인 R-CNN, Fast R-CNN 및 GAN에 대해 관련된 예제와 함께 상세히 설명하고 있다. 이 책 한 권으로 딥러닝의 수학적인 기초 및 고급 주제까지 모두 배울 수 있다.

이 책에서 다루는 내용

■ 텐서플로를 사용해 딥러닝의 전체 스택을 이해하고 딥러닝을 위한 견고한 수학적 토대 마련하기
■ 텐서플로를 사용해 실무에 적용할 수 있는 복잡한 딥러닝 솔루션 구축하기
■ 텐서플로를 사용해 딥러닝에 대한 연구 및 실험 수행하기

이 책의 대상 독자

이 책은 복잡한 비즈니스 문제를 해결하기 위한 딥러닝 솔루션을 찾고 있는 데이터 과학자와 머신 러닝 전문가를 대상으로 한다. 텐서플로를 통해 딥러닝 솔루션을 연구하는 소프트웨어 개발자들에게도 적합하다. 또한 대학원생을 위한 저술한 책이며, 끊임없이 배우고자 하는 오픈소스 마니아들을 위해 저술됐다.

이 책의 구성

1장. ‘수학 기초’에서는 선형대수, 확률, 미적분, 최적화, 머신 러닝 수식과 관련된 모든 수학 개념을 자세히 설명하며, 딥러닝을 위해 필요한 수학적 기초를 다룬다. 여기서 다룬 다양한 수학 개념들은 머신 러닝과 딥러닝 분야에서 사용하는 데 초점을 맞춰 설명한다.
2장. ‘딥러닝 개념과 텐서플로 소개’에서는 딥러닝 세계를 소개하고 지난 몇 년 동안의 발전 과정을 논의한다. 퍼셉트론 학습 규칙과 역전파(backpropagation) 방법 같은 몇 가지 학습 방법과 함께 신경망의 주요 구성 요소를 상세히 설명한다. 또한 독자들이 텐서플로를 더 많이 사용하기 전에 텐서플로에 대한 기본 구문에 익숙해질 수 있도록 텐서플로 코딩의 패러다임을 소개한다.
3장. ‘컨볼루션 신경망’에서는 이미지 처리에 사용되는 컨볼루션 신경망(Convolutional Neural Network)을 다룬다. 이미지 처리는 컴퓨터 비전 분야에서 주로 사용되며, 컨볼루션 신경망을 사용해 개체 인식 및 탐지, 개체 분류, 지역화(localization), 분할(segmentation) 분야에서 성능이 크게 향상됐다. 이 장은 컨볼루션의 동작을 자세히 설명하는 것부터 시작해서 컨볼루션 신경망의 작동 원리를 다룬다. 신경망을 실험하고 확장하는 데 필요한 도구를 독자에게 제공하기 위해 컨볼루션 신경망의 각 컴포넌트 블록을 구축하는 데 중점을 둔다. 또한 컨볼루션(convolutional) 및 풀링(pooling) 계층을 통한 역전파를 자세히 논의해 독자가 컨볼루션 신경망의 훈련 프로세스에 대해 종합적인 시각을 갖도록 도와준다. 마지막으로 컨볼루션 신경망의 핵심적인 성공 요소인 등가성(equivariance)과 변환 불변(translation invariance)의 속성에 대해서도 다룬다.
4장. ‘순환 신경망을 이용한 자연어 처리’에서는 딥러닝을 이용한 자연어 처리를 다룬다. 연속적인 단어 모음과 스킵그램(skip-gram) 등의 단어 대 벡터 삽입 모델과 같은 텍스트 처리를 위한 벡터 공간 모델을 논의하고, 순환 신경망(RNN), LSTM, 양방향 RNN, GRU와 같은 고급 주제를 설명한다. 이 장에서는 언어 모델링을 자세히 설명함으로써 독자가 이러한 네트워크와 관련된 실제 문제를 다룰 때, 이 네트워크를 활용할 수 있도록 도와준다. 또한 RNN 및 LSTM의 경우 소실 기울기 문제 역전파 메커니즘을 자세히 설명한다.
5장. ‘제한된 볼츠만 머신과 자동 인코더를 사용한 자율 학습’에서는 제한된 볼츠만 머신(RBM)과 자동 인코더를 사용해 딥러닝의 비지도 학습 방법을 논의한다. 또한 RBM 훈련 과정의 경우, 샘플링에 대한 지식이 필요하기 때문에 메트로폴리스 알고리즘과 깁스 샘플링 같은 베이지안 추론과 마르코프 체인 몬테 카를로(MCMC) 방법을 설명한다. 또한 이 장에서는 RBM의 실제 훈련을 허용하는 깁스 샘플링의 커스터마이즈 버전인 대조 발산(contrastive divergence)을 설명한다. 추천 시스템에서의 협업 필터링뿐만 아니라 딥 빌리프 네트워크(DBN)의 비지도 학습에 RBM이 어떻게 사용될 수 있는지를 더 논의할 것이다.
그리고 5장에서는 희소 인코더, 잡음 제거 자동 인코더와 같은 다양한 종류의 자동 인코더를 다룬다. 또한 자동 인코더에서 학습한 내부 피처를 지도 학습뿐만 아니라 차원 감소에도 활용할 수 있는 방법을 학습할 수 있다. 마지막으로, PCA 화이트닝과 ZCA 화이트닝 같은 데이터 사전 처리 기술도 간단히 설명한다.
6장. ‘고급 신경망’에서 독자는 완전 컨볼루션 신경망, R-CNN, Fast R-CNN, Faster, U-Net 등과 같은 고급 신경망(Advanced Neural Network)을 살펴보며 이미지의 의미론적 분할, 객체 감지, 지역화를 다룬다. 전통적인 이미지 분할 방법을 소개하고, 두 세계의 장점을 적절하게 결합할 수 있도록 돕는다. 이 장의 후반부에서는 주어진 분포에 의해 생성된 데이터인 합성 데이터를 생성하는 데 사용되는 생성 모델의 새로운 토픽인 GAN(Generative Adversarial Network)에 대해 배운다. GAN은 이미지 생성, 이미지 수리, 추상적 추론, 의미론적 세분화, 비디오 생성, 한 도메인에서 다른 도메인으로의 스타일 이전, 텍스트-이미지 생성 애플리케이션과 같은 여러 분야에서 사용될 수 있다.

요약하면, 독자가 이 책에서 배울 수 있는 주요 학습 내용은 다음과 같다.
■ 텐서플로를 사용해 풀스택 딥러닝을 이해하고, 딥러닝을 위한 탄탄한 수학적 기초를 쌓는다.
■ 텐서플로를 사용해 복잡한 딥러닝 솔루션을 프로덕션 환경에 배포한다.
■ 딥러닝에 대한 연구를 수행하고 텐서플로를 사용해 실험을 수행한다.

저자/역자 소개

지은이의 말

이 책은 텐서플로로 딥러닝을 개발할 때 필요한 실용적이고 수학적인 가이드라인을 담고 있다. 딥러닝은 개념들의 계층으로 쌓아 올린 세상을 모델링하는 머신 러닝의 한 분야다. 이러한 학습 패턴은 인간의 두뇌가 배우는 방식과 유사하며, 이는 컴퓨터가 다른 전통적인 모델링 방법으로는 할 수 없는 복잡한 개념을 모델링할 수 있게 해준다. 따라서 현대의 컴퓨팅 패러다임에서, 특히 오늘날 제공되는 방대한 양의 구조화되지 않은 데이터를 활용해 복잡한 실제 문제를 모델링하는 데 딥러닝이 중요한 역할을 한다.
딥러닝 모델은 매우 복잡해서 이를 사용하는 사람들이 대개 딥러닝 모델을 블랙박스로 취급한다. 그러나 머신 러닝의 한 분야인 딥러닝을 최대한 효과적으로 사용하기 위해서는 이와 관련된 과학과 수학을 같이 공부해야만 딥러닝에 숨겨진 원리를 밝혀낼 수 있다. 이 책에서는 과학적인 관점뿐만 아니라, 수학적인 관점으로도 딥러닝과 관련된 개념과 기술을 설명하는 데 많은 시간을 할애한다. 또한 1장에서는 딥러닝의 개념을 좀 더 쉽게 이해하기 위해 필요한 수학적 기초를 설명하는 데 중점을 뒀다. 텐서플로는 연구 목적의 유연성과 사용 편의성을 갖추고 있으므로 이 책에서는 텐서플로를 딥러닝 패키지로 사용했다. 텐서플로를 선택하는 또 다른 이유로는 텐서플로 서빙 기능을 사용해 모델을 라이브 프로덕션 환경에서 쉽게 배포할 수 있다는 점을 꼽을 수 있다.
요약하자면, 이 책은 실질적인 실무 지식을 제공하기 때문에 딥러닝을 처음부터 차근차근 배워서 딥러닝 솔루션을 구현할 수 있다. 이 책을 통해 텐서플로를 사용해서 신속하게 개발할 수 있고, 다양한 딥러닝 아키텍처를 최적화할 수 있다. 이 책에서는 모든 산업 분야에서 필요한 딥러닝의 실질적인 측면을 다룬다. 새로운 딥러닝 애플리케이션을 만들기 위해 프로토타입을 먼저 만들어 사용해보고 증명할 수도 있다. 이를 위해 이 책에서 사용된 코드는 예제를 테스트해보고, 흥미로운 방법으로 확장해 테스트할 수 있도록 iPython 노트북 및 스크립트의 형태로 제공된다. 이 책을 통해 딥러닝 분야에서 연구를 계속하고 커뮤니티에 기여할 수 있도록 충분한 수학적 기초와 과학적 지식을 갖추게 될 것이다.

지은이 소개

산타누 파타나야크(Santanu Pattanayak)

현재 GE에서 수석 데이터 과학자로 근무하고 있다. 데이터 분석 및 데이터 과학 분야에서 쌓은 6년의 경력을 비롯해 총 10년 동안 이 분야에서 근무했다. 또한 개발과 데이터베이스 기술 분야도 경험했다. GE에 입사하기 전에는 RBS, 캡게미니(Capgemini), IBM 등의 회사에서 근무했다.
인도의 콜카타 자다브푸르 대학에서 전기공학 학사를 받았고, 열렬한 수학 애호가다. 현재는 하이데라바드 소재 인도 기술연구소(IIT)에서 데이터 과학 석사 과정을 밟고 있다. 데이터 과학 해커톤(hackathon)과 캐글(Kaggle) 경연 대회에 참가하는 데 많은 시간을 투자하고 있으며, 전 세계 500등 이내에 위치한다. 인도의 웨스트 벵갈에서 태어나고 자랐으며, 현재 인도 벵갈루루에서 아내와 함께 살고 있다. http://www.santanupattanayak.com/에서 최근 활동을 확인할 수 있다.

옮긴이의 말

구글이 텐서플로를 공개하면서 최근 몇 년간 딥러닝에 대한 관심이 폭발적으로 증가했다. 그에 따라 데이터 과학자뿐만 아니라, 일반 소프트웨어 엔지니어들도 딥러닝에 대해 많은 관심을 기울여왔다.
하지만 통계를 전공한 일부 소프트웨어 엔지니어나 데이터 과학자를 제외하면 수학적 기초가 약한 대부분의 소프트웨어 개발자들에게는 딥러닝 알고리즘에서 설명하는 수식이 딥러닝을 이해하는 데 큰 장벽이 되고 있다. 딥러닝 알고리즘을 이해하는 데는 고등학교 수준의 수학적 지식만 있으면 충분하다고 흔히 말하지만, 고등학교를 졸업한 지 수년에서 수십 년이 지난 경우에는 고등학교 수준의 수학적 지식도 남아 있지 않은 경우가 대부분일 것이다. 이를 위해 『수학의 정석』을 다시 펴보는 것도 어려운 일이다.
이 책 앞부분에서는 고등학교 때 배웠던 선형대수, 확률, 미적분 등을 설명한 후에 이를 기반으로 CNN과 RNN 같은 딥러닝의 기본 알고리즘을 설명하기 때문에 좀 더 쉽게 알고리즘을 이해할 수 있다. 수학에 대한 기초를 어느 정도 쌓았는지는 저마다 다를 수 있으므로 독자에 따라서는 이 책에서 설명하는 수학적 내용이 부족할 수도 있다. 이 경우, 관련 서적이나 블로그를 참조하는 것이 좋다.
딥러닝 분야에 등장하는 용어가 모두 영어기 때문에 그 표현 자체에 외국어가 많을 수밖에 없지만, 가능하면 의미를 해치지 않는 범위 내에서 한국어로 번역하도록 노력했다.

옮긴이 소개

이지훈

기계공학을 전공했지만 자바 웹 개발을 시작으로 안드로이드/iOS 기반의 앱을 개발했으며, 최근 몇 년간은 하둡과 스파크 및 딥러닝에 관련된 소프트웨어를 개발해왔다. 또한 IT 관련 서적의 저자 및 번역가로도 활동한다. 『나홀로 개발자를 위한 안드로이드』(에이콘, 2013), 『Java 프로그래밍 입문』(북스홀릭퍼블리싱, 2013)을 저술했고, 『프로그래머를 위한 안드로이드』(정보문화사, 2015), 『Android Internals Vol.1』(에이콘, 2016), 『스위프트로 하는 iOS 9 프로그래밍』(에이콘, 2016), 『대용량 머신 러닝과 스파크』(에이콘, 2018) 등 수십 권의 책을 번역했다.

목차

목차
  • 1장. 수학적 기초
    • 선형대수학
      • 벡터
      • 스칼라
      • 행렬
      • 텐서
      • 행렬 연산 및 조작
      • 벡터의 일차독립
      • 행렬의 랭크
      • 단위 행렬 및 연산자
      • 행렬식
      • 역행렬
      • 벡터의 노름
      • 의사 역행렬
      • 특정 벡터 방향의 단위 벡터
      • 특정 벡터 방향의 프로젝션 벡터
      • 고유벡터
    • 미적분학
      • 미분
      • 함수의 기울기
      • 연속 편미분
      • 함수의 헤세 행렬
      • 함수의 최대 및 최소
      • 로컬 미니마와 글로벌 미니마
      • 양반정치 행렬 및 정치 행렬
      • 볼록 집합
      • 볼록 함수
      • 오목 함수
      • 다변수 볼록 및 오목 함수 예제
      • 테일러 급수
    • 확률
      • 합집합, 교집합, 조건부 확률
      • 이벤트 교차점에 대한 확률의 체인 규칙
      • 상호 배타적인 이벤트
      • 이벤트의 독립
      • 이벤트의 조건부 독립
      • 베이즈 규칙
      • 확률 질량 함수
      • 확률 밀도 함수
      • 확률 변수의 기댓값
      • 확률 변수의 분산
      • 왜도 및 첨도
      • 공분산
      • 상관계수
      • 몇 가지 공통 확률분포
      • 우도 함수
      • 최대 우도 추정
      • 가설검정 및 p 값
    • 머신 러닝 알고리즘 및 최적화 기법의 공식화
      • 지도 학습
      • 비지도 학습
      • 머신 러닝을 위한 최적화 기법
      • 제약 조건이 있는 최적화 문제
    • 머신 러닝에 중요한 몇 가지 주제들
      • 차원 감소 방법
      • 정규화
      • 제약 조건이 있는 문제의 최적화를 위한 정규화
    • 요약

  • 2장. 딥러닝 개념과 텐서플로 소개
    • 딥러닝과 그 진화
    • 퍼셉트론과 퍼셉트론 학습 알고리즘
      • 퍼셉트론 학습의 기하학적 해석
      • 퍼셉트론 학습의 한계
      • 비선형에 대한 필요성
      • 은닉층 퍼셉트론의 비선형성 활성화 함수
      • 뉴런/퍼셉트론에 대한 다양한 활성화 함수
      • 다층 퍼셉트론 네트워크에 대한 학습 규칙
      • 기울기 계산을 위한 역전파
      • 기울기 계산을 위한 역전파 일반화
    • 텐서플로
      • 일반적인 딥러닝 패키지
      • 텐서플로 설치
      • 개발을 위한 텐서플로 기본
      • 딥러닝 관점에서의 기울기 하강 최적화
      • 확률적 기울기 하강에 대한 미니 배치 접근법의 학습 속도
      • 텐서플로 최적화 도구
      • 텐서플로를 이용한 XOR 구현
      • 텐서플로의 선형 회귀
      • 전체 배치 기울기 하강을 이용한 소프트맥스 함수로 다중 클래스 분류
      • 확률적 기울기 하강을 이용한 소프트맥스 함수의 다중 클래스 분류
    • GPU
    • 요약

  • 3장. 컨볼루션 신경망
    • 컨볼루션 연산
      • 선형 시간 불변 시스템/선형 시프트 불변 시스템
      • 한 차원의 신호를 위한 컨볼루션
    • 아날로그 및 디지털 신호
      • 2D 및 3D 신호
    • 2D 컨볼루션
      • 2차원 단위 스텝 함수
      • LSI 시스템 단위 스텝 응답이 있는 신호의 2D 변환
      • 다른 LSI 시스템 응답에 대한 이미지의 2D 컨볼루션
    • 일반적인 이미지 처리 필터
      • 평균값 필터
      • 중앙값 필터
      • 가우시안 필터
      • 기울기 기반 필터
      • 소벨 에지 감지 필터
      • 항등 변환
    • 컨볼루션 신경망
    • 컨볼루션 신경망의 구성 요소
      • 입력층
      • 컨볼루션 계층
      • 풀링 계층
    • 컨볼루션 계층을 통한 역전파
    • 풀링 계층을 통한 역전파
    • 컨볼루션을 통한 가중치 공유와 그 장점
    • 변환 평형
    • 풀링으로 인한 변환 불변
    • 드롭아웃 계층 및 정규화
    • MNIST 데이터셋에서 숫자 인식을 위한 컨볼루션 신경망
    • 현실 문제 해결을 위한 컨볼루션 신경망
    • 배치 정규화
    • 컨볼루션 신경망의 또 다른 아키텍처
      • LeNet
      • 알렉스넷
      • VGG16
      • ResNet
    • 전이 학습
      • 전이 학습 가이드라인
      • 구글의 인셉션v3를 통한 전이 학습
      • 사전 훈련된 VGG16을 이용한 전이 학습
    • 요약

  • 4장. RNN을 활용한 자연어 처리
    • 벡터 공간 모델(VSM)
    • 단어의 벡터 표현
    • Word2Vec
      • CBOW
      • 텐서플로에서 CBOW 구현
      • 단어 임베딩을 위한 스킵그램 모델
      • 텐서플로로 스킵그램 모델 구현
      • 글로벌 동시 발생 통계 기반의 단어 벡터
      • GloVe
      • 단어 벡터를 이용한 단어 유추
    • 순환 신경망의 소개
      • 언어 모델링
      • RNN을 통한 문장에서의 다음 단어 예측과 전통적인 방법의 비교
      • 시간에 따른 역전파(BPTT)
      • RNN에서 기울기의 소실 및 발산 문제
      • RNN의 소실 및 발산 기울기 문제 해결 방법
      • LSTM
      • 발산 및 소실 기울기를 줄이기 위한 LSTM
      • 순환 신경망을 이용한 텐서플로의 MNIST 숫자 식별
      • GRU
      • 양방향 RNN
    • 요약

  • 5장. 제한된 볼츠만 머신과 자동 인코더를 사용한 비지도 학습
    • 볼츠만 분포
    • 베이지안 추론: 우도, 사전확률분포, 사후확률분포
    • 샘플링을 위한 마르코프 체인 몬테 카를로 방법
      • 메트로폴리스 알고리즘
    • 제한된 볼츠만 머신
      • 제한된 볼츠만 머신 훈련
      • 깁스 샘플링
      • 블럭 깁스 샘플링
      • 번인 기간과 깁스 샘플링으로 샘플 만들기
      • 제한된 볼츠만 머신에서 깁스 샘플링 사용하기
      • 대조 발산
      • 텐서플로로 제한된 볼츠만 머신 구현
      • 제한된 볼츠만 머신을 사용한 협업 필터링
      • 딥 빌리프 네트워크
    • 자동 인코더
      • 지도 학습을 위해 자동 인코더를 사용한 피처 학습
      • KL 발산
      • 텐서플로로 희소 자동 인코더 구현
      • 잡음 제거 자동 인코더
      • 텐서플로에서 잡음 제거 자동 인코더 구현
    • PCA 및 ZCA 화이트닝
    • 요약

  • 6장. 고급 신경망 기법
    • 이미지 분할
      • 픽셀 강도 히스토그램 기반 이진 임곗값 지정 기법
      • 오츠 기법
      • 이미지 분할을 위한 워터쉐드 알고리즘
      • K-평균 클러스터링을 통한 이미지 분할
      • 시맨틱 분할
      • 슬라이딩 윈도우 방식
      • 완전 컨볼루션 네트워크
      • 다운샘플링과 업샘플링을 가진 완전 컨볼루션 네트워크
      • U-Net
      • 완전 연결 신경망으로 텐서플로에서 시맨틱 분할 작업하기
    • 이미지 분류 및 지역화 네트워크
    • 객체 감지
      • R-CNN
      • Fast R-CNN과 Faster R-CNN
    • 생성적 적대 네트워크
      • 맥스미니 및 미니맥스 문제
      • 제로섬 게임
      • 미니맥스와 안장점
      • GAN 비용 함수 및 훈련
      • 생성기를 위한 소실 기울기
      • 텐서플로로 GAN 네트워크 구현하기
    • 프로덕션 환경으로 텐서플로 모델 배포
    • 요약



도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

1장, '수학적 기초' 정오표는 여기에서 다운로드 받아주세요.(2019/08/09)