Top

자바 딥러닝의 핵심 [자바만 알면 초보자도 딥러닝을 마스터할 수 있다]

  • 원서명Java Deep Learning Essentials (ISBN 9781785282195)
  • 지은이유스케 스고모리(Yusuke Sugomori)
  • 옮긴이김광일
  • ISBN : 9788960779662
  • 25,000원
  • 2017년 01월 25일 펴냄
  • 페이퍼백 | 308쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/java-deep-learning)

요약

인공지능의 열풍이 불고 있다. 알파고를 통해 더욱 대중적으로 알려진 딥러닝은 머지 않아 모든 개발자들이 알아야 할 필수 기술이 될 것이다. 딥러닝의 학습에 있어서 가장 중요한 것은 알고리즘의 이해와 구상하는 모델을 신속하게 구현하고 검증하는 실험을 반복하는 것이며, 이를 통해서 더 깊은 이해와 통찰력을 얻을 수 있는 것이다. 딥러닝 알고리즘을 자바로 구현하는 과정을 처음부터 단계적으로 설명하며, 수학적인 지식이 부족해도 딥러닝 알고리즘을 쉽게 구현할 수 있게 안내한다. 자바(JAVA)는 현재 가장 널리 사용되는 프로그래밍 언어다. 국내에 자바 개발자들에게는 짧은 시간에 딥러닝의 핵심 기술을 구현해 볼 수 있는 좋은 지침서가 될 것이다.

이 책에서 다루는 내용

■ 머신 러닝과 딥러닝 알고리즘에 대한 실용적인 이해
■ 딥러닝에 관련된 머신 러닝 알고리즘 구현
■ 가장 많이 쓰이는 딥러닝 프레임워크를 이용한 신경망 탐구
■ 심층 신뢰 신경망(Deep Belief Nets)과 적층 노이즈 제거 오토엔코더(Denoising Autoencoder) 알고리즘 이해
■ 드롭아웃(Dropout)과 합성곱 신경망(Convolutional Neural Networks)
■ 딥러닝 라이브러리 DL4J에 대한 이해 및 사용법
■ 딥러닝 알고리즘과 라이브러리 실무 이용 전략
■ 테아노(Theano), 텐서플로우(TensorFlow) 및 카페(Caffe)를 통한 딥러닝 심층 탐구

이 책의 대상 독자

이 책은 딥러닝 알고리즘을 배워 응용하고자 하는 자바 개발자를 위한 것이다. 머신 러닝과 딥러닝 두 가지에 공통되는 핵심 개념과 접근 방법을 다루므로, 머신 러닝에 대한 사전 지식은 필요하지 않다. 매우 간단한 코드로 딥러닝 알고리즘을 구현하므로, 자바 기술과 딥러닝 기술을 향상시키는 데 도움이 될 것이다.

이 책의 구성

1장, ‘딥러닝의 개요’에서는 딥러닝이 어떻게 발전해왔는지 알아본다.
2장, ‘머신 러닝 알고리즘: 딥러닝을 위한 준비 단계’에서는 딥러닝과 관련된 머신 러닝 알고리즘을 구현한다.
3장, ‘심층 신뢰 신경망과 적층 노이즈 제거 오토엔코더’에서는 심층 신뢰 신경망(Deep Belief Nets)과 적층 노이즈 제거 오토엔코더(Stacked Denoising Autoencoders) 알고리즘을 자세히 다룬다.
4장, ‘드롭아웃과 합성곱 신경망’에서는 드롭아웃(Dropout)과 합성곱 신경망(Convolutional Neural Networks)이라는 딥러닝 알고리즘을 알아본다. 5장, ‘자바 딥러닝 라이브러리: DL4J, ND4J 등’에서는 딥러닝 라이브러리 DL4J에 대한 이해와 실제 사용법을 알아본다.
6장, ‘실무 응용을 위한 접근 방법: 순환 신경망 등’에서는 실무에서 딥러닝 알고리즘과 라이브러리를 사용하기 위해 스스로 전략을 고안하는 법을 알아본다.
7장, ‘기타 중요한 딥러닝 라이브러리’에서는 테아노(Theano), 텐서플로우(TensorFlow), 카페(Caffe)를 통해 딥러닝을 더 자세히 알아본다.
8장, ‘그다음은 무엇일까?’에서는 딥러닝의 최근 동향과 주요 이벤트를 살펴보고 딥러닝에 관한 유용한 자원들을 알아본다.

