서브메뉴

본문

스칼라와 머신 러닝 (풍부한 설명으로 배우는 스칼라 머신 러닝 구현)
스칼라와 머신 러닝 (풍부한 설명으로 배우는 스칼라 머신 러닝 구현)
저자 : 패트릭 R. 니콜라스
출판사 : 에이콘출판
출판년 : 2018
ISBN : 9791161752327

책소개

2019년 대한민국학술원 우수학술도서 선정도서

머신 러닝에 스칼라를 적용하고자 하는 개발자를 위한 책이다. 멀티 패러다임 언어인 스칼라의 특성과 관련 디자인 패턴 등 개발자에게 필요한 스칼라의 기본적인 특성부터 데이터 파이프라인과 처리, 주요 머신 러닝 알고리즘의 구현에 대해 자세히 설명한다. 대부분의 예제는 금융 데이터를 기반으로 구현돼 있으며, 직접 스칼라로 작성한 모든 코드와 알고리즘을 상세하게 설명한다. 부록에서는 주요 머신 러닝 알고리즘에서 쓰이는 수학적 개념과 관련 논문이 정리돼 있어서 필요한 내용을 쉽게 참조할 수 있다. 이 책은 수준 높은 스칼라 코드를 작성하는 데 활용할 수 있는 참고 서적으로도 가치가 크다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책에서 다루는 내용

- 과학적 연산을 위한 동적 작업 흐름 구축
- 시계열로부터 패턴을 추출하기 위한 오픈소스 라이브러리의 활용
- 자신만의 분류, 군집화, 혹은 진화 알고리즘 작성
- 스파크의 상대적 성능 조정과 평가 수행
- 순차적 데이터를 위한 확률적 모형 터득
- 정칙화 및 커널화 같은 고급 기술을 통한 실험
- 신경망과 몇몇 딥러닝 아키텍처에 대해 파고들기
- 기본적인 몇 가지 멀티암드 밴딧 알고리즘의 적용
- 스칼라 병렬 컬렉션, 아카 액터, 아파치 스파크 클러스터를 이용한 빅데이터 문제 해결
- 금융 시장의 기술적 분석에 핵심적인 학습 전략 적용

이 책의 대상 독자

머신 러닝 알고리즘을 만들고 검증하고 적용하길 원하고 스칼라 프로그래밍에 대한 배경지식을 갖춘 소프트웨어 개발자를 위한 책이다. 또한 이 책은 함수형 프로그래밍을 살펴보고자 하거나 스칼라를 사용해 기존 애플리케이션의 확장성을 개선하려는 데이터 과학자에게도 도움이 될 수 있다.

이 책의 구성

