핸즈온 파이썬을 이용한 설명가능한 AI(XAI)

핸즈온 파이썬을 이용한 설명가능한 AI(XAI)

$34.46
Description
Explaining Artificial
Intelligence with Python
알고리즘의 설명 가능성은 최초로 1940년대에 복잡한 기계들로 시작되었으며, 그 첫 번째는 튜링머신(Turing machine)이었다. 앨런 튜링(Alan Turing)은 자신의 기계의 지능이 암호화 문제를 어떻게 풀었는지 설명하는데 어려움을 겪었다. 기계가 계산을 하고 결정을 내릴 수 있게 된 이후로, 설명가능성은 사용자 인터페이스, 차트, 비즈니스 인텔리전스(business intelligence) 및 기타 도구들을 통해 모든 구현 과정의 일부분으로서 구현되어 왔다.
그러나 규칙 기반 전문가 시스템, 머신러닝 알고리즘 및 딥러닝과 같은 인공지능(AI)의 기하 급수적인 발전으로, 역사상 가장 복잡한 알고리즘이 등장하면서, AI를 설명하는 것에 대한 어려움은 AI의 발전과 함께 더 커져가고 있다.
AI가 모든 분야로 확장됨에 따라, 결과가 부정확했을 때, 그 이유에 대한 설명을 제공하는 것이 중요해졌다. 또한 정확한 결과를 얻었을 때도, 사용자가 머신러닝 알고리즘에 대해 신뢰하도록 설명하는 것이 필요하다. 경우에 따라 AI는 명확하고 빠른 설명이 필요한, 생사를 가르는 상황에 직면할 수 있다. 예를 들어 이번 단원에서는 자신도 모르는 사이에 웨스트 나일 바이러스(West Nile virus)에 감염된 환자에 대한 조기 진단이 필요한 사례를 알아보게
될 것이다.
설명가능한 AI(explainable artificial intelligence) 또는 인공지능 설명가능성(artificial intelligence explainability)이라는 용어는 설명하는 과정을 말하는 것이다. 설명가능한 AI를 XAI라고 하기도 한다. 이번 단원의 목표는 XAI의 핵심이 되는 특징에 대해 이해하고 이해한 것을 파이썬으로 적용해 보는 것이다. 먼저 설명가능한 AI(XAI)와 설명을 구현할 때 직면하게 될 문제들에 대해 정의할 것이다. 각각의 요구에 맞게 서로 다른 AI 설명이 필요하다. 예를 들어 AI 전문가는 최종 사용자와는 다른 관점의 설명을 기대할 것이다.
다음으로 미국 일리노이 주에 있는 시카고에서 발생한 웨스트 나일 바이러스(West Nile virus) 전파에 대해, AI와 XAI가 중요한 의료 진단 도구를 구성하는 생사와 관련된 연구를 살펴볼 것이다.
이번 단원에서 XAI의 목적은 개발자에게 AI를 설명하는 것이 아니라, 일반 실무자들에게 ML이 결정한 것을 신뢰할 수 있도록 ML 시스템의 예측에 대해 설명하는 것이다.
저자

DenisRothman

DenisRothmangraduatedfromSorbonneUniversityandParis-Diderot
University,writingoneoftheveryfirstword2vectorembeddingsolutions.HebeganhiscareerauthoringoneofthefirstAIcognitivenaturallanguageprocessing(NLP)chatbotsappliedasalanguageteacherforMoëtetChandonandothercompanies.
HehasalsoauthoredanAIresourceoptimizerforIBMandapparelproducers.Hethenauthoredanadvancedplanningandscheduling(APS)solutionthatisusedworldwide

목차

