SlideShare a Scribd company logo
1 of 48
방지환 NAVER Clova AI
Low Price, High Quality:
적은 비용으로 모델 성능 높이기
CONTENTS
1. AI 서비스 관리의 어려운 점: 꾸준한 데이터 관리
2. Active Learning: 수 많은 데이터 중 어떤 데이터가 중요할까?
3. Semi-Supervised Learning: 정답이 없는 데이터는 어떻게 사용할까?
4. 연구를 넘어 서비스로!
1. AI 서비스 관리의 어려운 점
AI 서비스
AI 서비스 관리
Implement
SOTA
model
Test before
deploying
Label new
incomes
AI 서비스 관리
Implement
SOTA
model
Test before
deploying
Label new
incomes
AI 서비스 사용정도
[사진 = 과학기술정보통신부 제공]
데이터 레이블 비용 줄이는 방법
Unlabeled
data
Labeled
data
AL
model
SSL
Data Pool
2. ActiveLearning
Active Learning
Active Learning (AL)
- 전사되지 않은 데이터 중 전사할 데이터를 샘플링하는 방법
Unlabeled
data
Labeled
data
AL
Data Pool
Active Learning
Active Learning (AL)
- 전사되지 않은 데이터 중 전사할 데이터를 샘플링하는 방법
Low
uncertainty
High
uncertainty
AL
Data Pool
Bayesian Deep Learning
Deterministic Deep Learning
- 학습을 통해 model parameter 값이 결정
𝑤 =
0.9 ⋯ 1.1
⋮ ⋱ ⋮
1.2 ⋯ 0.5
output
개 고양이 사자 class
Bayesian Deep Learning
학습을 통해 model parameter 분포가 결정
…
…
…
…
𝑤 =
output
개 고양이 사자 class
Bayesian Deep Learning
학습을 통해 model parameter 분포가 결정
…
…
…
…
𝑤 =
output
개 고양이 사자 class
Active Learning: Monte-Carlo Dropout
Dropout 기법을 이용한 Bayesian Learning
…
Active Learning: Monte-Carlo Dropout
Dropout 기법을 이용한 Bayesian Learning
여러 개의 output을 이용한 sample uncertainty 측정
…
Uncertainty Measure
𝑢𝑛𝑐𝑒𝑟𝑡 = 𝑓(𝑦1, 𝑦2,…, 𝑦 𝑁 )
𝑓: 𝑅 𝑁 × 𝑛𝑢𝑚_𝑐𝑙𝑎𝑠𝑠 → 𝑅
Monte-Carlo Dropout 결과
Gal, Yarin, Riashat Islam, and Zoubin Ghahramani. "Deep bayesian active learning with image data." arXiv preprint arXiv:1703.02910 (2017).
실제 데이터에 적용하기: 이미지 분류
네이버 쇼핑 스팸 필터링
normal monotone
screensho
t
unknown
실제 데이터에 적용하기: 이미지 분류
실제 데이터에 적용하기: 자동 음성 인식
Hello Hello
실제 데이터에 적용하기: 자동 음성 인식
Monte-Carlo Dropout 적용의 한계
Sequential
Model
High
computatio
n
실제 데이터에 적용하기: 자동 음성 인식
Monte-Carlo Dropout 적용의 한계
Sequential
Model
High
computatio
n
실제 데이터에 적용하기: 자동 음성 인식
Normalized Path Probability
Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc VLe, Mohammad Norouzi, Wolfgang Macherey,
MaximKrikun, Yuan Cao, Qin Gao, Klaus Macherey, et al.,“Google’s neural machine translation system: Bridgingthe gap between human and machine
translation,”arXivpreprint arXiv:1609.08144, 2016.
𝑢𝑛𝑐𝑒𝑟𝑡 = 1 − 𝑝𝑝𝑟𝑜𝑏(𝑦)
𝑝𝑝𝑟𝑜𝑏 𝑦 = max
𝑦
log 𝑃 𝑦 𝑥
𝑙𝑝(𝑦)
𝑙𝑝 𝑦 =
5 + 𝑦 1.2
5 + 1 1.2
실제 데이터에 적용하기: 자동 음성 인식
Labelling
Budget
Initial
Active
Learning
Full Budget
38.6h (1/10)
15.60
12.07
8.74
57.0h (1/7) 11.41
77.0h (1/5) 10.70
137.0h (1/3) 9.96
실제 데이터에 적용하기: 자동 음성 인식
Labeling
Budget
Initial
Active
Learning
Full Budget
38.6h (1/10)
15.60
12.07
8.74
57.0h (1/7) 11.41
77.0h (1/5) 10.70
137.0h (1/3) 9.96
🤔
3. Semi-Supervised Learning
Semi-Supervised Learning (SSL)
Unlabeled
data
Labeled
data
model
SSL
Supervised
Learning
SSL: Pseudo Labelling
Pseudo labelling
- unlabeled data를 학습에 사용하는데 충분할까요?
Unlabeled
data
Labeled
data
Trained model
Pseudo
Labeled
data
+
Training
dataset
Consistency Regularization
Consistency Regularization을 이용한 선행연구: FixMatch
Sohn, Kihyuk, et al. "Fixmatch: Simplifying semi-supervised learning with consistency and confidence." arXiv preprint arXiv:2001.07685 (2020).
Consistency Regularization
Sohn, Kihyuk, et al. "Fixmatch: Simplifying semi-supervised learning with consistency and confidence." arXiv preprint arXiv:2001.07685 (2020).
Consistency Regularization
Sohn, Kihyuk, et al. "Fixmatch: Simplifying semi-supervised learning with consistency and confidence." arXiv preprint arXiv:2001.07685 (2020).
실제 데이터 적용: 자동 음성 인식
FixMatch를 자동 음성 인식에 적용 시 어려운 점
Need initial
trained
model
학습된 모델
준비
실제 데이터 적용: 자동 음성 인식
FixMatch를 자동 음성 인식에 적용 시 어려운 점
Sensitive
for noise
Use origin
instead of
weak aug.
실제 데이터 적용: 자동 음성 인식
Labeling
Budget
Initia
l
Active
Learnin
g
Pseudo
Label
Pseudo
Label -
tau
CR-S CR-P CR-A CR-SA
Full
Budget
38.6h
(1/10)
15.6
0
12.07 18.97 17.82 10.95 11.03 10.77 10.53
8.74
57.0h (1/7) 11.41 18.05 17.65 10.61 10.61 10.46 10.40
77.0h (1/5) 10.70 17.46 15.49 10.21 10.35 10.09 9.86
137.0h
(1/3)
9.96 14.95 11.38 9.80 9.79 9.80 9.56
실제 데이터 적용: 자동 음성 인식
Labeling
Budget
Initia
l
Active
Learnin
g
Pseudo
Label
Pseudo
Label -
tau
CR-S CR-P CR-A CR-SA
Full
Budget
38.6h
(1/10)
15.6
0
12.07 18.97 17.82 10.95 11.03 10.77 10.53
8.74
57.0h (1/7) 11.41 18.05 17.65 10.61 10.61 10.46 10.40
77.0h (1/5) 10.70 17.46 15.49 10.21 10.35 10.09 9.86
137.0h
(1/3)
9.96 14.95 11.38 9.80 9.79 9.80 9.56
실제 데이터 적용: 자동 음성 인식
초기와 현재 데이터셋의 도메인이 다르다면?
Labeling Budget Initial CR-SA Full Budget
38.6h (1/10)
49.25
11.9
7.55
57.0h (1/7) 9.27
77.0h (1/5) 8.58
137.0h (1/3) 7.74
4. 연구 너머 서비스로
이전의 AI 서비스 모델 버전 방식
Data stream
Unlabeled
data
Labeled
data
random
model
train
deploy
Data pool #1 Data pool #2
앞으로의 AI 서비스 모델 버전 방식
Data stream
Unlabeled
data
Labeled
data
Active
Learning
model
train
deploy
Data pool #1 Data pool #2
SSL
DelphiSeer: Active Learning Monitoring
Tool1
2
3
4
DelphiSeer: Active Learning Monitoring
ToolJob Overview
DelphiSeer: Active Learning Monitoring
ToolDataset Summary
DelphiSeer: Active Learning Monitoring
ToolPerformance History
DelphiSeer: Active Learning Monitoring
ToolLabeled Data Filtering
DelphiSeer: Futurework
다양한
도메인
최신 SSL
기술 도입
사용자 리뷰
Contributors
방지환 김희수 하정우 유영준
Lar
박흥석 김희재
Thank You
Q & A