1장. ‘시작하기’에서는 통계적 분석, 분류, 회귀, 예측, 군집화, 최적화에 대한 기본 개념을 소개한다. 또한 스칼라 언어, 특성, 라이브러리와 간단한 애플리케이션 구현을 다룬다.
2장. ‘데이터 파이프라인’에서는 분류에 대한 전형적인 작업 흐름, 편향/분산 상반 관계(trade-off)에 대한 개념과 금융 시장의 기술적 분석에 적용된 스칼라 의존성 주입을 사용한 검증을 설명한다.
3장. ‘데이터 전처리’에서는 시계열 분석을 다루며 데이터 전처리 및 이동 평균, 이산 푸리에 변환, 재귀적 칼만 필터와 같은 평활 기술을 구현하는 데 스칼라를 활용한다.
4장. ‘비지도 학습’에서는 K-평균 군집화, 가우스 조합 기댓값-최대화, 함수 근사와 같은 핵심 군집화 방법을 다룬다.
5장. ‘차원 축소’에서는 쿨백-라이블러 발산, 선형 모형을 위한 주성분 분석, 비선형 모형에 적용된 다면성의 개요를 설명한다.
6장. ‘단순 베이즈 분류기’에서는 확률적 그래프 모형과 더 구체적으로는 단순 베이즈 모형 및 이를 텍스트 마이닝에 적용하는 것에 집중한다.
7장. ‘순차적 데이터 모형’에서는 마코프 과정과 은닉 마코프 모형의 완전한 구현, 금융 시장 데이터에서의 패턴 인식에 적용된 조건적 무작위장(CRF, Conditional Random Field)을 소개한다.
8장. ‘몬테카를로 추론’에서는 박스-뮬러 테크닉을 사용한 가우스 샘플링, 교체를 통한 부트스트랩 복제, 그리고 폭넓게 적용 가능한 알고리즘인 메트로폴리스-헤이스팅스 알고리즘을 마코프 체인 몬테카를로를 위해 설명한다.
9장. ‘회귀와 정칙화’에서는 선형 및 최소제곱 회귀의 전형적인 구현, 정칙화(regularization) 기술로서의 능형 회귀, 로지스틱 회귀를 다룬다.
10장. ‘다층 퍼셉트론’에서는 전방 전달 신경망(FFNN, Feed-Forward Neural Network)과 다층 퍼셉트론 분류기의 완전한 구현을 설명한다.
11장. ‘딥러닝’에서는 희소 오토인코더와 스칼라에서의 차원 축소를 위한 제한된 볼츠만 머신, 나선형 신경망을 구현한다.
12장. ‘커널 모형과 서포트 벡터 머신’에서는 서포트 벡터 머신(SVM) 분류 및 회귀 구현을 통한 커널 함수의 개념, 이상치 탐지를 위한 단일 클래스 SVM을 다룬다.
13장. ‘진화적 연산’에서는 진화적 연산(evolutionary computing)에 대한 기본과 다목적 유전 알고리즘의 서로 다른 구성 요소 구현을 다룬다.
14장. ‘멀티암드 밴딧’에서는 입실론-탐욕 알고리즘을 사용한 탐색-활용 상반 관계의 개념, 상단신뢰도 제한 기술, 환경 제한이 없는 톰슨 샘플링을 소개한다.
15장. ‘강화 학습’에서는 Q-학습 알고리즘의 구현을 통해 강화 학습의 개념을 살펴보고 학습 분류기 시스템을 구축하기 위한 템플릿을 소개한다.
16장. ‘스칼라와 아카에서의 병렬화’에서는 확장 가능한 애플리케이션을 만들기 위한 아티팩트 및 프레임워크를 설명하고, 스칼라 병렬 컬렉션과 아카 기반으로 분산화된 연산의 상대 성능을 평가한다.
17장. ‘아피치 스파크 MLlib’에서는 아파치 스파크의 아키텍처와 핵심 개념, 머신 러닝을 활용하는 회복력 있는 분산 데이터셋, 재사용 가능한 ML 파이프라인, 분산된 다이버전스(divergence)로 MLlib 확장, 스파크 스트리밍 라이브러리의 예제 등을 다룬다.
부록 A. ‘기본 개념’에서는 이 책 전반에 걸쳐 사용된 스칼라 언어 구조, 선형대수의 요소, 최적화 기술을 설명한다.
부록 B. ‘참조’에서는 장별로 참조 자료를 보여주는 리스트를 제공한다.

지은이의 말

뉴스 미디어나 기술 콘퍼런스, 심지어는 커피숍에서조차 빅데이터에 대해 듣지 않는 날이 이제 거의 없다. 처리 모니터링, 리서치 또는 간단한 인간 행동으로부터 수집된 데이터의 양은 점점 증가하고 있으며, 이것으로부터 지식을 뽑아낼 수 있어야만 가치가 있을 것이다.
이 책은 머신 러닝이 무엇인지, 왜 해야 하는지, 어떻게 하는지를 다룬다.

- 머신 러닝의 목적과 수학적 기초는 무엇인가?
- 머신 러닝 알고리즘을 구현하는 데 스칼라가 이상적인 언어인 이유는 무엇인가?
- 실제 세계의 문제를 해결하는 데 머신 러닝을 어떻게 적용할 것인가?

