스크랩

구간

스칼라와 기계 학습 - acorn+PACKT 시리즈 스칼라를 활용해 데이터에서 학습하는 시스템 만들기

원제 : Scala for Machine Learning

패트릭 니콜라스 저 | 오현석 역 | 에이콘출판 | 2016년 07월

미리보기 북트리

정가
$80.00
판매가
$58.32 (27%↓) 최저가 보상
적립금
$1.17 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

이책의 개정판 정보

스칼라와 머신 러닝 [2판] 패트릭 니콜라스 저 | 에이콘출판 | 2018년 11월

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960778832 / 600쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

출판사 서평 ★ 이 책에서 다루는 내용 ★ ■ 과학기술 계산을 위한 동적인 워크플로우를 만드는 방법 ■ 오픈소스 라이브러리를 활용해 시계열 데이터에서 패턴을 추출하는 방법 ■ 분류, 군집화, 진화 알고리즘?을 작성하는 방법 ■ 상대적인 성능 튜닝을 수행하는 방법과 스파크에 대한 평가 ■ 순차적 데이터에 대한 확률 모델 ■ 정규화나 커널화 등의 고급 기법을 활용한 실험 ■ 스칼라 병렬 컬렉션, 아카 액터, 아파치 스파크 클러스터 등을 활용해 빅데이터 문제를 푸는 방법 ■ 금융시장에 대한 기술적 분석에 핵심 기계 학습 전략 적용 ... ★ 이 책에서 다루는 내용 ★ ■ 과학기술 계산을 위한 동적인 워크플로우를 만드는 방법 ■ 오픈소스 라이브러리를 활용해 시계열 데이터에서 패턴을 추출하는 방법 ■ 분류, 군집화, 진화 알고리즘을 작성하는 방법 ■ 상대적인 성능 튜닝을 수행하는 방법과 스파크에 대한 평가 ■ 순차적 데이터에 대한 확률 모델 ■ 정규화나 커널화 등의 고급 기법을 활용한 실험 ■ 스칼라 병렬 컬렉션, 아카 액터, 아파치 스파크 클러스터 등을 활용해 빅데이터 문제를 푸는 방법 ■ 금융시장에 대한 기술적 분석에 핵심 기계 학습 전략 적용 ★ 이 책의 대상 독자 ★ 이 책은 어떻게 기계 학습 알고리즘을 구현하고, 검증하고, 응용할 수 있는지 배우고 싶어 하는 스칼라 프로그래밍에 경험이 있는 소프트웨어 개발자가 주 대상이다. 함수 프로그래밍에 대해 살펴보거나 스칼라를 활용해 기존 애플리케이션의 규모 확장성을 개선하고자 하는 데이터 과학자에게도 도움이 될 것이다. 이 책은 금융시장에 대한 기술 분석을 활용해 직접 짜면서 비교해볼 수 있는 연습 문제를 제공하는 자습서로 고안됐다. ★ 이 책의 구성 ★ 1장, ‘시작하며’에서는 통계 분석, 자동 분류, 회귀분석, 예측, 클러스터링, 최적화의 기본 개념을 소개한다. 스칼라 언어 특징과 라이브러리를 간단한 애플리케이션 구현과 함께 다룬다. 2장, ‘Hello World!’에서는 전형적인 자동 분류 워크플로우를 설명하고, 편향/분산(bias/variance)의 트레이드 오프(trade-off) 관계, 스칼라 의존성 삽입을 활용한 검증 방법을 금융시장 분석에 응용해 살펴본다. 3장, ‘데이터 전처리’에서는 시계열 분석에 대해 다루며, 스칼라를 활용해 데이터 전처리를 구현하고 이동 평균과 같은 평활 기법, 이산 푸리에 변환, 그리고 칼만 재귀 필터 등을 어떻게 간편하게 구현할 수 있는지 살펴본다. 4장, ‘비감독 학습’에서는 가장 널리 활용되는 클러스터링 기법인 K-평균법, 기대값 최대화(EM, Expectation Maximization) 구현, 차원 축소 방법인 주성분 분석에 대해 주로 살펴본다. 5장, ‘나이브 베이즈 분류기’에서는 확률 그래프 모델을 소개하고, 나이브 베이즈 분류기와 다변량 베르누이 분류기를 어떻게 구현하는지 텍스트마이닝 관점에서 살펴본다. 6장, ‘회귀분석과 정규화’에서는 전형적인 선형 회귀와 최소 제곱법 회귀, 릿지 회귀와 정규화 기법에 대해 다루고, 마지막으로 로지스틱 회귀에 대해 살펴본다. 7장, ‘순차적 데이터 모델’에서는 마르코프 프로세스를 은닉 마르코프 모델 구현 전체 과정과 함께 살펴보고, 금융시장 데이터에 대한 패턴 인식 과정에 응용해본 조건부 임의 필드(conditional random field) 기법에 대해서도 살펴본다. 8장, ‘커널 모델과 서포트 벡터 머신’에서는 커널 함수의 개념과 지지 벡터 머신 분류기 및 회귀분석 구현 방법을 살펴보고, 이진 SVM 분류기를 활용한 이상 탐지 방법도 살펴본다. 9장, ‘인공 뉴럴 네트워크’에서는 앞먹임(feed-forward) 신경망과 다층 퍼셉트론(multilayer perceptron) 분류기 구현 방법을 살펴본다. 10장, ‘유전자 알고리즘’에서는 진화 컴퓨팅의 기초를 다루며, 다목적 유전자 알고리즘 구성 요소 각각의 구현에 대해서 살펴본다. 11장, ‘강화 학습’에서는 강화 학습 개념을 소개하고, Q-학습 알고리즘 구현 방법을 학습 기반 분류 시스템을 구축하기 위한 템플릿과 함께 살펴본다. 12, ‘확장 가능한 프레임워크’에서는 기계 학습에서 규모 확장성이 있는 애플리케이션을 개발하기 위한 아티팩트와 프레임워크를 다룬다. 이를 통해 스칼라 병렬 컬렉션, 아카(Akka), 아파치 스파크(Spark) 프레임워크 등을 살펴볼 것이다. 부록 A, ‘기본 개념’에서는 이 책 전체에 쓰인 스칼라 구문, 선형대수 요소에 대해 다루고, 투자와 트레이딩 전략에 대해서도 간단히 소개한다. 부록 B, ‘참고 문헌’은 각 장에서 참고했던 문헌의 목록을 제공한다.