More Related Content

Similar to Low Price, High Quality: 적은 비용으로 모델 성능 높이기 (Naver Deview 2020)

Investment and deep learning
Investment and deep learningInvestment and deep learning
Investment and deep learning
NAVER Engineering
 
딥러닝 음성합성기 개발 - 셀바스AI
딥러닝 음성합성기 개발 - 셀바스AI 딥러닝 음성합성기 개발 - 셀바스AI
딥러닝 음성합성기 개발 - 셀바스AI
oldamigo
 

Similar to Low Price, High Quality: 적은 비용으로 모델 성능 높이기 (Naver Deview 2020) (20)

마인즈랩소개자료 20150616
마인즈랩소개자료 20150616마인즈랩소개자료 20150616
마인즈랩소개자료 20150616
 
(Qraft)naver pitching
(Qraft)naver pitching(Qraft)naver pitching
(Qraft)naver pitching
 
Investment and deep learning
Investment and deep learningInvestment and deep learning
Investment and deep learning
 
8월 24일 인공지능사업화 세미나: 로봇 어드바이저리 - 크래프트 테크놀로지스
8월 24일 인공지능사업화 세미나: 로봇 어드바이저리 - 크래프트 테크놀로지스8월 24일 인공지능사업화 세미나: 로봇 어드바이저리 - 크래프트 테크놀로지스
8월 24일 인공지능사업화 세미나: 로봇 어드바이저리 - 크래프트 테크놀로지스
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습
 
