AI를 현장에서 활용하기 전에 품질을 보증하기 위해서는 적절한 테스트 기법이 필수다. 하지만 기존의 소프트웨어 테스트 기법이 AI 소프트웨어 테스트에도 적합할까? 이 책은 국내에 처음으로 소개하는 AI 소프트웨어 테스트 기법 전문서로, AI 소프트웨어에 특화한 테스트 기법 4가지를 소개한다. 실제 사례들을 살펴보면서 4가지 테스트 기법의 원리를 배우고, 각 기법에 대한 튜토리얼을 따라 하며 실무에 적용해보자.
Contents
지은이 소개 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
Author
사토 나오토,오가와 히데토,구루마 히로노부,묘진 도모유키,황석형
2005년 히타치 제작소에 입사한 주임연구원이자 공학박사다. 전문 분야는 소프트웨어 테스트, 정형 기법 등이다. 취미는 독서이지만 최근 구독형 동영상 서비스에 밀리고 있다. 루어 낚시에도 관심이 있으나 이 책의 집필 시기에는 아직 한 마리도 낚지 못했다.
2005년 히타치 제작소에 입사한 주임연구원이자 공학박사다. 전문 분야는 소프트웨어 테스트, 정형 기법 등이다. 취미는 독서이지만 최근 구독형 동영상 서비스에 밀리고 있다. 루어 낚시에도 관심이 있으나 이 책의 집필 시기에는 아직 한 마리도 낚지 못했다.