머신러닝 엔지니어링

데이터 수집부터 특징 공학, 모델 평가, 배포, 유지보수까지

안드리 부르코프 저/구정회 역 | 제이펍 | 2022년 03월 23일 | PDF

이용가능환경 : Windows/Android/iOS 구매 후, PC, 스마트폰, 태블릿PC에서 파일 용량 제한없이 다운로드 및 열람이 가능합니다.

구매

종이책 정가 28,000원

전자책 정가 19,600원

판매가 19,600원

도서소개

머신러닝 설루션 구축 모범 사례와 설계 패턴이 가득한 책!

11개 언어로 출판된 베스트셀러 『The Hundred-Page Machine Learning Book』의 저자 안드리 부르코프가 15년간 인공지능 관련 문제를 해결한 경험과 함께, 업계 리더들의 출판 경험을 바탕으로 이 책을 집필하였다.

저자소개

저 : 안드리 부르코프 (Andriy Burkov)
두 아이의 아빠이자 캐나다 퀘벡 시에서 머신 러닝 전문가로 활동하고 있다. 9년 전 AI 분야로 박사 학위를 취득한 후 6년 동안 가트너에서 머신 러닝 수석 개발자로 일하고 있다. 전문 분야는 자연어 처리다. 현재 팀에서 표층 학습 기법과 심층 학습 기법을 모두 적용해 최첨단 텍스트 추출 및 정규화 시스템을 개발하고 있다.

역 : 구정회
연세대학교 전자공학과를 졸업하고 포항공과대학교 대학원 전자전기공학과에서 컴퓨터 비전을 전공하였으며, 삼성전자 입사 후에 학술연수 프로그램에 선발되어 연세대학교에서 통신신호처리 전공으로 박사 학위를 취득했다. 현재는 삼성 리서치에서 딥러닝 기반 비전 기술을 연구 및 개발하고 있다. 보코더(vocoder)와 DSP 펌웨어 개발로 산업계 경력을 시작하였고, 국산화 과제(CDMA 모뎀, Tizen 플랫폼) 개발과 함께 이를 적용한 관련 제품 개발 및 상품화에 참여했다.

감사하게도 인공지능의 몇 차례 빙하기를 이겨낸 앞선 연구자들의 어깨를 빌려 다시 컴퓨터 비전 관련 딥러닝 연구를 이어가고 있다. 이것이 마지막 연구 주제가 되었으면 하는 바람과 조금은 더 선한 영향력을 꿈꾸며, 날마다 쏟아져 나오는 새로운 딥러닝 관련 홍수 속에서 하루하루 발견하는 즐거움을 찾고 있다.

밥벌이를 시작하면서 한 장의 영화 팸플릿에 담긴 사람들의 노고가 와 닿아 영화 팸플릿을 수집하는 취미를 갖게 되었고, 어느덧 책 읽기는 책을 사 모으는 즐거움으로 변질되어 나날이 늘어나는 책장 덕에 안주인의 사랑스런 눈치를 보며 두 자녀와 행복하게 살고 있다.

목차소개

추천사 xii
옮긴이 머리말 xv
머리말 xvii
베타리더 후기 xix

CHAPTER 01 도입?

1.1 표기법 및 정의?
1.1.1 자료 구조? / 1.1.2 대문자 시그마 표기법?
1.2 머신러닝이란??
1.2.1 지도학습? / 1.2.2 비지도학습?
1.2.3 준지도학습? / 1.2.4 강화학습?
1.3 데이터와 머신러닝 용어?
1.3.1 직접적/간접적으로 사용하는 데이터? / 1.3.2 원시 데이터와 깔끔한 데이터?
1.3.3 훈련 및 홀드아웃 세트 / 1.3.4 기준점
1.3.5 머신러닝 파이프라인 / 1.3.6 매개변수와 초매개변수
1.3.7 분류와 회귀 / 1.3.8 모델 기반 학습과 인스턴스 기반 학습
1.3.9 얕은 학습과 딥러닝 / 1.3.10 훈련과 채점
1.4 머신러닝을 사용해야 할 때
1.4.1 문제가 너무 복잡해서 코딩으로 해결할 수 없을 때
1.4.2 문제가 지속적으로 변할 때
1.4.3 지각 문제일 때
1.4.4 연구되지 않은 현상일 때
1.4.5 문제의 목적이 단순할 때
1.4.6 비용 효율적인 경우
1.5 머신러닝을 사용하지 말아야 할 때
1.6 머신러닝 엔지니어링이란?
1.7 머신러닝 프로젝트 수명주기
1.8 요약

