서브메뉴

본문

텐서플로로 구현하는 딥러닝과 강화학습 (초보자도 쉽게 배우는)
텐서플로로 구현하는 딥러닝과 강화학습 (초보자도 쉽게 배우는)
저자 : 잔카를로 자코네|레자울 카림|아메드 멘시
출판사 : 에이콘출판
출판년 : 2017
ISBN : 9791161750682

책소개

텐서플로를 이용해 딥러닝 프로그램을 개발하는 방법을 알려주는 소개서다. 이 책을 통해 다음과 같은 내용을 배울 수 있다.

■ 딥러닝의 역사적 발전 과정
■ 최신 텐서플로 1.3과 GPU 컴퓨팅을 이용한 딥러닝 프로그램 개발 과정
■ 텐서플로를 사용해 데이터를 로드, 처리, 변환하는 방법
■ 이미지나 텍스트를 포함한 실제 데이터 집합에 텐서플로를 사용해 CNN, RNN을 구현하는 방법
■ 딥러닝 모델의 성능을 평가하는 방법
■ 강화학습에 대한 기술적 개요 및 구현 방법
■ 케라스에 대한 개요 및 사용 방법
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책에서 다루는 내용

* 딥러닝의 역사적 발전 및 진보와 함께 머신 러닝에 대해 학습
* 최신 텐서플로 1.x를 사용한 딥 머신 지능과 GPU 컴퓨팅
* 공용 데이터 집합에 액세스하고 텐서플로를 사용한 데이터 로드, 처리 및 변형
* 이미지, 텍스트 등을 비롯한 실제 데이터 집합에 텐서플로 사용
* 딥러닝 모델의 성능을 평가하는 방법
* 확장 가능한 객체 탐지 및 모바일 컴퓨팅을 위한 딥러닝 사용
* 강화 학습 기법을 탐색해 데이터를 신속하게 학습시키는 방법
* 딥러닝 연구와 응용의 활발한 분야 탐색


이 책의 대상 독자

개발자, 데이터 분석가 또는 복잡한 수치 계산에 대한 배경 지식이 부족하지만, 딥러닝이 무엇인지 알고 싶어하는 딥러닝 애호가를 위해 작성됐다. 이 책은 딥러닝을 통해 실제 경험을 쌓기 위한 빠른 가이드를 원하는 초보자에게 큰 도움이 될 것이다. 컴퓨터 하드웨어 및 알고리즘에 대한 기본 인식을 비롯해 컴퓨터과학 기술 및 기술에 대한 기본지식이 있는 것으로 간주돼 하나의 언어로 프로그래밍하는 초보적인 수준을 전제로 한다. 초급 선형 대수학 및 미적분학 수준의 수학 능력이 필요하다.


이 책의 구성

