액티브러닝 101: 고품질 데이터를 향한 완성도 높은 가이드(1부)
액티브러닝(Active learning)은 더 나은 모델을 만들고 모델을 최상의 상태로 유지하는 매우 중요한 무기입니다. 그러나 액티브러닝은 종종 활용도가 떨어지기도 하고 아예 사용되지 않기도 하는데요.이 시리즈의 1부에서는 액티브러닝이 무엇이며 컴퓨터 비전(CV) 애플리케이션을 위한 학습용 데이터 라벨링과 어떤 연관이 있는지 설명합니다. 시작하겠습니다.
소개
머신러닝은 비즈니스 프로세스를 자동화하고 가속화하는 데 효과적이라고 입증됐지만, 효율적인 ML 모델을 구축하는 일은 복잡하고 힘든 작업입니다. 머신러닝에서 ML 엔지니어가 매우 실용적인 모델을 만드는 데 사용하는 세 가지 주요 방법을 소개하겠습니다.
1. 지도학습(Supervised learning)
2. 비지도학습(Unsupervised learning)
3. 강화학습(Reinforcement learning)
가장 일반적으로 실행되는 방법은 지도학습입니다. 이는 ML 모델이 학습용 데이터를 통해 인간의 행동을 모방하는 능력을 갖추고 있기에, 분류(Classification) 같은 작업을 수행하는 알고리즘에 사용되고 있습니다.
지도학습은 실험실의 인공지능 모델에게 모델의 훈련을 통제하는 과학자처럼 행동하도록 학습시키는 ML 모델 학습법입니다.
그래서 머신러닝에 사용되는 다른 인기 있는 알고리즘보다 우위에 서게 됩니다. 그러나 지도학습은 수작업으로 라벨링 된 많은 데이터가 필요하므로 지도학습으로 머신러닝 모델을 만드는 데 있어 가장 큰 문제는 소요 시간입니다.머신러닝 실무자들은 모델이 허용 가능한 성능 수준에 도달하도록 만들기 위해 종종 지도학습의 한 부분으로 ‘액티브러닝(Active learning)’을 사용합니다.
액티브러닝(Active learning): 개요
[액티브러닝 워크플로우]
- Add: 라벨링 된 새 학습용 데이터를 ML 모델에 제공합니다.
- Train: ML 모델을 학습시킵니다.
- Query: 샘플을 선택해 실무자와 QA에게 쿼리를 전달합니다.
- Annotate: 샘플 데이터를 라벨러에게 할당합니다.
기존의 지도학습 알고리즘에는 대량의 라벨링 데이터가 요구되었는데 이에 따라 많은 ML 팀의 모델 구축 속도가 느려져, 조정과 간소화를 통해 능률을 높인 액티브러닝 같은 접근법이 필요해졌습니다.
기존의 지도학습에 요구되는 대량의 데이터와 대조적으로, 액티브러닝 모델은 모델을 작동시키는 데 적은 양의 학습용 데이터가 필요합니다.
액티브러닝 워크플로우에서, ML 팀은 모델을 학습시키기 위해 작은 데이터 샘플을 라벨링하며 이에 더해 특정 패턴과 행동을 식별하도록 학습시킵니다. 그리고 각 개발 단계에서 ML 모델은 로우(raw) 데이터를 라벨링할 때 불확실성(uncertainty)을 식별합니다. 여기에 사람이 개입해 에러를 바로잡고 모델을 재학습시키는데요. 이 과정은 모델이 최고 수준의 정확도를 달성할 때까지 반복됩니다.
ML 알고리즘에 대한 데이터 라벨링 과정에서 사람의 개입(human-in-the-loop, HITL)은 많은 피로와 오류를 유발하는데, 이것은 기존 지도학습이 가진 단점이라고 할 수 있습니다. 액티브러닝을 사용할 때 실무자는 데이터가 성공적으로 처리될 수 있도록 안내하기 위해 개입할 뿐이며, 이는 더 적은 데이터로도 학습이 가능하다는 걸 의미합니다. 이 과정을 반복하면 시간이 지날수록 모델 성능은 획기적으로 향상됩니다. 액티브러닝을 통해 ML 모델은 큰 확실성을 가지며 특정 결과와 행동을 이해하도록 학습됩니다. 구체적이고 반복적인 행동을 통해 모델을 학습시키고자 하는 ML 실무자들은 액티브러닝를 선호합니다.
액티브러닝을 넘어: 컴퓨터 비전(CV)에 대한 다양한 접근 방식
머신러닝 알고리즘
액티브러닝은 지도학습의 다른 유형들에 비해 적은 양의 데이터를 활용하고 있는데요. 여기엔 조금 다른 접근 방식이 있습니다. 실무자들의 최종 목표에 따라 ML 전략을 탐구하고 어떤 접근 방식이 가장 좋은 결과를 산출하는지 평가하는 일은 매우 중요합니다.
어떤 경우, 액티브러닝은 특정 모델에 대한 가장 좋은 전략은 아닙니다. 대신 어떤 알고리즘을 사용해야 하는지 그리고 그것들 간의 차이점과 각각의 장점을 이해하는 일이 중요합니다.
강화학습(Reinforcement Learning)
액티브러닝과 지도학습 외에, 다음 단계의 행동을 위해 이전 단계의 행동에 크게 의존하는 모델도 있습니다. 게임 이론과 체스, 다른 게임 이용 사례에 대해 생각해봅시다.
강화학습(Reinforcement learning)은 모델이 스스로 성공적인 의사 결정을 할 수 있는 행동 의존형 모델을 구축하는 가장 좋은 방법입니다.
액티브러닝은 모델에 정확한 행동을 학습시키기 위해 사람의 지침에 의존하고 있지만, 강화학습 모델은 학습할 행동을 수정할 때 스스로의 지침에 의존합니다. 예를 들어, 보행하는 방법을 배우는 로봇은 처음엔 넘어질 수 있습니다. 그 결과를 부정 강화(negative reinforcement)로 활용하면, 로봇은 매끄럽게 움직일 수 있을 때까지 행동을 수정할 것입니다.
강화학습과 액티브러닝은 모델이 이전 행동에 의존한다는 점에서 유사해 보이지만, 강화학습 알고리즘은 사람의 지침으로부터 독립적이며 특정 과제를 완료하도록 훈련받지 않는 대신, 실행 가능한 선택지를 탐색합니다.
지도학습과 액티브러닝에서는 예상 결과가 정의됩니다. 모델은 물체 감지 및 분류 작업을 수행하도록 훈련받으며, 특정 패턴이나 물체 식별에 일관성이 있을 때 유용합니다.
딥러닝
반면 딥러닝(Deep learning)은 기존 데이터를 참조해 데이터셋 범위를 넘어서는 예측을 수행합니다. 이것은 거의 자율적으로 진행되고 이 예측을 위해 패턴을 찾는 일을 수행합니다. 예를 들어, 만약 실무자가 딥러닝 모델에 수천 장의 개 사진을 넣어 학습시킨다면 모델은 이미지의 일반적인 모양, 크기, 구조를 고려하고 구분할 것입니다. 여기서부터, 이미지는 두 범주(개와 개가 아닌 것)로 구분할 수 있습니다. 그리고 모델은 이것에 기초해 데이터셋 범위 바깥의 개 이미지까지 구분할 수 있게 됩니다.
ML 유형들의 각 장점은 전적으로 실무자의 프로젝트에 따라 달라집니다. 오늘날 우리는 액티브러닝과 그것의 하위 유형, 그리고 그것이 ML 실무자에게 주는 가치에 집중하고 있습니다.
인기 있는 액티브러닝 유형
액티브러닝은 수천 개의 라벨이 부착된 데이터셋 수집을 포기하려는 ML 실무자에게 이점을 제공합니다.
중론은 ‘더 많은 데이터가 곧 더 나은 결과를 가져온다’이지만, 데이터의 양보다 더 중요한 건 데이터 품질입니다. 기존 지도학습보다 액티브러닝을 사용하는 것이 ML 모델을 더 빠르고 더 쉽게, 더 효율적인 비용으로 구축 가능하도록 만듭니다. 그러나 액티브러닝 안에는 ML 실무자와 데이터 과학자가 반드시 고려해야 하는 데이터 쿼리(Query)에 대한 다른 전략도 있습니다.
랜덤 샘플링
우리에게 가장 친숙한 데이터 수집 및 샘플링 방법은 무작위(random) 샘플링일 텐데요. 실제 쿼리용 데이터는 쿼리 데이터를 필요로 하는 인적 영향이 적은 환경에서 무작위로 선택됩니다.
이 기법의 목적은 모든 데이터가 동일한 확률로 추출될 수 있도록 함으로써 전체 데이터의 대표성을 나타내 편향을 피할 수 있도록 함에 있습니다.
ML 등에서는 데이터양이 적은 전체 데이터셋이나 모집단에 대해 학습하는 전략으로 랜덤 샘플링이 구현됩니다. 랜덤 샘플링이 데이터 과학자들에게 인기 있는 이유 중 하나는 단순함(simplicity) 때문입니다. 무작위로 데이터를 선택하는 일은 라벨링 항목에 대한 지식을 필요로 하지 않기 때문에 놀라울 정도로 쉽게 구현할 수 있습니다. 또한 랜덤 샘플링은 사전 분류 작업이 필요하지 않기에 오류가 발생할 확률이 감소합니다.
풀 기반(Pool-Based) 샘플링
라벨링 되지 않은 데이터 모으기 → 데이터 샘플링 방법을 정하기 → 랜덤 샘플링 / 비지도학습, 클러스터링 → 라벨링 → 라벨링 된 데이터를 기반으로 분류 학습 → 가장 불확실한 데이터 쿼리하기
ML 모델은 각각의 액티브러닝 알고리즘을 활용해, 라벨링 되지 않은 일부 데이터를 검수하고 이 데이터를 사람에게 검수시킵니다. 여기서 실무자가 라벨링 파라미터를 조정하고 ML 모델의 예측을 변경할 수 있습니다. 풀 기반(Pool-Based) 샘플링에서 ML 모델은 유익한 정보를 사용하며 이는 데이터가 가치 있는 정보를 포함하고 있기 때문에 라벨링해야 한다는 걸 의미합니다.
유익한 정도를 측정할 때 우리는 데이터가 얼마나 유용한지 살펴보고 ML 모델 교육에 어떤 예제 데이터가 포함되어야 하는지를 결정합니다. 라벨링을 위해 데이터 집합을 선택한 후, ML 전문가는 데이터 풀의 일부(일반적으로 80%)를 교육하고 나머지 20%를 검증하게 할 겁니다. 이 접근에서 데이터가 성능 향상에 도움을 주기 때문에, 어떤 예제 데이터가 가장 낮은 예측 정밀도 값을 산출하는지 이해하는 게 가장 중요합니다.
다시 말해, 정확도가 매우 낮은 이미지 데이터는 실무자의 ML 모델 훈련에 도움이 될 수 있습니다. 여기서부터 학습용 데이터는 모델에 남아있는 이미지 데이터를 빠르게 살펴보는 데 사용되며 각 이미지 데이터의 정확도를 측정할 수 있습니다. 가장 성능이 낮은 이미지 데이터셋을 식별함으로써 실무자는 훈련받은 데이터를 사용해 모델을 개선할 수 있습니다.
스트림 기반 선택적(Stream-Based Selective) 샘플링
매뉴얼 라벨링 → ML 모델 → 데이터가 라벨링 되어야 하는지 결정하기(데이터를 제공하기도 하고, 신뢰도가 높은 데이터는 지웁니다) → 데이터 쿼리(사람 또는 컴퓨터)
스트림 기반 선택적(Stream-based selective) 샘플링은 어떤 데이터 조각을 라벨링해야 하는지 결정하기 위해 모델의 신뢰도 수준에 의존하고 있습니다. 이 방법에서 사람의 어노테이션 또는 정보제공자는 학습을 목적으로 작은 데이터셋을 라벨링합니다. 그 다음에 모델이 나머지 데이터를 하나씩 평가해 라벨링되어야 하는지 그 여부를 결정합니다. 이 과정에서 모델은 신뢰도의 임곗값을 사용해 이미지에서 각 개체의 확실성(certainty)을 결정합니다. 모델의 신뢰도가 낮을 때 ML 모델은 라벨링 작업을 위해 더 무리하게 작동할 수 있습니다.
스트림 기반 선택적 샘플링은 풀 기반 샘플링과 같은 방법을 사용하지만, 더 철저하고 자율적인 대안입니다. 그리고 더 많은 사람의 개입이 필요합니다. 랜덤 샘플링에 비해 이 접근법이 더 디테일하고 꼼꼼하다고 볼 수 있습니다. 그러나 시간이 더 많이 소요되며 실무 조직에서 데이터 라벨링 업무에 외부 서비스를 사용한다면 더 큰 비용이 들 수 있습니다.
멤버십-쿼리 합성(Membership-Query Synthesis)
라벨링 되지 않은 데이터 → ML 모델이 새 쿼리를 생성합니다 → 사람이나 컴퓨터가 라벨링합니다
지금까지 설명한 각각의 액티브러닝 접근법은 라벨링 된 데이터에 관해 서로 다른 목적이 있습니다. 멤버십-쿼리 합성에서 실무자의 모델은 학습용 데이터를 재사용해 자신의 예제를 형성합니다. 여기서 *데이터 증강(확충)은 종종 사용됩니다.
*Data augmentation: 실질적으로 새로운 데이터를 수집하지 않고도 교육 모형에 사용하는 데이터의 다양성을 늘릴 수 있는 전략
이 과정에서 특정 이미지 데이터를 변경하고 다른 시각을 더 잘 이해할 수 있는데요. 대표적인 예로 ML 모델이 모든 종류의 기후와 날씨 내 특정 도로 표지판을 식별하도록 훈련받고 있지만 현실적으로 우리의 데이터는 제한되어 있는데요.
예를 들어, 특히 흐린 환경에서 햇빛을 포함한 데이터를 수집하는 일은 어려운 일이기 때문에, ML 전문가들은 모델이 밝은 날씨 내 이미지 데이터를 읽고 있다고 입력되도록 ‘속이기(trick)' 위해 단순 밝기 도구를 사용할 겁니다. 또 다른 예로, 모델이 멀리 떨어진 가로등 불빛에서 헤매고 있을 수 있지만 클로즈업하는 것만으로는 부족합니다. 여기서 우리는 우리 이미지의 일부를 자르고 새로운 시각에서 모델을 재학습할 수 있습니다.
멤버십-쿼리 합성(Membership-Query Synthesis)은 데이터가 제한될 때 이를 보완하기 위한 액티브러닝 도구로 개발되었습니다. 데이터 추가 수집에 리소스를 투자하기보다는 멤버십-쿼리 합성은 현재 이미 이용 가능한 것들을 이용합니다.
마치며
액티브러닝 101 시리즈 1부에서는 액티브러닝이 무엇이며 컴퓨터 비전(CV) 애플리케이션을 위한 학습용 데이터 라벨링과 어떤 연관이 있는지 알아보았습니다.
그리고 풀 기반(Pool-based) 샘플링, 스트림 기반 선택적(Stream-Based Selective) 샘플링, 멤버십-쿼리 합성(Membership-Query Synthesis)이라는 액티브 러닝을 위한 모델 학습 시나리오 3가지를 통해 모델 학습을 개선할 수 있고, 모델의 차별성과 예측 능력 및 확실성을 향상시킬 수 있는 의미있는 데이터 샘플 라벨링을 목표로 한다고 설명했습니다.
액티브러닝 101 시리즈 1부는 여기서 마칩니다. 1부에서 액티브러닝에 대한 개념과 이론을 알아보았다면 다음 편에서는 액티브러닝이 실제 비즈니스 문제에 어떤 도움을 줄 수 있는지 그리고 구현 과제 등에 대해 알아보겠습니다.