Top

텐서플로1.x로 배우는 머신 러닝 [실용적인 사례로 만들어보는 머신 러닝 시스템]

  • 원서명Machine Learning with TensorFlow 1.x: Second generation machine learning with Google’s brainchild - TensorFlow 1.x (ISBN 9781786462961)
  • 지은이콴 후아(Quan Hua), 샴스 울 아짐(Shams Ul Azeem), 사이프 아메드(Saif Ahmed)
  • 옮긴이한정애
  • ISBN : 9791161751818
  • 30,000원
  • 2018년 07월 25일 펴냄
  • 페이퍼백 | 380쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

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

“요즘 머신 러닝이라 하면 딥러닝이고, 텐서플로로 머신 러닝을 쉽게 할 수 있다”는 말만 듣고 실제 텐서플로로 머신 러닝을 해보려니 막막했던 사람들에게 꼭 필요한 내용을 제공한다. 실제 데이터와 실제 상황에 적용된 사례를 보며 데이터를 얻고 학습에 사용하기 위해 데이터를 가공하고 딥러닝시키면서 그 흐름이 어떻게 되는지를 텐서보드로 확인하는 것까지, 딥러닝으로 결과를 얻는 데 필요한 모든 것을 제공한다.

이 책에서 다루는 내용

■ 데이터에 대해 다양한 질문을 하기 위해 여러 가지 머신 러닝 모델을 사용하는 방법
■ 텐서플로 1.x를 사용한 심층 신경망 제작 방법
■ 자신의 알고리즘을 최적화하고 장점을 강화하기 위해 파이썬 코드를 깔끔하고 우아하게 작성하는 방법
■ 자신의 머신 러닝 모델을 웹 애플리케이션에 심어 접근성을 높이는 방법
■ AWS에서 여러 GPU를 사용해 더 빠르게 학습시키는 방법

이 책의 대상 독자

실생활 애플리케이션에 쓰일 수 있을 만큼 멋지고 실용적인 머신 러닝 시스템을 만들고자 한다면 이 책이 이상적이다. 머신 러닝 개념, 파이썬 프로그래밍, IDE와 커맨드라인에 익숙한 상태여야 한다. 업무에 활용하기 위해 머신 러닝과 텐서플로에 대해 배워야 하는 프로그래머나 과학자 혹은 엔지니어에게도 유용한 책이다.

이 책의 구성

1장, '텐서플로 시작'에서는 우분투, 맥OS, 윈도우에서 텐서플로를 설치하고 시작하는 방법을 알아본다.
2장, '첫 번째 분류기'에서는 텐서플로를 사용하는 첫 번째 예로 손글씨 인식기를 만들어 본다.
3장, '텐서플로 도구상자'에서는 더 효과적이고 쉽게 텐서플로를 사용할 수 있게 하는 텐서플로의 도구들을 간략하게 알아본다.
4장, '고양이와 개'에서는 텐서플로에서 합성곱 신경망을 사용해 이미지 분류기를 만드는 방법을 알아본다.
5장, '순열에서 순열 모델로'에서는 순열-순열 모델을 사용해 영어에서 프랑스어로 번역하는 번역기를 만들어본다.
6장, '의미 찾기'에서는 문맥 분석, 실체 추출, 키워드 추출, 단어 간 연관 관계 추출을 사용해 텍스트 내의 의미를 찾는 방법을 알아본다.
7장, '머신 러닝으로 돈 벌기'에서는 금융 세상이라는 데이터양이 어마어마한 세계로 뛰어든다. 금융 문제를 해결하기 위해 시계열 데이터를 사용하는 방법을 알아본다.
8장, '의학 진단 문제'에서는 기업에서 다룰 만한 정도로 큰 문제인 의학 진단 문제를 심층 신경망을 사용해 해결하는 여러 가지 방법을 알아본다.
9장, '순항 제어: 자동화'에서는 훈련에서부터 모델을 서비스하는 데 이르기까지 운영계 시스템을 만드는 데 필요한 사항들을 알아본다. 사용자 피드백을 받아 매일매일 자동으로 훈련하는 과정도 시스템에 구현한다.
10장, '가동 준비와 성공'에서는 아마존 웹 서비스의 세상을 안내한다. 또한 아마존 서버에서 여러 개의 GPU를 사용한 시스템을 사용했을 때의 장점도 알아본다.
11장, '더 고려할 사항: 21가지 문제'에서는 이 책을 읽고 난 후 텐서플로와 딥러닝으로 도전해 볼 만한 21가지 실세상 문제를 소개한다.
부록 A, '고급 설치'에서는 GPU에 대해 알아본 후 단계별로 CUDA를 설정하고 GPU 기반 텐서플로를 설치하는 방법을 알아본다.

