메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

자바를 활용한 딥러닝

딥러닝 입문부터 DL4J를 이용한 신경망 구현과 스파크⋅하둡 연동까지

한빛미디어

번역서

절판

  • 저자 : 조시 패터슨(Josh Patterson) , 애덤 깁슨(Adam Gibson)
  • 번역 : 김홍진 , 박다희 , 배철민
  • 출간 : 2018-09-01
  • 페이지 : 560 쪽
  • ISBN : 9791162241066
  • 물류코드 :10106
  • 초급 초중급 중급 중고급 고급
4.2점 (6명)
좋아요 : 1

자바 개발자를 위한 효율적인 딥러닝 신경망 구축 가이드

 

이 책의 전반부에서는 이론을, 후반부에서는 튜닝, 병렬화, 벡터화, 파이프라인 구축 등 딥러닝 실무의 핵심을 설명한다. 특히 DL4J 라이브러리로 스파크 및 하둡에서 심층 신경망 구조를 학습하고 딥러닝 워크플로를 실행하는 실용적인 방법과 전략을 알려준다. 이론과 실습 모두 깊이 있게 다뤄 딥러닝 관련 전문 지식이 없는 입문자도 이 책을 읽고 나면 딥러닝 신경망을 구축할 수 있다.

 

10106_details.jpg

 

조시 패터슨(Josh Patterson) 저자

조시 패터슨(Josh Patterson)

패터슨 컨설팅 CEO이자 빅데이터와 응용 머신러닝 분야의 솔루션 통합 아키텍트. 10년간 빅데이터와 광범위한 딥러닝 분야의 경험을 통해 포춘 500 프로젝트에 그의 특별한 인사이트를 담았다. 패터슨은 테네시강 유역 개발 공사(TVA)에서 대규모 데이터 저장과 스마트 그리드 페이저 측정 단위 처리(PMU)를 위한 아파치 하둡 통합을 주도했다. TVA 이후 직원 34명의 초기 하둡 스타트업인 클라우데라에서 수석 솔루션 아키텍트로 근무했다. 클라우데라를 떠난 뒤에는 Deeplearning4j 프로젝트를 공동 창업하고 『자바를 활용한 딥러닝』(한빛미디어, 2018)을 공동 저작했다.

 

애덤 깁슨(Adam Gibson) 저자

애덤 깁슨(Adam Gibson)

샌프란시스코에서 활동하는 딥러닝 전문가로 포춘 500대 기업, 헤지 펀드, 광고회사 및 스타트업 지원 회사와 함께 머신러닝 프로젝트를 수행하고 있다. 회사가 실시간 빅데이터를 처리하고 분석할 수 있게 해주는 분야에서 매우 뛰어난 실적을 냈다. 13살 때부터 컴퓨터를 사랑했으며 http://deeplearning4j.orj를 통해 오픈소스 커뮤니티에 적극적으로 참여한다.

김홍진 역자

김홍진

한양대학교에서 컴퓨터 공학을 전공하고 어쩌다 보니 데이터 마이닝까지 전공하며 이 세계에 발을 들였다. 추천 시스템, BI 시스템 등 데이터를 활용한 시스템 개발에 참여하면서 데이터 활용 기술을 이해하고 효율적으로 사용하는 것이 중요하다고 생각하게 되었다. 현재는 SK플래닛에서 데이터 과학자로 근무하며 데이터를 통합하고 데이터 사용 환경을 구축하는 업무를 진행하고 있다.

박다희 역자

박다희

어느 분야에서나 쓸모 있지 않을까 하는 생각에 데이터 마이닝을 전공하고 SK플래닛에서 데이터 과학자로 근무하였다. 기술뿐만 아니라 비즈니스와 통계에 대한 깊은 이해까지 필수적이라는 생각으로 균형 있는 발전을 위해 고민과 노력을 하고 있다.

배철민 역자

배철민

컴퓨터 공학을 전공하고, SK플래닛에서 개발자로 근무하며 경력의 대부분을 자바스크립트와 함께 했다. React, AngularJS 등 프레임워크를 활용해서 프론트엔드 개발, 하이브리드 앱 개발 프로젝트를 담당했으며 Node.js를 활용한 백엔드 개발까지 겸했다. 현재는 라인플러스에서 데이터플랫폼 UI를 개발하며 데이터 시각화에 대해 심도 있게 공부하며 실무에 적용 중이다. 저서로는 『웹으로 시작하는 모바일게임』(지앤선, 2017)이 있다.

