책 소개
요약
복잡한 수식과 코드 없이 머신러닝과 딥러닝을 배우는 데 꼭 필요한 이론을 배울 수 있도록 구성했다. 필수로 익혀야 하는 통계 이론과 머신러닝의 기초 지식, 여러 딥러닝 구조와 응용 분야를 최대한 쉽게 풀어냈다. 딥러닝 입문자가 핵심적인 이론을 이해할 수 있도록 그림 설명을 제공하며, 코드를 작성할 준비가 됐을 때 활용할 수 있는 파이썬 예제를 별도로 제공한다.
이 책에서 다루는 내용
◆ 텍스트 생성기로 이야기와 기사를 만드는 방법
◆ 인간 게임에서 딥러닝 시스템이 승리하도록 학습하는 방법
◆ 이미지 분류 시스템으로 사진 속 사물이나 사람을 식별하는 방법
◆ 일상생활에서 확률을 유용하게 활용하는 방법
◆ 머신러닝 기술로 현대 AI에 기여하는 방법
이 책의 대상 독자
딥러닝이 어떻게 동작하는지 관심 있는 사람을 위해 이 책을 썼다. 수학이나 프로그래밍 경험은 필요 없다. 컴퓨터 전문가나 기술자일 필요도 전혀 없다.
딥러닝의 알고리듬 대부분이 그리 복잡하거나 이해하기 어렵지 않다는 것에 놀랄지도 모른다. 이들은 대개 단순하고 우아하며 대형 데이터베이스를 통해 수백만 번 반복해 힘을 얻게 된다.
순수하게 지적 호기심을 충족시키고 싶은 사람이나 딥러닝을 다루는 다른 사람과 교류하는 사람이 읽기에도 좋다. AI를 이해하면 좋은 이유 중 하나는 AI를 활용할 수 있다는 것이다. 이 책을 통해 일을 더 잘하고 취미를 더 깊게 즐기고 주변 세상을 더욱 완전하게 이해할 수 있도록 도와주는 인공지능 시스템을 구축할 수 있을 것이다.
이 책의 구성
1장, '머신러닝 개요’에서는 큰 그림을 보면서 머신러닝이 어떻게 동작하는지에 대한 발판을 마련한다.
2장, ‘필수 통계’에서는 데이터에서 패턴을 찾고 설명할 수 있게 해준다.
3장, ‘성능 측정’에서는 측정할 방법을 신중하게 선택해 알고리듬이 “잘못”된 상황은 실제로 무엇을 의미하는지 설명할 수 있다.
4장, ‘베이즈 규칙’에서는 기댓값(expectations)과 지금까지 확인한 결과들을 모두 고려해 알고리듬이 올바른 결과를 제공할 수 있는 우도(likelihood)에 대해 살펴본다.
5장, ‘곡선과 표면’에서는 학습 알고리듬을 다루는 데 도움이 되도록 곡선과 표면이 어떻게 생겼는지 설명한다.
6장, ‘정보 이론'에서는 정보를 표현하고 수정하는 아이디어로 다양한 유형의 정보를 정량화하고 측정할 수 있게 해준다.
7장, ‘분류’에서는 컴퓨터가 데이터 조각에 특정 클래스나 범주를 할당하는 문제를 해결하기 위한 기본 아이디어를 살펴본다.
8장, ‘훈련과 테스팅’에서는 실제로 활용할 수 있는 딥러닝 시스템의 구축을 위해 성능을 테스트한다.
9장, ‘과적합과 과소적합’에서는 훈련 시 사용한 데이터를 외워 처음 본 데이터 처리를 더 못하는 문제가 어디에서 발생하는지, 어떻게 영향을 줄일 수 있는지 알아본다.
10장, ‘데이터 준비’에서는 학습할 많은 데이터를 제공해 딥러닝 시스템을 훈련한다. 가능한 한 효과적으로 학습하고자 이 데이터를 어떻게 준비해야 하는지 알아본다.
11장, ‘분류기’에서는 데이터를 분류하기 위한 구체적인 머신러닝 알고리듬을 알아본다. 이러한 방법들은 딥러닝 시스템을 훈련시키고자 시간과 노력을 투자하기 전에 데이터를 파악하는 좋은 방법이다.
12장, ‘앙상블’에서는 아주 간단한 학습 시스템을 훨씬 더 강력한 복합 시스템으로 결합시키는 방법을 다룬다.
13장, ‘신경망’에서는 인공 뉴런과 이것들을 어떻게 연결해서 네트워크를 만드는지 살펴본다. 이러한 네트워크들은 딥러닝의 기반을 구성한다.
14장, ‘역전파’에서는 신경망을 실용적으로 만드는 핵심 알고리듬은 데이터에서 학습할 수 있게 훈련시키는 방법을 다룬다.
15장, ‘옵티마이저’에서는 심층 네트워크를 훈련하는 두 번째 알고리듬의 성능 향상을 효과적으로 수행하기 위한 다양한 방법을 알아본다.
16장, ‘컨볼루션 신경망’에서는 영상과 같은 공간 데이터를 처리할 수 있는 강력한 알고리듬과 그것들이 어떻게 사용되는지 알아본다.
17장, ‘실제 컨볼루션 신경망’에서는 공간 정보를 다루는 기술을 어떻게 활용할 수 있는지 자세히 알아본다.
18장, ‘오토인코더’에서는 대규모 데이터 세트를 단순화하고 노이즈를 제거해 손상된 이미지를 정제하는 방법을 다룬다.
19장, ‘순환 신경망’에서는 텍스트와 오디오 클립 같은 시퀀스를 작업할 때 필요한 특별한 도구를 살펴본다.
20장, ‘어텐션과 트랜스포머’에서는 텍스트를 해석하고 생성하도록 설계된 알고리듬을 알아본다.
21장, ‘강화학습’에서는 컴퓨터가 제공하기를 원하는 답을 모르는 문제를 유연하게 해결하는 방법을 살펴본다.
22장, ‘생성적 적대 신경망’에서는 갖고 있는 데이터의 새로운 인스턴스를 창조하거나 생성하는 생성기를 훈련시킬 수 있는 강력한 방법을 알아본다.
23장, ‘창의적인 애플리케이션’에서는 사이키델릭한 이미지를 만들고, 예술가의 시그니처 스타일을 사진에 적용하고, 어떤 작가의 스타일로든 새로운 텍스트를 생성하기 위한 딥러닝 도구를 적용해본다.
상세 이미지
목차
목차
- 1부. 기본 개념
- 1장. 머신러닝 개요
- 전문가 시스템
- 지도학습
- 비지도학습
- 강화학습
- 딥러닝
- 요약
- 2장. 필수 통계
- 무작위성 설명
- 확률 변수와 확률 분포
- 몇 가지 일반적인 분포
- 연속 분포
- 이산 분포
- 확률 변수의 집합
- 기댓값
- 의존성
- 독립 항등 분포된 변수
- 추출과 복원
- 복원 추출
- 비복원 추출
- 부트스트랩
- 공분산과 상관관계
- 공분산
- 상관관계
- 통계가 모든 것을 말해주지는 않는다
- 고차원 공간
- 요약
- 3장. 성능 측정
- 확률의 여러 유형
- 다트 던지기
- 단순 확률
- 조건부 확률
- 결합 확률
- 주변 확률
- 정확도 측정
- 샘플 분류
- 혼동 행렬
- 잘못된 예측값 특성화
- 옳고 그름의 측정
- 정확도
- 정밀도
- 재현율
- 정밀도-재현율 트레이드오프
- 오해의 소지가 있는 측정지표
- f1 점수
- 용어
- 기타 측정지표
- 혼동 행렬을 올바르게 구성하기
- 요약
- 4장. 베이즈 규칙
- 빈도주의와 베이지안 확률
- 빈도주의적 접근
- 베이지안 접근법
- 빈도주의자 대 베이지안 주의자
- 빈도주의자의 동전 던지기
- 베이지안의 동전 던지기
- 동기 부여 예제
- 동전 확률 그리기
- 동전 던지기를 확률로 표현하기
- 베이즈 규칙
- 베이즈 규칙에 대한 논의
- 베이즈 규칙과 혼동 행렬
- 베이즈 규칙 반복
- 사후 확률-사전 확률 루프
- 베이즈 루프 실습
- 다중 가설
- 요약
- 5장. 곡선과 표면
- 함수의 본질
- 미분
- 최댓값과 최솟값
- 접선
- 미분으로 최솟값과 최댓값 찾기
- 그래디언트
- 물, 중력, 그래디언트
- 경사도로 최댓값과 최솟값 찾기
- 안장점
- 요약
- 6장. 정보 이론
- 놀라움과 맥락
- 놀라움 이해
- 맥락 풀기
- 정보 측정
- 적응형 코드
- 모스 말하기
- 모스 부호 커스터마이징
- 엔트로피
- 교차 엔트로피
- 두 개의 적응형 코드
- 코드 사용
- 실전에서의 교차 엔트로피
- 쿨백-라이블러 발산
- 요약
- 2부. 머신러닝 기초
- 7장. 분류
- 이진 분류
- 2D 다중 클래스 분류
- 다중 클래스 분류
- 하나 대 나머지
- 하나 대 하나
- 클러스터링
- 차원의 저주
- 차원과 밀도
- 고차원의 기이함
- 요약
- 8장. 훈련과 테스팅
- 훈련
- 성능 테스트
- 테스트 데이터
- 검증 데이터
- 교차 검증
- k-폴드 교차 검증
- 요약
- 9장. 과적합과 과소적합
- 좋은 적합 찾기
- 과적합
- 과소적합
- 과적합의 탐지와 해결
- 얼리스토핑
- 일반화
- 편향과 분산
- 기저 데이터에 일치시키기
- 높은 편향, 낮은 분산
- 낮은 편향, 높은 분산
- 곡선 비교
- 베이즈 규칙으로 선 적합하기
- 요약
- 10장. 데이터 준비
- 기본 데이터 정제
- 일관성의 중요성
- 데이터 유형
- 원핫 인코딩
- 정규화와 표준화
- 정규화
- 표준화
- 변환 기억하기
- 변환 유형
- 슬라이스 처리
- 샘플별 처리
- 피처별 처리
- 요소별 처리
- 역변환
- 교차 검증의 정보 유출
- 데이터 세트 축소
- 피처 선택
- 차원 축소
- 주성분 분석
- 단순 이미지를 위한 PCA
- 실제 이미지에 대한 PCA
- 요약
- 11장. 분류기
- 분류기의 유형
- k-최근접 이웃
- 의사결정 트리
- 트리 소개
- 의사결정 트리 사용
- 과적합 트리
- 노드 분할
- 서포트 벡터 머신
- 기본 알고리듬
- SVM 커널 트릭
- 나이브 베이즈
- 분류기 비교
- 요약
- 12장. 앙상블
- 투표
- 의사결정 트리의 앙상블
- 배깅
- 랜덤 포레스트
- 엑스트라 트리
- 부스팅
- 요약
- 3부. 딥러닝 기본
- 13장. 신경망
- 실제 뉴런
- 인공 뉴런
- 퍼셉트론
- 현대 인공 뉴런
- 뉴런 그리기
- 피드포워드 네트워크
- 신경망 그래프
- 가중치 초기화
- 딥 네트워크
- 완전 연결 레이어
- 텐서
- 네트워크 붕괴 방지
- 활성화 함수
- 직선 함수
- 계단 함수
- 구간 선형 함수
- 매끄러운 함수
- 활성화 함수 갤러리
- 활성화 함수 비교
- 소프트맥스
- 요약
- 14장. 역전파
- 높은 수준에서의 훈련 개요
- 오류 처벌하기
- 학습을 위한 느린 방법
- 경사 하강법
- 개요
- 작은 신경망에서의 역전파
- 출력 뉴런의 델타 찾기
- 가중치 변경을 위해 델타 사용
- 다른 뉴런의 델타
- 더 큰 네트워크에서의 역전파
- 학습률
- 이진 분류기 구축
- 학습률 선택
- 훨씬 더 작은 학습률
- 요약
- 15장. 옵티마이저
- 2D 곡선 오류
- 학습률 조정
- 일정한 크기로 업데이트
- 시간에 따라 학습률을 변화
- 감쇠 스케줄
- 업데이트 전략
- 배치 경사 하강법
- 확률적 경사 하강법
- 미니배치 경사 하강법
- 경사 하강법 변형
- 모멘텀
- 네스테로프 모멘텀
- Adagrad
- Adadelta와 RMSprop
- Adam
- 옵티마이저 선택
- 일반화
- 드롭아웃
- 배치 정규화
- 요약
- 4부. 기초를 넘어
- 16장. 컨볼루션 신경망
- 컨볼루션 소개
- 노란색 탐지
- 가중치 공유
- 더 큰 필터
- 필터와 피처
- 패딩
- 다차원 컨볼루션
- 다중 필터
- 컨볼루션 레이어
- 1D 컨볼루션
- 1×1 컨볼루션
- 출력 크기 변경
- 풀링
- 스트라이드
- 전치 컨볼루션
- 필터의 계층 구조
- 가정 단순화
- 안면 마스크 찾기
- 눈, 코, 입 찾기
- 필터 적용
- 요약
- 17장. 실제 컨볼루션 신경망
- 손 글씨 분류
- VGG16
- 필터 시각화 1부
- 필터 시각화 2부
- 적대 사례
- 요약
- 18장. 오토인코더
- 인코딩 소개
- 비손실 인코딩과 손실 인코딩
- 표현 혼합하기
- 가장 단순한 오토인코더
- 더 좋은 오토인코더
- 오토인코더 탐험
- 잠재 변수 자세히 살펴보기
- 파라미터 공간
- 잠재 변수 혼합
- 새로운 입력에 대한 예측
- 컨볼루셔널 오토인코더
- 잠재 변수 혼합
- 새로운 입력에 대해 예측
- 노이즈 제거
- 변분 오토인코더
- 잠재 변수의 분포
- 변분 인코더 구조
- VAE 탐험
- MNIST 샘플로 작업
- 두 잠재 변수로 작업
- 새로운 입력 전달
- 요약
- 19장. 순환 신경망
- 언어 다루기
- 일반적인 자연어 처리 작업
- 텍스트를 숫자로 변환
- 미세 조정과 다운스트림 네트워크
- 완전 연결 예측
- 네트워크 테스트
- 네트워크가 실패한 이유
- 순환 신경망
- 스테이트 소개
- 다이어그램 롤업
- 실전에서의 순환 셀
- 순환 신경망 훈련
- 장단기 기억과 게이트 순환 신경망
- 순환 신경망 사용
- 흑점 데이터로 작업
- 텍스트 생성
- 다양한 아키텍처
- Seq2Seq
- 요약
- 20장. 어텐션과 트랜스포머
- 임베딩
- 단어 임베딩
- ELMo
- 어텐션
- 동기를 부여하는 비유
- 셀프 어텐션
- Q/KV 어텐션
- 멀티헤드 어텐션
- 레이어 아이콘
- 트랜스포머
- 스킵 커넥션
- 놈-애드
- 포지셔널 인코딩
- 트랜스포머 결합
- 실전에서의 트랜스포머
- BERT와 GPT-2
- BERT
- GPT-2
- 생성기 논의
- 데이터 포이즈닝
- 요약
- 21장. 강화학습
- 기본 아이디어
- 새로운 게임 배우기
- 강화학습의 구조
- 1단계: 에이전트가 행동을 선택
- 2단계: 환경이 응답
- 3단계: 에이전트가 자체 업데이트
- 큰 그림으로 돌아가기
- 보상 이해
- 플리퍼
- L-러닝
- 기초
- L-러닝 알고리듬
- 알고리듬 테스트
- 예측 불가능성 처리
- Q-러닝
- Q-값과 업데이트
- Q-러닝 정책
- 하나로 결합
- 골치 아픈 문제
- Q-러닝 실습
- SARSA
- 알고리듬
- SARSA 실습
- Q-러닝과 SARSA 비교
- 큰 그림
- 요약
- 22장. 생성적 적대 신경망
- 지폐 위조
- 경험에서 학습
- 신경망으로 위조
- 학습 과정
- 왜 적대일까?
- GAN 구현
- 판별기
- 생성기
- GAN 훈련
- GAN 실습
- 판별기와 생성기 구축
- 네트워크 훈련
- 네트워크 테스트
- DCGAN
- 도전 과제
- 큰 샘플 사용
- 모드 붕괴
- 생성한 데이터로 훈련
- 요약
- 23장. 창의적인 애플리케이션
- 딥 드리밍
- 필터 자극
- 딥 드리밍 실행
- 뉴럴 스타일 전이
- 스타일 표현
- 콘텐츠 표현
- 스타일과 콘텐츠를 함께
- 스타일 전이 실행
- 이 책을 더 만들어보기
- 요약
도서 오류 신고
정오표
정오표
[p.302 : 4~7행]
그림 9-8의 오른쪽에
->
그림 9-9의 오른쪽에
그림 9-7의 측정값에서 이를 빼서 그림 9-8의 왼쪽에 있는
->
그림 9-8의 측정값에서 이를 빼서 그림 9-9의 왼쪽에 있는
그녀는 그림 9-8의 오른쪽과
->
그녀는 그림 9-9의 오른쪽과
[p.145 : 6~8행]
그림 4-3과 같이 그려진 벽에 다트를 던지면 한 동전과 그 동전의 앞면이나 중 하나에 해당하는 영역에 다트가 떨어진다. 그러나 이미 동전을 던지고 앞면이 나왔기 때문에 공정한 앞면이나 된 앞면에 떨어졌다는 것을 안다.
->
그림 4-3과 같이 그려진 벽에 다트를 던지면 한 동전과 그 동전의 앞면이나 뒷면 중 하나에 해당하는 영역에 다트가 떨어진다. 그러나 이미 동전을 던지고 앞면이 나왔기 때문에 공정한 앞면이나 조작된 앞면에 떨어졌다는 것을 안다.
[p.228 : 13행]
KL(Huckleberry Finn || Treasure island)
->
KL(Treasure Island || Huckleberry Finn)