Top

TensorFlow Machine Learning Cookbook [다양한 텐서플로 예제를 실행해 보면서 빠르게 익히는 머신 러닝(Tensorflow v1.10 반영)]

  • 원서명TensorFlow Machine Learning Cookbook (ISBN 9781786462169)
  • 지은이닉 맥클루어(Nick McClure)
  • 옮긴이황정동
  • ISBN : 9791161750453
  • 36,000원
  • 2017년 08월 31일 펴냄
  • 페이퍼백 | 528쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

버전별 소스 코드는 역자 깃허브 또는 여기에서 내려받을 수 있습니다(최신 업데이트는 TensorFlow v1.10 기준입니다).

요약

개별적으로 실행 가능한 다양한 예제를 활용해 텐서플로 사용법을 살펴본다. 이 책은 프로그래밍에 익숙하지만 머신 러닝을 처음 접하는 사람, 머신 러닝에 대해 잘 알고 있는 사람 모두에게 도움이 될 수 있다.
머신 러닝에 익숙한 사람이라면, 예제를 통해 텐서플로의 머신 러닝 구현 방식을 쉽게 파악하고 활용할 수 있다. 텐서플로를 이용하면 학습 알고리즘 구현보다 학습 구조 설계에 더 집중할 수 있다. 머신 러닝에 익숙하지 않은 사람이라도 예제를 따라가다 보면, 머신 러닝이 활용되는 방식과 머신 러닝의 전체적인 구조, 목표, 한계를 빠르게 파악할 수 있다.
학습한 내용으로 텐서플로를 이용해 다양한 머신 러닝 모델을 구현해볼 수 있으며, 머신 러닝에 대해 더욱 깊이 있는 학습을 시작할 수 있다.

이 책에서 다루는 내용

■ 텐서플로 머신 러닝 라이브러리의 기본적인 내용
■ 텐서플로의 선형 회귀 기법
■ 실습 예제를 통한 서포트 벡터 머신(SVM) 학습
■ 신경망 구현과 예측 성능의 개선
■ 데이터 대상의 자연어 처리 및 감정 분석 수행
■ 실용적인 예제를 통한 합성곱 신경망(CNN)과 순환 신경망(RNN) 학습
■ 텐서플로의 실무 적용

이 책의 대상 독자

머신 러닝과 파이썬 프로그램에 어느 정도 경험이 있는 독자를 대상으로 한다. 머신 러닝에 대해 상당한 지식을 갖춘 독자라면, 이 책을 통해 텐서플로 코드를 이해할 수 있게 될 것이고, 파이썬에 대해 상당한 지식을 갖춘 독자라면 설명 부분에서 많은 지식을 얻을 수 있을 것이다.

이 책의 구성

1장, '텐서플로 시작'에서는 텐서플로의 주요 객체와 개념들에 대해 알아본다. 텐서, 변수, 플레이스홀더를 소개한다. 텐서플로의 행렬 처리 방식을 비롯한 다양한 수학적 연산 처리 방법도 알아본다. 마지막 부분에서는 책에서 사용하는 데이터의 출처와 데이터 구하는 방법도 알아본다.
2장, '텐서플로 동작 방식'에서는 1장의 알고리즘 구성 요소들을 연결해 단일 분류기 역할을 하는 다양한 계산 그래프를 만드는 방법을 알아본다. 그 과정에서 계산 그래프,비용 함수,역전파, 데이터를 이용한 학습 등을 살펴본다.
3장, '선형 회귀'에서는 데밍 회귀, 라소 회귀, 리지 회귀, 일래스틱 넷 회귀, 로지스틱 회귀 등의 다양한 선형 회귀를 텐서플로로 처리하는 방법을 알아본다. 각 방법들을 텐서플로 계산 그래프로 구현하는 방법을 살펴본다.
4장, '서포트 벡터 머신'에서는 서포트 벡터 머신을 소개하고, 텐서플로를 이용해 선형 SVM, 비선형 SVM, 다중 분류 SVM 등을 구현하는 방법을 알아본다.
5장, '최근접 이웃 알고리즘'에서는 수치 거리 함수, 문자 거리 함수, 혼합 거리 함수를 이용해 최근접 이웃 알고리즘을 구현하는 방법을 알아본다. 최근접 이웃 알고리즘을 이용해 주소 레코드 매칭, MNIST 데이터베이스 필기 숫자 분류 작업을 처리해본다.
6장, '신경망'에서는 연산 게이트와 활성화 함수부터 시작해서 텐서플로의 신경망구현 방법을 알아본다. 그다음 단층 신경망을 살펴보고 다양한 계층 구현 방법을 살펴본다. 마지막으로 신경망을 이용해 텐서플로에 틱택토 게임 방법을 학습시켜본다.
7장, '자연어 처리'에서는 텐서플로를 이용해 문서를 처리하는 다양한 방법을 알아본다. 단어 꾸러미 기법과 TF-IDF 구현을 살펴본다. 그다음 신경망을 이용해 문서를 표현할 때 사용하는 CBOW, 스킵-그램 임베딩을 소개하고, 이 기법을 Word2vec, Doc2vec 방식에 적용해 실제 예측 작업을 처리해본다.
8장, '합성곱 신경망'에서는 신경망 지식을 확장해서 합성곱 신경망(CNN)을 이미지에 적용하는 방법을 살펴본다. MNIST 숫자를 인식하는 단순 CNN 구현 방법을 알아보고, 이를 확장해 CIFAR-10 칼라 이미지를 처리해본다. 사전 학습된 이미지 인식 모델을 필요에 맞게 확장하는 방법도 알아본다. 마지막으로 텐서플로를 이용한 스타일넷/뉴럴-스타일 적용 방법, 딥드림(Deep Dream) 알고리즘 구현 방법을 알아본다. 9장, '순환 신경망'에서는 텐서플로의 순환 신경망(RNN) 구현 방법을 알아본다. 문자의 스팸 여부를 예측하는 방법, RNN 모델을 확장해 셰익스피어 말투의 문장을 생성하는 방법을 살펴본다. 영어를 독일어로 번역하는 시퀀스-투-시퀀스 모델도 학습해본다. 마지막으로 샴 RNN 망을 이용한 주소 매칭 작업을 살펴본다.

