지은이 소개 x
옮긴이 소개 xi
옮긴이 머리말 xii
추천의 글 xiii
베타리더 후기 xiv
이 책에 대하여 xvi
CHAPTER 0 AI 소프트웨어와 테스트 1
0.1 AI 소프트웨어 테스트의 필요성 1
__0.1.1 AI의 보급에 따른 과제 1
__0.1.2 AI 기술의 핵심 ‘머신러닝’ 3
0.2 귀찮은 문제 = 과제와 해결 방법에 관련된 모순 4
__0.2.1 머신러닝의 장점에 내포된 문제점 4
__0.2.2 이 책의 주제와 대상 독자 5
CHAPTER 1 AI의 이해 7
1.1 AI의 종류 7
__1.1.1 강한 AI와 약한 AI 7
__1.1.2 규칙 기반 AI와 머신러닝 8
__1.1.3 지도 학습 9
__1.1.4 지도 학습으로 해결할 수 있는 문제들 9
__1.1.5 비지도 학습 10
__1.1.6 강화 학습 10
__1.1.7 휴리스틱스와 메타휴리스틱스 11
1.2 AI 소프트웨어 12
__1.2.1 머신러닝과 AI 소프트웨어 12
__1.2.2 AI 모델 12
__1.2.3 학습과 훈련 및 평가 13
__1.2.4 훈련 결과에 대한 평가와 AI 소프트웨어 테스트 15
__1.2.5 AI 소프트웨어와 AI 시스템의 관계 16
__[칼럼] AI의 진화 발전 사례: 일본식 장기인 쇼기 프로그램 16
1.3 지도 학습의 체계 18
__1.3.1 학습 완료 모델에 기반한 추론 18
__1.3.2 훈련용 입력 데이터와 훈련용 정답 데이터 18
__1.3.3 훈련 완료 모델의 평가 19
__1.3.4 학습 완료 모델의 테스트 20
__[칼럼] 머신러닝의 수학적 해석 21
1.4 AI의 개발 공정 24
__1.4.1 AI 개발 공정의 특징: 시행착오의 반복 24
__1.4.2 AI 컴포넌트 개발 공정 26
__1.5 AI 모델의 구체적인 사례 27
__1.5.1 심층 신경망 27
__1.5.2 앙상블 트리 30
__1.5.3 분류 문제 33
__1.5.4 회귀 문제 37
1.6 요약 39
CHAPTER 2 AI 소프트웨어 테스트 41
2.1 기존의 소프트웨어와 AI 소프트웨어의 차이점 41
__[칼럼] 수학적 귀납법과 과학적 접근법 43
2.2 기존의 소프트웨어 테스트 43
__2.2.1 입장료 계산 문제의 예 44
__2.2.2 동치 클래스와 경곗값을 이용한 테스트 45
__[칼럼] 생일 계산 46
__[칼럼] 동치 클래스와 경곗값의 수학적 표현 47
2.3 기존 테스트 기법의 적용 가능성 48
__2.3.1 동치 클래스 기법의 적용 가능성 48
__2.3.2 머신러닝의 특성 50
2.4 AI 소프트웨어 테스트 기법 52
__2.4.1 메타모픽 테스트 기법의 개요 53
__2.4.2 뉴런 커버리지 테스트 기법의 개요 54
__2.4.3 최대 안전 반경 테스트 기법의 개요 55
__2.4.4 커버리지 검증 기법의 개요 55
__[칼럼] AI의 품질 57
CHAPTER 3 튜토리얼 준비 59
3.1 실행 환경 설정 59
__3.1.1 파이썬 설치 59
__3.1.2 외부 라이브러리 설치 62
__[칼럼] pip를 이용한 외부 라이브러리 설치 63
3.2 테스트 도구 다운로드 65
__3.2.1 참조 파일 다운로드 65
__3.2.2 기타 파일 다운로드 66
3.3 학습에 사용할 데이터셋 68
__3.3.1 MNIST 데이터셋 68
__3.3.2 HouseSales 데이터셋 69
3.4 AI 모델의 학습 69
__3.4.1 MNIST 데이터셋 기반의 DNN 모델의 학습 70
__[칼럼] DNN 모델의 저장 방법 72
__3.4.2 HouseSales 데이터셋 기반의 DNN 모델의 학습 74
__3.4.3 HouseSales 데이터셋 기반의 XGBoost 모델 학습 76
3.5 학습 완료 모델의 실행 확인 77
__3.5.1 숫자 이미지 식별을 위한 DNN 모델의 실행 확인 77
__3.5.2 주택 가격 예측을 위한 DNN 모델 실행 확인 79
__3.5.3 주택 가격 예측을 위한 XGBoost 모델 실행 확인 80
CHAPTER 4 메타모픽 테스트 기법 81
4.1 메타모픽 테스트 기법이란? 81
__4.1.1 테스트 오라클의 문제점 81
__4.1.2 메타모픽 관계 84
__[칼럼] 수식을 이용한 메타모픽 테스트 기법의 정의 85
__4.1.3 AI 소프트웨어에 적용 87
__4.1.4 메타모픽 테스트 기법으로 알 수 있는 사항 89
__[칼럼] 테스트 성공인 경우에 알 수 있는 사실들 91
__4.1.5 기존의 테스트 기법과의 차이점 94
__4.1.6 메타모픽 테스트 기법의 활용 96
__[칼럼] 테스트 성공인 경우에 알 수 있는 사실들(Part 2) 99
4.2 튜토리얼 100
__4.2.1 메타모픽 테스트 기법의 실행 101
__4.2.2 데이터 가공 방법 변경 109
__4.2.3 데이터 가공 횟수의 변경 111
4.3 요약 112
CHAPTER 5 뉴런 커버리지 테스트 기법 113
5.1 기존의 커버리지와 뉴런 커버리지 113
__5.1.1 기존 소프트웨어에 대한 커버리지 113
__[칼럼] 명령 커버리지·분기 커버리지·조건 커버리지 114
__5.1.2 DNN 모델에 커버리지 적용 116
__5.1.3 뉴런의 활성 상태 117
5.2 뉴런 커버리지를 이용한 테스트 122
__5.2.1 뉴런 커버리지를 향상시키는 데이터 122
__5.2.2 테스트용 입력 데이터 작성 방법 122
__[칼럼] 편미분과 기울기 124
__5.2.3 가이드라인을 기반으로 가공 방법 선택 129
__[칼럼] 벡터와 내적 131
__5.2.4 가공 데이터를 사용한 테스트 실행 134
5.3 튜토리얼 135
__5.3.1 뉴런 커버리지 테스트의 실행 135
__5.3.2 활성화를 판정하는 경곗값 변경 139
__5.3.3 뉴런 커버리지 테스트의 반복 실행 143
CHAPTER 6 최대 안전 반경 테스트 기법 145
6.1 최대 안전 반경의 이해 145
__6.1.1 강건성 145
__6.1.2 적대적 데이터 147
__6.1.3 최대 안전 반경 150
__[칼럼] 다양한 ‘거리’ 152
6.2 최대 안전 반경 계산 방법 153
__6.2.1 최대 안전 반경의 근삿값 153
__6.2.2 계산 방법의 개요 154
__6.2.3 안전 반경의 판정 156
__6.2.4 하계와 상계의 계산 방법 158
__6.2.5 하계와 상계의 단계적 계산 방법 161
__[칼럼] 시그모이드 함수에 대한 하계 함수와 상계 함수의 정의 166
6.3 튜토리얼 172
__6.3.1 DNN 모델의 변환 172
__6.3.2 CNN-Cert의 실행 174
__6.3.3 타깃 분류 그룹핑의 변경 185
CHAPTER 7 커버리지 검증 기법 187
7.1 커버리지 검증 187
__7.1.1 커버리지 검증의 목적 187
__7.1.2 커버리지 검증의 체계 190
__[칼럼] 인간의 추론과 AI의 추론 190
__[칼럼] 검증을 수월하게 수행하기 위한 식 변형 193
__[칼럼] SAT Solver와 SMT Solver의 동작 194
7.2 XGBoost 모델의 커버리지 검증 195
__7.2.1 예제 모델의 커버리지 검증 195
__[칼럼] 전제조건과 검증 특성 202
__[칼럼] 커버리지 검증을 단시간 내에 수행하는 방법 206
__7.2.2 학습 완료 모델에서 논리식으로의 변환 207
__7.2.3 커버리지 검증 도구의 구조 211
7.3 검증 특성을 만족하지 않는 입력 데이터 범위의 탐색 217
__7.3.1 예제 모델의 조건 비적합 범위의 검색 217
__7.3.2 조건 비적합 범위 탐색 도구의 구조 222
7.4 DNN 모델의 커버리지 검증 225
__7.4.1 예제 모델의 커버리지 검증 225
__7.4.2 학습 완료 모델로부터 논리식으로의 변환 234
__7.4.3 커버리지 검증 도구의 구조 238
7.5 요약 241
APPENDIX A 각종 파일의 표기법 243
A.1 XGBoost 입출력 데이터 정의 파일의 표기법 243
A.2 DNN 입출력 데이터 정의 파일의 표기법 244
A.3 검증 조건 파일의 표기법 245
맺음말 247
찾아보기 249