이공학적 설계를 위한 인공지능 최적화
저자
이인호
출간일
2023년 04월 30일
페이지
502면
ISBN
9791159715068
가격
33,000원
본문
책소개
이 책은 최적화 관점에서 인공지능 기술들을 설명하고 다양한 이공계 문제 풀이, 탐색, 설계에 대해서 토의한다.우선,인공지능은 최근 몇 년 간 매우 많은 이공계 분야에서 문제풀이 능력을 과시한 바 있다. 이미지 인식, 음성 인식, 자연어처리, 게임, 과학 문제풀이 등 많은 분야에서 인공지능이 인간 이상의 수준과 성능을 보이고 있다. 인공지능의 성능 향상을 위해서는 이상적인 표현자 선택, 목적함수 설정, 그리고 최적화 알고리즘이 매우 중요하다. 우리는 탐색 및 설계 측면에서는 대규모의 데이터나 복잡한 매개변수 공간를 효율적으로 조사할수있는기술이필요하다.최적화알고리즘을활용하면데이터분석,모델링,예측등다양한분야에서 창의적인 응용 연구를 수행할 수 있다. 매우 다양한 최적화 알고리즘들의 소개와 실질적인 응용에서 필요한 초고도 병렬 계산 방법에 주목한다. 이 책을 통해 인공지능 기술의 근원적 접근법과 최적화 기법을 활용한 다양한문제풀이방법을배울수있다.인공지능기술의응용은소수의무리를중심으로매우빠른속도로많은 분야에서 적용되고 있다. 따라서, 인공지능 기술에 대한 이해가 양극화로 치닫고 있는 상황이다. 낮은 수준의 이해를가진자무리와높은수준의이해를가진자무리로양분되어분포하고있다.중간단계의이해를가진자 무리가 매우 부족하다. 이러한 양극화 현상은 건전한 기술 발전에 방해가 되며, 불평등과 경제적 불안정성을 야기할 수 있으며, 사회적 분쟁과 불만을 유발할 수도 있다.
목차
서문 v
Contents ix
1 귀납적 사고 1
1.1 컴퓨터를 활용한 귀납적 사고 방식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 빈도주의 학파와 베이즈 학파 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 초귀납적 계산 그리고 컴퓨터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 프로그래밍의 중요성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 파이썬(Python) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 깃(git) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 CPU(central processing unit), GPU(graphics processing unit), TPU(tensor processing unit) 19
1.8 구글 코랩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.10 스택 오버플로우 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.11 아나콘다 설치와 인공지능 패키지 설치 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.12 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2 최적화 관점에서 이해하는 인공지능 39
2.1 인공지능의 도구들 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2 표현자(representation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3 특성 공학(feature engineering) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4 합성곱 신경망(convolutional neural network) . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5 인공지능의 역사 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7 Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8 AlphaFold 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.9 모델 평가 기준 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.10 블라인드 테스트(blind test) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.11 교차-검증(cross-validation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.12 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3 기계학습 79
3.1 기계학습의 4형식 그리고 3요소 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.2 지도학습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3 비지도학습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.4 강화학습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.5 진화학습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.6 ‘차원의 저주’와 다양한 거리의 정의 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4 트리-기반 알고리즘 111
4.1 식을 줄 모르는 인기: 화이트 박스(white box) . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.2 scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.3 lightGBM, XGboost, CatBoost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5 딥러닝(심층학습)의 출현 179
5.1 심층구조 인공신경망 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.2 구배 소실 문제(vanishing gradient problem) . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.3 인공신경망의 초월 매개변수(hyperparameters) . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.4 실습 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.5 과적합(overfitting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.6 커널 레규라리제이션(kernel regularization)과 드롭아웃(dropout) . . . . . . . . . . . . . . 197
5.7 TensorFlow, PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.8 실습 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
5.9 실습 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6 발견법 265
6.1 발견법이란? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
6.2 가우시안 프로세스(Gaussian process) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
6.3 실습 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
6.4 베이지안 옵티마이제이션(Bayesian optimization) . . . . . . . . . . . . . . . . . . . . . . . 274
6.5 실습 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
6.6 실습 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
7 다수의 국소 최적화 305
7.1 도함수가 없는 함수의 국소 최적화: Nelder-Mead 알고리즘 . . . . . . . . . . . . . . . . . . 305
7.2 FORTRAN 90 또는 C 언어에서 구현하기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
7.3 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
7.4 도함수가 해석적으로 알려진 경우: BFGS 알고리즘을 활용한 함수 최소화 . . . . . . . . . . . 311
7.5 잘 알려진 구현 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.6 특징 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.7 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.8 도함수가 알려진 경우: ‘adam’ 루틴을 활용한 함수 최소화 . . . . . . . . . . . . . . . . . . . 314
7.9 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
8 광역 최적화 335
8.1 막대한 컴퓨터 자원을 활용하기 위한 컴퓨터 언어 . . . . . . . . . . . . . . . . . . . . . . . . 338
8.2 간결한 프로그램으로 쉽고 편리하게 계산하기 위한 컴퓨터 언어 . . . . . . . . . . . . . . . . 339
8.3 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9 풀림 시늉 343
9.1 볼츠만 분포 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
9.2 메트로폴리스 알고리즘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
9.3 높은 온도에서 낮은 온도로 전환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
9.4 급냉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
9.5 다수의 시뮬레이션 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
9.6 시도해를 정기적으로 공급 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
9.7 시도해를 정기적으로 교환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
9.8 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
10 병렬조질, 복제품-맞바꿈 분자동역학 355
10.1 여러 온도를 동시에 유지 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
10.2 맞교환이 성공할 확률 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
10.3 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
10.4 초 풀림 시늉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
10.5 높아진 추출의 효율성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
10.6 상태밀도들의 중첩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
10.7 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
11 입자 군집 최적화 381
11.1 분산 탐색 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
11.2 군집 내부 역대 최고 후보해, 입자 역대 최고 후보해 . . . . . . . . . . . . . . . . . . . . . . . 382
11.3 입자 군집 최적화 방법의 특징 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
11.4 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
11.5 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
12 유전 알고리즘 391
12.1 적자 생존과 유전 정보의 전달 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
12.2 유전 알고리즘의 보편성과 용이한 병렬화 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
12.3 해의 정렬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
12.4 선택 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
12.5 선택 압력 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
12.6 해의 표현 방식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
12.7 교차 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
12.8 변이 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
12.9 부모세대, 자식세대, 대치 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
12.10 엘리트주의 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
12.11 다양성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
12.12 국소 최적화 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
12.13 유전 알고리즘의 구성 요소 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
12.14 유전 알고리즘의 특징 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
12.15 본질적 속성과 약점 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
12.16 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
12.17 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
13 차분진화 413
13.1 실수를 활용한 해의 표현 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
13.2 기계적인 교차와 변이 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
13.3 차분 가중치와 교차 확률 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
13.4 유전 알고리즘과의 차이점 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
13.5 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
13.6 실습 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
14 국소 최적화 방법으로 이용되는 몬테칼로 방법 425
14.1 몬테칼로 방법 그리고 국소 최적화 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
14.2 국소 최적화 알고리즘의 효율성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
14.3 손쉬운 병렬화 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
14.4 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
15 구조 공간 풀림 427
15.1 구조 공간 풀림 알고리즘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
15.2 차단 거리를 도입하는 이유 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
15.3 다양성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
15.4 독특한 대치 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
15.5 ‘차단 거리’ 줄이기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
15.6 병렬화 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
15.7 응용 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
15.8 연습 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
16 설계와 최적화 447
16.1 탐색과 설계 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.2 성능지수(figure of merit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
16.3 ‘from scratch’ vs ‘pre-built’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
16.4 솔버와 광역 최적화 방법 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
16.5 병렬속의 병렬(parallel-in-parallel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
16.6 체크포인트 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
16.7 설계, 탐색 프로그램의 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
16.8 독자 점검 사항들 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Bibliography 469
Alphabetical Index 479