모델 중심 AI vs. 데이터 중심 AI
모델 중심 AI(Model-Centric AI)
주어진 데이터셋에 대해 최고의 모델을 만드는 것
- 모델: 신경망(neural networks), 의사결정트리(decision tree) 등
- 학습 기법: 정규화(regularization), 최적화 알고리즘(optimization algorithms), 손실 함수(loss functions) 등
- 모델/하이퍼파라미터 선택 + 모델 앙상블
데이터 중심 AI(Data-Centric AI, DCAI)
주어진 ML 모델에 공급할 최고의 데이터셋을 체계적이고 알고리즘적으로 만드는 것
모델을 미세 조정하는 것보다 데이터를 탐색하고 수정하는 데 투자하는 것이 가치 있는 경우가 많다
- 실제 데이터는 대부분의 경우 이렇게 고정되어 있거나 정제되어 있지 않기 때문
- 현장에서는 성능을 높이기 위해 데이터셋을 수정하거나, 예산이 허용하는 한 추가 데이터를 수집할 수도 있다
- 그러나 큰 데이터셋에서는 이 과정이 번거로울 수 있고 자동화가 어렵다
데이터 중심 AI는 두 가지 형태로 나타낼 수 있다:
- 데이터를 이해하고 그 정보를 사용하여 모델을 개선하는 AI 알고리즘: 예를 들어, Curriculum learning은 ML 모델을 ‘쉬운 데이터’부터 먼저 학습시키는 방법
- 모델 개선을 위해 데이터를 수정하는 AI 알고리즘: Confident learning은 잘못 레이블된 데이터를 제거한 필터링된 데이터셋으로 ML 모델을 학습시키는 방법
데이터 중심 AI 파이프라인
1단계: 데이터를 탐색하고 기본적인 문제를 수정하며, ML에 적합하게 변환
2단계: 적절하게 포맷된 데이터셋에서 기본 ML 모델을 학습
3단계: 이 모델을 사용하여 데이터셋을 개선 (← Course에서 중점적으로 학습)
4단계: 개선된 데이터셋에서 모델을 개선하기 위해 다양한 모델링 기법을 시도하고 최상의 모델을 확보
2단계에서 바로 4단게로 건너뛰고 싶은 유혹이 있겠지만, 그러면 안된다! 글을 쓸 때도 퇴고를 많이 할수록 글이 예뻐진다
최고의 ML 시스템을 배포하기 위해서는 3단계와 4단계를 여러 번 반복해야할 수도 있다! 기정사실
데이터 중심 AI의 예시
- Outlier detection and removeal = 이상치 탐지 및 제거 (데이터셋의 비정상적인 예시 처리)
- Error detection and correction = 오류 탐지 및 수정 (데이터셋에서 잘못된 값이나 라벨링을 탐지하고 수정)
- Establishing consensus (여러 주석이나 라벨링으로부터 어떤 것이 사실에 가까운지 결정)
- Soft voting이나 강아지가 메인인 사진에 바나나가 작게 나온다고 바나나로만 라벨링된 것을 강아지로 수정해주거나, 라벨에 강아지를 추가해주는 느낌으로 받아들였음
- Data augmentation = 데이터 증강 (사전 지식을 인코딩하기 위해 데이터에 예시 추가)
- Feature engineering and selection (데이터가 표현되는 방식을 더 적절히 조작)
- Active learning (모델이 더 학습되기 위해 위해 어떤 데이터를 선택하고 라벨링해야할지 선택)
- Curriculum learning (데이터셋의 예시를 쉬운 것부터 어려운 것까지 순서대로 배치)
OpenAI는 DALL-E, GPT-3, ChatGPT와 같은 유명한 ML 모델을 훈련시키는 데 가장 큰 문제 중 하나가 데이터와 레이블의 오류라고 공개적으로 밝혔다 그런거치고 개인적으로 DALL-E의 성능은 좀 아쉽다
Tesla는 모델 보조 데이터셋 개선을 통해 경쟁사보다 훨씬 앞선 자율 주행 시스템을 만들 수 있었고, 성공의 핵심 이유로 데이터 엔진을 지목했다
데이터 중심 AI의 필요성
자동화된 방법과 체계적인 엔지니어링 원칙 필요. 특히, ML이 의료, 금융, 교통 등 일상 생활과 얽히면서, 이러한 시스템이 신뢰할 수 있는 방식으로 훈련되는 것이 필수적이다
벤치마크로 유명한 CIFAR-10 데이터셋에서 의도적으로 노이즈 비율(잘못 라벨링된 데이터 등의 비율)을 늘려가며 모델을 훈련하고 성능을 비교해보는 연구에서, 모델 중심 AI 기법보다 데이터 중심 AI 기법이 훨씬 더 모델 성능을 개선하는데 효과적이었음을 보여주기도 했다 [paper]. 즉,

