머신러닝을 위한 효율적 데이터 레이블링 : 인간 중심 AI를 위한 능동학습과 어노테이션
다양한 샘플링 기법과 프로세스를 알고리듬 유형에 따라 소개하며, 효율적인 데이터 레이블링을 위한 사용자 인터페이스 및 조직의 관점을 저자의 경험에 비추어 제시한다. 적절한 데이터를 확보해 머신러닝 문제를 풀고자 하는 개인이나 기업에게 더없이 좋은 길잡이가 될 것이다.
로버트(먼로)모나크
저자:로버트(먼로)모나크
사람과기계의지능을결합하는분야의전문가로현재미국샌프란시스코에서살며Apple에서일하고있다.시에라리온,아이티,Amazon(기업),런던,시드니를거쳤다.스타트업에서부터UN에이르기까지다양한조직에서일한경험이있다.이디본(Idibon)의CEO이자설립자였으며,피규어에잇(FigureEight)의CTO였다.AWS의첫자연어처리와기계번역서비스를이끌었다.
역자:김택구
초등학교시절아버지손에이끌려방문한삼성동코엑스의어느컴퓨터박람회에다녀온이후,컴퓨터와관련된일에푹빠져살았고이를업으로삼는것을꿈꿔왔다.그리고,여전히지금도그영역안에서살아가고있다.
대학교와대학원에서소프트웨어를공부한후LG전자와삼성전자에서는임베디드소프트웨어를개발했다.이후에는에스코어로이직,타이젠SDK와기업용클라우드서비스를개발했다.알파고충격이후머신러닝과딥러닝붐에뛰어들어KPMG와와디즈에서다양한기업용자연어처리및머신러닝서비스개발에참여했다.최근에는유트랜스퍼서비스를개발/운영하는개발담당이사로서여전히개발과관련된활동을왕성하게이어가고있다.
역자:제갈호준
소프트웨어아키텍트와개발자그리고개발매니저로서다양한모바일소프트웨어서비스와인텔리전스서비스를개발했다.
어렵지만필요한문제를항상능동적으로찾아해결하려하며,사용자의만족을향상하는데에새로운기술을적용하거나새로운서비스를기획해출시하고성공시키기위한기술을리딩하는데관심이있다.
1부.첫걸음
1장.인간참여머신러닝소개
1.1인간참여머신러닝의기본원리
1.2어노테이션에대한소개
1.2.1간단한어노테이션과복잡한어노테이션전략
1.2.2데이터과학지식의간극메우기
1.2.3왜수작업어노테이션의품질확보가어려울까?
1.3학습데이터생성을위해속도는향상시키고비용은줄이는능동학습소개
1.3.1세가지일반적인능동학습샘플링전략:불확실성,다양성,임의성
1.3.2평가데이터의랜덤선택은무얼말하는것일까?
1.3.3언제능동학습을사용해야할까
1.4머신러닝과인간-컴퓨터상호작용
1.4.1사용자인터페이스:어떻게학습데이터를생성할까?
1.4.2프라이밍:무엇이사람의인지에영향을줄까?
1.4.3머신러닝예측값을평가하면서레이블을생성하는방법의장단점
1.4.4어노테이션을위한인터페이스설계의기본원리
1.5머신러닝의보조를받는사람vs사람의보조를받는머신러닝
1.6전이학습으로모델시작하기
1.6.1컴퓨터비전분야의전이학습
1.6.2자연어처리분야에서의전이학습
1.7이책에서배울수있는것들
요약
2장.인간참여머신러닝시작하기
2.1임시적인방법(핵티브학습)을넘어서:여러분의첫번째능동학습알고리듬
2.2첫번째시스템의아키텍처
2.3능동학습을위한모델예측값과데이터해석
2.3.1신뢰도순위
2.3.2아웃라이어찾아내기
2.3.3이터레이션을통해기대하는것들
2.4수작업레이블링을위한사용자인터페이스만들기
2.4.1텍스트레이블링을위한간단한인터페이스
2.4.2머신러닝데이터관리하기
2.5첫번째인간참여머신러닝시스템배포하기
2.5.1항상평가데이터를먼저선택하라
2.5.2모든데이터포인트가기회를가진다
2.5.3데이터에따라알맞은전략선택하기
2.5.4모델을재학습시키고반복하기
요약
2부.능동학습
3장.불확실성샘플링
3.1머신러닝모델의불확실성에대한해석
3.1.1왜모델의불확실성을봐야할까?
3.1.2소프트맥스와확률분포
3.1.3능동학습의성공해석
3.2불확실성샘플링알고리듬
3.2.1최소신뢰도샘플링
3.2.2신뢰도마진샘플링
3.2.3비율샘플링
3.2.4엔트로피(분류엔트로피)
3.2.5엔트로피심층분석
3.3여러종류의모델이혼동되는경우의식별
3.3.1로지스틱회귀및MaxEnt모델을사용한불확실성샘플링
3.3.2SVM을사용한불확실성샘플링
3.3.3베이지안모델을사용한불확실성샘플링
3.3.4의사결정트리와랜덤포레스트를사용한불확실성샘플링
3.4여러예측에대한불확실성측정
3.4.1앙상블모델을사용한불확실성샘플링
3.4.2위원회질의와드롭아웃
3.4.3우발적불확실성과인식적불확실성의차이
3.4.4다중레이블및연속값분류
3.5수작업검토를위한적절한항목수선택
3.5.1제한된예산에서의불확실성샘플링
3.5.2제한된시간에서의불확실성샘플링
3.5.3시간이나예산이제한되지않은경우언제중지할까?
3.6능동학습의성공여부평가
3.6.1새로운테스트데이터가필요할까?
3.6.2새로운검증데이터가필요할까?
3.7불확실성샘플링치트시트
3.8더읽을거리
3.8.1최소신뢰도샘플링에대한더읽을거리
3.8.2신뢰도마진샘플링에대한더읽을거리
3.8.3신뢰도비율샘플링에대한더읽을거리
3.8.4엔트로피기반샘플링을위한더읽을거리
3.8.5다른머신러닝모델에대한더읽을거리
3.8.6앙상블기반의불확실성샘플링을위한더읽을거리
요약
4장.다양성샘플링
4.1무엇을모르는지알아내기:모델의지식속틈을찾아내기
4.1.1다양성샘플링을위한예제데이터
4.1.2다양성샘플링을위해신경망모델해석하기
4.1.3PyTorch의은닉층에서정보추출하기
4.2모델기반의아웃라이어샘플링
4.2.1활성화값을순위화하기위해검증데이터사용하기
4.2.2모델기반의아웃라이어를계산하려면어느층을사용해야할까?
4.2.3모델기반아웃라이어의한계
4.3클러스터기반의샘플링
4.3.1클러스터의구성원,중심체,아웃라이어
4.3.2우주속의클러스터링알고리듬
4.3.3코사인유사도로k-평균클러스터링하기
4.3.4임베딩또는PCA로특성차원줄이기
4.3.5그밖의클러스터링알고리듬
4.4대표샘플링
4.4.1대표샘플링은단독으로는거의사용되지않는다
4.4.2단순대표샘플링
4.4.3적응형대표샘플링
4.5실세계다양성을위한샘플링
4.5.1학습데이터다양성의공통적인문제
4.5.2인구통계학적다양성확보를위한계층화샘플링
4.5.3표현된것과대표된것중어느것이중요한가?
4.5.4인구통계당정확도
4.5.5실세계다양성을위한샘플링의제약들
4.6다양한유형의모델로다양성샘플링하기
4.6.1다양한유형의모델로모델기반의아웃라이어찾기
4.6.2다양한유형의모델로클러스터링하기
4.6.3다른종류의모델로대표샘플링하기
4.6.4다른종류의모델로실세계다양성샘플링하기
4.7다양성샘플링에대한치트시트
4.8더읽을거리
4.8.1모델기반아웃라이어에대한더읽을거리
4.8.2클러스터기반샘플링에대한더읽을거리
4.8.3대표샘플링에대한더읽을거리
4.8.4실세계다양성샘플링에대한더읽을거리
요약
5장.고급능동학습
5.1불확실성샘플링과다양성샘플링기술의결합
5.1.1클러스터기반샘플링을적용한최소신뢰도샘플링
5.1.2모델기반아웃라이어를이용한불확실성샘플링
5.1.3모델기반아웃라이어와클러스터링을사용한불확실성샘플링
5.1.4대표샘플링과클러스터기반샘플링
5.1.5최상위엔트로피클러스터로부터의샘플링
5.1.6능동학습전략의다른조합들
5.1.7능동학습점수의결합
5.1.8예상오류감소샘플링
5.2불확실성샘플링을위한능동전이학습
5.2.1모델자체의오류를예측하는모델만들기
5.2.2능동전이학습의구현
5.2.3더많은층의능동전이학습
5.2.4능동전이학습의장단점
5.3대표샘플링에능동전이학습적용하기
5.3.1알지못하는것이무엇인지예측하도록모델만들기
5.3.2적응형대표샘플링을위한능동전이학습
5.3.3대표샘플링을위한능동전이학습의장단점
5.4적응형샘플링을위한능동전이학습
5.4.1불확실성예측을통해불확실성샘플링을적응형으로만들기
5.4.2ATLAS의장단점
5.5능동학습용고급치트시트
5.6능동전이학습을위한더읽을거리
요약
6장.여러머신러닝작업에능동학습적용하기
6.1객체검출에능동학습적용하기
6.1.1객체검출에대한정확도:레이블신뢰도와위치지정
6.1.2객체검출에서레이블신뢰도와위치지정을위한불확실성샘플링하기
6.1.3객체검출에서레이블신뢰도와위치지정을위한다양성샘플링하기
6.1.4객체검출을위한능동전이학습
6.1.5지속적인편향을위해낮은객체검출임계치설정하기
6.1.6예측값과유사한대표추출샘플링을위한학습데이터샘플생성하기
6.1.7객체검출에서다양성을위한이미지수준의샘플링하기
6.1.8다각형을사용해더타이트한마스킹고려하기
6.2의미분할에능동학습적용하기
6.2.1의미분할의정확도
6.2.2의미분할을위한불확실성샘플링
6.2.3의미분할을위한다양성샘플링
6.2.4의미분할을위한능동전이학습
6.2.5의미분할에서이미지수준의다양성샘플링
6.3시퀀스레이블링에능동학습적용하기
6.3.1시퀀스레이블링에대한정확도
6.3.2시퀀스레이블링을위한불확실성샘플링
6.3.3시퀀스레이블링을위한다양성샘플링
6.3.4시퀀스레이블링을위한능동전이학습
6.3.5신뢰도와토큰에의한계층화샘플링
6.3.6예측과유사한대표샘플링을위해학습데이터샘플생성하기
6.3.7완전시퀀스레이블링
6.3.8시퀀스레이블링에서문서수준의다양성을위한샘플링
6.4자연어생성에능동학습적용하기
6.4.1자연어생성시스템에대한정확도계산하기
6.4.2자연어생성에대한불확실성샘플링하기
6.4.3언어생성을위한다양성샘플링하기
6.4.4언어생성을위한능동전이학습
6.5다른유형의머신러닝작업에능동학습적용하기
6.5.1정보검색을위한능동학습
6.5.2동영상을위한능동학습
6.5.3음성을위한능동학습
6.6수작업리뷰를위한적절한항목수고르기
6.6.1완전히또는부분적으로레이블링된데이터에대해능동레이블링하기
6.6.2어노테이션과머신러닝을결합하기
6.7더읽을거리
요약
3부.어노테이션
7장.데이터어노테이터와일하기
7.1어노테이션에대한소개
7.1.1좋은데이터어노테이션의세가지원리
7.1.2데이터어노테이션과모델예측검토
7.1.3머신러닝의보조를받은사람의어노테이션
7.2사내전문가
7.2.1내부인력의급여
7.2.2사내인력의고용안정성
7.2.3사내인력의주인의식
7.2.4팁:사내어노테이션세션을항상진행하기
7.3외주인력
7.3.1외주인력을위한급여
7.3.2외주인력의고용안정
7.3.3외주인력의주인의식
7.3.4외주직원과소통하는팁
7.4크라우드소싱작업자
7.4.1크라우드소싱인력의급여
7.4.2크라우드소싱작업자의고용안정성
7.4.3크라우드소싱작업자의주인의식
7.4.4팁:고용안정과경력발전을위한경로조성
7.5다른유형의인력
7.5.1최종사용자
7.5.2자원봉사자
7.5.3게이머
7.5.4모델의예측값을어노테이션으로활용
7.6어노테이션양추정하기
7.6.1필요어노테이션양에대한자릿수공식
7.6.21~4주정도의어노테이션교육과작업정제예상하기
7.6.3비용추정을위해파일럿어노테이션과정확도목표사용하기
7.6.4여러인력유형의결합
요약
8장.데이터어노테이션에대한품질관리
8.1준거정답과어노테이션의비교
8.1.1준거데이터에대한어노테이터일치도
8.1.2예상정확도를위해어떤기준선을사용해야하는가?
8.2어노테이터간일치도
8.2.1어노테이터간일치도에대한소개
8.2.2어노테이터간일치도계산의이점
8.2.3크리펜도르프알파와데이터셋레벨일치도
8.2.4레이블외의크리펜도르프알파계산
8.2.5개별어노테이터일치도
8.2.6레이블당일치도및인구통계학적일치도
8.2.7실세계다양성을위해확장된정확도를일치도로사용하기
8.3학습데이터를생성하기위한여러어노테이션의취합
8.3.1모든사람의결과가일치하는어노테이션의집계
8.3.2다양한어노테이션과낮은일치도에대한수학적사례
8.3.3어노테이터가불일치하는경우의어노테이션집계
8.3.4어노테이터가보고한신뢰도
8.3.5어떤레이블을신뢰할지결정하기:어노테이션의불확실성
8.4전문가검토에의한품질관리
8.4.1적합한인력모집및교육
8.4.2전문가양성
8.4.3머신러닝이보조하는전문가
8.5다단계워크플로우와검토작업
8.6더읽을거리
요약
9장.고급데이터어노테이션과증강기법
9.1주관적작업에대한어노테이션품질
9.1.1어노테이터기대치요청하기
9.1.2주관적작업에대해유효레이블평가하기
9.1.3다양한반응을이해하는어노테이터신뢰하기
9.1.4주관적판단을위한베이지안진실자백제
9.1.5간단한작업을더복잡한작업에포함시키기
9.2어노테이션품질관리를위한머신러닝
9.2.1최적화작업으로어노테이션신뢰도를계산하기
9.2.2어노테이터들이일치하지않을때레이블신뢰도수렴하기
9.2.3단일어노테이션이옳은지예측하기
9.2.4단일어노테이션의일치여부예측하기
9.2.5어노테이터가봇인지예측하기
9.3어노테이션예측모델
9.3.1높은신뢰도의모델예측에의한어노테이션신뢰하기
9.3.2모델예측을1명의어노테이터처럼다루기
9.3.3잘못레이블링된데이터를찾기위해교차검증하기
9.4임베딩과맥락표현
9.4.1기존모델에서전이학습적용하기
9.4.2어노테이션하기쉬운유사작업의표현활용하기
9.4.3자가지도학습:데이터고유의레이블사용하기
9.5검색기반및규칙기반시스템
9.5.1규칙을사용해데이터필터링하기
9.5.2학습데이터검색
9.5.3마스킹으로특징필터링
9.6비지도학습모델에기반한가벼운지도학습
9.6.1비지도학습모델을지도학습모델에적응시키기
9.6.2사람이안내하는탐색데이터분석
9.7합성데이터,데이터생성그리고데이터증강
9.7.1합성데이터
9.7.2데이터생성
9.7.3데이터증강
9.8어노테이션정보를머신러닝모델에통합하기
9.8.1레이블에대한신뢰도에따라항목을필터링하거나가중치부여하기
9.8.2입력에어노테이터ID포함하기
9.8.3불확실성을손실함수에통합하기
9.9고급어노테이션을위한더읽을거리
9.9.1주관적데이터에대한더읽을거리
9.9.2어노테이션품질관리머신러닝에대한더읽을거리
9.9.3임베딩또는문맥표현에대한추가읽을거리
9.9.4규칙기반시스템에대한더읽을거리
9.9.5어노테이션의불확실성을다운스트림모델에통합하기위한더읽을거리
요약
10장.여러가지머신러닝작업을위한어노테이션품질관리
10.1연속값작업을위한어노테이션품질
10.1.1연속값작업을위한준거데이터
10.1.2연속값작업에대한일치도
10.1.3연속값작업의주관성
10.1.4학습데이터를생성하기위해연속적판단집계하기
10.1.5연속값데이터를집계해학습데이터를만들기위한머신러닝
10.2객체검출에서의어노테이션품질
10.2.1객체검출을위한준거데이터
10.2.2객체검출을위한일치도
10.2.3객체검출에서차원수와정확도
10.2.4객체검출에대한주관성
10.2.5학습데이터생성을위해객체어노테이션집계하기
10.2.6객체어노테이션을위한머신러닝
10.3의미분할을위한어노테이션품질
10.3.1의미분할어노테이션을위한준거데이터
10.3.2의미분할에서일치도
10.3.3의미분할어노테이션의주관성
10.3.4학습데이터를생성하기위한의미분할집계하기
10.3.5학습데이터생성을위한의미분할작업집계에머신러닝적용하기
10.4시퀀스레이블링을위한어노테이션품질
10.4.1시퀀스레이블링을위한준거데이터
10.4.2연속데이터의시퀀스레이블링을위한준거데이터
10.4.3시퀀스레이블링에대한일치도
10.4.4시퀀스레이블링을위한머신러닝과전이학습
10.4.5시퀀스레이블링을위한규칙기반,검색기반및합성데이터
10.5언어생성을위한어노테이션품질
10.5.1언어생성을위한준거데이터
10.5.2언어생성에서의어노테이터의일치도와집계
10.5.3자연어생성을위한머신러닝과전이학습
10.5.4자연어생성을위한합성데이터
10.6다른종류의머신러닝작업을위한어노테이션품질
10.6.1정보검색을위한어노테이션
10.6.2다중필드작업을위한어노테이션
10.6.3비디오를위한어노테이션
10.6.4오디오데이터를위한어노테이션
10.7다양한머신러닝작업을위한어노테이션품질에대한더읽을거리
10.7.1컴퓨터비전분야에대해더읽을거리
10.7.2자연어처리어노테이션을위한더읽을거리
10.7.3정보검색에대한어노테이션관련더읽을거리
요약
4부.머신러닝을위한인간-컴퓨터상호작용
11장.데이터어노테이션을위한인터페이스
11.1인간-컴퓨터상호작용의기본원리
11.1.1행동유도성,피드백과주체성
11.1.2어노테이션을위한인터페이스설계
11.1.3안구움직임과스크롤링최소화하기
11.1.4단축키와입력기기
11.2설계규칙깨기
11.2.1일괄어노테이션을위한스크롤
11.2.2페달
11.2.3오디오입력
11.3어노테이션인터페이스내의프라이밍
11.3.1반복적프라이밍
11.3.2프라이밍이도움이안되는상황
11.3.3프라이밍이도움이되는상황
11.4사람과인공지능결합하기
11.4.1어노테이터와피드백
11.4.2다른사람이어노테이션하려는내용을확인해객관성극대화하기
11.4.3연속값문제를순위문제로재변환하기
11.5인간의능력을극대화하는스마트인터페이스
11.5.1의미분할을위한스마트인터페이스
11.5.2객체검출을위한스마트인터페이스
11.5.3자연어생성을위한스마트인터페이스
11.5.4시퀀스레이블링을위한스마트인터페이스
11.6수작업프로세스를보조하는머신러닝
11.6.1효율성향상에대한인식
11.6.2효율성증가를위한능동학습
11.6.3완전성을극대화하기위한부재보다오류가나을수도있다
11.6.4어노테이션인터페이스를일상업무인터페이스와구분하기
11.7더읽을거리
요약
12장.인간참여머신러닝제품
12.1인간참여머신러닝애플리케이션제품정의하기
12.1.1직면한문제부터시작하라
12.1.2문제해결을위한시스템설계
12.1.3Python과HTML의연결
12.2예제1:뉴스헤드라인을위한탐색적데이터분석
12.2.1몇가지가정
12.2.2설계와구현
12.2.3확장가능성
12.3예제2:식품안전사건에대한데이터수집하기
12.3.1가정
12.3.2설계와구현
12.3.3확장가능성
12.4예제3:이미지에서자전거식별하기
12.4.1가정
12.4.2설계와구현
12.4.3확장가능성
12.5인간참여머신러닝제품구축을위한더읽을거리
요약
부록A.머신러닝기초복습하기
A.1모델의예측값해석하기
A.1.1확률분포
A.2소프트맥스파고들기
A.2.1소프트맥스로모델의출력값을신뢰도로변환하기
A.2.2소프트맥스기저또는온도선택
A.2.3지수나누기의결과
A.3인간참여머신러닝시스템평가하기
A.3.1정밀도,재현율,F-점수
A.3.2마이크로/매크로정밀도,재현율,F-점수
A.3.3무작위기회를고려하기:기회보정정확도
A.3.4신뢰도를고려하기:ROC곡선의면적
A.3.5발견된모델오류수
A.3.6인건비줄이기
A.3.7이책에서다루는그외의정확도계산방법
◈이책에서다루는내용◈
◆적절한학습데이터와평가데이터식별
◆적절한데이터어노테이터탐색과관리
◆어노테이션품질관리전략선정
◆정확도와효율성을개선하기위한인터페이스설계
◈이책의대상독자◈
데이터과학자,소프트웨어개발자와머신러닝을이제막시작한(또는최근데이터분야에서자신의커리어를시작한)학생을위한책이다.지도학습과비지도학습머신러닝,머신러닝모델의학습과검증,PyTorch,TensorFlow같은라이브러리에어느정도익숙한사람이면더좋겠지만,이분야의전문가일필요는없다.
여러분이더많은경험을하게됐을때이책이여러기법에관한유용한참고서가되길희망한다.또한어노테이션,능동학습과어노테이션을위한인터페이스설계와같은가장보편적인전략을담은첫번째책이기도하다.
◈이책의구성◈
크게4부로나눠져있다.도입부,능동학습에관한심층분석,어노테이션에관한심층분석그리고최종부분이다.최종부분에서는인터페이스설계전략과3개의구현예제도포함해이책의전반적인내용을종합했다.
1부에서는어노테이션,능동학습그리고사람과기계가지능을가장효과적으로결합할수있도록도움을주는인간-컴퓨터상호작용과같은개념을포함해학습데이터와평가데이터생성을위한구성요소를소개한다.2장의마지막에는뉴스헤드라인을레이블링하는인간참여머신러닝애플리케이션을구축해새로운데이터의어노테이션부터모델을재학습하는주기를완료한후,어떤데이터가다음에어노테이션돼야하는지결정하는데도움을주는모델을이용할수있게될것이다.
2부에서는능동학습,즉사람이검토해야하는가장중요한데이터를샘플링하는기법을다룬다.3장에서는모델의불확실성을이해하기위해가장널리사용되는기법을다루며,4장에서는과소샘플링됐거나대표성이부족한데이터로인해신뢰도와무관하게모델의잘못된지점을식별하는다소복잡한문제를다룬다.5장에서는다양한전략을종합적능동학습시스템으로결합하는방법을소개하고,6장에서는능동학습기법을다양한유형의머신러닝과제에적용하는법을안내한다.
3부에서는학습및평가데이터에대한정확하고대표성있는레이블을얻는중요한주제임에도때때로과소평가받고있는어노테이션에대해다룬다.7장에서는데이터에어노테이션을달수있는적합한사람을찾고관리하는방법을다룬다.8장에서는어노테이션에대한품질관리의기본사항을다루고,정확도와일치도를계산하는가장일반적인방법을소개한다.9장에서는주관적인작업에대한어노테이션과규칙기반시스템,검색기반시스템,전이학습,준지도학습,자가지도학습을비롯해합성데이터생성을포함한광범위한방법을포함한어노테이션품질관리에관한고급기법을다룬다.10장에서는다양한종류의머신러닝작업에대해어노테이션을관리하는방법을배운다.
4부의11장에서는효과적인어노테이션을위한인터페이스를심층분석하고,12장에서인간참여머신러닝애플리케이션의3개의예제를소개한다.
이책전반에걸쳐이미지와문서수준의레이블링,연속데이터,객체검출,의미분할,시퀀스레이블링,언어생성,정보검색과같은다양한종류의머신러닝작업예제와함께한다.내부표지는책전체에서각작업의위치를찾을수있는빠른참조를포함하고있다.