CHAPTER 1 머신러닝 복습하기

1.1 학습하는 기계

1.2 문제 정의하기

1.3 머신러닝 속의 수학 : 선형대수

1.4 머신러닝 속의 수학 : 통계

1.5 머신러닝은 어떻게 작동하는가?

1.6 로지스틱 회귀

1.7 모델 평가하기

1.8 머신러닝 이해하기

 

CHAPTER 2 신경망과 딥러닝의 기초

2.1 신경망

2.2 신경망 학습

2.3 활성화함수

2.4 손실함수

2.5 하이퍼파리미터

 

CHAPTER 3 심층 신경망의 기본 원칙

3.1 딥러닝 정의

3.2 심층 신경망의 공통 설계와 원리

3.3 심층 신경망 구축하기

 

CHAPTER 4 주요 심층 신경망 구조

4.1 비지도 사전학습 신경망

4.2 합성곱 신경망

4.3 순환 신경망

4.4 재귀 신경망

4.5 요약 및 논의

 

CHAPTER 5 심층 신경망 구축하기

5.1 심층 신경망을 올바른 문제에 일치시키기

5.2 DL4J 도구 모음

5.3 DL4J API의 기본 개념

5.4 다층 퍼셉트론 신경망으로 CSV 데이터 모델링하기

5.5 합성곱 신경망을 활용한 손글씨 이미지 모델링

5.6 순환 신경망을 활용한 시퀀스 데이터 모델링

5.7 이상 탐지를 하는 오토인코딩 장치 사용

5.8 VAE를 사용하여 MNIST 숫자 재구성

5.9 자연어 처리에서의 딥러닝 애플리케이션

 

CHAPTER 6 심층 신경망 튜닝하기

6.1 심층 신경망 튜닝의 기본 개념

6.2 신경망 구조와 입력 데이터 매칭시키기

6.3 출력 계층과 모델의 목표 연관짓기

6.4 계층 수, 파라미터 수, 메모리 다루기

6.5 가중치 초기화 전략

6.6 활성화함수 사용하기

6.7 손실함수 적용하기

6.8 학습률 이해하기

6.9 희소성이 학습에 주는 영향

6.10 최적화 기법 적용하기

6.11 병렬화와 GPU로 더 빠르게 학습하기

6.12 미니배치 크기와 에포크 조절하기

6.13 규제 사용하기

6.14 분류 불균형 다루기

6.15 과대적합 다루기

6.16 training UI에서 신경망 통계 보기

 

CHAPTER 7 심층 신경망 구조별 튜닝하기

7.1 합성곱 신경망

7.2 순환 신경망

7.3 제한된 볼츠만 머신

7.4 심층 신뢰 신경망

 

CHAPTER 8 벡터화

8.1 머신러닝에서 벡터화하는 법

8.2 ETL과 벡터화에 DataVec 사용하기

8.3 이미지 데이터 벡터화

8.4 순차 데이터 벡터화

8.5 텍스트 벡터화

8.6 그래프로 작업하기

 

CHAPTER 9 스파크에서 딥러닝과 DL4J 사용하기

9.1 하둡과 스파크에서 DL4J 사용하는 방법

9.2 스파크 실행 구성 및 튜닝하기

9.3 스파크와 DL4J용 메이븐 POM 작성하기

9.4 하둡 및 스파크 문제 해결

9.5 스파크에서 DL4J 병렬 처리

9.6 스파크에서 DL4J API 사용하는 법

9.7 스파크 다층 퍼셉트론 예제

9.8 LSTM으로 스파크에서 셰익스피어 텍스트 생성하기

9.9 스파크에서 합성곱 신경망으로 MNIST 모델링하기

 

부록 A 인공지능이란? 

부록 B RL4J 및 강화학습 

부록 C 반드시 알아야 하는 숫자들 

부록 D 신경망과 역전파 : 수학적 접근 