1장, ‘텐서플로 시작하기’에서는 2~10장에서 찾아봐야 하는 몇 가지 기본 개념에 대해 설명한다. 1장에서는 머신 러닝과 딥러닝 아키텍처에 대해 소개할 것이다. 마지막으로 소위 Deep Neural Networks라고 불리는 딥러닝 아키텍처를 소개한다. 딥러닝 아키텍처는 망의 깊이 측면에서 일반적으로 알려진 단일 은닉층 신경망과는 다르다. 즉, 패턴 인식의 다단계 프로세스에서 데이터가 통과하는 노드 계층의 수가 많다. 1장에서는 딥러닝 아키텍처에 대한 비교 분석을 한다. 여기에는 대부분의 딥러닝 알고리즘이 진화한 모든 신경 네트워크가 요약돼 있다.
2장, ‘텐서플로를 처음으로 살펴보기’에서는 텐서플로 1.x의 주요 기능 및 내용을 다룬다. 계산 그래프, 데이터 모델, 프로그래밍 모델 및 텐서보드(TensorBoard)로 시작한다. 2장의 마지막 부분에서는 단일 입력 뉴런(Single Input Neuron)을 구현해 텐서플로가 실제로 작동하는 것을 볼 수 있다. 마지막으로 텐서플로 0.x에서 텐서플로 1.x로 업그레이드하는 방법을 살펴본다.
3장, ‘피드 포워드 신경망 텐서플로 사용하기’에서는 피드 포워드 뉴럴 네트워크에 대해 자세히 설명한다. 3장은 기본 아키텍처를 사용해 많은 응용 프로그램 예제를 구현하므로 매우 실용적이다.
4장, ‘컨볼루션 신경망(Convolutional Neural Network)’에서는 딥러닝 기반 이미지 분류기의 기본 블록인 CNN 네트워크를 소개한다. CNN 네트워크의 두 가지 예를 개발해볼 것이다. 첫 번째 예제는 고전적인 MNIST 숫자 분류 문제이며, 두 번째 예제의 목적은 일련의 얼굴 이미지에 대한 네트워크를 학습해 감정적인 스트레칭을 분류하는 것이다.
5장, ‘텐서플로 오토인코더’에서는 최적화 입력 패턴을 변형하기 위해 설계하고 학습시킨 오토인코더(autoencoder) 네트워크를 설명한다. 따라서 입력 패턴의 성능 저하나 불완전한 버전이 있는 경우, 원래 패턴을 얻을 수 있다. 5장에서는 몇 가지 응용 프로그램 예제로 작동하는 오토인코더 프로그램을 볼 수 있다.
6장, ‘순환 신경망(Reverse Neural Networks)’에서는 다양한 길이의 데이터를 처리하도록 설계된 기본 아키텍처를 설명한다. 순환 신경망은 다양한 자연어 처리 작업에 널리 사용된다. 텍스트 처리 및 이미지 분류 문제는 6장에서 구현한다.
7장, ‘GPU 컴퓨팅’에서는 GPU 컴퓨팅을 위한 텐서플로 기능을 보여준다. 이 장에서는 텐서플로를 사용해 GPU를 처리하는 몇 가지 기술을 살펴본다.
8장, ‘고급 텐서플로 프로그래밍’에서는 케라스(Keras), Pretty Tensor, TFLearn 같은 텐서플로 기반 라이브러리에 대한 개요를 설명한다. 각 라이브러리에 관련된 응용 프로그램 예제를 통해 주요 기능을 설명할 것이다.
9장, ‘텐서플로를 사용한 고급 멀티미디어 프로그래밍’에서는 텐서플로를 사용해 멀티미디어 프로그래밍의 일부 고급 기술 및 새로운 측면을 다룬다. 텐서플로를 사용해 안드로이드에서 확장할 수 있는 객체 탐지 및 심층 학습을 위한 심층 신경망을 예제로 들어 설명한다. 논의를 좀 더 구체화하기 위해 예제로 가속 선형 대수(XLA)와 케라스를 논의할 것이다.
10장, ‘강화 학습(Reinforcement Learning)에서는 RL 기본 개념을 다룬다. 가장 보편적인 강화 학습 알고리즘 중 하나인 Q-learning 알고리즘을 경험할 것이다. 더욱이 텐서플로에서 사용할 수 있는 강화 학습 알고리즘을 개발하고 비교해보기 위한 툴킷인 OpenAI gym 프레임워크를 소개한다.


지은이의 말

최신 버전의 텐서플로를 사용한 딥러닝의 핵심 개념을 소개한다. 텐서플로란 2011년에 출시된 수학, 머신 러닝 및 딥러닝 구현을 위한 구글의 오픈 소스 프레임워크다. 이후 텐서플로는 학계와 연구에서 업계로 널리 채택돼 최근에는 가장 안정적인 버전 1.0이 통합 API로 출시됐다. 텐서플로는 첨단 아키텍처를 구현하고 연구하는 데 필요한 유연성을 제공하는 동시에 사용자가 수학적인 세부 사항이 아닌 모델 구조에 집중할 수 있도록 한다. 독자는 실습모델 구축, 데이터 수집 및 변환 등을 통해 딥러닝 프로그래밍 기술을 배우게 될 것이다.

옮긴이의 말