목차XVII
역자의말Ⅴ
머리말Ⅶ
1장파이썬으로설명하는AI
1.1설명가능한AI정의5
1.1.1블랙박스모델에서XAI화이트박스모델로의전환7
1.1.2설명및해석8
1.2설계및추출9
1.2.1XAI집행기능9
1.3XAI의료진단일정13
1.3.1일반적인의사가사용하는표준AI프로그램14
1.3.2웨스트나일바이러스-생사와관련된사례23
1.3.3구글위치기록을이용하여XAI가생명을구할수있다31
1.3.4구글위치기록내려받기31
1.3.4구글위치기록데이터를읽고표시하기37
1.4요약58
1.5질문59
2장AI의편향및윤리를위한화이트박스XAI
2.1자율주행자동차의AI편향에대한도덕성65
2.1.1생사가걸린자동조종장치의의사결정65
2.1.2트롤리문제66
2.1.3MITMoralMachine실험67
2.2.4생사가걸린실제상황68
2.2.5윤리적AI의도덕적한계70
2.2자동조종장치의의사결정트리에대한표준설명73
목차XVIII
2.2.1SDC자동조종장치의딜레마73
2.1.2모듈가져오기74
2.1.3데이터셋가져오기75
2.1.4데이터를읽고분할하기76
2.1.5의사결정트리분류기에대한이론적인설명78
2.1.6내정된값을이용한의사결정트리분류기생성하기80
2.1.7모델훈련,측정및저장하기82
2.1.8의사결정트리출력하기84
2.3자동조종장치의의사결정트리에적용된XAI88
2.3.1의사결정트리의구조88
2.4XAI와윤리성을이용하여의사결정트리제어하기95
2.4.1모델불러오기96
2.4.2정확도측정96
2.4.3실시간사례시뮬레이션하기97
2.4.4노이즈로인한ML편향반영해보기97
2.4.5ML윤리및법적용하기100
2.5요약104
2.6질문104
3장패싯(Facet)을이용한머신러닝설명하기
3.1패싯시작하기110
3.1.1GoogleColaboratory의패싯설치하기111
3.1.2데이터셋검색111
3.1.3데이터파일읽어오기112
3.2FacetsOverview113
3.2.1데이터셋의특징통계생성하기113
3.3패싯통계결과정렬하기116
3.3.1특징순서대로데이터정렬하기116
3.3.2불균일도로정렬하기117
3.3.3알파벳순으로정렬하기122
3.3.4missing/zero의양으로정렬하기123
목차XIX
3.3.5분포간거리로정렬하기123
3.4FacetsDive125
3.4.1FacetsDive출력코드작성하기126
3.4.2데이터포인트의레이블정의하기128
3.4.3데이터포인트의색상정의하기129
3.4.4x축과y축의비닝정의하기130
3.4.5x축과y축의산점도정의하기132
3.5요약134
3.6질문135
4장SHAP을이용한MicrosoftAzureMachine
LearningModelInterpretability
4.1SHAP소개140
4.1.1SHAP원칙의핵심141
4.1.2Shapley값의수학적표현144
4.1.3감정분석예제147
4.2SHAP시작하기153
4.2.1SHAP설치하기153
4.2.2데이터가져오기154
4.2.3데이터셋추출하기155
4.2.4데이터셋벡터화하기162
4.3선형모델및로지스틱회귀164
4.3.1선형모델생성,훈련및출력의시각화164
4.3.2선형모델정의하기167
4.3.3SHAP을이용하여설명하는불가지론적모델170
4.3.4선형모델설명자생성하기170
4.3.5그래프함수생성하기170
4.3.6모델의예측결과설명하기173
4.4요약183
4.5질문184
5장설명가능한AI솔루션처음부터구축하기
5.1도덕적,윤리적및법률적관점190
5.2미국인구조사데이터문제191
5.2.1pandas를이용하여데이터표시하기192
5.2.2도덕적윤리적관점195
5.3머신러닝관점202
5.3.1FacetsDive로훈련데이터출력하기202
5.3.2패싯으로훈련데이터분석하기205
5.3.3예상결과확인209
5.3.4입력데이터변환217
5.4변경된데이터셋을적용한WIT220
5.5요약228
5.6질문229
6장구글의What-IfTool(WIT)을이용한AI공정성평가
6.1윤리적AI관점에서의해석가능성및설명가능성234
6.1.1윤리적관점235
6.1.2법률적관점236
6.1.3설명하기및해석하기236
6.1.4윤리적인데이터셋준비하기237
6.2WIT시작하기240
6.2.1데이터셋가져오기242
6.2.2데이터전처리하기243
6.2.3모델훈련및테스트를위한데이터스트럭쳐생성하기245
6.3DNN모델생성246
모델훈련하기249
6.4SHAP해설자생성하기249
Shapley값의그래프250
6.5모델출력및SHAP값250
6.6WIT데이터포인트탐색기및편집기254
목차XX
6.6.1WIT생성하기254
6.6.2데이터포인트편집기256
6.6.3특징259
6.6.4성능및공정성260
6.7요약268
6.8질문269
7장설명가능한AI챗봇을위한파이썬클라이언트
7.1Dialogflow를위한파이썬클라이언트275
7.1.1구글Dialogflow를위한파이썬클라이언트설치하기276
7.1.2구글Dialogflow에이전트생성하기276
7.1.3API및서비스활성화하기279
7.1.4구글Dialogflow파이썬클라이언트283
7.2구글Dialogflow파이썬클라이언트개선하기286
7.2.1대화함수생성하기287
7.2.1Dialogflow에서XAI구현과관련된보안사항288
7.2.3Dialogflow에서인텐트생성하기288
7.2.4XAI파이썬클라이언트296
7.3구글Dialogflow를이용한CUIXAI대화302
7.3.1웹사이트를위한Dialogflow통합303
7.3.2주피터노트북XAI에이전트관리자307
7.3.3구글어시스턴트307
7.4요약310
7.5질문311
8장LIME(LocalInterpretableModel-AgnosticExplanations)
8.1LIME소개316
LIME의수학적표현318
8.2LIME시작하기321
8.2.1구글Colaboratory에LIME설치하기322
목차XXI
8.2.2데이터셋검색및벡터화하기322
8.3실험적AutoML모듈324
8.3.1불가지론적AutoML템플릿생성하기325
8.3.2배깅분류기(Baggingclassifier)327
8.3.3그라디언트부스팅분류기328
8.3.4의사결정트리분류기329
8.3.5엑스트라트리분류기330
8.4점수해석하기331
8.5모델훈련하기및예측수행하기332
8.5.1분류기와상호적인선택332
8.5.2예측과정마무리하기333
8.6LIME설명자335
8.6.1LIME설명자만들기337
8.6.2LIME설명해석하기339
8.7요약346
8.8질문347
9장반사실적설명방법
9.1반사실적설명방법353
9.1.1데이터셋및동기353
9.1.2WIT로반사실적거리시각화하기354
9.1.3기본뷰로데이터포인트거리분석하기356
9.1.3반사실적설명의논리364
9.2거리함수선택370
9.2.1L1norm371
9.2.2L2norm373
9.2.3맞춤형거리함수374
9.3딥러닝모델의아키텍쳐374
9.3.1WIT호출375
9.3.2WIT를위한맞춤형예측함수376
9.3.3케라스모델로딩하기378
9.3.4데이터셋및모델검색하기379
목차XXII
9.4요약380
9.5질문381
10장대조적XAI
10.1대조적설명방법386
10.2MNIST를이용하여CEM배우기389
10.2.1Alibi설치하기및모듈가져오기389
10.2.2모듈및데이터셋가져오기389
10.3CNN모델정의하기및훈련하기394
10.3.1CNN모델생성하기395
10.3.2CNN모델훈련하기396
10.3.3모델로딩하기및정확도테스트하기398
10.4오토인코더정의하기및훈련하기399
10.4.1오토인코더생성하기400
10.4.2오토인코더훈련및저장하기400
10.4.3원본이미지와디코딩된이미지비교하기401
10.5Pertinentnegative403
10.5.1CEM파라메터405
10.5.2CEM설명자초기화하기406
10.5.3pertinentnegative설명406
10.6요약409
10.7질문409
11장앵커(Anchor)XAI
11.1앵커AI설명415
11.1.1소득예측하기415
11.1.2뉴스그룹설명분류하기418
11.2ImageNet에대한앵커설명420
11.2.1Alibi설치하기및모듈가져오기421
11.2.2InceptionV3모델로딩하기422
목차XXIII
11.2.3이미지다운로드하기422
11.2.4이미지처리하기및예측수행하기424
11.2.5앵커이미지설명자구축하기424
11.2.6다른범주설명하기428
11.2.7다른이미지들과문제점431
11.3요약432
11.4질문433
12장인지적XAI
12.1인지적규칙기반설명439
12.1.1XAI도구에서XAI개념으로439
12.1.2인지적XAI설명정의하기440
12.1.3인지적XAI방법442
10.1.4특징의한계기여도449
12.2vectorizers에대한인지적접근방법454
12.2.1LIME을위한vectorizer설명454
12.2.2SHAP를위한IMDbvectorizer설명하기457
12.3CEM을위한인간의인지적입력460
12.4요약466
12.5질문467
부록질문에대한답469
INDEX48

