Top

텐서플로 入門 [예제로 배우는 텐서플로]

  • 원서명Getting Started with TensorFlow (ISBN 9781786468574)
  • 지은이잔카를로 자코네(Giancarlo Zaccone)
  • 옮긴이김창엽
  • ISBN : 9788960779198
  • 20,000원
  • 2016년 10월 20일 펴냄
  • 페이퍼백 | 208쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

Python 3.5 / Tensorflow v1.1 기준 소스 코드는 다음 주소에서 다운로드 받으실 수 있습니다.
https://github.com/czangyeob/AcornPub_Tensorflow

요약

이 책은 머신 러닝과 딥 러닝에 관심이 있는 독자들이 텐서플로 예제를 구현해 보면서 쉽게 이해할 수 있도록 구성되어 있다. 기본 파이썬 문법부터 기본적인 머신 러닝 알고리즘(선형회귀, KNN, K-Means), 인공 신경망, 합성곱 신경망, 순환 신경망까지 텐서플로 예제를 통해 자세하게 설명한다. 텐서플로의 중요한 특징 중 하나인 텐서보드를 소개하고 GPU를 사용한 텐서플로 프로그래밍과 머신러닝으로 학습한 모델을 실무에서 활용할 수 있도록 환경을 제공하는 텐서플로 서빙까지 다룬다. 텐서플로를 통한 머신 러닝과 딥 러닝 구현의 기초를 다지는 데 큰 도움이 될 것이다.

이 책에서 다루는 내용

■ 수학적 문제 해결을 위한 텐서플로 환경 구축

■ 머신 러닝과 딥 러닝 기본 개념 학습

■ 데이터 모델 구축을 위한 인공 신경망 학습 및 검증

■ 회귀 알고리즘을 이용한 예측

■ 군집화를 통한 데이터 분석

■ 군집화와 데이터 분류를 위한 알고리즘 개발

■ 빅데이터 분석을 위한 GPU 컴퓨팅 구현

이 책의 대상 독자

프로그래밍과 수학에 대한 기본 지식이 있으며, 머신 러닝과 딥 러닝을 배우고 싶어 하는 사람을 대상으로 한다. 이 책의 내용을 숙지한다면 텐서플로의 기능을 이용해 강력한 애플리케이션을 제작할 수 있다.

이 책의 구성

1장, ‘텐서플로: 기초’에서는 텐서플로 구조의 전반적인 내용과 개발 배경, 파이썬 프로그래밍 가이드라인을 설명한다. 텐서플로 설치 방법과 세션을 구동시키는 방법, 그리고 최적화와 디버깅에서 사용하는 텐서보드(TensorBoard)에 대해서도 다룬다.
2장, ‘텐서플로 기초 연산’에서는 텐서플로의 수학 연산 기능에 대해 설명한다. 텐서플로의 기초 자료형을 설명하고, 이를 통해 가장 기본적인 연산부터 복잡한 편미분 방정식까지 풀어본다. 텐서플로에서 주요하게 다루는 자료 구조인 텐서(tensor)에 대해서도 설명한다.
3장, ‘머신 러닝 시작’에서는 머신 러닝 모델에 대해 설명한다. 데이터 간 유사성을 특징으로 사용하는 선형 회귀 알고리즘을 직접 구현해보면서 데이터 간의 연관성에 대해 알아본다. 머신 러닝의 학습 방법은 크게 분류(Classification)와 군집화(Clustering)의 두 가지로 나눌 수 있다. 분류는 새로운 데이터가 입력되면 미리 정의된 카테고리로 나누는 방법이며, 군집화는 비슷한 데이터끼리 그룹을 만드는 방법이다.
4장, ‘인공 신경망 소개’에서는 신경망에 대해 간단하면서도 자세히 설명한다. 인공 뉴런의 연결 구조는 사람의 뉴런이 행동하는 방식을 모방하도록 수학적으로 모델링돼 있다. 즉, 인공 뉴런은 실제 뉴런의 특성을 모방하도록 수학적으로 구성됐다고 할 수 있으며, 신경망(Neural Network)은 인공 뉴런을 연결해서 딥 러닝 알고리즘을 구성한 것이다. 단일 계층 퍼셉트론(Single Layer Perceptron)과 다중 계층 퍼셉트론(Multi Layer Perceptron)이 가장 기본적인 신경망이라 할 수 있으며, 이를 이용해 데이터를 분류해본다.
5장, ‘딥 러닝’에서는 딥 러닝 알고리즘을 다룬다. 최근 몇 년 동안 딥 러닝은 급격히 성장해, 과거에는 불가능하게 여겼던 문제를 해결하고 있다. 딥 러닝에서 가장 중요하게 다뤄지고 있는 CNN(Convolutional Neural Network)과 RNN(Recurrent Neural Network)을 이용해 이미지 인식과 번역을 각각 구현해본다.
6장, ‘GPU 프로그래밍과 텐서플로 서빙’에서는 GPU 연산 능력을 이용해 텐서플로를 더 빠르게 구동시키는 방법을 다루며, 머신 러닝에 특화된 고성능의 오픈소스 서빙 시스템인 텐서플로 서빙을 통해 텐서플로에 최적화된 개발 환경을 구성해본다.