저자/역자 소개

지은이의 말

2015년 11월, 구글이 텐서플로를 오픈소스로 공개한 이후 텐서플로는 깃허브에서 가장 각광 받는 머신 러닝 프로젝트가 됐다. 텐서플로의 계산 그래프 생성 방식, 자동 미분 처리, 원하는 방식으로의 용이한 적용 등의 장점으로 인해 인기를 끌게 됐다. 이런 특성들로 인해 텐서플로는 다양한 머신 러닝 문제 해결에 사용할 수 있는 아주 강력한 도구가 됐다. 이 책은 많은 머신 러닝 알고리즘을 소개하며, 이들을 실제 데이터에 적용해보고, 그 결과를 어떻게 해석하는지 살펴본다.

지은이 소개

닉 맥클루어(Nick McClure)

워싱턴 주의 시애틀에 있는 페이스케일 사(PayScale, Inc)의 선임 데이터 과학자다. 이전에는 에서 Zillow and Caesar's Entertainment 일했다. 몬타나대학교(University of Montana), 세인트 베네딕트대학(College of Saint Benedict), 세인트 존스대학교(Saint John's University)에서 응용 수학 학위를 받았다. 해석학, 머신 러닝, 인공 지능 분야를 학습하고 옹호하는 데 열정을 다하고 있다. 생각과 사색의 결과물을 블로그(http://fromdata.org/)나 트위터(@nfmcclure)에 종종 남기곤 한다.

옮긴이의 말

바야흐로 머신 러닝의 시대다. 머신 러닝에 기반을 둔 알파고가 바둑으로 '인간' 이세돌을 이긴 시점을 즈음해서 머신 러닝이 여러 분야의 전면에 등장해 우리 생활 속으로 파고들고 있다. 컴퓨터가 말을 알아듣고, 외국어를 번역해주고, 운전을 대신 해주는 것이 그다지 신기한 일이 아닌 세상이 되어가고 있다. 인간의 학습 과정을 모방한 머신 러닝을 이용하는 인공지능이 거의 모든 분야에서 인간을 따라잡는 순간이 머지않았는지도 모르겠다. 아니, 데이터의 생성 속도와 그 양이 한 인간이 수용할 수 없을 정도로 커가는 요즘이라면 머신 러닝이 인간의 직관을 넘어서는 특이점을 곧 마주할지 모르겠다는 생각도 든다. 머신 러닝은 본질적으로 인간의 귀납적 학습과 추론 과정을 모방하는 것이다. 실제 머신 러닝을 구현할 때는 데이터 준비, 모델 평가, 모니터링, 시각화 등의 작업이 학습 알고리즘 구현만큼이나 중요하다. 텐서플로는 이런 머신 러닝의 전 과정을 쉽게 구현할 수 있게 해주는 라이브러리다. 텐서플로는 학습 과정을 계산 그래프로 표현해서 학습을 위한 계산을 병렬 처리할 수 있게 해준다. 텐서플로를 이용하면 여러 GPU, 여러 장비를 활용해 학습 속도를 높이는 작업도 간단히 수행할 수 있다. 이 책은 개별적으로 실행 가능한 다양한 예제를 이용해서 텐서플로 사용법을 살펴본다. 머신 러닝에 익숙한 사람이라면 예제를 통해 텐서플로의 머신 러닝 구현 방식을 쉽게 파악하고 활용할 수 있다. 텐서플로를 이용하면 중요하지만 번거로운 학습 알고리즘 구현보다 더 중요한, 원하는 답을 찾아가는 학습 구조 설계에 집중할 수 있다. 머신 러닝에 익숙하지 않은 사람이라도 예제를 따라가다 보면 머신 러닝이 활용되는 방식 머신 러닝의 전체적인 구조, 목표와 한계를 빠르게 파악할 수 있다. 텐서플로를 이용하면 이렇게 학습한 내용만으로도 다양한 머신 러닝 모델을 구현해볼 수 있으며, 머신 러닝에 대한 좀 더 깊이 있는 학습의 출발점으로 삼을 수도 있다. 제임스 와트가 발명한 증기 기관은 여러 기계 장치에 활용되면서 산업 혁명을 이끌어냈다. 운송 수단에 증기 기관을 활용하려는 시도는 내연 기관을 비롯한 다양한 기관의 개발로 이어져 인류의 활동 범위를 혁명적으로 넓혔다. 어쩌면 지금 우리도 머신 러닝이 이끌어낼지 모르는 어떤 혁명적 시기의 초입에 있는 것일지도 모르겠다. 텐서플로와 같은 라이브러리로 대중화된 머신 러닝이 어떤 세상을 만들어낼지 궁금해진다.

옮긴이 소개

황정동

서울대학교에서 전산학과 물리학을 전공하고, 졸업 후 네오위즈에서 시스템 프로그래밍, 시스템 및 네트워크 운영 등의 업무를 맡아 대규모 리눅스 시스템과 네트워크를 관리하고 설계했다. 검색 전문 회사 첫눈에서 웹로봇을 개발했으며, NHN 검색센터에서는 언어 처리 관련 라이브러리 개발에 참여했다. Cauly 등의 모바일 광고 플랫폼 개발 경험도 있으며, LINE+에서 대규모 메시징 플랫폼 개발 및 운영에도 참여했다. 현재는 프리랜서 엔지니어로 활동 중이다.

목차

목차
  • 1장. 텐서플로 시작
    • 소개
    • 텐서플로 동작 방식
    • 텐서 정의
    • 플레이스홀더 및 변수 사용
    • 행렬 다루기
    • 연산 정의
    • 활성화 함수 구현
    • 데이터 출처 사용
    • 추가 자료

  • 2장. 텐서플로 동작 방식
    • 소개
    • 계산 그래프의 연산
    • 다중 연산 중첩
    • 다층 처리
    • 비용 함수(손실 함수) 구현
    • 역전파 구현
    • 일괄 학습과 확률적 학습
    • 모든 요소 조합
    • 모델 평가

  • 3장. 선형 회귀
    • 소개
    • 역행렬 기법 사용
    • 행렬 분해 기법 구현
    • 텐서플로의 선형 회귀 방식
    • 선형 회귀의 비용 함수
    • 데밍 회귀 구현
    • 라소 회귀 및 리지 회귀 구현
    • 일래스틱 넷 회귀 구현
    • 로지스틱 회귀 구현

  • 4장. 서포트 벡터 머신
    • 소개
    • 선형 SVM 구현
    • 선형 회귀로 축소
    • 텐서플로의 커널 함수
    • 비선형 SVM 구현
    • 다중 분류 SVM 구현

  • 5장. 최근접 이웃 알고리즘
    • 소개
    • 최근접 이웃 알고리즘
    • 문자 기반 거리
    • 혼합 거리 함수 계산
    • 주소 매칭 사례
    • 최근접 이웃 알고리즘을 이용한 이미지 인식

  • 6장. 신경망
    • 소개
    • 연산 게이트 구현
    • 게이트와 활성화 함수
    • 단층 신경망 구현
    • 다양한 계층 구현
    • 다층 신경망 사용
    • 선형 모델 예측 개선
    • 틱택토 게임 방법 학습

  • 7장. 자연어 처리
    • 소개
    • 단어 꾸러미 기법
    • TF-IDF 구현
    • 스킵-그램 임베딩
    • CBOW 임베딩
    • Word2vec을 이용한 예측
    • Doc2vec을 이용한 감정 분석

  • 8장. 합성곱 신경망
    • 소개
    • 단순 CNN 구현
    • 고급 CNN 구현
    • 기존 CNN 모델 재학습
    • 스타일넷/뉴럴-스타일 적용
    • 딥드림 구현

  • 9장. 순환 신경망
    • 소개
    • 스팸 예측을 위한 RNN 구현
    • LSTM 모델 구현
    • 다층 LSTM
    • 시퀀스-투-시퀀스 모델
    • 샴 유사도 측정

  • 10장. 텐서플로 실무 적용
    • 소개
    • 단위 테스트
    • 다중 실행자
    • 텐서플로 병렬화
    • 텐서플로 실무 적용
    • 텐서플로 실무 적용 사례

  • 11장. 텐서플로 추가 학습
    • 소개
    • 텐서보드를 이용한 그래프 시각화
    • 유전 알고리즘
    • K-평균 군집화
    • 상미분방정식(ODE) 풀이

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.51 : 코드 아래에서 4행]

[p.52 : 첫 번째 코드 2행]

[p.52 : 첫 번째 코드 마지막행]
11
->
9

[p.52 : 두 번째 코드 아래에서 6행]

[p.53 : 코드 2행]

[p.54 : 코드 10행]

[p.55 : 13행]

[p.57 : 코드 7행]

[p.57 : 코드 15행]

[p.240 : 5행]