저자/역자 소개

지은이의 말

인공지능에 대한 관심이 전 세계적으로 높아지면서 딥러닝(deep learning)은 지대한 대중적 관심을 받게 됐다. 딥러닝 알고리즘은 다양한 산업 분야에서 매일같이 사용되고 있다. 딥러닝은 인공지능을 실현하기 위한 혁신적인 진보를 가져왔다. 딥러닝은 혁신적인 기법이지만 종종 딥러닝이 복잡하다는 선입견 탓에 실제 내용이 잘 알려지지 못하고 있다. 딥러닝의 이론과 개념은 복잡하거나 난해하지 않다. 이 책에서는 딥러닝을 올바르게 이해하기 위한 여러 이론과 수학식을 단계적으로 학습한다. 딥러닝을 처음부터 구축하는 과정을 보여주며, 실무에 적용할 경우 주의해야 할 것들에 대한 상세한 설명도 곁들여 놓았다.

지은이 소개

유스케 스고모리(Yusuke Sugomori)

정보공학 백그라운드를 갖춘 창조기술자(creative technologist)다. 대학원 시절 동료와 함께 구노시(Gunosy)를 공동 설립했다. 이 회사의 주 사업은 머신 러닝과 웹 기반 데이터 마이닝을 이용해 개별 사용자의 관심사를 파악해 개인별로 최적화된 그날의 뉴스를 제공하는 것이다. 이 알고리즘 기반의 앱은 출시 때부터 업계의 큰 관심을 받았으며 현재 천만 명 이상의 사용자가 있다. 구노시는 2015년 4월 28일, 동경증권거래소에 상장됐다.
2013년, 덴츠(Dentsu)에 합류했다. 덴츠는 2014년도 비연결 매출 총이익 기준으로 일본에서 가장 큰 광고회사다. 여기에서 다양한 분야의 디지털 광고와 스마트폰 앱 개발, 빅데이터 분석 등을 수행했다. 또한 「웹 디자이닝(Web Designing)」이라는 일본 잡지에서 8명의 신세대 크리에이터 중 한 명으로 선정되기도 했다. 2016년 4월, 의학 분야 신생 기업에 공동 설립자 겸 CTO로 합류했다.

옮긴이의 말

