Top

케라스부터 쿠버네티스까지 [머신러닝, 딥러닝 모델 개발부터 배포까지 단계별 가이드]

  • 원서명Keras to Kubernetes: The Journey of a Machine Learning Model to Production (ISBN 9781119564836)
  • 지은이다타라지 재그디시 라오(Dattaraj Jagdish Rao)
  • 옮긴이김광일
  • ISBN : 9791161755410
  • 35,000원
  • 2021년 06월 30일 펴냄
  • 페이퍼백 | 428쪽 | 188*235mm
  • 시리즈 : 클라우드 컴퓨팅

책 소개

소스 파일은 아래 깃허브 페이지에서 다운로드하실 수 있습니다.
(https://github.com/AcornPublishing/keras-kubernetes)

요약

케라스를 사용한 머신러닝 모델 개발부터 쿠버네티스에서의 모델 배포까지 전체 과정을 따라가면서 핵심 개념과 필요한 도구의 사용 방법 등을 소스 코드와 함께 쉽게 설명한다.
전반부에서는 지도학습, 비지도학습에서 강화학습에 이르기까지 머신러닝의 핵심 개념과 주요 알고리즘을 수학적 방법을 거의 사용하지 않고 설명했다. 이미지와 텍스트 데이터 같은 비정형 데이터를 다루기 위한 컴퓨터 비전, 신호 처리, 텍스트 처리 등의 전통적인 방법부터 최신 딥러닝 알고리즘의 기본 원리를 알기 쉬운 소스 코드와 함께 설명한다. 저자는 표준적인 머신러닝과 신경망 알고리즘에 그치지 않고 최신 알고리즘인 전이 학습, 생성적 대립 신경망 등을 알기 쉽게 설명한다. 머신러닝과 최신 딥러닝 알고리즘의 전체적인 모습을 가볍게 훑어보기 좋게 구성돼 있다.
후반부에서는 머신러닝 생명주기를 따라가며 필요한 도구와 고려할 사항을 알려주고, 최종적으로 쿠버네티스에 마이크로서비스로 배포하는 과정을 단계별로 친절하게 안내한다. 쿠버네티스와 관련 도구의 사용법을 익힘며 전체적인 감을 잡을 수 있게 구성돼 있다.

이 책에서 다루는 내용

■ 머신러닝을 배포하기 위한 케라스와 쿠버네티스 실습 예제
■ 데이터를 수집하고 관리하는 새로운 방법
■ 다양한 AI 학습 모델에 대한 개요
■ 예제를 수정 없이 재사용해 모델 배포
■ 분명하고 이해하기 쉬운 방향 제시

이 책의 대상 독자

소프트웨어 개발자와 데이터 과학자를 위한 것이다. 머신러닝 모델을 개발하고, 이것을 애플리케이션 코드에 연결하며, 도커 컨테이너로 패키징된 마이크로서비스(Microservice)로 배포하는 과정을 설명한다. 최신 소프트웨어는 많은 부분이 머신러닝에 의해 구동되고 있으며 데이터 과학자와 소프트웨어 개발자는 서로의 영역에 대해 많이 알수록 더 큰 이득을 볼 수 있다고 생각된다.
여러분이 소프트웨어 개발 또는 데이터 과학의 초보자이든 혹은 전문가이든 상관없이, 이 책에는 여러분을 위한 무엇인가가 있을 거라고 생각한다. 예제들을 잘 이해하기 위해서는 프로그래밍에 대한 사전 지식이 있으면 가장 좋겠지만 코드와 예제는 매우 일반적인 독자를 대상으로 하고 있다. 제시된 코드에는 상세한 코멘트가 달려 있으므로 따라가기 쉬울 것이다. 파이썬, 싸이킷런(Scikit-Learn) 그리고 케라스와 같은 특정 라이브러리를 사용했지만 R이나 MATLAB, Java, SAS, C++ 같은 다른 언어나 라이브러리로 코드를 변환하기 위한 동등한 함수들을 찾을 수 있을 것이다.
개념을 이해하고자 코드를 자세히 살펴볼 필요가 없도록 가능한 한 많은 이론을 제공하려고 노력했다. 여러분의 데이터에 개념을 적용하기 쉽도록 코드는 매우 실용적으로 작성됐다. 자유롭게 예제 코드를 복제해 자신의 데이터셋에 적용해보기를 권한다.

이 책의 구성

1장에서 5장까지 전반부에서는 머신러닝과 딥러닝에 중점을 둔다. 파이썬(Python) 코드를 사용해 머신러닝 모델을 작성하는 예를 보여주며, 이 과정을 자동화할 수 있는 도구의 예를 보여준다. 케라스(Keras) 라이브러리와 텐서플로(TensorFlow) 프레임워크를 사용해 이미지 분류 모델을 작성하는 예제를 보여준다. 이 로고 분류기 모델은 이미지에 들어 있는 코카콜라와 펩시콜라 로고를 식별하는 데 사용된다.
6장에서 10장까지에서는 이들 머신러닝 및 딥러닝 모델들을 실제로 프로덕션 환경에 배포하는 방법을 설명한다. 데이터 과학자들의 몇 가지 공통 관심사에 관해 얘기하며, 소프트웨어 개발자들이 이 모델들을 구현하는 방법을 논의한다. 앞에서 나온 로고 분류기를 쿠버네티스를 사용해 규모에 맞춰 배포하는 예를 설명한다.

저자/역자 소개

지은이의 말

환영한다! 이 책은 머신러닝(ML, Machine Learning)과 딥러닝(DL, Deep Learning)의 여러 주제를 실무자의 관점에서 소개하고 있다. 이 기법들의 작동 원리와 관련된 핵심 알고리즘의 기본 개념에 관해 설명하고자 했다. 이러한 기법을 사용해 현실 세계의 시스템을 구축하는 것에 주안점을 뒀다. 많은 머신러닝 및 딥러닝 서적이 알고리즘을 심도 있게 다루고 있으나, 그 알고리즘들을 프로덕션 시스템으로 배포하기 위한 분명한 방법을 보여주지는 않는다. 또한 이러한 인공지능(AI, Artificial Intelligence) 시스템을 빅데이터(Big Data)라고도 하는 대규모의 데이터를 처리하도록 확장하는 방법과 관련한 이해에 있어서는 커다란 격차가 있음을 종종 목격하게 된다.
오늘날 우리에게는 소프트웨어 코드를 패키징하고 대규모 사내 시스템 또는 클라우드 시스템에 완벽히 배포하는 것을 도와주는 도커(Docker)나 쿠버네티스(Kubernetes) 같은 시스템이 있다. 쿠버네티스는 확장, 장애 극복, 부하 균형, 네트워킹, 스토리지, 보안 같은 하위 수준의 모든 인프라스트럭처 관련 사항을 관리한다. 이 책에서 머신러닝 및 딥러닝 프로젝트에서 쿠버네티스가 제공하는 풍부한 기능을 이용하는 방법을 보여줄 것이다. 아울러 머신러닝 및 딥러닝 알고리즘을 규모에 맞춰 배포하는 것과 대규모 데이터를 처리하기 위한 요령에 초점을 맞출 것이다.
또한 널리 사용하는 알고리즘에 대해 설명하고 이를 사용해 시스템을 구축하는 방법을 보여줄 것이다. 이 책에 포함된 코드 예제들에는 독자가 쉽게 이해하고 사례를 재현할 수 있도록 가능한 한 상세하게 설명했다. 이미지를 로드해 유명 브랜드의 로고를 분류하는 딥러닝 모델을 예제로 사용한다. 그런 다음 이 모델을 분산 클러스터에 배포해 클라이언트들의 대규모 요구를 처리할 수 있게 한다. 이 예제는 딥러닝 모델을 구축하고 프로덕션 시스템으로 배포하기 위한 종단간 접근법(End-to-end Approach)을 알려준다.
또한 이 책에서 깊이 다루지 않는 주제들의 세부적인 내용을 다루는 서적과 웹사이트에 관한 참조를 제공한다.

지은이 소개

다타라지 재그디시 라오(Dattaraj Jagdish Rao)

제너럴 일렉트릭(GE)의 수석 엔지니어로서 인도 방갈로르에서 근무하고 있다. 기계공학을 전공했으며 가스 터빈, 컴프레서, 기관차 같은 산업용 기계를 모니터링하고 통제하는 GE빌딩 소프트웨어에서 19년째 일해왔다. 글로벌 리서치에서 제품 설계를 위한 지식 기반 엔지니어링을 맡으면서 경력을 시작했다. 그 후 미국 버지니아주 노퍽의 GE 파워에서 가스 터빈 상태 모니터링 소프트웨어의 리더로 합류했다. GE 파워에서는 원격 모니터링 및 진단 사업의 최고 소프트웨어 설계자를 포함한 여러 역할을 수행했다. 2013년 인도로 돌아가 GE 트랜스포테이션에서 비디오 분석 및 예측 프로그램의 혁신 리더로 합류했다.
현재 운송사업부문의 애널리틱스 및 인공지능 전략 그룹을 이끌고 있으며, 예측 정비(predictive maintenance), 머신 비전(machine vision), 디지털 트윈(digital twins)과 같은 산업용 IoT 솔루션을 구축하고 있다. 그의 팀은 데이터 정제, 준비, 모델 선택, 하이퍼파라미터 튜닝, 분산 훈련, 자동 배포와 같은 주요 데이터 과학 문제를 해결하기 위해 최첨단 머신러닝 플랫폼을 구축하고 있다. 쿠버네티스(Kubernetes)에 기반을 둔 이 플랫폼은 차세대 운송 산업용 인터넷 솔루션을 호스팅할 것이다.
GE를 통해 출원한 11개 특허를 보유하고 있으며 공인 GE 애널리틱스 엔지니어다. 인도의 고아공과대학교에서 기계공학 학사를 취득했다.

옮긴이의 말

먼저 이 책은 데이터 과학, 머신러닝 혹은 딥러닝을 가르치는 책이 아니다. 그렇다고 쿠버네티스를 처음 접하는 사람에게 개념부터 실용까지를 친절하게 안내하는 핸즈온(hands-on) 타입의 책도 아니다. 그럼에도 꼭 읽어봐야겠다고 생각했다. 이것이 처음 이 책을 접했을 때의 느낌이다. 그런데 이 책은 누구를 위한 책일까?
국내에 인공지능의 바람이 불기 시작하던 10년 전과 비교하면, 웹에는 인공지능에 대한 정보가 넘쳐나고 있다 특히 요즘은 이론보다는 실습을 위주로 하는 핸즈온 방식의 서적이 그득하다. 머신러닝이나 딥러닝 강의를 듣고 이론을 코드로 구현하는 것이 훨씬 용이해졌다는 뜻이다. 인공지능에 열정이 있고 코딩 소질이 있는 학생들은 약간의 이론만 듣고도 꽤 멋있는 애플리케이션을 만들어 와서 나를 감탄하게 한다.
그러나 최신의 딥러닝 알고리즘을 응용해 멋진 애플리케이션을 만들었다고 하더라도 고객에게 서비스하려면 추가로 많은 노력과 지식이 필요하며 사내 다른 부서나 동료들과의 협업이 필요하지만 학교 교과 과정을 통해 전달하거나 경험하기엔 다소 부족한 면이 없잖다. 현대 소프트웨어 개발은 애자일 방법론으로 전환된 지 오래다. 컨테이너 오케스트레이션 플랫폼인 쿠버네티스는 사실상 업계 표준으로 여겨지고 있다. 이 책은 머신러닝 엔지니어 또는 데이터 과학자가 머신러닝 개발의 수명주기의 각 단계에서 실무적으로 고려해야 할 것들과 도움을 줄 수 있는 도구 그리고 개발을 완료한 이후 쿠버네티스에서 마이크로서비스로 배포하는 과정들을 쉽지만 자세히 설명하고 있다. 간단한 머신러닝 모델에서 시작해 모델의 구축, 훈련 및 배포의 각 단계별로 소스 코드와 함께 친절히 설명하고 있다.
독자가 머신러닝이나 데이터 과학 분야를 담당하는 엔지니어라면, 효과적이고 효율적으로 배포하기 위해 알아야 할 것들을 짧은 시간 내에 전체적으로 훑어보고 향후 공부해야 할 방향을 잡는 데 큰 도움이 될 수 있을 것이다.

옮긴이 소개

김광일

한국과학기술원 경영과학과에서 수리 알고리즘을 전공했으며 소프트웨어 개발자의 삶을 살았다. 몇몇 소프트웨어 벤처기업을 경영하며 성공과 실패의 굴곡을 두루 거치는 사이, 대학에서 강의를 하기도 했다. 2014년부터 머신러닝에 몰두해 프리랜서로 활동하면서 한국외국어대학교 및 경희대학교에서 머신러닝을 강의했으며, 2017년부터 동국대학 융합교육원 및 인공지능대학원에서 머신러닝, 데이터과학, 인공지능수학 등을 가르치고 있다.

목차

목차
  • 1장. 빅데이터와 인공지능
    • 데이터는 새로운 석유이며 AI는 새로운 전기다
      • 기계들의 부상
      • 처리 능력의 지수적 성장
      • 애널리틱스의 새로운 유형
      • 무엇이 AI를 그렇게 특별하게 하는가
    • 인공지능의 응용
      • 데이터에서 애널리틱스의 구축
      • 애널리틱스의 유형: 응용 기준
      • 애널리틱스의 유형: 의사 결정 로직 기반
      • 애널리틱스 주도형 시스템의 구축
    • 요약

  • 2장. 머신러닝
    • 데이터에서 패턴 찾기
    • 막강한 머신러닝 커뮤니티
    • 머신러닝 기법의 유형
      • 비지도학습
      • 지도학습
      • 강화학습
    • 간단한 문제의 해
      • 비지도학습
      • 지도학습: 선형회귀
      • 경사하강 최적화
      • 선형회귀에 경사하강법 적용하기
      • 지도학습: 분류
    • 더 큰 데이터셋의 분석
      • 정확도에 대한 측도: 정밀도 및 재현율
    • 분류 방법의 비교
    • 편향 대 분산: 미적합 대 과적합
    • 강화학습
      • 모델 기반 강화학습
      • 모델 프리 강화학습
    • 요약

  • 3장. 비정형 데이터 다루기
    • 정형 데이터 대 비정형 데이터
    • 이미지 인식
    • 동영상 다루기
    • 텍스트 데이터 다루기
    • 소리 듣기
    • 요약

  • 4장. 케라스를 사용한 딥러닝
    • 비정형 데이터의 처리
      • 신경망
      • 역전파와 경사하강법
      • 뱃치 경사하강법과 확률적 경사하강법
      • 신경망 아키텍처
    • 텐서플로와 케라스
    • 편향과 분산: 미적합과 과적합
    • 요약

  • 5장. 고급 딥러닝
    • 심층 모델의 부상
    • 새로운 종류의 네트워크 층
      • 컨볼루션 층
      • 풀링 층
      • 드롭아웃 층
      • 뱃치 정규화 층
    • 패션 이미지 분류를 위한 심층 신경망 구축
    • CNN 아키텍처와 하이퍼파라미터
    • 사전 훈련된 VGG 모델로 예측하기
    • 데이터 보강과 전이 학습
    • 실제 분류 문제: 펩시콜라 대 코카콜라
    • 순환 신경망
    • 요약

  • 6장. 최첨단 딥러닝 프로젝트
    • 신경망 스타일 전이
    • AI를 사용한 이미지 생성
    • 오토인코더를 사용한 신용카드 부정 사용 탐지
    • 요약

  • 7장. 최신 소프트웨어 세계의 AI
    • 소프트웨어의 최신 요구 사항 훑어보기
    • AI가 최신 소프트웨어 개발에 어떻게 적합한가
    • 간편한 웹 애플리케이션
    • 클라우드 컴퓨팅의 부상
    • 컨테이너와 CaaS
      • 컨테이너가 있는 마이크로서비스
    • 쿠버네티스: 인프라 관련 문제를 위한 CaaS 솔루션
    • 요약

  • 8장. AI 모델을 마이크로서비스로 배포하기
    • 도커와 쿠버네티스를 사용한 간단한 마이크로서비스 구축
    • 앱에 AI 스마트 추가하기
    • 앱을 컨테이너로 패키징하기
    • 저장소에 도커 이미지 푸시하기
    • 앱을 쿠버네티스에 마이크로서비스로 배포하기
    • 요약

  • 9장. 머신러닝 개발 수명주기
    • 머신러닝 모델 수명주기
      • 1단계: 문제의 정의와 실제 참값 확립
      • 2단계: 데이터의 수집, 정제 및 준비
      • 3단계: 모델 구축 및 훈련
      • 4단계: 모델 검증 및 하이퍼파라미터 튜닝
      • 5단계: 프로덕션 환경으로 배포
      • 피드백과 모델 업데이트
    • 엣지 장치에 배포하기
    • 요약

  • 10장. 머신러닝 플랫폼
    • 머신러닝 플랫폼 문제
      • 데이터 수집
      • 데이터 정제
      • 애널리틱스 사용자 인터페이스
      • 모델 개발
      • 규모에 맞는 훈련
      • 하이퍼파라미터 튜닝
      • 자동 배포
      • 로깅 및 모니터링
    • 머신러닝 플랫폼 통합
    • 요약
    • 맺음말

도서 오류 신고

도서 오류 신고

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

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

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