2016년 알파고의 등장과 더불어 인공지능, 신경망과 관련된 내용이 인터넷은 물론 미디어를 통해 회자되고 있다. 특히 딥러닝, 강화 학습은 전문가가 아니라도 어떤 의미를 갖는지 알 수 있을 정도로 일반적인 용어가 됐다. 당연히 이러한 분야의 책들도 다양하게 출간돼 여러 독자들에게 환영 받고 있다.
초기에 딥러닝, 강화 학습과 같은 최신 인공지능 분야에 대한 정보는 해외 원서나 저널, 웹 사이트를 통해 접할 수 있었기 때문에 일반인들이 정보를 접하기에는 한계가 있었다. 다행히도 최근에는 이 분야에 계신 분들의 노력으로 한글로 저술된 책이나 인터넷 매체를 통해 관련 정보를 좀 더 쉽게 접할 수 있게 됐다. 그만큼 우리나라에서도 이 분야에 대한 관심이 높아졌고 중요하게 생각하고 있다는 방증이 아닐까 생각한다.
이 책은 딥러닝, 강화 학습 등을 다루고 있지만 이론적인 내용을 다루기보다는 텐서플로를 이용한 구현 방법을 주요 내용으로 하고 있다. 따라서 이론적인 설명을 기대하고 이 책을 선택하는 독자보다는 간단한 이론을 포함한 구현을 배우고 싶어하는 독자들에게 좀 더 유용할 것이라고 생각한다. 원서의 초기 버전이 출간되었을 때에는 현 텐서플로 버전인 1.3이 공개되기 이전이었지만, 깃허브(github)에 최신 버전에 대한 코드가 올라와 있어서 이를 반영해 수정했다. 또한 오류로 의심되는 일부분에 대해서는 원저자에게 문의해 확인한 내용을 실었다.
여러모로 원저자가 의도한 내용을 정확하게 반영하고자 노력했지만, 오류가 있다면 모든 책임은 번역자인 나에게 있다고 볼 수 있다. 책을 읽는 중에 질문사항이 생기면 이메일이나 에이콘출판사 편집 팀으로 연락주기 바란다.
[예스24에서 제공한 정보입니다.]

목차정보

1장. 딥러닝 시작하기



__머신 러닝 소개

____지도 학습

____비지도 학습

____강화 학습

__딥러닝이란 무엇인가?

____인간의 뇌는 어떻게 작동하는가?

____딥러닝의 역사

____적용 분야

__신경망

____생물학적 뉴런

____인공 신경 세포

__인공 신경망은 어떻게 학습하는가?

____역전파 알고리즘

____가중치 최적화

____확률적 경사 하강

__신경망 구조

____다층 퍼셉트론

____DNN 구조

____컨벌루션 뉴럴 네트워크

____제약 볼츠만 머신

__오토인코더

__순환 신경망

__딥러닝 프레임워크 비교

__요약



2장. 텐서플로 살펴보기



__일반 개요

____텐서플로 1.x의 새로운 기능은 무엇인가?

____텐서플로는 사람들이 사용하는 방식을 어떻게 변화시켰는가?

____텐서플로 설치 및 시작하기

__리눅스에서 텐서플로 설치하기

____플랫폼에 어떤 텐서플로를 설치해야 하는가?

__NVIDIA에서 GPU로 텐서플로를 실행하기 위한 필요 요건

____단계 1: NVIDIA CUDA 설치

____단계 2: NVIDIA cuDNN v5.1+ 설치

____단계 3: CUDA 컴퓨팅 기능 3.0+ 이 있는 GPU 카드

____단계 4: libcupti-dev 라이브러리 설치

____단계 5: Python(또는 Python3) 설치

____단계 6: PIP(또는 PIP3) 설치 및 업그레이드

____단계 7: 텐서플로 설치

__텐서플로 설치 방법

____pip로 텐서플로 설치하기

____virtualenv로 설치하기

__윈도우에서 텐서플로 설치하기

____소스를 이용해 설치하기

____윈도우에 설치하기

____텐서플로 설치를 테스트하기

__계산 그래프

__왜 계산 그래프가 중요한가?

____계산 그래프로 신경망 표현하기

__프로그래밍 모델

__데이터 모델

____랭크

____구조

____데이터 유형

____변수

____텐서 가져오기

____피드

__텐서보드

____텐서보드는 어떻게 작동하는가?

__단일 입력 뉴런 구현하기

__단일 입력 뉴런에 대한 소스 코드

__텐서플로 1.x로 마이그레이션

____업그레이드 스크립트를 사용하는 방법

____제안

____수작업 코드 업그레이드 방법

____변수

____요약 함수

____단순화한 수학 변형

____기타 변경 사항

__요약



3장. 순방향 신경망에 텐서플로 사용하기



__순방향 신경망 소개

____순방향 및 역전파

____가중치와 바이어스

____전이 함수

__자필 숫자의 분류

__MNIST 데이터 집합 살펴보기

__소프트맥스 분류기