저자 소개

캘리포니아 산타클라라에 있는 델(Dell)의 수석 R&D 엔지니어다. 소프트웨어 공학 분야에서 25년간 활동하며 C++, 자바, 스칼라를 활용한 대규모 애플리케이션을 구축했으며, 프로젝트 관리자 역할을 수행해왔다. 관심 분야는 실시간 분석, 모델링, 최적화 기법이다.

역자 소개

KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재 호주 JNF Soft에서 C++/풀스택 개발자 및 컨설턴트로 일하고 있다. 매일 두 시간씩 번역과 저술을 통해 조금이나마 동료 프로그래머들에게 도움을 주고자 노력하고 있다. 웹이나 모바일 등의 분야에서 값 중심 프로그래밍을 통해 오류 발생 가능성이 적으면서 유지 보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 최근에는 CEF를 기반으로 웹 프론트엔드와 C++ 백엔드를 결합한 흥미로운 프로젝트를 진행 중이며, 함수형 리액티브 프로그래밍을 자바스크립트와 C++에 적용해 좀 더 편하면서 오류도 적은 코드를 생산해내는 방법을 찾으려고 고민 중이다.
『코어 파이썬 애플리케이션 프로그래밍 Third Edition』(에이콘, 2014), 『함수형 파이썬 프로그래밍』 (에이콘, 2017), 『Programming in Scala 3/e』(에이콘, 2017), 『함수형 반응형 프로그래밍』(한빛미디어, 2017), 『Akka 코딩 공작소』(길벗, 2017) 등을 비롯한 십여 권 이상의 책을 번역했다.

머리말

★ 지은이의 말 ★

하루라도 빅데이터에 대해 듣지 않고 그냥 지나가는 날이 없다. 뉴스 미디어, 기술 컨퍼런스, 심지어는 커피숍에서도 말이다. 프로세스 모니터링, 리서치 또는 단순한 인간 행동으로부터 수집되는 데이터양은 계속 증가하고 있지만, 이로부터 지식을 이끌어내야만 가치를 얻을 수 있다. 기계 학습은 데이터로부터 황금(지식)을 캐내는 데 있어 필수적인 도구다.
이 책은 ‘기계 학습이 무엇이고’, ‘왜 스칼라를 선택했으며’, ‘어떻게 활용하는지’에 대해 다룬다.

■ 기계 학습의 목적 및 수학적 기초는 무엇인가?
■ 기계 학습 알고리즘 구현에 스칼라가 왜 이상적인 프로그래밍 언어인가?
■ 실제 문제 해결에 어떻게 기계 학습을 활용할 수 있을까?

이 책 전체에 걸쳐 기계 학습 알고리즘을 다이어그램, 수학 수식, 주석 달린 스칼라 코드 조각을 통해 설명할 것이며, 이를 통해 핵심 개념을 여러분 각자의 방식으로 이해하도록 도울 것이다.


★ 옮긴이의 말 ★