CHAPTER 02 프로젝트 시작 전

2.1 머신러닝 프로젝트의 우선순위 결정
2.1.1 머신러닝의 영향 / 2.1.2 머신러닝의 비용
2.2 머신러닝 프로젝트의 복잡도 추정
2.2.1 미리 알 수 없는 것 / 2.2.2 문제 단순화
2.2.3 비선형적 훈련 진행
2.3 머신러닝 프로젝트의 목표 정의
2.3.1 모델이 할 수 있는 작업 / 2.3.2 성공적인 모델의 속성
2.4 머신러닝팀 구성
2.4.1 두 가지 개발 문화 / 2.4.2 머신러닝팀의 구성원
2.5 머신러닝 프로젝트가 실패하는 이유
2.5.1 숙련된 개발자 부족 / 2.5.2 경영진의 지원 부족
2.5.3 데이터 인프라 부족 / 2.5.4 데이터 레이블링의 어려움
2.5.5 고립된 조직과 협업 부족 / 2.5.6 기술적으로 실행 불가능한 프로젝트
2.5.7 기술팀과 비즈니스팀 간의 소통 부족
2.6 요약

CHAPTER 03 데이터 수집 및 준비

3.1 데이터에 대한 질문
3.1.1 데이터를 구할 수 있는가? / 3.1.2 데이터 세트의 크기가 충분히 큰가?
3.1.3 데이터를 사용할 수 있나? / 3.1.4 데이터를 이해할 수 있나?
3.1.5 데이터를 신뢰할 수 있나?
3.2 일반적인 데이터 관련 문제
3.2.1 높은 비용 / 3.2.2 품질 불량 / 3.2.3 잡음 / 3.2.4 편향
3.2.5 낮은 예측력 / 3.2.6 오래된 견본 / 3.2.7 특잇값 / 3.2.8 데이터 누출
3.3 좋은 데이터란?
3.3.1 좋은 데이터는 유익함
3.3.2 좋은 데이터는 넓은 적용 범위를 가짐
3.3.3 좋은 데이터는 실제 입력을 반영함
3.3.4 좋은 데이터는 편향되지 않음
3.3.5 좋은 데이터는 피드백 루프의 결과가 아님
3.3.6 좋은 데이터의 레이블은 일관됨
3.3.7 좋은 데이터는 충분히 큼
3.3.8 좋은 데이터 요약
3.4 상호 작용 데이터 처리
3.5 데이터 누출의 원인
3.5.1 목표가 특징의 함수인 경우 / 3.5.2 목표가 특징에 숨어 있는 경우
3.5.3 미래를 반영하는 특징
3.6 데이터 분할
3.6.1 분할 중 누출
3.7 결측 속성 처리
3.7.1 결측값 대체 기술 / 3.7.2 대체 중 누출
3.8 데이터 증강
3.8.1 이미지 데이터 증강 / 3.8.2 텍스트 데이터 증강
3.9 불균형 데이터 처리
3.9.1 오버샘플링 / 3.9.2 언더샘플링
3.9.3 하이브리드 전략
3.10 데이터 샘플링 전략
3.10.1 단순 랜덤 샘플링 / 3.10.2 체계적인 샘플링
3.10.3 계층화된 샘플링
3.11 데이터 저장
3.11.1 데이터 형식 / 3.11.2 데이터 저장소 레벨
3.11.3 데이터 버전 관리 / 3.11.4 문서화와 메타데이터
3.11.5 데이터 수명주기
3.12 데이터 처리 모범 사례
3.12.1 재현성 / 3.12.2 데이터 우선, 알고리즘은 그 다음
3.13 요약

CHAPTER 04 특징 공학