전 세계를 뒤흔든 알파고가 알려지기 꼭 1년 전이었다. 한참 딥러닝 공부에 몰두하고 있었던 역자는 적어도 2년 이내에 실리콘 밸리의 인공지능 열풍이 우리나라에도 몰아칠 것이라고 생각하고 있었다. 공부할 것은 태산이고, 기술의 발전은 가속을 받고 있는 상황에서 마음이 항상 바빴었다.
그 당시 국내 인터넷을 뒤져보면 컴퓨터 비전에 관련된 블로그나 카페는 더러 있었고, 이력이 꽤 된 것도 있었다. 그러나 딥러닝에 대해서는 거의 볼 것이 없었다. 그런 상황이 한 2년 이상은 지속될 것 같았다.
그러나 알파고에 대한 뉴스가 나오면서 정말 올 것이 왔구나 하는 생각이 들었고, 그 후 국내 인공지능의 상황은 생각보다 훨씬 빨리 돌아가고 있다. 이제는 여기저기에서 인공지능 관련 사이트가 생겨나고, 인공지능을 무기로 창업하는 회사들도 빠르게 증가하고 있다. 정부와 대기업들은 인공지능의 중요성을 새삼스럽게 강조하고 나섰다.
개발자에게 인공지능은 이제 필수 과목이 될 것이다. 아직은 경험 있는 개발 인력도 많지 않고, 많은 기업들이 무엇을 해야 할지 시행착오를 겪고 있는 것 같지만, 그럴수록 지금이 바로 인공지능 그중에서도 딥러닝을 준비할 최적기라고 확신한다.
사실 딥러닝을 혼자 공부하기는 쉽지 않다. 조그만 것이라도 깊이 이해하려고 하면 수학이 튀어나온다. 또한 항상 그렇지만 실무 응용에 써먹을 알고리즘은 교과서만으로는 부족하다. 그리고 불행하게도 개발자들이 지금까지 해왔던 것처럼 시스템 및 프로그래밍 언어에 대한 숙련도, 실무에 대한 지식, 가끔 반짝이는 아이디어, 그리고 밤샘을 두려워하지 않는 열정만으로 딥러닝을 마스터할 수는 없다.
딥러닝은 정교한 수학적 알고리즘의 집합체다. 알고리즘에 대한 깊은 이해 없이는 발전할 수 없다. 딥러닝을 공부하려고 하는 개발자는 적절한 교과서를 선택해 꾸준히 공부해야 할 것이다. 아울러 선형 대수학 확률통계, 이론, 기본적인 미적분학, 약간의 해석학 등의 수학도 필수적이므로 꾸준히 준비하기 바란다.
딥러닝이 복잡하지만 결국 컴퓨터 프로그램으로 구현해야 하는 것이므로 딥러닝 프로그램을 만들 줄 아는 것은 당연히 기본이 돼야 한다. 딥러닝은 직접 구현해보고 실험해보는 것이 무엇보다 중요하다. 반복되는 시행착오를 통해 딥러닝 알고리즘에 대한 이해가 깊어질 수 있으며, 새로운 아이디어도 떠오를 수 있다. 무엇보다 빠르게 구현해보고 검증해보고 분석하는 과정이 필수적이다.
인공지능 구현을 위한 프로그래밍 언어로, 과거에는 프롤로그(Prolog), 리스프(Lisp) 같은 언어들이 대세였으나, 최근에는 주로C++, 파이썬(Python), 자바(JAVA)가 대세를 이루고 있다. 각 언어마다 장단점이 있지만, 자바는 특히 큰 장점이 있다. 자바는 현재 기업 환경에서 가장 널리 쓰이는 언어며, 개발자의 수도 가장 많다. 자바는 환경 자체가 기업 환경에 초점이 맞춰져 있으므로 다른 언어에 비해 실무에 적용할 때 절대적으로 유리하다.
이 책의 저자는 딥러닝에 대한 사전 지식이 없는 개발자들도 딥러닝을 배울 수 있게 되도록이면 수학식을 적게 사용하면서 책을 저술했다. 이 책을 따라가면 딥러닝의 핵심적인 알고리즘을 거의 다 경험해볼 수 있다. 그리고 가장 핵심적인 딥러닝 라이브러리의 사용법도 간단히, 그러나 활용을 시작할 수 있을 만큼 소개하고 있으므로, 그 라이브러리를 이용하고자 할 때 큰 어려움 없이 시작할 수 있을 것이다.
끝으로 이 책을 통해서 딥러닝의 세계에 들어오는 독자들을 열렬히 환영한다.

옮긴이 소개

김광일

한국과학기술원 경영과학과에서 수학적 알고리즘을 경제학의 수리 모델에 적용한 논문으로 석사 학위를 받았다. 졸업 후 금성(현 LG전자)에 입사했으나 학과 명칭에 대한 높은 분들의 오해로 인해 기획실에 배치됐다. 기획실 근무 중 짬짬이 출판 프로그램과 몇 가지 게임 프로그램을 개발했으며, 마케팅과 재무 관리 분야에 각종 수리 모델을 적용했다.
본인의 끈질긴 로비와 시위로 입사 2년 만에 소프트웨어 개발실로 옮겨 소프트웨어 개발자로서의 험난한 인생을 살기 시작했다. 이후 여러 가지 크고 작은 변화를 거쳐 11년간 오픈테크라는 소프트웨어 개발 회사를 경영했다. 경영 활동을 하는 동안 겸임 교수로 한국 외국어 대학교에서 강의를 하기도 했다. CRM 시장의 몰락과 CRM 개발에 대한 투자 후유증으로 회사를 닫고, VMware 판매와 기술 지원을 주업으로 하는 회사 이루인포를 동료들과 설립했으나, 적성에 맞지 않아 회사에서 손을 떼고 프리랜서가 됐다. 이후로 여러 가지 개인적인 사업들을 했다.
최근에는 중소기업의 연구소에서 딥러닝을 연구하기도 했으며, 현재는 개인 연구자로서 인공지능 연구에 몰두하고 있다. 아울러 딥러닝 강좌를 개설하기 위한 준비 중이다.