이 책 전반에 걸쳐 머신 러닝 알고리즘을 다이어그램, 수학 공식, 문서화된 스칼라 코드 조각으로 설명하며, 여러분만의 방식으로 핵심 개념을 이해하도록 해줄 것이다.

옮긴이의 말

최근 머신 러닝이나 딥러닝에 대한 관심이 조금 사그라든 것 같지만, 적어도 데이터 분석이나 데이터 처리 분야에서 일하는 개발자에게 요구되는 머신 러닝 관련 지식이나 기술 수준은 점차 높아지고 있는 것이 현실이다. 실제 관련 업무에 머신 러닝 알고리즘이 적용되는 사례가 늘어나고 있을 뿐만 아니라, 머신 러닝을 실험하거나 실무에 적용할 수 있게 해주는 라이브러리나 프레임워크 또한 양적 측면과 질적 측면 모두에서 빠르게 개선되고 있다.

일반적으로 실무에서 머신 러닝이나 고도화된 알고리즘을 적용하려 하면, 먼저 쉽게 접할 수 있는 파이썬이나 R 등과 같은 언어에 기반을 둔 도구로 실험해본다. 실험해보고 나서 유용하다고 판단되면, 기존에 운용하고 있는 서버 및 데이터에 부응하도록 적절히 설계하는 동시에 엔터프라이즈급에 걸맞은 프레임워크를 사용하게 된다. 이러한 측면에서 자바 중심의 JVM 진영에서는 아파치 스파크(Apache Spark)가 크게 각광받고 있다.

회사에서 몇 가지 검토를 마친 후 프로젝트에 스파크를 적용하기로 했다고 가정해보자. 그리고 이를 수행해야 하는 책임이 여러분에게 주어졌다. 스파크는 스칼라로 돼 있기 때문에 여러분이 스칼라에 대한 지식을 어느 정도 갖고 있지 않았다면 회사는 여러분에게 이 일을 맡기지 않았을 것이다. 혹 자바 분야에서 잔뼈가 굵은 개발자라면, 스칼라는 물론 머신 러닝 알고리즘도 처음부터 배워야만 할 수 있다. 어찌 됐든 여러분은 스칼라를 피할 수 없게 됐다.

이제 여러분은 멀티 패러다임 언어로서 스칼라가 지닌 특성과 관련 디자인 패턴 등을 심도 있게 학습해야 한다. 또한 주요 머신 러닝 알고리즘에 대해서도 공부해야 한다. 이 책이야말로 바로 그러한 상황에 놓인 개발자에게 최적의 가이드라 할 수 있다. 이 책은 머신 러닝에 스칼라를 적용하고자 하는 개발자에게 필요한 스칼라의 기본적인 특성부터 데이터 파이프라인과 처리, 주요 머신 러닝 알고리즘의 구현까지 모두 망라해 자세히 설명한다. 대부분의 예제는 금융 데이터를 기반으로 구현돼 있으며, 특히 저자가 직접 스칼라로 작성한 모든 코드와 알고리즘을 상세히 설명한 점이 특징이다. 소스 코드를 살펴보며 저자의 설명을 따라가는 일이 다소 지루하고 힘들 수도 있지만, 한 단계 발전된 개발자가 되려면 피할 수 없는 일이다. 또한 주요 머신 러닝 알고리즘에서 사용되는 수학적 개념과 관련 논문이 부록으로 정리돼 있으므로 필요한 내용을 쉽게 참조할 수 있다. 이 책은 수준 높은 스칼라 코드를 작성하는 데 활용할 수 있는 참고 서적으로도 큰 가치를 지닌다.
[예스24에서 제공한 정보입니다.]

목차정보

1장. 시작하기

__호기심 있는 독자를 위한 수학적 표기법

__왜 머신 러닝인가?

____분류

____예측

____최적화

____회귀

__왜 스칼라인가?