저자/역자 소개

지은이의 말

머신 러닝은 현대 사회에 혁명을 불러일으키고 있다. 머신 러닝 알고리즘, 특히 딥러닝은 모바일 기기에서부터 클라우드 기반 서비스에 이르기까지 수많은 곳에서 세계적으로 널리 사용되고 있다. 텐서플로는 선도적인 오픈소스 소프트웨어 라이브러리 중 하나로, 다양한 애플리케이션을 위한 머신 러닝 시스템을 만들고, 훈련시키고 구축하는 작업을 돕는다. 이 책을 통해 텐서플로의 최정수를 느끼고, 실세계에 쓰일 수 있는 머신 러닝 시스템을 만들 수 있길 바란다.
이 책을 모두 읽은 뒤에는 텐서플로에 대해 깊게 이해하고, 자신의 애플리케이션에 머신 러닝 기법을 적용할 수 있을 것이다.

지은이 소개

콴 후아(Quan Hua)

신체 측정을 위한 데이터 플랫폼에 대한 보디데이터(BodiData)에서 컴퓨터 비전과 머신 러닝을 맡고 있는 엔지니어다. 사람이 옷을 입었을 때 신체에 대한 아바타를 알아내는 기능을 갖춘 기술을 제공하는 컴퓨터 비전과 머신 러닝 애플리케이션을 개발 중이다. 베트남의 과학 대학교(University of Science)에서 컴퓨터 비전을 전공해 과학 학사 학위를 받았다. 컴퓨터 비전과 머신 러닝 분야에서 3년 동안 스타트업에서 일했다.
팩트출판사에서 컴퓨터 비전을 다룬 『OpenCV3 Blueprints』(2015)를 썼다.

샴스 울 아짐(Shams Ul Azeem)

파키스탄 NUST 이슬라마바드에서 전기 공학 학사 학위를 받았다. 컴퓨터 과학 분야에 관심이 많으며, 안드로이드에서부터 자신의 경력을 쌓기 시작했다. 현재 머신 러닝, 특히 딥러닝에서 경력을 쌓고 있으며 프리랜서로 다양한 회사에서 의학과 관련된 프로젝트를 하고 있다. NUST의 RISE 연구소 멤버이기도 하며, IEEE 국제학회 ROBIO에 발표된 논문인 의 공저자다.

사이프 아메드(Saif Ahmed)

15년의 실제 현장 경험을 갖춘 양적 분석가이자 데이터 과학자다. 액센츄어에서 관리 컨설팅을 시작으로 경력을 쌓기 시작해, 골드만삭스와 AIG 투자에서 양적 분석과 고위 관리직을 역임했다. 최근에는 의학 이미지에 딥러닝을 적용해 자동으로 처리하는 스타트업을 시작했다. 코넬 대학에서 컴퓨터 과학 학사를 취득했으며, 현재 U.C. 버클리에서 데이터 과학 분야로 대학원 과정을 밟고 있다.

옮긴이의 말

