딥러닝 입문부터 DL4J를 이용한 신경망 구현과 스파크⋅하둡 연동까지
자바 개발자를 위한 효율적인 딥러닝 신경망 구축 가이드
이 책의 전반부에서는 이론을, 후반부에서는 튜닝, 병렬화, 벡터화, 파이프라인 구축 등 딥러닝 실무의 핵심을 설명한다. 특히 DL4J 라이브러리로 스파크 및 하둡에서 심층 신경망 구조를 학습하고 딥러닝 워크플로를 실행하는 실용적인 방법과 전략을 알려준다. 이론과 실습 모두 깊이 있게 다뤄 딥러닝 관련 전문 지식이 없는 입문자도 이 책을 읽고 나면 딥러닝 신경망을 구축할 수 있다.
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
자료명 | 등록일 | 다운로드 |
---|---|---|
![]() |
2020-01-21 | 다운로드 |