출판사 서평

최근지난10여년간딥러닝을필두로하는인공지능연구는지속적으로깊고넓은구조로
확장되어분류와예측의정확성을높이는데초점을맞춰왔습니다.하지만몇년전부터연구자들은이러한인공지능의예측성능에의심을품기시작했습니다.‘인공지능이왜이런
결정을했을까?무슨근거로이렇게판단했을까?혹시판단에오류는없을까?’하는필연적
인질문들을하기시작했습니다.단순하게‘개’와‘고양이’를구분하는것이라면문제가없겠지만질병을예측하거나신용도평가문제,심지어는군인들에게명령을내리는문제라면더욱더인공지능의판단결과에대한설명이필요합니다.지금까지의인공지능알고리즘들은불친절하게예측결과만알려주었지결과에대한이유를설명해주지않았습니다.
인공지능에설명을부여하기위한‘설명가능한인공지능(eXplainableAI,XAI)’의본격적인연구는2017년미국방연구원(DefenseAdvancedResearchProjectsAgency,DARPA)에서시작한프로젝트로볼수있습니다.DARPA에서는설명가능한인공지능의요건으로‘높은학습성능을유지하면서도모델자체가설명가능해야하고,인간이쉽게이해하고신뢰하며효과적으로시스템을관리할수있도록지원해야한다’라고규정하고있습니다.전통적으로머신러닝을연구했던연구자(fatml.org)들은XAI라는용어보다는‘해석가능한머신러닝(InterpretableMachineLearning)’이라는용어를더선호하며‘인공지능알고리즘결정과이러한결정을주도하는모든데이터가비기술적용어로최종사용자및기타이해관계자에게설명될수있어야한다.’라고정의하고있습니다.
설명가능한인공지능은인공지능기술의발전방향을새롭게제시하고있습니다.공정과정
의라는키워드가가장중요한가치관인MZ세대에게는정답만알려주는현재의인공지능
기술은오히려또다른불공정이슈가될수있습니다.따라서설명가능한인공지능에는데이터분석을통한예측의정확성뿐만아니라,사용된데이터와모델의투명성,윤리성,