'입력 계층 뒤에 은닉 계층, 은닉 계층 뒤에 출력 계층으로 이뤄지는 간단한 인공 신경망.' 그게 2000년대 초반 제가 처음 만든 신경망의 모습이었습니다. 학부생이 교수님 하시는 말씀을 얼마나 알아들었겠습니까. 그저 “이게 입력돼서 저기에 들어가면 여하간에 문제 공간을 탐색해서 이렇게, 저렇게 움직이다 보면 짜잔 답을 내놓습니다.”라고 하시면 “아아 그렇구나”하고 고개를 끄덕인 다음에 “그래서 코딩은 어떻게 해야 하는 거지?”라고 생각할 뿐이었습니다. 사실 당시에는 인공 신경망보다 유전 알고리즘의 인기가 좋아서 복잡한 문제를 어떻게 풀어야 할지 모르겠다 싶으면 “유전 알고리즘을 적용해볼까”하는 생각이 들 때였습니다. 지금은 크게 달라졌지만요.
그러면 정말로 어떤 문제에든 딥러닝을 적용하면 해결될까요? 그럴 리가 없습니다. 먼저 자신이 풀려고 하는 문제의 특성을 알고, 그에 맞는 데이터를 준비해야 하며, 데이터를 어떻게 표현할 것이고, 은닉 계층은 얼마나 둘 것이며, 이 데이터에는 합성곱을 쓰는 게 좋은지, 학습률은 어떻게 줄여나갈 건지, 신경은 어떤 식으로 활성화시킬 건지, 학습과 검증 데이터는 어떻게 분리할 것이고, 얼마나 많이 반복해서 학습시킬 건지, 학습시킬 머신은 어디서 구할 건지, GPU 카드가 꼭 있어야 하는지 등등을 모두 고민해야 합니다.
하지만 구글이 내놓은 텐서플로를 활용하면 이런 고민 한 구절구절마다 시간 들여 구현할 게 거의 없다는 게 매력적입니다. 고민이야 해야 하는 거지만, 딥러닝을 구현하는 데 온갖 시간을 다 써서 도저히 다른 버전을 만들 생각도 안 드는 일은 없게 된 것입니다. 오히려 너무 간단하게 선택할 수 있는 게 많아서 적당한 걸 찾지 못하지는 않을지 걱정스러울 정도입니다. 제가 처음 만들었던 인공 신경망을 다시 생각해보면 참으로 배부른 소리고, 그만큼 저변이 넓어진다는 면에서 좋은 이야기입니다.
이 책을 처음 받아봤을 때로부터 지금 이 글을 쓰는 때까지 벌써 텐서플로의 마이너 버전이 세 번도 넘게 바뀌었습니다(맙소사 지금 찾아보니 텐서플로 1.9가 새로 나왔군요!). 한국어판의 코드는 제가 텐서플로 v1.8(2018년 4월 28일 릴리즈)로 업데이트했습니다만, 그 후로도 텐서플로는 계속 바뀌고 있습니다. 특히 텐서플로는 버전 간 하위호환성을 유지하지 않을 때가 있어 책 내의 코드 중 일부를 수정했습니다만, 여러분이 실행하실 때에도 잘될지는 장담하기 어렵습니다. 빠르게 확장되고 수정되는 것이 장점이라고 너그러이 생각하시고 코드를 들여다보고 수정하면서 코드를 깊이 있게 이해해보시길 바랍니다. 이 책을 읽어주실 독자 여러분들께 감사드립니다.

옮긴이 소개

한정애

서울대학교 컴퓨터공학과를 졸업하고 동 대학원에서 박사 학위를 받았다. 글로벌 소프트웨어 회사인 SAP에서 개발하다 현재는 삼성증권에서 일하고 있다. 리눅스와 C++ 프로그래밍을 비롯한 여러 가지 프로그래밍 관련 분야에 관심이 많다. 번역서로는 에이콘 출판사에서 출간한 『C++ 템플릿 가이드』(2008), 『두렵지 않은 C++』(2013), 『C++ 표준 라이브러리 제2판』(2013), 『Boost C++ 애플리케이션 개발』(2015), 『Boost.Asio C++ 네트워크 프로그래밍 쿡북』(2017)이 있다.

목차