부록 E ND4J API 활용하기 

부록 F DataVec 활용하기 

부록 G DL4J 소스로 작업하기 

부록 H DL4J 프로젝트 설정 

부록 I DL4J 프로젝트에 알맞게 GPU 설정하기 

부록 J DL4J 설치 시 문제 해결 

충분한 이론과 자바 환경에 딱맞는 실전 기법을 한 권으로! 

이 책의 처음 네 장에서는 책의 나머지 부분을 이해하는 데 바탕이 되는 충분한 이론과 기초 내용에 집중한다. 나머지 다섯 장에서는 이러한 개념을 바탕으로 딥러닝에서 DL4J를 사용하여 다음 몇 가지 실용적인 방안을 소개한다.

 

- 심층 신경망 구축

- 고급 튜닝 기법

- 다양한 데이터 타입에 따른 벡터화

- 스파크에서 딥러닝 실행하기

 

이 책의 구성

자바로 상용 수준의 딥러닝을 구축하는 실용적이면서도 충분히 이론을 다룬다. 구체적인 내용은 다음과 같다.

 

[1장] 

모든 독자가 책의 나머지 부분을 이해하는 데 필요한 기본 지식을 빠르게 익힐 수 있도록 딥러닝에서 필수적이며 기본적인 머신러닝 개념을 알아본다. 많은 독자가 이런 개념을 다시 일깨우고 입문하는 데 도움이 될 것이다.

 

[2장] 

1장의 개념을 바탕으로 신경망의 기초를 제시한다. 주로 신경망 이론을 설명하지만

신경망에 쉽게 접근할 수 있는 방법에 초점을 맞출 것이다. 

 

[3장] 

어떻게 신경망의 기본 원리에서 심층 신경망으로 진화했는지 최대한 빠르게 설명하면서 앞의 1장과 2장의 내용을 더 자세히 알아본다. 

 

[4장]

심층 신경망의 네 가지 핵심 구조를 소개하고, 책의 나머지 부분의 기초를 제공한다.

 

[5장]

책의 전반부의 기술들을 이용한 몇 가지 자바 코드 예제를 살펴본다. 

 

[6장 & 7장]

일반적인 신경망의 성능 개선과 각 구조별 심층 신경망의 성능을 개선하는 방법을 설명한다. 이 장은 플랫폼에 구애받지 않고 어떤 이용자도 실제로 적용할 수 있는 내용을 담고 있다.

 

[8장]

벡터화 기술과 DataVec1을 이용하는 방법을 알아본다. 9장에서는 스파크와 하둡 기반에서 DL4J를 사용하는 방법을 설명하고 여러분의 스파크 클러스터에서 실행할 수 있는 세 가지 실제 예제를 보여준다.

 

이 책의 주제와 관련은 있지만 본문에서 다루지 않은 아래와 같은 내용을 부록으로 담았다.

 

- 인공지능

- DL4J 프로젝트에서 메이븐 사용하기

- GPUGraphics Processing Unit를 이용한 작업

- ND4J API 사용하기

- 기타

 

다루는 핵심 내용

- 머신러닝⋅딥러닝 개념에 대한 전반적인 소개

- 신경망 기본 원리를 토대로 발전한 심층 신경망 이해

- 합성곱 신경망, 순환 신경망 등 주요 심층 신경망 구조

- 문제에 적합한 특정 심층 신경망 매핑 방법

- 일반적인 신경망 및 특정 심층 신경망 구조 튜닝

- DL4J의 워크플로 도구인 DataVec을 활용한 데이터 유형별 벡터화 기법

- 스파크 및 하둡에서 DL4J 사용 방법

 

추천사

“개발자가 실무에서 딥러닝을 시작하는 데 알아야 할 모든 것이 담겨 있다.”

그랜트 잉거솔, 루시드웍스 CTO

 

