이공학적 설계를 위한 인공지능 최적화 > 대학 교재

본문 바로가기
배경
검색창 열기
전기 · 전자 · 정보통신 · 컴퓨터

이공학적 설계를 위한 인공지능 최적화

본문

책소개

이 책은 최적화 관점에서 인공지능 기술들을 설명하고 다양한 이공계 문제 풀이, 탐색, 설계에 대해서 토의한다.우선,인공지능은 최근 몇 년 간 매우 많은 이공계 분야에서 문제풀이 능력을 과시한 바 있다. 이미지 인식, 음성 인식, 자연어처리, 게임, 과학 문제풀이 등 많은 분야에서 인공지능이 인간 이상의 수준과 성능을 보이고 있다. 인공지능의 성능 향상을 위해서는 이상적인 표현자 선택, 목적함수 설정, 그리고 최적화 알고리즘이 매우 중요하다. 우리는 탐색 및 설계 측면에서는 대규모의 데이터나 복잡한 매개변수 공간를 효율적으로 조사할수있는기술이필요하다.최적화알고리즘을활용하면데이터분석,모델링,예측등다양한분야에서 창의적인 응용 연구를 수행할 수 있다. 매우 다양한 최적화 알고리즘들의 소개와 실질적인 응용에서 필요한 초고도 병렬 계산 방법에 주목한다. 이 책을 통해 인공지능 기술의 근원적 접근법과 최적화 기법을 활용한 다양한문제풀이방법을배울수있다.인공지능기술의응용은소수의무리를중심으로매우빠른속도로많은 분야에서 적용되고 있다. 따라서, 인공지능 기술에 대한 이해가 양극화로 치닫고 있는 상황이다. 낮은 수준의 이해를가진자무리와높은수준의이해를가진자무리로양분되어분포하고있다.중간단계의이해를가진자 무리가 매우 부족하다. 이러한 양극화 현상은 건전한 기술 발전에 방해가 되며, 불평등과 경제적 불안정성을 야기할 수 있으며, 사회적 분쟁과 불만을 유발할 수도 있다.

목차

서문 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