목차
  • 1장. 텐서플로 시작
    • 현재 사용 버전
    • 텐서플로 설치
      • 우분투 설치
      • 맥OS 설치
      • 윈도우 설치
      • 가상머신 설정
      • 설치한 텐서플로 검사
    • 요약

  • 2장. 첫 번째 분류기
    • 중요 사항
    • 훈련 데이터 획득
    • 훈련 데이터 다운로드
    • 분류에 대해 이해
      • 훈련 데이터 준비 자동화
    • 추가 설정
      • 이미지를 행렬로 변환
    • 논리적 중단점
    • 머신 러닝 서류가방
    • 훈련하기
    • 다음 사용을 위한 모델 저장
    • 테스트 세트를 숨기는 이유
    • 분류기 사용
    • 신경망 속으로 깊숙이 빠져들기
    • 다룬 기술
    • 요약

  • 3장. 텐서플로 도구상자
    • 빠른 미리 보기
    • 텐서보드 설치
      • 텐서보드 코드 추가
      • AlexNet
    • 실행 자동화
    • 요약

  • 4장. 고양이와 개
    • notMNIST 다시 보기
      • 프로그램 구성
      • 합성곱 신경망 이해
      • 구성 다시 보기
      • 합성곱 신경망 만들기
      • 수행
    • 훈련일
    • 실제 고양이와 개
    • 다음에 사용할 수 있게 모델 저장
    • 분류기 사용
    • 다룬 기술
    • 요약

  • 5장. 순열에서 순열 모델로: 프랑스어 할 줄 아세요?
    • 빠른 미리 보기
    • 소방호스에 입 대고 물 마시기
    • 훈련일
    • 요약

  • 6장. 의미 찾기
    • 추가 설정
    • 다룬 기술
    • 요약

  • 7장. 머신 러닝으로 돈 벌기
    • 입력과 접근 방법
      • 데이터 얻기
    • 문제에 접근
      • 데이터 다운로드와 수정
      • 데이터 보기
      • 특성 추출
      • 학습과 테스트 준비
      • 신경망 생성
      • 학습
      • 테스트
    • 더 고려할 사항
    • 개인 투자를 위한 현실적인 고려 사항
    • 다룬 기술
    • 요약

  • 8장. 의학 진단 문제
    • 도전 과제
    • 데이터
    • 파이프라인
      • 파이프라인 이해
      • 데이터셋 준비
      • 데이터 준비 과정의 설명
      • 훈련 단계
      • 검증 단계
      • 텐서보드로 출력 시각화
    • 더 고려할 사항
      • 기타 의학 데이터 도전 과제
      • ISBI 위대한 챌린지
      • 의학 데이터 읽기
    • 다룬 기술
    • 요약

  • 9장. 순항 제어: 자동화
    • 시스템 개요
    • 프로젝트 설정
    • 빠른 훈련을 위해 미리 훈련된 모델 불러들이기
      • 이미 훈련된 모델 테스트
    • 준비한 데이터셋에 맞춘 모델 훈련
      • 옥스퍼드-IIIT 반려동물 데이터셋 소개
      • 훈련과 테스트를 위한 입력 파이프라인 설정
      • 모델 정의
      • 훈련 연산 정의
      • 훈련 과정 수행
      • 운영계에서 사용할 모델 내보내기
    • 운영계에서 모델 서비스
      • 텐서플로 서빙 설정
      • 모델 실행과 테스트
      • 웹 서버 설계
    • 운영계에서 자동으로 미세 조정
      • 사용자가 레이블을 제공한 데이터 읽어 들이기
      • 모델에 대한 미세 조정
      • 매일 실행하도록 cronjob 설정
    • 요약

  • 10장. 가동 준비와 성공
    • 아마존 웹 서비스 간단한 소개
      • P2 인스턴스
      • G2 인스턴스
      • F1 인스턴스
      • 가격 정책
    • 애플리케이션 개요
      • 데이터셋
      • 데이터셋과 입력 파이프라인 준비
      • 신경망 구조
      • 한 개의 GPU로 훈련
      • 다중 GPU로 훈련
    • 메커니컬 터크 개요
    • 요약

  • 11장. 더 고려할 사항: 21가지 문제
    • 데이터셋과 챌린지
      • 문제 1: ImageNet 데이터셋
      • 문제 2: COCO 데이터셋
      • 문제 3: 오픈 이미지 데이터셋
      • 문제 4: 유튜브-8M 데이터셋
      • 문제 5: AudioSet 데이터셋
      • 문제 6: LSUN 챌린지
      • 문제 7: MegaFace 데이터셋
      • 문제 8: 2017 데이터 과학 볼 챌린지
      • 문제 9: 스타크래프트 게임 데이터셋
    • 텐서플로 기반 프로젝트
      • 문제 10: 사람 자세 측정
      • 문제 11: 물체 검출 - YOLO
      • 문제 12: 물에 검출 - Faster RCNN
      • 문제 13: 인물 검출 - tensorbox
      • 문제 14: 마젠타
      • 문제 15: 웨이브넷
      • 문제 16: Deep Speech
    • 흥미로운 프로젝트
      • 문제 17: 대화식 심층 채색 - iDeepColor
      • 문제 18: 조그마한 얼굴 검출기
      • 문제 19: 인물 검색
      • 문제 20: 얼굴 인식 - MobileID
      • 문제 21: 질의응답 - DrQA
    • 카페에서 텐서플로
    • TensorFlow-Slim
    • 요약

  • 부록 A. 고급 설치
    • 설치
      • 엔비디아 드라이버 설치
      • CUDA 툴킷 설치
      • cuDNN 설치
      • 텐서플로 설치
      • 텐서플로가 GPU를 지원하는지 검증
    • 아나콘다에서 텐서플로 사용
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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