책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 인공지능
· ISBN : 9791192469812
· 쪽수 : 268쪽
· 출판일 : 2023-03-02
책 소개
목차
지은이 소개 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
리뷰
책속에서
지금까지 가능한 한 이해하기 수월하게 머신러닝의 개요를 설명하고 구체적인 모델의 예를 소개했다. 이 칼럼에서는 조금 더 구체적으로 '머신러닝이란 무엇을 하는 것인가?'에 대해서 수학적으로 설명한다. 다만, 수학적 엄밀성 측면을 조금 양보하여 가능한 한 간단한 함수를 사용해서 설명한다. 이 칼럼의 목적은 머신러닝의 일반적인 개념을 이해하는 것이다. 보다 구체적인 머신러닝 알고리즘에 대해서는 1.5절에서 설명한다. 특히, 여기에서는 지도 학습을 대상으로 설명한다.
AI 소프트웨어는 개발 과정에서 시행착오가 필수불가결하다는 특징을 갖는다. 기존의 소프트웨어 개발에서는 정의된 요구사항을 토대로 소프트웨어의 사양을 결정하고, 사양을 토대로 소프트웨어를 구현해가는 공정이 일반적이다. 이때 사양은 요구사항을 만족해야 하며 구현 결과는 사양을 만족해야 한다. 그러나 AI 소프트웨어의 개발에서는 요구사항이나 사양 등이 존재하지 않는다. 사양을 대신하여 훈련용 데이터가 존재하며, 훈련용 데이터를 이용하여 학습 과정을 시행하여 AI 소프트웨어를 구축한다.