* 크롬으로 보시는 걸 추천드립니다 *
2. 딥러닝을 위한, Active Learning
- Core-set : kmhana.tistory.com/6?category=838050
- Loss for Active Learning : kmhana.tistory.com/10?category=838050
- Discriminative Active Learning(DAL) : kmhana.tistory.com/12
파트가 끝나고, 오늘은 Active Learning에서 조금은 편한 주제로 작성하려고 합니다.
서론
딥러닝을 개발하다 보면, 필수적을 맞닥뜨리는 문제는
1. 데이터를 어떻게 얼마나 획득을 하는가?
2. 어떻게 레이블링 할 것인가? - ( 누가? 얼마나? 비용은 누가?)
라는 문제와 부딪힙니다.
딥러닝을 도입하려는 과정에서, 이 레이블링 비용과 과정을 간과하는 경우가 많습니다.
실제로 필요한 레이블링의 양을 보고 나서는, 더 이상 AI에 투자를 하지 않게 되는 경우도 종종 일어납니다.
AI 모델 개발자로서, "어떻게 하면 레이블링을 효율적으로 할 수 있을까?"라는 고민으로 서치를 하다 보면,
Active Learning(능동적 학습)과 Auto Labeling(자동 레이블링)을 접하게 되실 겁니다.
하지만, 많은 뉴스나 블로그, 업체 설명에서
Active Learning(능동적 학습)과 Auto Labeling(자동 레이블링)을 혼동하는 사례가 있어,
이번 기회에 정리하고자 합니다!
Overview
Auto Labeling(자동 레이블링) : AI 모델이 높은 확신(High Confidence)을 가지는 데이터를 자동으로 레이블링
Active Learning(능동적 학습) : AI 모델이 중요한 데이터를 선별(불확실성↑ or 분포고려)하여, 레이블링 요청
* 참고 :
기본 설명만 봤을 때는 Auto Labeling이 더 좋아 보입니다. "자동으로 레이블링까지 AI가 해준다니!"
하지만, 실제로는 그렇지 않습니다.
Auto Labeling과 Active Learning은 상호보완적이면서, Active Learning이 선행되어야 하는 특성이 있습니다.
그 이유에 대해서, 설명하고자 합니다.
※ Active Learning과 Auto Labeling에 대해, 적극적으로 투자하고 있는 회사는 AWS(SageMaker Ground Truth)입니다.
AWS에서 플랫폼 SageMaker Ground Truth을 만들었으며, 이에 대한 설명자료를 공개했습니다.
자료가 좋아, 해당 참고하여 설명드립니다.
Auto Labeling과 Active Learning공통점 :
º 효율적으로 레이블링을 해보자
º 이것 말고는.. 공통점이 없습니다.
SageMaker Ground Truth의 과정을 보시면 이해가 더 쉽습니다.
1. 일부 초기 데이터를 사람이 Annotation(레이블링)
2. Active learning을 통하여, 불명확한 데이터와 명확한 데이터를 분리
3. Model이 확신을 가지(High Confidence)는 데이터를 자동 레이블링
4. 모호한 데이터는 사람에게 전송하여, 레이블링 요청
5. 목표 학습 및 평가 데이터를 확보할 때까지, 위에 과정을 반복
라고 설명되어있습니다.
최신 Active Learning을 적용할 경우를 위해서, 이를 조금만 수정하겠습니다.
1. 일부 초기 데이터를 사람이 Annotation(레이블링)
2. Active learning을 통하여, 학습에 필요한 중요 데이터를 선별
3. Model이 확신을 가지(High Confidence)는 데이터를 자동 레이블링
4. 선별된 중요 데이터를 사람에게 전송하여, 레이블링 요청
5. 목표 학습 및 평가 데이터를 확보할 때까지, 위에 과정을 반복
왜 Active Learning을 Auto-Labeling 전에 선행했을까요?
일반적으로 Pseudo Labeling(수도 레이블링)을 사용하는 Auto-Labeling의 특성 때문입니다.
대표 논문 : Cost-Effective Active Learning for Deep Image Classification( arxiv.org/pdf/1701.03551.pdf )
Auto-Labeling의 특성:
"확신을 가지는 데이터를 레이블링 한다."는 빠르게 많은 레이블링을 할 수 있지만,
1. 한 번 풀어본 문제와 유사한 문제만 주구장창 공부하는 것과 같습니다.
- 공부로 예를 들면 : 푼 문제만 계속 공부한 수험생이, 수능에서 높은 점수를 받기란 어렵습니다.
2. 확증 편향 : 한번 틀리게 레이블링 한 Class를, Auto Labeling만 적용하게 되면 계속 틀리게 됩니다.
잘 못된 레이블링의 기준으로, 데이터를 레이블링 → 틀린 데이터를 모델이 더 많이 학습 → 악순환 반복
언제 그럼 Auto-Labeling이 좋을까요?
1. 쉬운 문제
- 공부로 예를 들면 : 문제가 쉬운 암기과목에서는, 단순 반복학습만 해도 충분합니다.
* 음.. 하지만, 쉬운 문제를 해결하는데, 학습에 많은 비용이 드는 딥러닝 모델을 사용하진 않습니다.
2. 구축한 데이터 셋이 이미 실제 데이터 셋과 유사할 경우(샘플 - 실제 분포가 동일)
- 공부로 예를 들면 : 내가 푼 문제들이 이미 "실제 수능에서 나올 수 있는 전부를 커버"한다면?
풀어본 문제와 비슷한 문제를 계속 풀어도 좋겠죠!
▶ Auto-Labeling 전에, Active Learning이 사전에 필요한 이유입니다.
최신 Active Learning은 구축한 데이터 샘플이 이미 실제 데이터 셋과 유사하도록 데이터를 선별하기 때문입니다.
Active Learning에게도 단점이 있습니다.
1. 선별된 데이터 포인트는 사람이 레이블링 해야 합니다.
- 결국 사람이 레이블링 해야 되기 때문에, 많은 데이터셋을 레이블링 하기에는 비용이 발생됩니다.
최상의 시나리오
1. Active Learning으로 데이터 샘플을 실제 데이터 셋과 유사하게 구축
2. 데이터 샘플을 실제 데이터 셋과 유사하게 구축 후, Auto Labeling을 통해, 데이터 셋 확보
로 정리할 수 있겠습니다.
AWS 실험 사례
- AWS 측에서는 약 27 % 의 절감 효과가 있었다고 하네요!
* Task마다, 사람의 레이블링 비용마다 차이는 있음
마치며
- 중요도 면에서는 Active learning이 더 중요하다고 판단되기에 우선 다루었습니다.
∵ Active learning을 통해서, 얼마나 더 잘 모델을 학습하는지에 따라서, Auto Labeling의 성능도 좌우되기에
- Auto-labeling도 후에 기회가 된다면, 자세히 다루어 보겠습니다.
- 구글이 구축한 엄청난 데이터로 인해, 최근 수많은 SOTA(State-of-the-Art)를 달성하고 있는 만큼
데이터의 중요성은 점점 더 커지고 있습니다.
kmhana.tistory.com/7?category=839700
- 이런 추세와 더불어, 효율적으로 레이블링 하는 방식 또한 점차 각광받을 것입니다.
∵ 모든 회사에서, Google처럼 데이터셋을 구축할 순 없기에
'실용적인 AI > Active Learning' 카테고리의 다른 글
Active Learning을 위한 딥러닝 - Discriminative Active Learning (5) | 2021.02.02 |
---|---|
Active Learning을 위한 딥러닝 - Learning Loss for Active Learning (0) | 2021.02.02 |
Active Learning을 위한 딥러닝 - Core-set (2) | 2021.02.02 |
Active Learning 이란? - 기본전략 (4) | 2021.01.22 |
Active Learning 이란 - 기본 (2) | 2021.01.22 |