- 노이즈가 포함된 데이터를 처리할 때, 데이터를 어떻게 다루느냐가 모델의 성능을 결정짓는 핵심 요소가 될 수 있다
- 복잡한 알고리즘이나 모델링 기술에 의존하기보다는, 데이터셋 자체를 동적으로 수정하고 개선하는 방식이 더 효율적일 수 있다. 특히, 노이즈가 많은 환경에서는 데이터를 재정렬하거나 가중치를 다르게 부여하는 간단한 방법이 더 성공적일 수 있다
데이터 중심 AI의 퍼셉트론: PU learning
머신러닝의 퍼셉트론
- 퍼셉트론 알고리즘: 확률적 경사하강법(SGD)이 이진분류 작업에서 단순화된 버전
(보통 머신러닝 첫 번째 강의에서 배움)
다음은 0일지 1일지 이진분류하는 선형분류기의 예시이다
목표
데이터 (xi,yi) 에서 이진분류기 f(x)=p(y=1∣x) 추정하는 것. 여기서 x∈Rd, y∈0,1, i∈1…n
알고리즘
퍼셉트론 알고리즘은 반복적인 알고리즘으로, 시간 단계 t에서 전체 데이터셋 (xi,yi)를 반복적으로 학습시킨다. 여기서 i∈1…n 이다.
가중치(weights, w) z:0…d 와 훈련 샘플 (xi,yi) 에 대한 학습률(learning rate) η는 0≤η≤1이다. 예시 xi의 예측된 라벨 yi^(t)는 다음과 같다:
yi^(t)=f(w(t)⋅xi)=f(w0(t)xi,0+w1(t)xi,1+⋯+wz(t)xi,d)
학습 알고리즘은 가중치 w(t)를 반복적으로 업데이트:
wz(t+1)=wz(t)+η(yi−yi^(t))xi,z
여기서 (yi−yi^(t))xi,z는 목적 함수(objective function)로 자주 사용되며, 그 부정값인 −(yi−yi^(t))xi,z는 손실 함수(loss function)로 사용
퍼셉트론 알고리즘은 신경망과 Deep Learning의 훈련 알고리즘과 매우 유사하기 때문에, 신경망 학습 알고리즘인 확률적 경사 하강법(SGD)을 배울 수 있는 좋은 방법이다
w(t+1)=w(t)−η∇L(w(t))=w−nηi=1∑n∇Li(w(t))(SGD)
L: 손실 함수
n: 훈련 데이터셋(training dataset)에 있는 전체 예시의 수
η: 학습률(learning rate). 범위는 0≤η≤1
데이터 중심 AI의 퍼셉트론: PU learning
- Positive-Unlabeled (PU) learning: 노이즈가 섞인 라벨로 학습된 이진분류기를 개선하기 위한 알고리즘
(데이터 중심 AI 강의가 있다면 첫 번째 시간에 배울 것)
PU learning은 일부 postivie training example에서만 라벨이 지정되고, 나머지는 라벨이 없는 이진 분류 작업이다. 실제로 우리는 positive class를 1로, 라벨이 없는 class를 0이며 일부 라벨은 노이즈가 있다. (즉, 실제 참 라벨은 1이지만 라벨이 지정되지 않아 0으로 라벨링된 경우가 있을 수 있다)
PU learning에서 각 데이터 포인트는 세 개의 랜덤 변수(random variable)로 구성:
- xi∈Rd: n개의 예시 중 i번째 예시 (이미지 임베딩, 텍스트 임베딩, 표 형식 데이터 등)
- yi~: xi에서 노이즈가 관찰된 라벨
- yi∗: xi에서 관찰되지 않아 알 수 없는 잠재적 참 라벨
목표
일반적인 이진 분류와 마찬가지로, 데이터 (xi,yi∗)에서 이진분류기 f(x)=p(y∗=1∣x)를 추정하는 것. 그러나 우리는 참 라벨 y∗를 알 수 없고, 노이즈가 있는 잘못된 라벨 y~만을 관찰할 수 있다. 따라서 우리가 관찰한 데이터 (xi,yi~)로 학습할 때, 우리는 노이즈가 있는 이진분류기 f~(x)=p(y~=1∣x)를 추정하게 된다.
중간 목표
f(x)=p(y∗=1∣x)를 y∗의 관찰없이 f(x)=p(y~=1∣x)로부터 추정하는 것이다.
이는 참 라벨이 포함된 완벽한 데이터로 학습한 것처럼 추정하는 과정을 의미한다. 우리가 가진 라벨은 노이즈가 섞여 있음에도 불구하고 이러한 과정을 통해 정확한 분류기를 얻을 수 있다.
이 과정은 어떠한 가정도 없이 보면 마치 마법처럼 느껴질 수 있지만, 몇 가지 중요한 가정이 있다면 이 과정을 통해 실제 참 라벨을 추정할 수 있다.
주요 아이디어
PU learning에서 참 라벨 y∗를 추정하기 위해 우리는 다음을 사용한다:
p(y∗=1∣x)=p(y~=1∣x)⋅p(y~=1∣x,y∗=1)
여기서 두 가지 중요한 가정이 있다:
-
가정 1: 양성 라벨에 오류 없음(no error in positive label)
PU learning은 양성 레이블이 완벽하다고 가정한다. 즉, 참 레이블 y∗=1인 경우, 관측된 레이블 y~는 항상 1이 된다:
p(y~=1∣x,y∗=0)=0
-
가정 2: 조건부 독립(Conditional Independence)
PU learning은 레이블이 y∗=1에서 y~=0으로 바뀔 확률이 데이터 자체 x에 의존하지 않는다고 가정한다. 즉, x가 레이블 변환 과정에 영향을 미치지 않는다는 뜻이다:
p(y~=0∣x,y∗=1)=p(y~=0∣y∗=1)
다음을 이런 식으로 표현할 수도 있다:
p(y~=1∣x,y∗=1)=p(y~=1∣y∗=1)
왜냐하면
p(y~=1∣y∗=1)+p(y~=0∣y∗=1)=1
그리고
p(y~=1∣x,y∗=1)+p(y~=0∣x,y∗=1)=1
이기 때문이다
이 두 가지 가정을 통해 우리는 참 라벨을 추정할 수 있다.
Key Insight
Lemma 1: 조건부 독립이 성립하면, 다음을 추정할 수 있다:
p(y∗=1∣x)=cp(y~=1∣x)
여기서 c=p(y~=1∣y∗=1) 다.
Proof: 가정에 따라 다음이 성립한다
p(y~=1∣y∗=1,x)=p(y~=1∣y∗=1)
이제 p(y~=1∣x)을 고려하면
p(y~=1∣x)=p(y∗=1,y~=1∣x)+p(y∗=0,y~=1∣x)=p(y∗=1,y~=1∣x)+0(Assumption 1)=p(y∗=1∣x)p(y~=1∣y∗=1,x)=p(y∗=1∣x)p(y~=1∣y∗=1)(Assumption 2).
따라서 다음 식을 얻을 수 있다:
p(y∗=1∣x)=p(y~=1∣y∗=1)p(y~=1∣x)=cp(y~=1∣x)
PU learning 알고리즘의 기초: 이것은 구성적 증명(constructive proof)이다. c=p(y~=1∣y∗=1)를 추정함으로써, 노이즈가 포함된 이진분류기 f~(x)=p(y~=1∣x)로부터 더 정확한 이진분류기 f(x)=p(y∗=1∣x)를 추정할 수 있다.
c 추정하기: Estimating c=p(y~=1∣y∗=1)
f(x)=p(y∗=1∣x)를 f~(x)=p(y~=1∣x)로부터 추정하려면 c=p(y~=1∣y∗=1)라는 상수 인자가 필요하다. c를 추정하는 방법은 여러 가지가 있으며, 그 중 하나는 다음과 같다:
c~=∣P∣1x∈P∑p^(y~=1∣x)
여기서 c~는 참 c의 추정치이며, P는 양성 라벨이 있는 데이터셋의 집합이다
(PU learning에서 이 집합에 오류가 없음).
위 식의 직관적인 의미는 다음과 같다:
p^(y~=1∣x∈P)→p^(y~=1∣y∗=1)
P의 크기가 ∞로 갈 때. p^는 모델의 출력값이며, 참 p에 대한 추정치일 뿐이다. 결과적으로 c~는 모델이 예측한 확률의 오류에 따른 평균값을 나타낸다.
위 과정은 다음과 같이 공식적으로 증명할 수 있다
Show that:
if x∈P then p(y~=1∣x)=p(y~=1∣y∗=1)=c
Proof:
p(y~=1∣x)=p(y∗=1,y~=1∣x)+p(y∗=0,y~=1∣x)=p(y∗=1∣x,y~=1)p(y~=1∣x)+p(y∗=0∣x,y~=0)p(y~=0∣x)=p(y∗=1∣x,y~=1)⋅1+0⋅0(because x∈P)=p(y∗=1∣y~=1)(Assumption 2)
따라서 p(y~=1∣x)=p(y∗=1∣y~=1)=c가 성립한다.
PU learning 알고리즘 구현: 단계별 과정
1. 훈련 단계(Train step)
데이터셋에서 샘플이 아닌 데이터로 이진 분류기를 훈련하여, 모든 훈련 데이터에 대한 p^(y~=1∣x) 값을 얻는다. 이때 교차 검증(cross-validation)을 사용할 수 있다.
2. 오류 특성화 단계(Characterize error (DCAI) step)
다음과 같은 공식을 사용하여 c^ 값을 계산한다:
c~=∣P∣1x∈P∑p^(y~=1∣x)
3. 최종 훈련 단계(Final training step)
이전에 계산한 예측 확률과 분류기를 모두 제거하고, 전체 데이터셋에서 새로운 분류기를 훈련시킨다. 여기서는 전체 데이터에 대해 훈련하기 때문에 교차 검증을 사용할 필요는 없다.
이 훈련 단계에서 목표는 전체 데이터에서 훈련된 새로운 분류기를 얻는 것이다. 이를 훈련된 모델 f~라고 부른다.
4. 추론 단계(Inference step)
새로운 데이터 xnew에 대해 f(xnew)=p(y∗=1∣xnew)를 추정한다. 공식은 다음과 같다:
f(xnew)=cp(y~=1∣xnew)
만약 f(xnew)≥0.5이면 xnew는 클래스 1로 예측되고, 그렇지 않으면 클래스 0으로 예측된다.
Next up: Confident Learning
PU learning은 데이터 중심 AI와 데이터 정제의 알고리즘을 배우는 데 훌륭한 출발점이지만 여러 한계가 있다. 예를 들어, class 중 하나는 완벽해야 하고 이진분류에만 적용된다. 또한 c=p(y~=1∣y∗=1)가 예측된 확률들의 평균을 기반으로 계산되기 때문에 모델의 예측 확률의 정확도에 민감하다.
다음 강의에서는 이러한 가정 없이도 f(x)를 추정할 수 있는 일반적인 경우(다중 클래스 분류)에 대해 알아볼 것이다. 이는 MIT에서 개발된 confident learning이라는 머신러닝 분야로, 임의의 다중 클래스 ML 데이터셋에서 레이블 오류를 자동으로 찾는 방법이다. confident learning은 불완전한 모델 예측 확률에 대한 견고성을 제공하고, 어떤 클래스도 다른 클래스로 잘못 레이블될 수 있는 일반적인 상황을 처리한다.
References