4.1 특징 공학을 사용하는 이유
4.2 특징 공학을 사용하는 방법
4.2.1 텍스트에 대한 특징 공학 / 4.2.2 단어 가방의 작동 원리
4.2.3 범주형 특징을 숫자로 변환 / 4.2.4 특징 해싱
4.2.5 주제 모델링 / 4.2.6 시계열 특징 / 4.2.7 창의력 활용
4.3 특징 쌓기
4.3.1 특징 벡터 쌓기 / 4.3.2 개별 특징 쌓기
4.4 좋은 특징의 특성
4.4.1 높은 예측력 / 4.4.2 빠른 계산 능력 / 4.4.3 신뢰성
4.4.4 비상관성 / 4.4.5 기타 특성
4.5 특징 선택
4.5.1 긴 꼬리 자르기 / 4.5.2 보루타
4.5.3 L1-정규화 / 4.5.4 과제별 특징 선택
4.6 특징 합성
4.6.1 특징 이산화 / 4.6.2 관계형 데이터에서 특징 합성
4.6.3 데이터로부터 특징 합성 / 4.6.4 다른 특징으로부터 특징 합성
4.7 데이터를 통한 특징 학습
4.7.1 단어 임베딩 / 4.7.2 문서 임베딩
4.7.3 모든 객체에 대한 임베딩 / 4.7.4 임베딩 차원 선택
4.8 차원 축소
4.8.1 PCA를 통한 빠른 차원 축소 / 4.8.2 시각화를 위한 차원 축소
4.9 특징 스케일링
4.9.1 정규화 / 4.9.2 표준화
4.10 특징 공학에서 데이터 누출
4.10.1 잠재적인 문제 / 4.10.2 설루션
4.11 특징 저장과 문서화
4.11.1 스키마 파일 / 4.11.2 특징 저장소
4.12 특징 공학 모범 사례
4.12.1 여러 가지 간단한 특징 생성 / 4.12.2 기존 시스템 재사용
4.12.3 필요한 경우에만 식별자를 특징으로 사용 / 4.12.4 가능하면 크기를 줄인다
4.12.5 계수 사용은 신중하게 / 4.12.6 특징은 필요할 때 선택
4.12.7 코드 테스트는 주의 깊게 / 4.12.8 코드, 모델, 데이터의 동기화 상태 유지
4.12.9 특징 추출 코드 분리 / 4.12.10 모델과 특징 추출기를 함께 직렬화
4.12.11 특징값 기록
4.13 요약

CHAPTER 05 지도 모델 훈련(1부)

5.1 모델 개발을 시작하기 전에
5.1.1 스키마 적합성 검증 / 5.1.2 달성 가능한 성능 수준 정의
5.1.3 성능 지표 선택 / 5.1.4 올바른 기준선 선택
5.1.5 데이터를 세 개의 세트로 분할 / 5.1.6 지도학습의 전제 조건
5.2 머신러닝을 위한 레이블 표현
5.2.1 다중 클래스 분류 / 5.2.2 다중 레이블 분류
5.3 학습 알고리즘 선택
5.3.1 학습 알고리즘의 주요 특성 / 5.3.2 알고리즘 스팟 검사
5.4 파이프라인 구축
5.5 모델 성능 평가
5.5.1 회귀 분석의 성능 지표 / 5.5.2 분류의 성능 지표
5.5.3 순위를 위한 성능 지표
5.6 초매개변수 조정
5.6.1 그리드 검색 / 5.6.2 랜덤 검색
5.6.3 무작위-미세한 검색 / 5.6.4 기타 기술
5.6.5 교차 검증
5.7 얕은 모델 훈련
5.7.1 얕은 모델 훈련 전략 / 5.7.2 모델 저장 및 복원
5.8 편향-분산 간 절충
5.8.1 과소적합 / 5.8.2 과적합 / 5.8.3 절충
5.9 정규화
5.9.1 L1 및 L2 정규화 / 5.9.2 다른 형태의 정규화
5.10 요약

CHAPTER 06 지도 모델 훈련(2부)