인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례 인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
 
Machine learning and deep learning (AiBB Lab)
Machine learning and deep learning (AiBB Lab)Machine learning and deep learning (AiBB Lab)
Machine learning and deep learning (AiBB Lab)
 
융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루
 
권기훈_포트폴리오
권기훈_포트폴리오권기훈_포트폴리오
권기훈_포트폴리오
 
Into The Unknown - A Gentle Introduction to AI.pptx
Into The Unknown - A Gentle Introduction to AI.pptxInto The Unknown - A Gentle Introduction to AI.pptx
Into The Unknown - A Gentle Introduction to AI.pptx
 
인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기
 
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
의료계에부는 언택트 바람 - 강지나 클라우드 솔루션 아키텍트
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
딥러닝 음성합성기 개발 - 셀바스AI
딥러닝 음성합성기 개발 - 셀바스AI 딥러닝 음성합성기 개발 - 셀바스AI
딥러닝 음성합성기 개발 - 셀바스AI
 

Low Price, High Quality: 적은 비용으로 모델 성능 높이기 (Naver Deview 2020)

Editor's Notes

  1. 안녕하세요. Naver Visual AI 소속 방지환입니다. 이번 세션에서 저는 Low Price, Hight Quality. 적은 비용으로 모델 성능을 높이는 방법에 대해 이야기하고자 합니다.
  2. 목차는 크게 4가지로 나누어서 진행하고자 합니다. 첫번째로 AI 서비스 관리에 대해 이야기하여 어떠한 어려운 점들이 있는 지 알아보고자 합니다. 그리고 두번째 Active Learning과 세번째 Semi-supervised learning. 데이터 레이블 비용을 줄여주는 2가지 대표 기술인데, 각각의 이전 연구들의 개념 설명과 실서비스 데이터를 이용하였을 때의 결과를 공유하고자 합니다. 마지막으로는 이 기술들을 AI 서비스에 적용했을 때의 시각화를 위해 개발한 monitoring tool을 소개하고자 합니다.
  3. AI 기술이 고도화되면서 다양한 AI 기술들을 이용한 서비스들이 등장하고 있습니다. 네이버는 지난 데뷰 2019 컨퍼런스에서 사용된 얼굴인식 자동 출석 시스템 FaceSign, 많은 분들이 애용하고 계시는 파파고 통역기, 인공지능 비서 클로바 스피커 등 여러 개의 대표 AI 서비스들이 존재합니다. 그럼 과연 현재 AI 서비스들은 어떻게 관리를 할까요?
  4. AI 서비스 관리를 하는데는 크게 3가지가 필요합니다. 첫 번째로는 새로 들어오는 데이터의 관리입니다. 두 번째는 최고 성능을 보이는 모델 구현이 있구요. 마지막으로 deploy 전 inference time 체크 등과 같이 테스트하는 작업이 필요합니다. 3개 중 AI 서비스 성능에 가장 중요한 것은 무엇일까요?
  5. 바로 새로 들어오는 데이터 관리입니다. 그 이유는 나머지 2개는 더 좋은 성능을 위해 필요한 요소이지만 새로운 데이터에 대해 학습이 되지 않는다면 유저 입장에서 서비스 품질이 나쁘다고 느끼기 때문입니다. 그렇다면 AI 서비스는 하루에 얼마만큼의 데이터가 축적될까요?
  6. 과학기술정보통신부의 정보에 따르면 인공지능 매출액은 11.5%, 인공지능스피커 판매대수는 전년도 대비 45.7% 높아졌다고 이야기합니다. 이 의미는 인공지능 서비스의 시장규모가 점차 커지고 있고, 사람들이 인공지능 서비스를 많이 이용하고 있다고 생각할 수 있습니다. 예를 들어서 인공지능 스피커의 861만대가 하루에 1분씩만 데이터를 저장하여도, 14만 3500시간의 데이터가 들어오게 됩니다. 이와 같은 증가추세로 보았을 때 앞으로는 실서비스 데이터들의 양이 기하급수적으로 늘어나고 있다고 이야기할 수 있습니다. 그렇다면 기하급수적으로 늘어나는 모든 데이터에 정답을 매기는 것이 가능할까요? 가능할 수도 있지만, 막대한 양의 자본을 필요로 할 것입니다.
  7. Data labelling cost를 줄이기 위해서는 결국 데이터 중 일부분만 레이블링해야합니다. 이 부분에 있어서 Active Learning, semi-supervised learning 2개의 분야가 존재하는데요. Active Learning은 레이블되지 않은 데이터 중 레이블링할 데이터를 샘플링하는 방법에 대한 내용을 다룹니다. 그리고 semi-supervised learning은 레이블되지 않은 데이터를 학습에 이용하는 방법에 대해 다룹니다.
  8. 그럼 먼저 Active Learning에 대해 설명드리도록 하겠습니다.
  9. 이전 슬라이드에서 이야기하였듯이 Active Learning은 레이블되지 않은 데이터 중 레이블할 데이터를 뽑는 방법입니다. 그렇다면 어떤 데이터를 레이블해야 모델 성능을 더 큰 폭으로 향상시킬 수 있을까요? 곰곰히 생각해보면, 모델이 그 동안 보지 못했던 데이터, 즉 모델 입장에서 어려운 데이터가 모델 성능을 더 큰 폭으로 향상시킬 수 있을 것입니다.
  10. Active Learning에서는 데이터의 어려운 정도를 uncertainty로 정의힙니다. 그리고 모델 입장에서 어려운 데이터, 즉 먼저 레이블 해야할 데이터는 높은 uncertainty 값을 갖습니다. 그러면 남은 문제는 각 데이터들의 uncertainty를 구하는 방법인데요. 많은 연구들이 진행되었지만, 저희는 그 중에서 Bayesian Deep Learning을 이용한 uncertainty를 측정하는 방법을 소개하고자 합니다.
  11. Bayesian Deep Learning을 설명하기에 앞서 deterministic deep learning을 먼저 짚고 넘어가도록 하겠습니다. Deterministic deep learning은 여러분들이 생각하시는 일반 deep learning과 같다고 보셔도 무방합니다. Deterministic deep learning은 학습을 통해 model parameter(weight)값이 결정됩니다. 그래서 학습 이후에 inference를 하는 경우, 같은 고양이 사진이 들어오면 output은 항상 같은 분포를 가지고 있습니다.
  12. 하지만 Bayesian deep learning의 정의는 이전의 deterministic deep learning과는 다릅니다. 가장 큰 차이점은 \학습을 통해 model parameter의 값이 아닌 확률 분포가 결정되는 것입니다. 그래서 학습 이후 inference를 하는 경우 같은 고양이 사진을 input으로 사용했을 지라도 결과 분포는 다음과 같이 달라질 수 있습니다.
  13. 이런 개념이 여러분들에게는 조금 생소하실 수 있습니다. 그 이유는 대부분의 딥러닝은 학습을 통해 model parameter값을 결정지어 같은 사진을 inference할 때에는 같은 output이 나오기 때문입니다. 그렇다면, 같은 사진을 inference할 때 다른 output이 나오게 하도록 하는 방법은 어떤 것이 있을까요?
  14. 많은 stochastic layer들이 존재하지만 제가 찾은 논문에서는 dropout layer를 이용히였습니다. 즉, model inference 때에 dropout layer를 활성화시켜 model output에 랜덤성을 주는 방법입니다. 물론 학습 이후 model weight들은 값으로 결정되지만, dropout layer가 활성화 되어 random pruning을 통해 같은 사진에 대해서도 inference의 output 분포가 달라지게 됩니다. 그렇다면 이 기법을 통해 어떻게 uncertainty를 측정할 수 있을까요?
  15. 논문의 저자는 모델이 특정 데이터를 잘 학습하였다면, 즉 uncertainty가 낮다면, 비록 dropout layer가 활성화되었더라도 Bayesian model의 output 변동이 적을 것이라고 주장합니다. 달리 말하면, 모델에게 어려운 데이터는 변동성이 높다는 이야기가 되는 것이죠. 이 주장을 뒷받침하기 위해 논문 저자는 여러 개의 model output을 통해 uncertainty를 구하는 공식을 만들었고, 실험을 통해 uncertainty가 높은 데이터로 먼저 학습을 시킬수록 학습 성능이 더 좋아지는 것을 증명하였습니다. 저자는 논문에서 이와 같은 방법을 Monte-Carlo Dropout이라고 명명하였습니다. 물론 Uncertainty를 구하는 공식도 여러 개가 있고 각 공식이 내포하고 있는 의미가 다르지만, uncertainty는 여러 개의 model output 분포를 이용한 어떤 함수라는 것만 알고 넘어가도록 하겠습니다.
  16. 논문 저자는 MNIST에 대해서 대해서 Active Learning 결과를 보여주고 있습니다. 그래프를 보시면 x축은 레이블 데이터 양을 의미하고, y축은 정확도를 의미합니다. 그림에서 오른쪽 하단에 레전드를 보시면 BALD, Var Ratio, Max Entropy 등과 같은 이름들이 보이는데 이들은 모두 uncertainty를 구하는 공식의 이름들 입니다. 여기서 중요한 포인트는 Monte-Carlo Dropout 방법이 Random으로 data를 선택해서 레이블링하는 것보다 성능이 좋은 것을 볼 수 있습니다.
  17. 저는 이 방법이 실서비스에서도 적용이 가능할지에 대한 의문이 들었습니다. 그래서 네이버 쇼핑 스팸 필터링 문제를 통해 Active Learning 성능을 실험해보았습니다. 네이버 쇼핑 스팸 필터링 문제는 네이버 쇼핑 후, 리뷰를 적을 때 사진을 첨부할 수 있게 되어있는데요. 첨부된 사진이 올바른 사진인지를 체크하는 문제였습니다. 한마디로 캡처나 이상한 사진들을 골라내는 전형적인 image classification 문제이죠. 저희는 이상한 사진들의 분류를 monotone, screenshot, unknown 3가지로 분류하였고, 총 4가지의 클래스 분류 문제로 만들었습니다.
  18. 저희는 image 개수를 1000개씩 늘려가면서 정확도를 측정하였습니다. 실험은 각각 3번씩 실행하였고, 모델은 Pretrained Resnet50, train epoch는 100으로 설정하였습니다. 그 결과 비록 MNIST 실험처럼 예쁜 곡선을 이루지는 않지만, Active Learning이 Random에 비해 성능이 높은 것을 확인할 수 있었습니다. 옆 표에 의하면 특정 Accuracy에 도달하기까지 필요한 sample 수를 random과 Active Learning과 비교를 했을 때 Active Learning이 50% 이상 수준으로 labelling cost를 줄일 수 있음을 보였습니다. 또한, 특정 accuracy 값을 높게 잡을수록 cost reduction을 더 큰 비율로 줄일 수 있음을 보실 수 있습니다. 저희는 이 실험을 기반으로 해서 Active Learning을 이미지 분류를 넘어서서 다른 Data domain으로 확장시켜보고 싶었고, 레이블링 단가가 쎈 STT(Speech to Text)에 적용해보기로 하였습니다.
  19. 자동 음성 인식은 최근 인공지능 스피커에 필수적으로 사용되는 기술입니다. 자동 음성 인식은 발화자가 어떠한 말을 하여 audio로 주어졌을 때, 이를 text로 옮기는 기술을 말합니다. 예를 들어 사람이 “Hello”라고 말을 하면 클로바 스피커는 그 음성을 Input으로 자동 음성 인식 모델에 넣고, output으로 “Hello”라고 전사해야하는 것입니다. 이 분야의 Labelling을 하는 작업은 단순한 이미지 분류보다 높은 전문성을 요구하기 때문에, Labelling 단가가 높아 Active Learning이 접목되면 이미지 분류에 비해 더 많은 Labelling 예산을 줄일 수 있다고 생각하였습니다. 그래서 이미지 분류때와 비슷하게 Monte-Carlo Dropout을 적용해보기로 하였습니다.
  20. 하지만 Monte-Carlo Dropout을 자동음성인식 기술에 적용하는 일은 매우 어려웠습니다. 그 이유는 2가지로 설명할 수 있는데요. 첫번째로는 높은 계산량입니다. Monte-Carlo dropout은 uncertainty를 측정하기 위해 여러 번의 inference를 거치기 때문에 많은 계산량을 요구합니다. 그래서, 이미지 분류보다 더 많은 계산량을 요구하는 자동 음성 인식 기술에 Monte-Carlo Dropout을 사용하는 것은 무리가 있다고 판단하였습니다.
  21. 두 번째로는 Sequential Model입니다. Sequential model은 이미지 분류 모델과는 달리 현재 character 예측이 이전 character 예측에 영향을 받습니다. 그렇기 때문에 자동음성인식 기술에 Monte-Carlo Dropout으로 uncertainty를 측정하는 것은 적절치 못하다고 판단하였습니다.
  22. 2016년도에 나온 다른 논문에서는 자동음성인식에서 사용할 수 있는 uncertainty 구하는 방법에 대해서 이야기하고 있습니다. 수식적인 것을 다 배제하고 설명을 드리면 pprob은 결국 각 character의 예측 확률의 평균이라고 보시면 됩니다. 즉, pprob은 input audio x가 주어졌을 때 y로 예측할 확률, 즉 y에 대한 confidence 수치라고 이야기할 수 있습니다. uncertainty는 confidence와 반대되는 개념이기 때문에 1에서 pprob를 뺀 값으로 정의할 수 있습니다.
  23. 이전 슬라이드에서 설명한 자동 음성 인식에서의 Active Learning기술을 이용하여, clova speaker로부터 받은 데이터에 적용해보았습니다. 먼저 데이터셋은 초기 데이터셋 110 시간, 그리고 Active Learning을 적용할 데이터셋을 386시간으로 구성하였고, 모델은 LAS를 사용하였습니다. 그리고 Active Learning을 통해 labeling budget을 다르게 설정하여 CER을 측정하였습니다. 보시다시피 Labelling budget을 많이 사용할수록 CER이 줄어드는 것을 알 수 있습니다. 하지만, 1/10만 Labelling budget을 사용해도 Initial과 Full budget 사용한 결과의 중간값정도 결과를 볼 수 있었고, Labeling budget의 1/3만 사용하여도 전체 Labelling budget을 사용한 CER과 1%정도밖에 차이가 나지 않는 것을 볼 수 있었습니다.
  24. 하지만, 나머지 레이블 되지 않은 데이터를 학습에 사용하지 않는 점이 아깝다는 생각이 들었고, 자연스럽게 레이블이 없는 데이터를 학습에 사용하여 성능을 더 향상시킬 수는 없을 지 고민하게 되었습니다. 관련 논문들을 찾아본 결과 Semi-Supervised Learning 분야에서 다양한 방법들이 제시되고 있었습니다.
  25. Supervised Learning은 레이블된 데이터를 이용하여 모델을 학습합니다. 반면 Semi-supervised learning은 기존 supervised Learning과 달리 Unlabeled data도 학습에 사용한다는 점에서 차이를 가지고 있습니다. 그렇다면 어떻게 레이블이 되지 않은 데이터를 학습에 사용할 수 있을까요?
  26. 가장 쉽게 떠올릴 수 있는 방법은 학습된 모델을 이용하여 pseudo labelling을 하여 Labeled data와 같이 학습 데이터셋으로 이용하는 것입니다. 하지만 이렇게 하면 이전보다 성능이 좋아질 수 있을까요? 만약 좋아진다면 더이상 semi-supervised learning을 연구할 필요가 없겠죠 ㅎㅎ 여러분도 아시다시피 좋아질 수 없습니다. 그 이유는 pseudo labelling에는 model이 학습하지 못한 데이터에 대해서 오답을 레이블할 것이고, 오답을 가진 데이터를 이용하여 모델을 학습시키면 모델이 오답에 overfitting이 되어 도리어 성능이 악화가 될 수 있기 때문입니다.
  27. 이러한 문제를 해결하기 위해서 Consistency Regularization 기법이 image classification 분야에서 소개가 되었습니다. 이를 이용한 기법 중 하나인 FixMatch 논문을 소개하고자 합니다. FixMatch는 Labeled data에 대해서는 supervised learning과 같이 loss를 계산합니다. 그리고 unlabeled data에 대해서 우선 약한 변형과 강한 변형을 줍니다. 약한 변형에 대해서 예측 확률이 특정 threshold 이상이면, pseudo-label을 하고, 강한 변형에서 나온 model output과의 loss를 계산합니다. 이러한 방법을 통해 이전 슬라이드에서 언급한 pseudo labelling에 비해 오답으로의 overfitting되는 문제를 해결합니다. Pseudo lasbelling이 오답으로의 overfitting이 되는 문제, 그리고 Consistency Regularization의 효과에 관한 실험 결과는 나중에 더 자세히 설명드리도록 하겠습니다.
  28. FixMatch 논문에서는 cifar10, cifar100, 등 다양한 Public image classification dataset에 대해서 Error rate을 실험하였지만 그 중에서 cifar10 결과에 대해서만 이야기를 하고자 합니다. 여기서 MixMatch, UDA, ReMixMatch는 방법은 살짝씩 다르지만 모두 consistency reguliarzation에 해당하는 기법들입니다. Pseudo-Labeling과 성능을 비교해보았을 때 consistency regularization의 성능이 월등히 좋은 것을 보실 수 있습니다. Cifar10의 전체 데이터셋인 50,000개 중에서 250개의 label만 사용했을 때 pseudo labeling 대비 대략 43포인트 정도 이득을 보고, 4000개의 Label만 사용했을 때에는 12포인트 정도 이득을 보는 것을 보실 수 있습니다. 여기서 label의 개수가 많아질수록 pseudo labeling과의 격차가 낮아지는 이유는 pseudo label이 오답으로의 overfitting이 점차 해소되고 있기 때문입니다. 그리고 consistency regularization은 pseudo label에서의 overfitting 문제를 해소함으로써 성능이 더 좋아지는 것을 보실 수 있습니다.
  29. FixMatch 논문에서는 cifar10, cifar100, 등 다양한 Public image classification dataset에 대해서 Error rate을 실험하였지만 그 중에서 cifar10 결과에 대해서만 이야기를 하고자 합니다. 여기서 MixMatch, UDA, ReMixMatch는 방법은 살짝씩 다르지만 모두 consistency reguliarzation에 해당하는 기법들입니다. Pseudo-Labeling과 성능을 비교해보았을 때 consistency regularization의 성능이 월등히 좋은 것을 보실 수 있습니다. Cifar10의 전체 데이터셋인 50,000개 중에서 250개의 label만 사용했을 때 pseudo labeling 대비 대략 43포인트 정도 이득을 보고, 4000개의 Label만 사용했을 때에는 12포인트 정도 이득을 보는 것을 보실 수 있습니다. 여기서 label의 개수가 많아질수록 pseudo labeling과의 격차가 낮아지는 이유는 pseudo label이 오답으로의 overfitting이 점차 해소되고 있기 때문입니다. 그리고 consistency regularization은 pseudo label에서의 overfitting 문제를 해소함으로써 성능이 더 좋아지는 것을 보실 수 있습니다.
  30. 저희는 FixMatch를 자동 음성 인식에 적용을 해보고자 시도하였습니다. 하지만 두 가지의 어려운 점이 존재하였습니다. 먼저 이미지 분류 때와는 달리 초기 학습된 모델이 필요하였습니다. 그 이유는 모델 학습에 있어서 이미지 모델에 비해 많은 양의 학습 데이터를 필요로 하기 때문입니다.
  31. 두 번째로는 input noise에 민감하다는 점입니다. 이 점은 sequential model의 제약이라고 볼 수 있습니다. 만약 noise로 인해 첫 character가 잘못 예측된다면, 그 이후의 character 예측에도 영향을 주기 때문에 제대로된 pseudo labelling을 할 수 없게 됩니다. 그래서 저희는 weak augment대신 origin input을 사용하기로 하였습니다.
  32. 저희는 Consistency Regularization을 자동 음성 인식에 맞게 변형한 후에 실험을 진행하였습니다. 앞선 슬라이드에서 이야기하였듯이 pseudo labelling은 noise에 의한 overfitting으로 인해 오히려 Active Learning보다도 CER이 나빠지는 것을 보실 수 있습니다. 그래서 저희는 pseudo labelling을 특정 threshold tau를 통해 noise에 의한 overfitting을 해소해보고자 하였습니다. 물론 전체 데이터에 대해 pseudo labelling한 것보단 성능이 좋아졌지만, 여전히 Active Learning에 비해 성능이 안좋은 것을 보실 수 있습니다. 이 뜻은 pseudo labelling만으로는 unlabel data를 학습에 이용할 수 없음을 이야기합니다. Consistency regularization에서 augmentation 방식은 Speed조절, pitch조절, Gaussian Noise 더하기, 구글에서 발표한 SpecAugment 4가지를 사용하였고, 이 때 SpecAugment가 가장 성능이 좋은 것을 보실 수 있습니다. labelling budget을 적게 사용할수록 Consistency Regularization의 효과가 커지는 것을 보실 수 있고, Active Learning의 성능보다 적게는 0.5포인트에서 많게는 2포인트까지 성능을 개선할 수 있음을 볼 수 있습니다.
  33. 저희는 Consistency Regularization을 자동 음성 인식에 맞게 변형한 후에 실험을 진행하였습니다. 앞선 슬라이드에서 이야기하였듯이 pseudo labelling은 noise에 의한 overfitting으로 인해 오히려 Active Learning보다도 CER이 나빠지는 것을 보실 수 있습니다. 그래서 저희는 pseudo labelling을 특정 threshold tau를 통해 noise에 의한 overfitting을 해소해보고자 하였습니다. 물론 전체 데이터에 대해 pseudo labelling한 것보단 성능이 좋아졌지만, 여전히 Active Learning에 비해 성능이 안좋은 것을 보실 수 있습니다. 이 뜻은 pseudo labelling만으로는 unlabel data를 학습에 이용할 수 없음을 이야기합니다. Consistency regularization에서 augmentation 방식은 Speed조절, pitch조절, Gaussian Noise 더하기, 구글에서 발표한 SpecAugment 4가지를 사용하였고, 이 때 SpecAugment가 가장 성능이 좋은 것을 보실 수 있습니다. labelling budget을 적게 사용할수록 Consistency Regularization의 효과가 커지는 것을 보실 수 있고, Active Learning의 성능보다 적게는 0.5포인트에서 많게는 2포인트까지 성능을 개선할 수 있음을 볼 수 있습니다.
  34. 뿐만 아니라 초기 학습 데이터셋과 다른 도메인에 있는 데이터셋을 이용하였을 때의 실험도 진행해보았습니다. 초기 데이터셋은 일상생활에 대한 음성 파일들이었고, Active Learning을 적용할 데이터셋은 Map Navigation에 관한 음성파일로 진행을 하였습니다. 테스트셋이 초기 학습 데이터셋과 다른 도메인에 있기 때문에 초기 모델 CER은 49.25로 나쁘지만, Active Learning과 Semi-Supervised Learning을 모두 이용하게 되면 1/3만 레이블링을 해도 전체 데이터를 사용한 결과와 0.2 포인트밖에 차이가 나지 않는 것을 보실 수 있습니다. 이와 같은 결과들을 통해 실서비스의 데이터셋을 사용해도 레이블링 예산을 반 이상 줄일 수 있다고 이야기할 수 있습니다. 그렇다면 Active Learning과 Semi-supervised Learning을 서비스에 적용하여 모델 관리를 하려면 어떠한 것들이 필요한지 알아보도록 하겠습니다.
  35. AI서비스는 그림에서 보시는 바와 같이 시간에 따라 data 분포가 다를것입니다. 어떤 경우에는 새로운 class가 들어오는 경우도 있겠죠. 이렇듯 새로운 데이터 분포에 익숙해져야만 AI 서비스의 품질을 유지할 수 있기 때문에 특정 주기로 모델을 finetuning하는 것은 필수적입니다. AI 서비스 모델이 동작하고 있을 때 모델을 버저닝 하는 간단한 방법은 그림과 같은데요. 먼저 Data pool에서 random하게 label할 데이터를 뽑고(물론 전체를 다 Label할수도 있겠죠 ㅎㅎ ), labeled data를 이용하여 model을 finetuning한 후, 모델을 다시 deploy하는 방식으로 진행이 되었습니다.
  36. 그렇지만 Active Learning과 Semi-Supervised Learning을 적용한다면, Data pool에서 Active Learning을 통해 label할 데이터를 뽑고, labeled data와 unlabeled data를 모두 사용하여 model에 semi-supervised Learning을 적용하여 parameter 업데이트 합니다 그리고 그 후에, 모델을 다시 deploy하는 방식으로 진행이 될 것입니다. 하지만 시스템이 이렇게 구축된다면 유저는 Active Learning과 Semi-Supervised Learning이 제대로 동작하고 있는 지, 현재 데이터셋의 구성은 어떻게 되어있는 지 알 방법이 없습니다. 그래서 Active Learning과 Semi-Supervised Learning을 모니터링할 수 있는 페이지가 필요하다고 생각하였습니다.
  37. 그래서 DelphiSeer라는 Active Learning Monitoring Tool을 구현하였습니다. DelphiSeer는 크게 4가지의 component로 분류되어 있습니다.
  38. 첫 번째로는 Job overview입니다. 이곳에서는 어떤 데이터셋을 사용하는지, task type은 무엇인지를 볼 수 있고, 사용자는 Active Learning의 uncertainty 종류를 결정지을 수 있습니다.
  39. 두 번째로는 Dataset Summary View입니다. 이곳은 각 클래스별 데이터의 개수를 시각화해주는데요. 우선 색깔이 진한 그래프는 사람이 레이블한 것이고, 옅은 색은 pseudo labelling한 분포입니다. 그래서 labeled data 와 pseudo labeled data간의 비중도 볼 수 있고, 각 클래스별 학습에 사용되는 데이터 개수도 확인할 수 있습니다.
  40. 3번째로는 performance history view입니다. 이 부분은 Data pool 별로 정확성 정보를 제공하여 기존 대비 얼만큼 성능 향상이 있었는 지를 모니터링 할 수 있습니다. 또한 아래와 같이 각 클래스 별로 pseudo label threshold를 정할 수 있어 학습에 사용될 pseudo label양도 결정할 수 있습니다.
  41. 마지막으로는 Labeled data filtering입니다. 이 부분은 각 클래스별로 threshold를 결정하면 얼마만큼의 양이 pseudo label되는 지를 보여줍니다. 이를 통해 사용자는 데이터의 uncertainty분포를 살펴보며 각 클래스별 최적의 pseudo label threshold를 찾을 수 있습니다.
  42. DelphiSeer는 앞으로 더 많은 기능들을 구현할 예정입니다. 먼저 더 다양한 도메인에 대한 데이터 시각화, 현재는 pseudo labelling으로 되어 있지만 최신 Semi-supervised Learning 기술 도입, 그리고 사용자 피드백 기반으로 다양한 기능을 추가할 예정입니다.
  43. 마지막으로 이 발표를 할 수 있도록 저와 같이 열심히 일하신 분들을 소개하고 마치도록 하겠습니다. 희수님, 정우 리더님, 영준 리더님, 흥석님, Lars, 그리고 희재님께 정말로 감사드리고 앞으로도 잘 부탁드립니다. 이상 저의 발표를 마치도록 하겠습니다. 감사합니다.