저자/역자 소개

지은이의 말

텐서플로(TensorFlow)는 머신 러닝과 딥 러닝을 위해 만들어진 오픈소스 소프트웨어 라이브러리다.
머신 러닝과 딥 러닝은 컴퓨터가 복잡한 패턴을 자동으로 인식해 똑똑한 결정을 내리도록 만드는 알고리즘이다.
머신 러닝의 알고리즘은 크게 지도 학습과 비지도 학습으로 나눌 수 있다. 두 방법의 주요 차이점은, 지도 학습은 프로그래머가 컴퓨터에게 해야 할 행위를 가르쳐주는 것인 반면, 비지도 학습은 모든 과정을 컴퓨터가 스스로 하도록 한다는 점이다.
딥 러닝은 머신 러닝의 한 분과며, 최근에는 인공지능 구현에 머신 러닝을 접목하는 사례가 늘어나고 있다. 이것이 가능한 이유는, 딥 러닝 알고리즘이 사람의 두뇌를 모방하려는 특징을 갖기 때문이다.
이런 흥미로운 주제를 다루기 위해 구글 브레인 팀은 이 책의 주제인 텐서플로를 개발했다.
텐서플로의 프로그래밍적 기능을 다루기 위해서는 먼저 파이썬(Python) 프로그래밍 언어에 대해 알아둬야 한다. 파이썬은 재미있고 사용하기 쉬운 범용 프로그래밍 언어며, 꼭 배워둬야 할 프로그래밍 언어 중 하나로 빠르게 자리 잡고 있다.
이 책은 텐서플로의 모든 기능을 다루지는 않는다. 하지만 텐서플로의 주요 개념을 소개하고 독자들로 하여금 최대한 효율적으로 텐서플로를 학습할 수 있게 돕는다. 각 장마다 텐서플로의 주요한 특징에 대해 프로그래밍 예제를 들어 설명하며, 머신 러닝과 딥 러닝을 다루며 마주치게 될 문제에 대해서도 다룬다.
텐서플로는 거대하고 복잡하다. 하지만 기본적인 사용법을 익혀둔다면 사용하기 아주 쉽게 구성돼 있다. 이 책과 함께라면 이 과정이 좀 더 수월할 것이다.

지은이 소개

잔카를로 자코네(Giancarlo Zaccone)