____함수형 언어로서의 스칼라

____객체 지향 언어로서의 스칼라

____확장성 있는 언어로서의 스칼라

__모형 범주화

__머신 러닝 알고리즘의 분류

____비지도 학습

____지도 학습

____준지도 학습

____강화 학습

__자바 라이브러리 활용하기

__도구와 프레임워크

____자바

____스칼라

____SBT

____아파치 커먼즈 매스

____JFreeChart

____그 외 라이브러리와 프레임워크

__소스 코드

____관례

__맛보기

____간단한 작업 흐름 작성하기

__요약





2장. 데이터 파이프라인

__모형화

____모형이란 무엇인가?

____모형 대 디자인

____특성 선택하기

____특성 추출하기

__방법론 정의하기

__모나드적 데이터 변환

____오류 처리

____모나드의 구출

__작업 흐름 연산 모형

____수학적 추상화 지원

____작업 흐름 구축을 위해 믹스인 구성하기

____모듈화하기

__데이터 프로파일링

____불변 통계량

____Z-점수와 가우스 분포

__모형 평가하기

____검증

____곡선하 면적

____교차 검증

____분산-편향 분해

____과적합

__요약





3장. 데이터 전처리

__스칼라에서의 시계열

____컨텍스트 바운드

____타입과 연산

____레이지 뷰

__이동 평균

____단순 이동 평균

____가중 이동 평균

____지수 이동 평균

__푸리에 분석

____이산 푸리에 변환

____DFT 기반 필터링

____시장 순환 감지

__이산 칼만 필터

____상태 공간 추정

____전이 방정식

____측정 방정식

____재귀적 알고리즘

__다른 전처리 기술

__요약





4장. 비지도 학습

__K-평균 군집화

____K-평균

__기댓값-최대화

____가우스 조합 모형

____EM의 개요

____구현

____분류

____테스트

____온라인 EM

____요약





5장. 차원 축소

__모형 복잡도 문제

__발산

____쿨백-라이블러 발산

____상호 정보

__주성분 분석

____알고리즘

____구현

____테스트 사례

____평가

____PCA 확장하기

__비선형 모형

____커널 PCA

____다양체

__요약





6장. 단순 베이즈 분류기

__확률적 그래프 모형

__단순 베이즈 분류기

____다항 단순 베이즈 소개

____구현

__다변량 베르누이 분류

____모형

____구현

__단순 베이즈와 텍스트 마이닝

____기본적인 정보 검색

____구현

____테스트

__장점과 단점

__요약





7장. 순차적 데이터 모형

__마코프 결정 과정

____마코프 성질

____1차 이산 마코프 체인

__은닉 마코프 모형

____표기법

____람다 모형

____디자인

____평가(CF-1)

____훈련(CF-2)

____디코딩

____모두 합치기

____테스트 사례 1: 훈련

____테스트 사례 2: 평가

____필터링 기술로서의 HMM

__조건부 무작위장

____CRF 소개

____선형 연쇄 CRF

__정칙화 CRF와 텍스트 분석

____특성 함수 모형

____디자인

____구현

____테스트

__CRF와 HMM 비교하기

__성능 고려 사항

__요약





8장. 몬테카를로 추론

__샘플링의 목적

__가우스 샘플링

____박스-뮬러 변환

__몬테카를로 근사

____개론

____구현

__교체를 통한 부트스트래핑

____개요

____리샘플링

____구현

____부트스트랩의 장단점

__마코프 연쇄 몬테카를로

____개요

____메트로폴리스-헤이스팅스

____구현

____테스트

__요약





9장. 회귀와 정칙화

__선형 회귀

____일변량 선형 회귀

____통상적인 최소제곱 회귀

__정칙화

____Ln 조도 불이익

____능형 회귀

____디자인

____구현

____테스트 사례

__수치적 최적화

__로지스틱 회귀

____로지스틱 함수

____디자인

____훈련 작업 흐름

____분류

__요약





10장. 다층 퍼셉트론