6.1 심층 모델 훈련 전략
6.1.1 신경망 훈련 전략 / 6.1.2 성능 지표 및 비용 함수
6.1.3 매개변수 초기화 전략 / 6.1.4 최적화 알고리즘
6.1.5 학습률 감소 스케줄 / 6.1.6 정규화
6.1.7 네트워크 크기 검색 및 초매개변수 조정 / 6.1.8 다중 입력 처리
6.1.9 다중 출력 처리 / 6.1.10 전이 학습
6.2 모델 쌓기
6.2.1 앙상블 학습 유형 / 6.2.2 모델 쌓기 알고리즘
6.2.3 모델을 쌓을 때 데이터 누출
6.3 분포 이동 처리
6.3.1 분포 이동 유형 / 6.3.2 적대적 검증
6.4 불균형 데이터 세트 처리
6.4.1 클래스 가중치 / 6.4.2 다시 샘플링한 데이터 세트 앙상블
6.4.3 기타 기술
6.5 모델 교정
6.5.1 잘 교정된 모델 / 6.5.2 교정 기술
6.6 문제 해결 및 오류 분석
6.6.1 모델의 성능이 떨어지는 이유 / 6.6.2 반복적 모델 개선
6.6.3 오류 분석 / 6.6.4 복잡한 시스템의 오류 분석
6.6.5 부분 지표 사용 / 6.6.6 잘못된 레이블 수정
6.6.7 추가로 레이블링할 견본 찾기 / 6.6.8 딥러닝 문제 해결
6.7 모범 사례
6.7.1 좋은 모델 제공 / 6.7.2 검증된 오픈소스 활용
6.7.3 비즈니스별 성능 측정 최적화 / 6.7.4 밑바닥부터 개선
6.7.5 연속적인 정정 방지 / 6.7.6 연속된 모델은 주의해서 사용
6.7.7 효율적인 코드 작성, 컴파일, 병렬화
6.7.8 최신 데이터와 이전 데이터에 대한 테스트
6.7.9 똑똑한 알고리즘보다 더 많은 데이터가 좋음
6.7.10 새로운 데이터가 좀 더 좋은 특징보다 뛰어남
6.7.11 작은 진전의 수용
6.7.12 용이한 재현성
6.8 요약

CHAPTER 07 모델 평가

7.1 오프라인 평가와 온라인 평가
7.2 A/B 테스트
7.2.1 G-테스트 / 7.2.2 Z-테스트
7.2.3 결론 및 주의사항
7.3 멀티 암드 밴딧
7.4 모델 성능에 대한 통계적 한계
7.4.1 분류 오류에 대한 통계 구간 / 7.4.2 부트스트래핑 통계 구간
7.4.3 회귀를 위한 부트스트래핑 예측 구간
7.5 테스트 세트 적합성 평가
7.5.1 뉴런 커버리지 / 7.5.2 돌연변이 테스트
7.6 모델 특성 평가
7.6.1 강건성 / 7.6.2 공정성
7.7 요약

CHAPTER 08 모델 배포

8.1 정적 배포
8.2 사용자 기기에 동적 배포
8.2.1 모델 매개변수 배포 / 8.2.2 직렬화된 객체 배포
8.2.3 브라우저에 배포 / 8.2.4 장점과 단점
8.3 서버에 동적 배포
8.3.1 가상 머신에 배포 / 8.3.2 컨테이너에 배포
8.3.3 서버리스 배포 / 8.3.4 모델 스트리밍
8.4 배포 전략
8.4.1 단일 배포 / 8.4.2 자동 배포
8.4.3 카나리 배포 / 8.4.4 멀티 암드 밴딧
8.5 자동화된 배포, 버전 관리, 메타데이터
8.5.1 모델에 수반하는 항목 / 8.5.2 버전 동기화
8.5.3 모델 버전 관리를 위한 메타데이터
8.6 모델 배포 모범 사례
8.6.1 알고리즘 효율성 / 8.6.2 심층 모델 배포
8.6.3 캐싱 / 8.6.4 모델 및 코드에 대한 전달 형식
8.6.5 간단한 모델로 시작 / 8.6.6 외부인에 대한 테스트
8.7 요약

CHAPTER 09 모델 서빙, 모니터링, 유지보수

9.1 모델 서빙 런타임의 특성
9.1.1 보안 및 정확성 / 9.1.2 배포 용이성
9.1.3 모델 유효성 보장 / 9.1.4 복구 용이성
9.1.5 훈련/서빙 왜곡 방지 / 9.1.6 숨겨진 피드백 루프 방지
9.2 모델 서빙 모드
9.2.1 배치 모드 서빙 / 9.2.2 인간에 대한 주문형 서빙
9.2.3 머신에 대한 주문형 서빙
9.3 현실에서의 모델 서빙
9.3.1 오류에 대한 대비 / 9.3.2 오류 처리
9.3.3 변화에 대한 준비 및 대처 / 9.3.4 인간 본성에 대한 준비 및 대처
9.4 모델 모니터링
9.4.1 무엇이 잘못될 수 있는가? / 9.4.2 모니터링 대상 및 방법
9.4.3 기록할 내용 / 9.4.4 남용 감시
9.5 모델 유지보수
9.5.1 업데이트 시기 / 9.5.2 업데이트 방법
9.6 요약

CHAPTER 10 결론

10.1 핵심 요점
10.2 다음에 읽을 내용
10.3 감사의 말

회원리뷰 (0)

현재 회원리뷰가 없습니다.

첫 번째 리뷰를 남겨주세요!