산업과학 분야에서 10년 이상 연구 프로젝트를 관리해 왔다. 국립 연구 협회(CNR, the National Research Council)에서 근무하면서 병렬 수치 연산 및 시각화에 관해 연구했다.
현재 컨설팅 업체에서 소프트웨어 엔지니어로 활동하며, 대공 방어 시스템 유지 보수 업무를 맡고 있다.
나폴리 대학교(Federico II of Naples)에서 물리학 석사학위를 받았으며, 로마 라 사피엔차 대학교(La Sapienza of Rome)에서 컴퓨터 과학 석사 2학기 과정에 있다.
팩트출판사에서 『Python Parallel Programming Cookbook』을 출간했으며 링크드인(https://it.linkedin.com/in/giancarlozaccone)을 통해 그와 연락할 수 있다.

옮긴이의 말

알파고(AlphaGo) 덕분에 ‘인공지능’, ‘머신 러닝’, ‘딥 러닝’이라는 용어가 사람들에게 더 친숙해진 것 같습니다. 전 세계의 유망한 IT 기업들은 사용하고 있는 머신 러닝 프레임워크를 오픈소스로 공개하며 치열한 경쟁을 하고 있습니다. 학계에서도 머신 러닝 알고리즘의 정확도를 더 개선시키고자 노력하고 있으며, 기업에서도 내부의 문제를 푸는 데 머신 러닝을 적용해 하나씩 해결해 나가기 시작했습니다.
머신 러닝은 뇌 과학, 산업 공학, 생물학, 물리학, 컴퓨터 공학, 수학, 로봇 공학 등 많은 학문 분야와 연결돼 있습니다. 여러 분야에 걸쳐 있는 만큼 학습해야 하는 내용도 정말 많습니다. 머신 러닝을 공부하고자 하는 학생은 유투브(Youtube), 코세라(Coursera), 에드엑스(edX) 등 동영상 강의를 통해 해외 유명 대학의 수업을 쉽게 접할 수 있게 됐습니다. 이 강의들은 대부분 영어로 돼 있어 우리나라 학생들이 쉽게 이해하기에는 어려움이 있는 것 같습니다. 한국에서 머신 러닝을 배우고자하는 분들이 더 쉽게 접할 수 있도록 좋은 강의, 좋은 책들을 번역하는 데 힘쓰는 분들이 많아졌으면 좋겠습니다.
저자 잔카를로 자코네(Giancarlo Zaccone)는 산업과학 분야에서 10년 연구 프로젝트를 관리했고, 병렬 수치 연산 및 시각화에 관해 연구한 뒤 현재는 소프트웨어 엔지니어로 활동하고 있습니다. 이 책은 저자의 다년간 경험을 바탕으로 텐서플로를 처음 접하는 독자가 예제를 통해 머신 러닝과 딥 러닝을 배울 수 있도록 구성돼 있습니다. 텐서플로는 적은 라인의 코드로도 매우 복잡하고 어려운 알고리즘을 구현할 수 있게 구성돼, 각 알고리즘에 대해 수학적으로 깊이 이해하지 않더라도 활용할 수 있도록 환경을 제공합니다. 이 책에서 제공하는 예제를 차근차근 따라 하다 보면 머신 러닝 알고리즘의 원리를 쉽게 이해할 수 있을 것입니다.

옮긴이 소개

김창엽

안랩에서 9년간 근무하며 악성 코드 대응 및 침해 사고 분석 업무를 수행했다. 해킹 기법과 분석 방법을 배우는 것을 즐기고, 최근에는 데이터 분석과 머신 러닝에 관심이 많아 박사 과정에 진학해 연구 중이다.

목차

목차
  • 1장. 텐서플로: 기초
    • 머신 러닝과 딥 러닝 기초
      • 지도 학습
        • 비지도 학습
        • 딥 러닝
    • 텐서플로 개요
    • 파이썬 기초
      • 문법
      • 데이터 형식
      • 문자열
      • 제어 흐름
      • 함수
      • 클래스
      • 예외 처리
      • 라이브러리 불러오기
    • 텐서플로 설치
      • 맥과 리눅스 배포판에 설치
      • 윈도우에 설치
      • 소스코드로부터 텐서플로 설치
      • 텐서플로 동작 확인
    • 첫 번째 작업 세션
    • 데이터 플로우 그래프
    • 텐서플로 프로그래밍 모델
      • 텐서보드 사용법
    • 요약

  • 2장. 텐서플로 기초 연산
    • 텐서 자료 구조
      • 1차원 텐서
      • 2차원 텐서
        • 텐서 다루기
      • 3차원 텐서
      • 텐서플로를 이용한 텐서 다루기
        • 입력 데이터 준비
    • 복소수와 프랙탈
      • 망델브로 집합 데이터 준비
      • 망델브로 집합의 데이터 플로우 그래프 생성과 실행
      • 망델브로 집합 시각화
      • 쥘리아 집합 데이터 준비
      • 쥘리아 집합의 데이터 플로우 그래프 생성과 실행
      • 쥘리아 집합 시각화
    • 그레이디언트 계산
    • 난수
      • 균일 분포
      • 정규 분포
      • 시드를 이용한 난수 생성
        • 몬테카를로 기법
    • 편미분 방정식 풀기
      • 초기 조건 설정
      • 모델 생성
      • 그래프 실행
        • 연산에 사용된 함수 살펴보기
    • 요약

  • 3장. 머신 러닝 시작
    • 선형 회귀 알고리즘
      • 데이터 모델
        • 비용 함수와 경사 하강법
          • 모델 학습
    • MNIST 데이터 집합
      • 데이터 다운로드와 준비
    • 분류기
      • 최근접 이웃 알고리즘
        • 학습군 제작
        • 비용 함수와 최적화
          • 테스트와 알고리즘 평가
    • 데이터 군집화
      • k-평균 알고리즘
      • 학습군 제작
      • 비용 함수와 최적화
        • 테스트와 알고리즘 평가
    • 요약

  • 4장. 인공 신경망 소개
    • 인공 신경망이란?
      • 신경망 구조
      • 단일 계층 퍼셉트론
      • 로지스틱 회귀
        • 텐서플로 구현
        • 모델 생성
        • 세션 실행
        • 테스트 평가
        • 소스코드
    • 다중 계층 퍼셉트론
      • 다중 계층 퍼셉트론 분류
        • 모델 생성
        • 세션 실행
        • 소스코드
      • 다중 계층 퍼셉트론 함수 추정
        • 모델 생성
        • 세션 실행
    • 요약

  • 5장. 딥 러닝
    • 딥 러닝 기술
      • 합성 곱 신경망
        • CNN 구조
        • 텐서플로를 이용한 CNN 구현
          • 초기화 단계
          • 첫 번째 합성 곱 레이어
          • 두 번째 합성 곱 레이어
          • 완전 연결 레이어
          • 출력 레이어
          • 모델 학습 및 평가
          • 세션 실행
          • 소스코드
      • 순환 신경망
        • RNN 구조
        • LSTM 네트워크
        • 텐서플로를 이용한 자연어 처리
          • 데이터 다운로드
      • 모델 제작
      • 코드 실행
    • 요약

  • 6장. GPU 프로그래밍과 텐서플로 서빙
    • GPU 프로그래밍
    • 텐서플로 서빙
      • 텐서플로 서빙 설치
        • Bazel
        • gRPC
          • 텐서플로 서빙 의존성 패키지
          • 텐서플로 서빙 설치
      • 텐서플로 서빙 사용법
        • 텐서플로 모델 학습과 내보내기
        • 세션 실행
    • 텐서플로 모델 불러오기와 내보내기
      • 서버 테스트
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[pp.21-22: 맨 끝 행-첫 행]
https://www.packtpub.com/sites/default/files/downloads/GettingStartedwithTensorFlowColorImages.pdf
->
https://www.packtpub.com/sites/default/files/downloads/GettingStartedwithTensorFlow_ColorImages.pdf

[p.30: 아래에서 3행]
"첫 번째 값"
->
"Element 1"

[p.44: 13행]
다른 형식의 텐서 적용하는
->
다른 형식의 텐서에 적용하는

[p.58: 5행]
import TensorFlow as tf
->
import tensorflow as tf

[p.58: 1행]
텐서의 자료 구조는
->
텐서에서 자료 형식은

[p.58: 6행]

[p.59: 마지막행]
import TensorFlow as tf
->
import tensorflow as tf

[p.67: 3행]
import TensorFlow as tf
->
import tensorflow as tf

[p.68: 2행]
import TensorFlow as tf
->
import tensorflow as tf

[p.71: 8행]
import TensorFlow as tf
->
import tensorflow as tf

[p.76:1행]
tf.gradients)()
->
tf.gradients()

[p.76: 7행]
import TensorFlow as tf
->
import tensorflow as tf

[p.77: 14행]
import TensorFlow as tf
->
import tensorflow as tf

[p.79: 1행]
import TensorFlow as tf
->
import tensorflow as tf

[p.81: 19행]
import TensorFlow as tf
->
import tensorflow as tf

[p.83: 마지막행]
import TensorFlow as tf
->
import tensorflow as tf

[p.93: 1행]
NumPy의 random.normal 함수를 이용해 300개의 임의의 점을 y = 0.22x+0.78 수식에 맞춰 할당한다.
->
NumPy의 random.normal 함수를 이용해 500개의 임의의 점을 y = 0.22x+0.78 수식에 맞춰 할당한다.

[p.97: 3행]
for step in range(0,20):
->
for step in range(0,21):