결과에대한신뢰성,프라이버시,공정성이라는다양한항목이고려되어야합니다.
이러한필요에따라최근설명가능한인공지능에관한연구들이점차늘어나고있습니다.
하지만일반학습자들이설명가능한인공지능을기초부터중급수준까지공부할수있는도서는많지않습니다.본도서는설명가능한인공지능을공부하고싶었던학생또는연구자들이어떻게딥러닝과머신러닝에XAI를접목할수있을지가이드해주는입문서이자이분야의전문가가되기위한디딤돌이될수있습니다.본인이인공지능을처음접한다고해서겁낼필요는없습니다.본도서의저자는매장을소설을읽는것처럼사례를들어쉽게설명하고있고,그내용을오픈소스를통해구현하도록하여독자가충분히이론과프로그램코딩능력을높일수있도록배려하고있기때문이죠.
이책은내용이많으므로독자들이중간에포기할수도있습니다.하지만인내심을갖고맨처음책장을폈을때의결심으로다시도전해보십시오.매장을끝낼때마다‘설명가능한본인만의지식’을체감할수있을겁니다.만약여러분이딥러닝이나머신러닝에대한어느정도이해가있다고한다면처음부터모든장들을볼필요는없습니다.필요할때마다해당하는장의내용을참조하는것도좋은방법입니다.
이책은주로데이터사이언스,빅데이터측면에서설명가능한인공지능의이론과실습을
진행하고있습니다.만약영상이나음성에도설명가능한인공지능을접목하고싶다면arxiv
에키워드로‘XAI’를입력해보십시오.수많은논문이검색되겠지만논문을겁내할필요가
없습니다.이책을마스터한당신은이미‘설명가능한인공지능’을설명할준비가되어있기
때문이죠.

■저자머리말

오늘날의AI시대에서,AI결과를정확하게해석하고전달하는것이중요한기술이되고
있기에반드시숙달해야할필요성이있다.인공지능은종종인간의이해를넘어선다.따라
서,머신러닝모델의결과는종종입증하기어렵고때로는설명하는것이불가능하다.AI에
의해내려진결정에대한이유와방법을설명하라는요청을받으면,운영자와개발자모두
어려움에직면하게된다.AI설계자가수백개의머신러닝및딥러닝모델을위한하나의
설명가능한AI솔루션을설계하는것은불가능한다.AI통찰력을비즈니스관계자에게효
과적으로전달하려면개별적인계획,설계및시각화선택이필요하다.유럽및미국법률
은결과를설명할수없을때,소송할수있도록문을열어두었지만,개발자들은직면한엄청난양의데이터를가지고실제구현으로이어지기때문에,적절한도구없이설명을찾기는거의불가능한다.
이책에서신뢰할만한AI결과를시각화,설명및통합을통해비즈니스가치를제공하는
파이썬의도구와기술을배우는동시에,AI편향및윤리와관련된일반적인문제들을피하는방법에대해학습하게될것이다.
이책전반에걸쳐,파이썬및텐서플로우2.x에있는파이썬머신러닝실습프로젝트통해
작업하게될것이다.WIT,SHAP,LIME,CEM및기타핵심설명가능한AI도구들을
사용하는방법에대해배우게될것이다.IBM,Google,Microsoft및기타앞선기술을가진AI연구소에서설계한도구들을살펴볼것이다.
머신러닝프로젝트전체과정에서사용할수있는오픈소스로구현된파이썬을이용한설
명가능한AI도구들에대해소개할것이다.이제부터머신러닝모델결과의분석,영향을
주는주요변수및변수관계의검토,편향및윤리문제를일으킬수있는여지의감지,파이썬을이용하여설명가능한사용자인터페이스에서머신러닝모델시각화를예측과통합하여지원하는방법에대해배우게될것이다.
파이썬및텐서플로우2.x를이용하여XAI솔루션을구축해볼것이고,구글클라우드의
XAI플랫폼및구글Colaboratory를사용할것이다.