__전방 전달 신경망

____생물학적 배경

____수학적 배경

__다층 퍼셉트론

____활성화 함수

____네트워크 토폴로지

____디자인

____설정

____네트워크 구성 요소

____모형

____문제의 타입(방식)

____온라인 훈련 대 배치 훈련

____훈련 회차

____훈련과 분류

__평가

____실행 프로파일

____학습률의 영향

____가속도 인자의 영향

____은닉층 개수의 영향

____테스트 사례

__이점과 한계

__요약





11장. 딥러닝

__희소 오토인코더

____저완성 오토인코더

____결정적 오토인코더

____범주화

____전방 전달 희소, 저완성 오토인코더

____희소성 갱신 방정식

____구현

__제한된 볼츠만 머신

____볼츠만 머신

____이항 제한된 볼츠만 머신

__합성곱 신경망

____국소 수용 영역

____가중치 공유하기

____합성곱층

____부표본층

____한데 모으기

__요약





12장. 커널 모형과 서포트 벡터 머신

__커널 함수

____개요

____일반적인 판별 커널

____모나드적 커널 합성

__서포트 벡터 머신

____선형 SVM

____비선형 SVM

____서포트 벡터 분류기

____1계층 SVC로 이상치 찾기

____서포트 벡터 회귀

__성능 고려 사항

__요약





13장. 진화적 연산

__진화

____기원

____NP 문제

____진화적 연산

__유전 알고리즘과 머신 러닝

__유전 알고리즘 구성 요소

____인코딩

____유전 연산자

____적합도 점수

__구현

____소프트웨어 디자인

____핵심 구성 요소

____선택

____개체군 증가율 통제하기

____GA 설정

____교배

____변이

____생식

____풀이기

__거래 전략을 위한 GA

____거래 전략의 정의

____테스트 사례: 2008년 가을 시장 붕괴

__유전 알고리즘의 장점과 위험

__요약





14장. 멀티암드 밴딧

__K-암드 밴딧

____탐색-활용 상반 관계

____기대 누적 후회

____베이즈 베르누이 밴딧

____엡실론-탐욕 알고리즘

__톰슨 샘플링

____밴딧 컨텍스트

____사전/사후 베타 분포

____구현

____시뮬레이션된 탐색과 활용

__신뢰 상단

____신뢰 구간

____구현

__요약





15장. 강화 학습

__강화 학습

____문제 이해하기

____해법: Q-학습

____구현

____Q-학습을 사용한 옵션 거래

____한데 합하기

____평가

____강화 학습의 장점과 단점

__학습 분류기 시스템

____LCS 소개

____학습과 평가 조합하기

____전문 용어

__요약





16장. 스칼라와 아카에서의 병렬화

__개요

__스칼라

____객체 생성

____스트림

____병렬 컬렉션

__액터를 통한 확장성

____액터 모형

____분할

____액터를 넘어: 반응적 프로그래밍

__아카

____마스터-워커

____퓨처

__요약





17장. 아파치 스파크 MLlib

__개요

__아파치 스파크 코어

____왜 스파크인가?

____디자인 원칙

____스파크로 실험하기

__MLlib 라이브러리

____개요

____RDD 만들기

____MLlib을 사용한 K-평균

____테스트

__재사용 가능한 ML 파이프라인

____재사용 가능한 ML 변환

____아파치 스파크와 ScalaTest

__스파크 확장하기

____쿨백-라이블러 발산

____구현

____쿨백-라이블러 평가기

__스트리밍 엔진

____왜 스트리밍인가?

____배치와 실시간 처리

____아키텍처 개요

____이산화 스트림

____사용 사례: 연속적인 파싱

____체크포인팅

__성능 평가

____개변수 조정하기

____성능 고려 사항

__장점과 단점

__요약





부록 A. 기본 개념

__스칼라 프로그래밍

__수학

__금융 101
[알라딘에서 제공한 정보입니다.]

QuickMenu