인공지능, 딥러닝. 그야말로 우리 시대를 관통하는 핫한 키워드다. 인공지능이라는 학문의 역사는 훨씬 오래전으로 거슬러 올라가야하지만, 인공지능이관련 전공자가 아닌 일반 대중에게까지 익숙해지게 된 데에는 최근의 기술 발전이 큰 역할을 했다. GPU로대변되는 컴퓨팅 파워의 획기적인 향상은 기존에는 불가능했던 연산을 가능하게 했고, 이는 인공지능이 실용의단계로 넘어 올 수 있도록 하였다. 여기에 컴퓨팅 파워 뿐 아니라 네트워크, 스마트폰, 사물인터넷 등 정보 통신의 발달은 과거에는 생각지도 못했던방대한 양의 데이터를 만들어 냈고, 이러한 빅데이터는 인공지능 기술 발달과 함께 서로 시너지 효과를내기에 이르렀다.

 인공지능이인기를 얻으면서 함께 유명세를 얻게 된 것 중 하나는 파이썬이다. 일부에서는 인공지능을 배우고 활용하려면파이썬이 필수라는 이야기가 종종 들리기도 하는 실정이다. 파이썬이 가진 언어적 장점과 함께 즉시 활용가능한 다양한 라이브러리와 인터넷에 가득한 예제는 초보자도 쉽게 인공지능을 접할 수 있도록 하고 있긴 하다. 시중에나와 있는 인공지능 관련 도서도 파이썬을 중심으로 설명하고 있는 책이 어림잡아 7~80 % 이상으로보인다.

 정말파이썬만이 정도(正道)일까?파이썬이 대세인 것은 사실이지만, 유일한 방법은 아니다.파이썬이 프로그래밍 언어 순위에서 높은 위치에 있더라도, 전통적인 강자들 역시 존재한다. C/C++, Java 는 여전히 사랑받고 있다. 인공지능 분야에서도마찬가지이다.

 

Photo_01.png

 

 