90년대 중반 AI 과목을 대학에서 들을 때만 해도 언제쯤 되야 컴퓨터가 바둑에서 인간을 이길 수 있을지 모르겠다는 이야기를 들었지만, 알파고가 이세돌 사범을 이기면서, 입신의 경지에 이른 기사들이 "알사범"이라고 알파고를 부르는 것을 직접 목도한 것이 불과 몇 개월 전이다. 인간의 모든 인지 사고 능력을 발휘하는 강 인공지능(Strong AI)까지는 아직 거리가 있을지 모르지만, 적어도 특정 분야에서 전문가와 비슷하거나 그 이상의 성능을 발휘하는 약 인공지능(Weak AI) 프로그램은 알파고와 같은 게임이나, 자동 주행 자동차, 각종 이미지 인식, 시리(Siri)와 같은 시스템, 전문가 시스템 등등 우리 삶의 곳곳에서 널리, 깊이 쓰이고 있다.
이런 변화에는 병렬 처리 기술과 딥러닝 등의 발달이 큰 역할을 했다. 또한, 이런 기계 학습 기법과 빅데이터의 방대한 데이터 처리 능력을 결합하면 이전에는 제공하지 못했던 가치있는 정보를 제공할 수 있고, 다양한 범위에서 사람들을 이롭게 할 수 있을 것이다. 이런 변화의 물결에 올라타기 위한 가장 좋은 도구 중 하나가 스칼라다. 스칼라를 활용하면 기존의 방대한 자바 에코시스템을 그대로 활용할 수 있으면서, 최근 빅데이터 처리의 킬러 앱 중 하나인 스파크(Spark)을 통해 큰 데이터를 쉽게 처리할 수 있다. 또한 스파크를 기반으로 요즘 활발하게 개발 중인 여러 기계 학습 알고리즘 라이브러리를 활용할 수도 있다.
이 책은 스칼라를 기계 학습에 활용하고 싶은 독자들에게 좋은 안내서가 될 것이다. 스칼라를 활용한 데이터 처리 기법이나 스파크에 대한 간략한 소개를 통해 기계 학습에 스칼라를 활용할 때 사용할 수 있는 기본적인 도구를 갖출 수 있다. 또한, 데이터 전처리, 비감독 학습, 베이지안 분석, 회귀와 정규화, 은닉 마코프 모델, SVM, 인공 뉴럴 네트워크, 유전자 알고리즘, 강화 학습 등의 수학적인 기초와 스칼라 구현 방법을 소개하며, 그 구현을 활용해 실제 금용 데이터의 트렌드를 어떻게 분석하는지를 보여줌으로써 실제 어떤 식으로 각종 알고리즘을 적용할 수 있고 각각의 장단점은 무엇인지를 배울 수 있다. 아무쪼록 이 책이 스칼라를 기계 학습에 활용하려고 마음먹은 여러 독자들에게 좋은 출발점이 되기를 바란다.

목차