____가시화

__텐서플로 모델을 저장하고 복구하는 방법

____모델 저장하기

____모델 복구하기

____소프트맥스 소스 코드

____소프트맥스 로더 소스 코드

__5층 신경망 구현

____가시화

____5층 신경망 소스 코드

__ReLU 분류기

__가시화

____ReLU 분류기 소스 코드

__드롭아웃 최적화

____가시화

____드롭아웃 최적화를 적용한 소스 코드

__요약



4장. 컨볼루션 신경망에 텐서플로 사용하기



__CNN 소개

__컨볼루션 뉴럴 네트워크 구조

____CNN 모델 - LeNet

__첫 번째 CNN 구축

____손으로 쓴 분류기의 소스 코드

____CNN으로 감정 인식하기

____감정 분류기 소스 코드

____여러분이 보유한 이미지로 모델 테스트하기

____소스 코드

__요약



5장. 텐서플로 오토인코더 최적화하기



__오토인코더 소개

__오토인코더 구현하기

____오토인코더에 대한 소스 코드

__오토인코더 견고성 개선하기

__노이즈 제거 오토인코더 구축하기

____노이즈 제거 오토인코더 소스 코드

__컨볼루션 오토인코더

____인코더

____디코더

____컨볼루션 오토인코더 소스 코드

__요약



6장. RNN 순환 신경망



__RNN 기본 개념

__RNN 실행 메커니즘

__RNN의 펼쳐진 버전

__그레이디언트 소멸 문제

__LSTM 네트워크

__RNN을 이용한 이미지 분류기

____RNN 이미지 분류 프로그램의 소스 코드

__양방향 RNN

____양방향 RNN 소스 코드

____텍스트 예측

____데이터 집합

____혼잡도

____PTB 모델

____예제 실행하기

__요약



7장. GPU 연산



__GPGPU 연산

__GPGPU 역사

__CUDA 구조

__GPU 프로그래밍 모델

__텐서플로 GPU 설정

____텐서플로 업데이트

__텐서플로 GPU 관리

____프로그래밍 예제

________GPU 계산을 위한 소스 코드

__GPU 메모리 관리

__복수 GPU 시스템에서 단일 GPU 할당

____소프트 배치로 GPU에 대한 소스 코드

____복수 GPU 사용하기

____복수 GPU 관리를 위한 소스 코드

__요약



8장. 고급 텐서플로 프로그래밍



__케라스 소개

____설치

__딥러닝 모델 만들기

__영화 평론 내용에 근거한 감정 분류

____케라스 무비 분류 프로그램의 소스 코드

__컨볼루션층을 추가하기

____컨볼루션층을 갖는 영화 분류기에 대한 소스 코드

__Pretty Tensor

____층 연결

________일반 모드

________순차 모드

________분기 및 조인

__숫자 분류기

____숫자 분류기용 소스 코드

__TFLearn

____TFLearn 설치

__타이타닉 생존 예측기

____타이타닉 분류기 소스 코드

__요약



9장. 텐서플로를 이용한 고급 멀티미디어 프로그래밍하기



__멀티미디어 분석 소개

__가변적인 객체 감지를 위한 딥러닝

____병목

____재학습 모델 사용

__가속화한 선형 대수학

____텐서플로의 주요 강점

____XLA를 통한 Just-In-Time 컴파일

________JIT 컴파일

________XLA의 존재와 장점

________XLA의 후드 작업

________여전히 실험적인 상태다

________지원 플랫폼

________보다 실험적인 자료

__텐서플로와 케라스

____케라스는 무엇인가?

____케라스의 효과

____비디오 질문 응답 시스템

________실행 불가능한 코드!

__안드로이드에서 딥러닝

____텐서플로 데모 예제

____안드로이드 시작하기

________구조 요구 사항

________사전 빌드한 APK.

________데모 실행

________안드로이디 스튜디오로 구현하기

________좀 더 시도해본다 - Bazel로 구축하기

__요약



10장. 강화 학습



__강화 학습의 기본 개념

__Q-러닝 알고리즘

__OpenAI Gym 프레임워크 소개

__frozenlake-v0 구현 문제

____frozenlake-v0 문제에 대한 소스 코드

__텐서플로를 사용한 Q-러닝

__Q 러닝 신경망 소스 코드

__요약
[알라딘에서 제공한 정보입니다.]