이미 소장하고 있다면 판매해 보세요.
CHAPTER 1 … 들어가기에 앞서_1
1.1 데이터에 질량이 있다면 지구는 블랙홀이 될 것이다 2 1.2 학습 5 1.2.1 머신러닝 5 1.3 머신러닝의 종류 6 1.4 지도학습 8 1.4.1 회귀 9 1.4.2 분류 10 1.5 머신러닝 과정 12 1.6 프로그래밍 노트 14 1.7 이 책의 로드맵 15 * 더 읽을거리 17 CHAPTER 2 … 들어가며_19 2.1 용어 설명 19 2.1.1 가중치 공간 20 2.1.2 차원의 저주 22 2.2 알고 있는 것을 잘 이해하라: 머신러닝 알고리즘 평가하기 24 2.2.1 오버피팅 24 2.2.2 트레이닝, 테스팅, 밸리데이션 세트 25 2.2.3 혼동 행렬 27 2.2.4 정확도 지표 28 2.2.5 수신자 조작 특성 곡선 30 2.2.6 불균형 데이터세트 31 2.2.7 정밀도 측정 32 2.3 데이터를 확률로 변경 33 2.3.1 위험 최소화 36 2.3.2 나이브 베이즈 분류기 37 2.4 기본적인 통계학 39 2.4.1 평균 39 2.4.2 분산과 공분산 40 2.4.3 가우시안 42 2.5 바이어스 분산 트레이드오프 43 * 더 읽을거리 45 * 연습 문제 46 CHAPTER 3 … 뉴런, 뉴럴 네트워크, 선형 판별식_47 3.1 뇌와 뉴런 47 3.1.1 헵의 법칙 48 3.1.2 맥컬록과 피츠의 뉴런들 49 3.1.3 맥컬록과 피츠 뉴럴 모델의 한계점 51 3.2 뉴럴 네트워크 52 3.3 퍼셉트론 53 3.3.1 학습률 55 3.3.2 바이어스 값 입력 56 3.3.3 퍼셉트론 학습 알고리즘 57 3.3.4 퍼셉트론 학습의 예제: 논리 함수 58 3.3.5 구현 60 3.4 선형 분리성 66 3.4.1 퍼셉트론 수렴 이론 68 3.4.2 배타적 논리합 함수 70 3.4.3 도움이 될 만한 통찰력 71 3.4.4 또 다른 예제: 피마 인디언 데이터세트 73 3.4.5 전처리: 데이터 사전 준비 76 3.5 선형 회귀 77 3.5.1 선형 회귀 예제 79 * 더 읽을거리 80 * 연습 문제 81 CHAPTER 4 … 다층 퍼셉트론_83 4.1 전향 85 4.1.1 바이어스 86 4.2 후향: 오차 역전파 86 4.2.1 다층 퍼셉트론 알고리즘 90 4.2.2 가중치 초기화하기 93 4.2.3 다른 출력 활성화 함수들 94 4.2.4 순차와 배치 트레이닝 96 4.2.5 지역 최솟값 96 4.2.6 모멘텀 정하기 98 4.2.7 미니배치와 확률적 기울기 하강 99 4.2.8 개선점들 99 4.3 다층 퍼셉트론의 실제 100 4.3.1 트레이닝 데이터 양 100 4.3.2 은닉층의 수 100 4.3.3 학습을 중지해야 할 시기 102 4.4 MLP의 활용 예 103 4.4.1 회귀 문제 103 4.4.2 MLP에서의 분류 107 4.4.3 분류 예: 아이리스 데이터세트 108 4.4.4 시계열 예측 111 4.4.5 데이터 압축: 자기 연산 네트워크 114 4.5 MLP 사용법 116 4.6 역전파 유도 117 4.6.1 네트워크 출력 값과 오류 118 4.6.2 네트워크의 오류 118 4.6.3 활성화 함수의 요건들 120 4.6.4 오류 역전달 121 4.6.5 출력 활성화 함수들 124 4.6.6 오차 함수의 대안 126 * 더 읽을거리 126 * 연습 문제 127 CHAPTER 5 … 방사 기저 함수와 스플라인_131 5.1 수용영역 132 5.2 방사 기저 함수 네트워크 135 5.2.1 RBF 네트워크 트레이닝 137 5.3 보간법과 기저 함수 140 5.3.1 기저 확장 143 5.3.2 3차 스플라인 144 5.3.3 데이터에 스플라인 맞추기 144 5.3.4 스무딩 스플라인/스플라인 다듬질 145 5.3.5 고차원 147 5.3.6 경계를 넘어 148 * 더 읽을거리 148 * 연습 문제 149 CHAPTER 6 … 차원 축소_151 6.1 선형 판별 분석 153 6.2 주성분 분석 157 6.2.1 다층 퍼셉트론과의 관계 161 6.2.2 커널 PCA 162 6.3 인자 분석 164 6.4 독립 성분 분석 167 6.5 지역 선형 임베딩 168 6.6 아이소맵 172 6.6.1 다차원 스케일링 172 * 더 읽을거리 174 * 연습 문제 175 CHAPTER 7 … 확률학습_177 7.1 가우시안 혼합 모델 177 7.1.1 기댓값 최대화 179 7.1.2 정보 기준 182 7.2 최근접 이웃법 183 7.2.1 최근접 이웃 스무딩 185 7.2.2 효율적인 거리 계산: KD 트리 186 7.2.3 거리 측정 191 * 더 읽을거리 193 * 연습 문제 194 CHAPTER 8 … 서포트 벡터 머신_195 8.1 최적 분리 196 8.1.1 마진과 서포트 벡터들 197 8.1.2 제약적 최적화 문제 A 199 8.1.3 비선형 분리 문제를 위한 슬랙 변수 202 8.2 커널 203 8.2.1 커널 고르기 205 8.2.2 XOR 예제 206 8.3 서포트 벡터 머신 알고리즘 206 8.3.1 구현 207 8.3.2 예제 211 8.4 SVM의 연장 213 8.4.1 다계층 분류 213 8.4.2 SVM 회귀 214 8.4.3 다른 이점들 215 * 더 읽을거리 216 * 연습 문제 217 CHAPTER 9 … 최적화와 탐색_219 9.1 언덕 내려가기 220 9.1.1 테일러 전개식 223 9.2 최소제곱법 225 9.2.1 레벤버그 말쿼트 알고리즘 225 9.3 켤레 기울기 230 9.3.1 켤레 기울기의 예제 233 9.3.2 켤레 기울기와 MLP 234 9.4 탐색: 세 가지 방법 237 9.4.1 완전 탐색 237 9.4.2 탐욕 탐색 238 9.4.3 언덕 오르기 238 9.5 활용과 탐험 239 9.6 담금질 기법 240 9.6.1 비교 241 * 더 읽을거리 243 * 연습 문제 243 CHAPTER 10 … 진화학습_245 10.1 유전 알고리즘 247 10.1.1 스트링 표현 248 10.1.2 적합성 평가 248 10.1.3 개체수 249 10.1.4 자손 만들기: 부모 선택 249 10.2 자손 만들기: 유전 연산자 251 10.2.1 크로스오버 251 10.2.2 돌연변이 253 10.2.3 정예주의, 토너먼트, 그리고 틈새 254 10.3 유전 알고리즘 사용하기 256 10.3.1 지도 색칠 256 10.3.2 단절된 균형 258 10.3.3 예제: 배낭 문제 258 10.3.4 예제: 포피크 문제 259 10.3.5 GA의 한계 261 10.3.6 유전 알고리즘을 사용해서 뉴럴 네트워크 트레이닝하기 261 10.4 유전 프로그래밍 262 10.5 샘플링과 유전학습을 접합하기 264 * 더 읽을거리 265 * 연습 문제 267 CHAPTER 11 … 강화학습 _269 11.1 개관 270 11.2 예제: 길을 잃다 272 11.2.1 상태 공간과 행동 공간 274 11.2.2 당근과 채찍: 보상 함수 274 11.2.3 할인 276 11.2.4 행동 선택 276 11.2.5 정책 277 11.3 마르코프 결정 과정 278 11.3.1 마르코프 성질 278 11.3.2 마르코프 결정 과정 확률 279 11.4 가치 280 11.5 휴가 예제: 강화학습 사용 284 11.6 살사와 Q 학습의 다른 점 285 11.7 강화학습의 사용 287 * 더 읽을거리 288 * 연습 문제 288 CHAPTER 12 … 트리학습_291 12.1 결정 트리 사용 292 12.2 결정 트리 만들기 293 12.2.1 정보 이론의 엔트로피 293 12.2.2 ID3 295 12.2.3 트리와 그래프 파이썬으로 구현하기 298 12.2.4 결정 트리 구현 299 12.2.5 연속 변수 값 처리하기 301 12.2.6 계산 복잡도 303 12.3 분류와 회귀 트리 303 12.3.1 지니 불순도 303 12.3.2 회귀 트리 304 12.4 분류 예시 305 * 더 읽을거리 307 * 연습 문제 308 CHAPTER 13 … 위원회의 결정: 앙상블 학습_311 13.1 부스팅 313 13.1.1 아다부스트 313 13.1.2 스텀핑 318 13.2 배깅 318 13.2.1 서브배깅 319 13.3 랜덤 포레스트 320 13.3.1 부스팅과 비교하기 322 13.4 분류기를 종합하는 다른 방법들 323 * 더 읽을거리 325 * 연습 문제 326 CHAPTER 14 … 비지도학습_327 14.1 k-means 알고리즘 328 14.1.1 노이즈 다루기 332 14.1.2 k-means 뉴럴 네트워크 332 14.1.3 정규화 334 14.1.4 더 좋은 가중치 갱신 방법 335 14.1.5 예제: 아이리스 데이터세트 336 14.1.6 경쟁학습을 군집화에 이용하기 337 14.2 벡터 양자화 338 14.3 자기조직화 지도 339 14.3.1 SOM 알고리즘 342 14.3.2 이웃 연결 343 14.3.3 자기조직화 345 14.3.4 네트워크 차원과 경계 조건 346 14.3.5 SOM을 이용한 예제 348 * 더 읽을거리 349 * 연습 문제 351 CHAPTER 15 … 마르코프 체인 몬테 카를로 _353 15.1 샘플링 354 15.1.1 난수 354 15.1.2 가우시안 난수 355 15.2 몬테 카를로가 아니면 죽기 357 15.3 제안 분포 359 15.4 마르코프 체인 몬테 카를로 363 15.4.1 마르코프 체인 363 15.4.2 메트로폴리스 해스팅스 알고리즘 364 15.4.3 시뮬레이티드 어닐링 366 15.4.4 깁스 샘플링 368 * 더 읽을거리 370 * 연습 문제 370 CHAPTER 16 … 그래프 모델_373 16.1 베이지언 네트워크 375 16.1.1 예제: 시험에 대한 두려움 375 16.1.2 근사 추론 380 16.1.3 베이지언 네트워크 만들기 383 16.2 마르코프 랜덤 필드 385 16.3 은닉 마르코프 모델 388 16.3.1 포워드 알고리즘 391 16.3.2 비터비 알고리즘 394 16.3.3 바움 웰치 또는 포워드 백워드 알고리즘 395 16.4 트래킹 방법 399 16.4.1 칼만 필터 400 16.4.2 입자 필터 407 * 더 읽을거리 411 * 연습 문제 412 CHAPTER 17 … 대칭 가중치와 심층 신뢰 네트워크_415 17.1 정력적인 학습: 홉필드 네트워크 416 17.1.1 연상 기억 416 17.1.2 연상 기억 만들기 417 17.1.3 에너지 함수 422 17.1.4 홉필드 네트워크의 수용력 425 17.1.5 연속 홉필드 네트워크 426 17.2 확률 뉴런-볼츠만 머신 427 17.2.1 제한 볼츠만 머신 429 17.2.2 CD 알고리즘 유도 435 17.2.3. 지도학습 439 17.2.4 유향 신뢰 네트워크 441 17.3 딥러닝/심층학습 444 17.3.1 심층 신뢰 네트워크 448 * 더 읽을거리 452 * 연습 문제 453 CHAPTER 18 … 가우시안 프로세스_455 18.1 가우시안 프로세스 회귀 458 18.1.1 노이즈 추가하기 459 18.1.2 구현 462 18.1.3 파라미터 학습하기 463 18.1.4 구현 465 18.1.5 공분산 함수 고르기 467 18.2 가우시안 프로세스 분류 468 18.2.1 라플라스 근사 469 18.2.2 사후 확률 계산 469 18.2.3 구현 471 * 더 읽을거리 474 * 연습 문제 475 APPENDIX A … 파이썬_477 A.1 파이썬과 다른 패키지들 설치 477 A.2 시작하기 478 A.2.1 MATLAB과 R 사용자를 위한 파이썬 482 A.3 기본 코드 483 A.3.1 코드 작성하기와 코드 임포팅 483 A.3.2 흐름 제어 484 A.3.3 함수 485 A.3.4 문서 설명글 486 A.3.5 map과 lambda 486 A.3.6 예외 487 A.3.7 클래스 488 A.4 넘파이와 Matplotlib 사용하기 489 A.4.1 배열 489 A.4.2 난수 493 A.4.3 선형 대수 493 A.4.4 그래프 그리기 494 A.4.5 주의 사항 495 * 더 읽을거리 496 * 연습 문제 497 찾아보기 499 |
가능하다면 이 책은 일반적인 것에서 구체적인 것으로, 또한 간단한 부분에서 복잡한 쪽으로 관련된 개념들을 각각의 장에서 다루며 진행하려 한다. 알고리즘에 더 집중하고 실습을 통해 배울 수 있도록 확률 개념부터 시작하기보다는 간단하고 오래 사용되었던 알고리즘인 지도학습부터 시작하겠다.
_15쪽 손으로 계산해 봤던 OR 예제를 통해서 코드를 동작시켜 보자. OR 데이터를 만들어 내는 것은 쉬운데 코드를 데이터에 동작시키기 위해서는 파일을 읽어야 하고(pcn), pcntrain 함수를 실행시켜야 한다. 아래에는 배열을 설정하고 함수를 실행시키는 방법과 난수로 초기화된 가중치를 사용해서 프로그램의 5번 실행 반복 결과를 보여 주고 있다(가중치는 첫 번째 반복이 지나고 나서 변화하지 않았는데, 물론 난수를 이용했으므로 실행 때마다 다른 결과 값을 보여 줄 것이다). _64쪽 멀티 퍼셉트론에서는 입력 값과 가중치들의 곱이 뉴런의 활성화를 결정하는 임계 값보다 높은지 낮은지에 따라서 은닉 노드들의 활성화를 결정한다. 미분 가능성에 대한 요구 사항을 지키지는 못하지만, 입력과 가중치의 곱의 합을 임계 값과 비교해서 임계 값보다 높으면 활성화하고, 낮으면 비활성화가 선형으로(1차원 함수) 작동한다. 어떤 입력 벡터에 대해서는 여러 개의 뉴런들이 활성화될 수 있고, 뉴런들의 출력 값과 가중치의 곱에 합은 두 번째 은닉층의 뉴런 활성화를 결정한다. 은닉층의 활동은 뉴런들에 분산되어서 다음 층에 입력 값으로 활용된다. _131쪽 MLP나 선형 회귀 문제 등 많은 알고리즘에서 최소제곱 오류법을 사용하였다. 그만큼 많은 분야에서 최적화 문제를 해결할 때 최소제곱법을 보편적으로 사용하고 있으며, 이는 다른 방법에 비해 비교적 쉽게 문제를 해결할 수 있다는 특별한 특징이 연구되었기 때문이다. 이러한 선행 연구 덕분에 최소제곱 문제를 해결하는 특별한 알고리즘 집합들이 생겨났다. 그중에 하나는 매우 잘 알려진 레벤버그 말쿼트(LM, Levenberg-Marquardt) 방법이며, 이는 신뢰 영역 최적화 알고리즘(trust region optimisation algorithm)이다. 이제 LM 알고리즘을 유도하고, 왜 최소제곱 문제가 특별한 경우인지를 살펴본다. _225쪽 입력 공간에 클러스터의 중심을 무작위로 위치시켜서 시작하고, 이를 데이터를 통해서 갱신해 나간다. 각 데이터가 어떤 클러스터에 속하는지는 거리 계산을 통해서 가장 가까운 클러스터의 중심을 갖는 클러스터로 배정한다. 이를 위한 계산 비용은 7.2.2절의 KD 트리 알고리즘을 통해서 줄일 수 있다. 클러스터에 배정된 모든 데이터 점들에 대해서 평균을 구하고 클러스터의 중심을 다시 움직인다. 알고리즘을 클러스터의 중심이 변화하지 않을 때까지 반복하며, 알고리즘은 다음과 같다. ---p.330 |