목차
1장. 시작하며
__관심 있는 독자를 위한 수식 표기법
__기계 학습이란 무엇인가
____분류
____예측
____최적화
____회귀
__왜 스칼라인가
____추상화
____규모 확장성
____설정성
____유지 보수성(Maintainability)
____요구불 연산
__모델의 범주
__기계 학습 알고리즘 분류체계
____비감독 학습
__________군집화
__________차원 축소
____감독 학습
__________생성 모델
__________식별 모델
____강화 학습
__도구 및 프레임워크
____자바
____스칼라
____아파치 커먼스 수학(Apache Commons Math)
__________설명
__________라이선스
__________설치
____JFreeChart
__________설명
__________라이선스
__________설치
____기타 라이브러리 및 프레임워크
__소스 코드
____맥락과 뷰 바운드
____코드 표시
____기본 타입 및 암시
__________기본 타입
__________타입 변환
__________연산자
____변경 불가능성
____스칼라 이터레이터의 성능
__최종 점검
____계산 워크플로우 개요
____간단한 워크플로우 작성
__________데이터 집합 선택
____데이터 집합 적재
__________데이터 집합 전처리
__________모델 생성 (학습)
__________데이터 분류
__요약
2장. Hello, World!
__모델링
____모델의 다른 이름
____모델 vs. 설계
____모델 특성 선택
____특성 추출
__워크플로우 설계
____계산 프레임워크
____파이프 연산자
____모나딕 데이터 변환
____의존관계 주입
____워크플로우 모듈
____워크플로우 팩토리
____워크플로우 구성 요소 예제
__________전처리 모듈
__________군집화 모듈
__모델 평가하기
____검증
__________핵심 지표
__________구현
____K-폴드 교차 검증
____편향-분산 분해
____과적합
__요약
3장. 데이터 전처리
__시계열
__이동 평균
____단순 이동 평균
____가중 이동 평균
____지수 이동 평균
__푸리에 분석
____이산 푸리에 변환(DFT)
____DFT 기반 필터링
____시장 사이클 감지하기
__칼만 필터
____상태 공간 추정
__________천이식
__________측정식
____재귀 알고리즘
__________예측
__________보정
__________칼만 평활화
__________실험
__다른 전처리 기법들
__요약
4장. 비감독 학습
__군집화
____K-평균 군집화
__________유사도 측정하기
__________K-평균 알고리즘 개괄
__________1단계: 군집 설정
__________2단계: 군집 할당
__________3단계: 반복적인 재구축
__________차원의 저주
__________실험
__________군집의 개수 튜닝하기
__________검증
____기대값 최대화 알고리즘
__________가우스 혼합 모델
__________EM 개괄
__________구현
__________테스트
__________온라인 EM
__차원 축소
____주성분 분석(PCA)
__________알고리즘
__________구현
__________테스트 케이스
__________평가
____다른 차원 축소 기법
__성능 고려 사항
____K-평균
____EM
____PCA
__요약
5장. 나이브 베이즈 분류기
__확률적 그래프 모델
__나이브 베이즈 분류기
____다항 나이브 베이즈 소개
__________정식화
__________빈도주의자(frequentist)의 관점
__________예측 모델
__________0-빈도 문제
____구현
__________소프트웨어 설계
__________훈련
__________분류
__________레이블 붙이기
__________결과
__다변량 베르누이 분류
____모델
____구현
__나이브 베이즈와 텍스트 마이닝
____정보 추출의 기본
____구현
__________용어 추출
__________용어 점수 매기기
____테스트
__________텍스트 정보 가져오기
__________평가
__장점과 단점
__요약
6장. 회귀분석과 정규화
__선형 회귀
____1-변량 선형 회귀
__________구현
__________테스트 케이스
____일반 최소 제곱 회귀
__________설계
__________구현
__________테스트 케이스 1: 추세
__________테스트 케이스 2: 특성 선택
__정규화
____Ln 거칠기 벌점
____리지 회귀
__________구현
__________테스트 케이스
__수치 최적화
__로지스틱 회귀
____로짓 함수
____이항 분류
____소프트웨어 설계
____훈련 워크플로우
__________최소 제곱 최적화기 설정하기
__________자코비안 행렬 계산하기
__________종료 조건 정의하기
__________최소 제곱 문제 정의하기
__________손해 함수 최소화하기
__________테스트
____분류
__요약
7장. 순차적 데이터 모델
__마코프 결정 과정
____마코프 특성
____1차 이산 마코프 체인
__은닉 마코프 모델(HMM)
____표기법
____람다 모델
____HMM 실행 상태
____평가(CF-1)
__________알파 클래스(전방 변수)
__________베타 클래스(역방향 변수)
____훈련(CF-2)
__________바움-웰치 추정기
____디코딩(CF-3)
__________비터비 알고리즘
____하나로 합치기
____테스트 케이스
____시계열 분석을 위한 은닉 마코프 모델
__조건부 임의 필드
____CRF 소개
____선형 체인 CRF
__CRF와 텍스트 분석
____특성 함수 모델
____소프트웨어 설계
____구현
__________훈련 집합 만들기
__________태그 만들기
__________데이터 시퀀스 추출하기
__________CRF 제어 매개변수
__________하나로 합치기
____테스트
__________훈련 수렴 프로파일
__________훈련 집합 크기에 따른 영향
__________L2 정규화 요소의 영향
__CRF와 HMM 비교
__성능상 고려
__요약
8장. 커널 모델과 서포트 벡터 머신
__커널 함수
____개요
____일반적인 판별 커널
__서포트 벡터 머신
____선형 SVM
__________분리 가능한 경우(하드 마진)
__________분리 불가능한 경우(소프트 마진)
____비선형 SVM
__________최대 마진 분류
__________커널 트릭
__서포트 벡터 분류기
____이진 SVC
________LIBSVM
________소프트웨어 설계
________설정 매개변수
________SVM구현
________C-벌점과 마진
________커널 평가
________위험 분석에 적용하기
__1-분류 SVC를 사용해 변칙성 감지하기
__서포트 벡터 회귀
____개괄
____SVR vs. 선형 회귀
__성능상 고려할 점
__요약
9장. 인공 뉴럴 네트워크
__앞먹임 뉴럴 네트워크
____생물학적 배경
____수학적 배경
__다층 퍼셉트론
____활성화 함수
____네트워크 구조
____소프트웨어 설계
____모델 정의
________계층
________시냅스
________연결
____훈련 사이클/에포크
________1단계: 입력 전방 전파
________2단계: 오차 제곱 합
________3단계: 오차 역전파
________4단계: 시

top