조시 패터슨, 애덤 깁슨의 자바를활용한 딥러닝은 제목에서와 같이 자바 개발자를 위한 책이다. 자바기반의 DL4J 라이브러리를 사용하여 딥러닝으로 인공지능을 개발하는 방법을 소개하고 있다. 이 책에서 소개하는 DL4J (https://deeplearning4j.org/)는 자바와자바 가상 머신용으로 작성된 딥러닝 라이브러리로 매우 다양한 딥러닝 알고리즘을 지원하며, 아파치 하둡과스파크를 이용한 분산 병렬 처리가 가능하다. DL4J는 아파치 라이선스 2.0을 따르는 오픈소스 소프트웨어이며, 스카이마인드 그룹을 통한 상업적지원도 가능하여, 상용 서비스 개발에도 활용이 가능하다.

 이책은 본문은 총 9개의 챕터로 구성되어 있다. 책의 전반부(1~4)에서는 딥러닝을 수행하기 위해 알아두어야 할 것들에 대해소개하고 있다. ‘인공지능은 수학이다라는 말이 있을 정도로, 인공지능을 제대로 이해하기 위해서는 수학적인 기초가 필수적이다. 선형대수, 통계 등 머신러닝에 필요한 수학적 지식을 다시 한번 복습하며,신경망과 딥러닝의 기초 지식, 심층 신경망의 설계 원리 및 구조에 대해 다룬다. 이어지는 5장에서는 본격적으로 심층 신경망을 구축하는 방법에 대해자세히 소개한다. 문제를 제대로 풀기 위해 어떤 신경망을 선택해야 하는지와 DL4J를 사용하는 방법을 시작으로 합성곱 신경망을 이용한 손글씨 이미지 모델링,순환 신경망을 활용한 시퀀스 데이터 모델링, 오토 인코더,VAE 모델 및 자연어 처리를 위한 딥러닝 애플리케이션에 대한 내용을 담고 있다. 6장과7장은 심층 신경망에 대한 튜닝 방법을 소개한다. ‘벡터화라는 제목을 가진 8장은 이 책의 백미라고 할 수 있다. 딥러닝에서 벡터화는 매우 중요한 부분이지만, 많이 간과되는 영역이다. 학습을 제대로 시키고 문제를 해결하기 위해서는 다루고자 하는 데이터에 따라 적절한 벡터화 방법이 필요하다. 이미지 데이터 백터화, 순차데이터 벡터화, 텍스트 데이터 벡터화를 설명하며, 그래프 구조 벡터화와 관련하여Node2Vec 변화에 대해 간략히 다루고 있다. 본문의마지막 챕터인 9장은 하둡과 스파크에서 DL4J를 사용하는방법을 소개한다. 책의 부록은 인공지능에 대한 소개, 강화학습을 위한 RL4J, 신경망과 역전파에 대한 수학적 접근 방법, DL4J라이브러리 사용법 등 90여쪽에 걸쳐 본문에서 다루지 못했지만 한번쯤 생각해 보면 좋은내용과 실습에 필요한 주요 절차를 친절히 소개하고 있다.

 ‘자바를활용한 딥러닝은 딥러닝을 실무에서 사용하기 위해 알아야 할 이론적인 내용과 함께, 실전에서 활용 가능한 다양한 주제를 심도있게 다루고 있어, 딥러닝관련 전문 지식이 없는 입문자도 충분히 이 책을 통해 신경망을 구축할 수 있을 것으로 보인다. 자바를기반으로 하고 있는 만큼 자바에 대한 기본기는 필수이다. 딥러닝에 관심이 있는 자바 개발자에게 적극추천한다.

머신러닝, 딥러닝, AI 이 세 단어는 굳이 개발자가 아니어도, 적어도 하루에 한번씩은 뉴스기사를 통해서, 아니면 대화 중에 심심치 않게 듣게되는 말이다. 그 이유는 자율주행에서부터 광고, 그리고 넷플릭스나 왓챠에서까지 우리 일상 속에 이미 이런 기술이 적용되어 있기 때문이다. 그래서 그런지 개발자로 일하다보니 이 분야에 대해 관심이 안 갈 수가 없다. 지금 당장은 아니더라도 미래에 이쪽이 유망하다는건 불보듯 뻔한 일이니까... 그러나 배우고 싶어도, 시중에 나와 있는 책은 파이썬이기 때문이라 자바를 주언어로 하고 있는 나로써는 프로그래밍 언어의 장벽이 있어 쉽게 다가가기가 어려웠다. 파이썬이라고는 파이썬 입문 정도가 다인데, 분명 책을 산다고 하면 한글 타자게임 하듯, 똑같이 코드를 따라 치는 것 그 이상이하도 아닐 것이 불보듯 뻔하기 때문이었다. 그.런.데. '자바'로 하는 딥러닝이라니! 물론 머신러닝, 딥러닝을 하기 위해서는 결국 언젠가는 파이썬으로 코딩을 해야하겠지만, 머신러닝과 딥러닝이 적어도 어떤 방식으로 돌아가는지 알기에는 자바로 되어있는 이 책이 훨씬 나에게 적합하겠다는 생각이 들었다. ​ 그렇게 해서 책을 집어 들었지만, 사실 미적분을 건너뛴 몇안되는 문과생 출신이다 보니, 딥러닝의 입문자를 위한 책이라지만 앞부분에서 절망감이 밀려들어왔다. 선형대수, 통계에 대한 공부가 선행되어야 함을 깨달았다. 그나마 생물심리학 과목에서 배웠던 뉴런은 쉽게 이해가 갔는데, 수학 파트에서는 '벡터'가 무엇인지 모르는 나는.... 책장이 넘어가지지 않았다. ​ 하지만 책의 장점을 꼽자면 머신러닝 및 딥러닝이 무엇이고, 그 작동원리 및 실습까지 한권에 모두 담았다는 것이다. 또한 번역서이지만 번역이 매끄럽다. 다루고 있는 내용은 복잡할 뿐, 번역의 문제로 읽다가 짜증이 나서 미간이 찌푸려지는 일은 없다. 다만, 책 소개에서는 입문자에게 적합하다고 되어있지만 나처럼 이과/공대 수학의 기초가 없는 사람에게는 조금 많이 어렵다. 그래서 내 생각에는 '공대 수학이 베이스로 깔려있는' 자바 개발자 중 딥러닝에 대해 깊이 이해하고 싶은 경우에 이 책이 적합할 것 같다. P.S. 나의 경우엔 그래서 책을 보면서 유투브로 수학공부를 같이 했는데, 나처럼 수학에서 절망한 분들에게는 3Blue1Brown 이라는 유투버를 추천한다.

데이터 분석 및 머신러닝을 하려면 어떤 공식처럼

파이썬으로 해야한다는 분위기가 일반적인 것 같습니다.

 

그동안 국내에서 많이 사용하며, 많은 기업체의 전사시스템

개발에 사용되어 왔던 자바를 활용한 머신러닝을 왜 다루지

않을까하는 생각이 참 많았습니다.

 

이 책은 그에 대한 해답을 제공합니다. DL4J라는 딥러닝 라이브러리를 통해 자바로 쉽게 할 수 있는 방법을 설명하고 있습니다.

 

DL4J는 꽤 오랫동안 개발되어 온 프레임워크입니다. 나름

완성도도 있습니다.

 

DL4J를 사용할 수 있도록 이 책은 앞부분에는 이론적인 내용이,

뒷부분에는 실습 내용이 있습니다.

 

이론 부분은 처음 머신러닝을 접하는 분들에게는 다소 어려울 수도 있을 것 같습니다. 하지만, 어느 정도 학습을 한 분께는 

잘 정리가 되어 있다고 말씀드리고 싶습니다.

 

오라일리 출판사의 책의 특징상 설명이 참 많습니다. 

그냥 이런 것이 있다고 소설책 읽듯이 이론부분은 넘어가셨으면 합니다. 실습하다 잘 이해가 안 가면 반복해서 읽는 것도 좋은 방법일 것 같습니다.

 

실습부분도 cookbook 스타일이기 보다 전체적인 프록램의 흐름을 설명한 수 자세히 설명합니다. 

다소 초보자가 따라하기에는 어렵지 않을까 합니다.

 

파이썬을 활용한 머신러닝 및 데이터분석 책들이 많은 현재, 

자바를 활용하는 이 책은 매우 신선했습니다.

 

현재 자바로 개발된 운영시스템에 쉽게 연동할 수 있지 않을까 생각합니다.

 

1번만 볼 책이 아니라, 그리고 자바에 한정해서 읽을 책이 아니라, 레퍼런스처럼 두고두고 읽어볼만 책이라 생각합니다. 

 

 
이번에 리뷰할 도서는 훑어보는데에도 2주 정도가 걸린 힘든(?) 서적이었다.
 
한빛 사이트 상세 정보에는 '중급자'용이라고 되어 있지만 사실 내가 보기엔 관련 전공자가 아니라면 중급자도 힘들 듯 하다.
 
중급자도 힘들거라고 생각하는 이유는 책 전반에 걸쳐 전문 용어, 수학 공식과 알고리즘, 
 
그에 해당하는 소스 코드들로 이루어져 있기에 이해하기가 쉽지 않기 때문이다.
 
전반부인 1~4 챕터는 개요와 딥러닝의 이론적인 내용을 설명하고, 후반부에서는 주로 소스 코드를 설명 하고 있다.
 
그리고 이 책은 실무에서 바로 써먹을 수 있는 '실전 예제'를 다루는 책이 아니다.
 
DL4J 를 설명하는 책이므로 예제 소스가 있다 하더라도 상당 부분 이해와 응용할 수 있을 정도의 능력자가 아니라면 
 
'실전 예제'에 도달하기까지는 상당한 시간과 내공이 필요하리라 생각한다.
 
한빛 사이트에서 예제를 다운로드 받아 윈도우에서 처음 빌드하면 소스 코드 두군데에서 에러 발생한다.
 
하지만, 자바 개발에 경험이 좀 있는 분들이라면 수정 가능할 것이므로 큰 문제는 없을 것이다.
 
내가 사용하는 노트북이 윈도우 10이고 엔비디아 그래픽 카드가 아닌 내장 그래픽 카드인 관계로, 
 
CUDA 관련 예제를 제외하고는 대부분 실행에 문제가 없었다. 
 
일부 예제는 실행 결과가 GUI로 나오기 때문에 혹시나 리눅스 콘솔 모드로 실행한다면 적절한 결과를 보지 못할 수 도 있다.
(책에서는 아래 그림 왼쪽처럼 흑백으로 나왔지만 실행하면 오른쪽 그림처럼 컬러풀하게 나온다)
 
 
또한 일부 예제는 아주 오랫동안(반나절 이상, 성능 좋은 컴퓨터에서는 빨리 될수도) 실행이 되므로 인내심을 가져야 한다.
 
그리고 예제의 실행 결과는 대부분 숫자들로 이루어진 텍스트만을 출력하므로, 해당 결과치에 대한 이해가 없다면 역시나 힘들 것이다. (윈도우 이클립스에서 실행한 결과)

 
앞서 언급한 것처럼 이해가 안가는 부분이 생길때는 아래 링크를 참고하여
 
 
처음 배우는 데이터 과학, 처음 배우는 딥러닝 수학, 처음 배우는 머신러닝, 처음 배우는 인공지능 등의 서적을 참고해보자.
 
'처음 배우는 ...' 시리즈의 책들은 초보자를 위한 것이므로 이 책보다는 좀 더 쉽게 설명된 부분이 많이 있다.

<이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>

 


 

 

 

자바 개발자를 위한 효율적인 딥러닝 신경망 구축 가이드

 

이 책의 전반부에서는 이론을, 후반부에서는 튜닝, 병렬화, 벡터화, 파이프라인 구축 등 딥러닝 실무의 핵심을 설명한다. 특히 DL4J 라이브러리로 스파크 및 하둡에서 심층 신경망 구조를 학습하고 딥러닝 워크플로를 실행하는 실용적인 방법과 전략을 알려준다. 이론과 실습 모두 깊이 있게 다뤄 딥러닝 관련 전문 지식이 없는 입문자도 이 책을 읽고 나면 딥러닝 신경망을 구축할 수 있다.

 

10106_details.jpg

 

 

책소개

 

CHAPTER 1 머신러닝 복습하기

1.1 학습하는 기계

1.2 문제 정의하기

1.3 머신러닝 속의 수학 : 선형대수

1.4 머신러닝 속의 수학 : 통계

1.5 머신러닝은 어떻게 작동하는가?

1.6 로지스틱 회귀

1.7 모델 평가하기

1.8 머신러닝 이해하기

 

CHAPTER 2 신경망과 딥러닝의 기초

2.1 신경망

2.2 신경망 학습

2.3 활성화함수

2.4 손실함수

2.5 하이퍼파리미터

 

CHAPTER 3 심층 신경망의 기본 원칙

3.1 딥러닝 정의

3.2 심층 신경망의 공통 설계와 원리

3.3 심층 신경망 구축하기

 

CHAPTER 4 주요 심층 신경망 구조

4.1 비지도 사전학습 신경망

4.2 합성곱 신경망

4.3 순환 신경망

4.4 재귀 신경망

4.5 요약 및 논의

 

CHAPTER 5 심층 신경망 구축하기

5.1 심층 신경망을 올바른 문제에 일치시키기

5.2 DL4J 도구 모음

5.3 DL4J API의 기본 개념

5.4 다층 퍼셉트론 신경망으로 CSV 데이터 모델링하기

5.5 합성곱 신경망을 활용한 손글씨 이미지 모델링

5.6 순환 신경망을 활용한 시퀀스 데이터 모델링

5.7 이상 탐지를 하는 오토인코딩 장치 사용

5.8 VAE를 사용하여 MNIST 숫자 재구성

5.9 자연어 처리에서의 딥러닝 애플리케이션

 

CHAPTER 6 심층 신경망 튜닝하기

6.1 심층 신경망 튜닝의 기본 개념

6.2 신경망 구조와 입력 데이터 매칭시키기

6.3 출력 계층과 모델의 목표 연관짓기

6.4 계층 수, 파라미터 수, 메모리 다루기

6.5 가중치 초기화 전략

6.6 활성화함수 사용하기

6.7 손실함수 적용하기

6.8 학습률 이해하기

6.9 희소성이 학습에 주는 영향

6.10 최적화 기법 적용하기

6.11 병렬화와 GPU로 더 빠르게 학습하기

6.12 미니배치 크기와 에포크 조절하기

6.13 규제 사용하기

6.14 분류 불균형 다루기

6.15 과대적합 다루기

6.16 training UI에서 신경망 통계 보기

 

CHAPTER 7 심층 신경망 구조별 튜닝하기

7.1 합성곱 신경망

7.2 순환 신경망

7.3 제한된 볼츠만 머신

7.4 심층 신뢰 신경망

 

CHAPTER 8 벡터화

8.1 머신러닝에서 벡터화하는 법

8.2 ETL과 벡터화에 DataVec 사용하기

8.3 이미지 데이터 벡터화

8.4 순차 데이터 벡터화

8.5 텍스트 벡터화

8.6 그래프로 작업하기

 

CHAPTER 9 스파크에서 딥러닝과 DL4J 사용하기

9.1 하둡과 스파크에서 DL4J 사용하는 방법

9.2 스파크 실행 구성 및 튜닝하기

9.3 스파크와 DL4J용 메이븐 POM 작성하기

9.4 하둡 및 스파크 문제 해결

9.5 스파크에서 DL4J 병렬 처리

9.6 스파크에서 DL4J API 사용하는 법

9.7 스파크 다층 퍼셉트론 예제

9.8 LSTM으로 스파크에서 셰익스피어 텍스트 생성하기

9.9 스파크에서 합성곱 신경망으로 MNIST 모델링하기

 

부록 A 인공지능이란? 

부록 B RL4J 및 강화학습 

부록 C 반드시 알아야 하는 숫자들 

부록 D 신경망과 역전파 : 수학적 접근 

부록 E ND4J API 활용하기 

부록 F DataVec 활용하기 

부록 G DL4J 소스로 작업하기 

부록 H DL4J 프로젝트 설정 

부록 I DL4J 프로젝트에 알맞게 GPU 설정하기 

부록 J DL4J 설치 시 문제 해결 

 

 

 

 

이번에 리뷰하게 된 책은 자바로 배우는 딥러닝 책입니다!

직무와 아주 잘 맞는 책인데요~ 현재 회사에서 자바로 개발을 진행하고 있고 딥러닝도 같이 하고 있다보니

마음에 쏙 든 책이었습니다.

 

 

 

 

문제는 책이 생각보다 두껍습니다. 읽느라 고생을 조금 했습니다.

2주만에 읽으려고 하보니 조금 빠듯한 부분도 많았습니다.

책의 장점 중 하나는 Python이 아닌 JAVA를 사용해서 딥러닝을 배울 수 있다는 점입니다.

그게 왜 좋은 점이냐면 대부분의 책이 Python을 이용해서 기초적인 부분을 알려주고 있지만

개발을 하는 실무 개발자 입장에서는 자바도 굉장히 많이 쓰이기 때문입니다. 

그에 비해 서적이나 자료가 적다보니 이런 책이 달게 느껴지네요.

 

 

 

가장 기초적인 부분이 바로 '회귀'! 

다른 Python 책에서도 가장 기본적이고 기초적으로 나오는 부분입니다.

Python이 아니라 JAVA로 설명해주고 있어서 좋았습니다.

 

그 다음으로 나오는 부분이 경사 하강법! 

오차를 줄이기 위해 경사 하강법을 사용하게 됩니다.

O'REILLY의 책 답게 설명은 자세하게 되어 있습니다.

그러나 초보자가 바로 알기 쉬운 설명은 아니고 어느정도 알고리즘 과 자바에 대학 지식이 조금은 필요하니

참고 하셔야 합니다.

 

 

 

 

가장 자세히 봤던 부분은 자연어를 처리하는 Word2Vec 부분입니다.

말 그대로 문자를 벡터화 시키는 것인데 Woman과 man을 벡터화 하게 되면

비슷한 단어로 나타내집니다. 주변 단어를 찾는 다거나 비슷한 단어를 찾을 때 사용 할 수 있는 

알고리즘 중 하나이고 중요한 부분이기 때문에 자세히 봤던 파트입니다.

어려운 부분임에도 쉽게 설명되어 있어서 이해하는데 큰 어려움은 없었습니다.

 

 

 

 

[ 마무리 ]


자바로 딥러닝을 시도해보고 싶은 분에게 추천하는 책

자바의 기본적인 개념을 가지고 책을 볼 것!

 

디자인    ★★★☆☆

내용       ★★★★☆ 

난이도    ★★★☆☆ 


결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
자바를 활용한 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
자바를 활용한 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
자바를 활용한 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실