목차

목차
  • 1장. 딥러닝의 개요
    • 인공지능의 변천
      • 인공지능의 정의
      • 과거의 인공지능 붐
      • 머신 러닝은 발전한다
      • 머신 러닝도 할 수 없는 것
    • 기계와 인간을 구분 짓는 것
    • 인공지능과 딥러닝
    • 요약

  • 2장. 머신 러닝 알고리즘 딥러닝을 : 위한 준비 단계
    • 시작하기
    • 머신 러닝에서 학습의 필요성
    • 지도 학습과 비지도 학습
      • 서포트 벡터 머신
      • 은닉 마르코프 모델(HMM)
      • 신경망
      • 로지스틱 회귀
      • 강화 학습
    • 머신 러닝 애플리케이션의 절차
    • 신경망 이론과 알고리즘
      • 퍼셉트론(단일층 신경망)
      • 로지스틱 회귀
      • 다범주 로지스틱 회귀
      • 다층 퍼셉트론(다층 신경망)
    • 요약

  • 3장. 심층 신뢰 신경망과 적층 노이즈 제거 오토엔코더
    • 신경망의 실패
    • 신경망의 설욕
      • 딥러닝의 진화: 돌파구는 무엇이었을까?
      • 사전 학습을 이용한 딥러닝
    • 딥러닝 알고리즘
      • 제한 볼츠만 머신
      • 심층 신뢰망(DBNs)
      • 노이즈 제거 오토엔코더(DA)
      • 적층 노이즈 제거 오토엔코더(SDA)
    • 요약

  • 4장. 드롭아웃과 합성곱 신경망
    • 선행 학습이 없는 딥러닝 알고리즘
    • 드롭아웃
    • 합성곱 신경망
      • 합성곱
      • 수집
      • 식과 구현
    • 요약

  • 5장. 자바 딥러닝 라이브러리: DL4J, ND4J 등
    • 처음부터 개발과 라이브러리(혹은 프레임워크)를 이용한 개발
    • DL4J와 ND4J의 소개
    • ND4J를 이용한 구현
    • DL4J를 이용한 구현
      • 준비(설정)
      • 구축
        • DBNIrisExample.java
        • CSVExample.java
      • CNNMnistExample.java/LenetMnistExample.java
      • 학습률 최적화
    • 요약

  • 6장. 실무 응용을 위한 접근 방법: 순환 신경망 등
    • 딥러닝이 활발한 분야
      • 이미지 인식
      • 자연어 처리
        • NLP를 위한 피드포워드 신경망
        • NLP를 위한 딥러닝
    • 딥러닝의 문제
    • 딥러닝의 가능성과 능력을 최대화하기 위한 접근 방법
      • 분야 지향 접근 방법
        • 의료
        • 자동차
        • 광고 기술
        • 전문직 혹은 실무
        • 스포츠
      • 세분화 지향 접근 방법
      • 출력 지향 접근 방법
    • 요약

  • 7장. 기타 중요한 딥러닝 라이브러리
    • 테아노
    • 텐서플로우
    • 카페
    • 요약

  • 8장. 그다음은 무엇일까?
    • 딥러닝에 대한 긴급 뉴스
    • 예상되는 미래 동향
    • 딥러닝에 대한 최신 소식을 볼 수 있는 곳
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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