1 배경: 하이브리드 엔진 안의 DL 모델
데이터 표준화 도우미 Agent의 하이브리드 엔진은 3개 레이어로 구성된다.
입력 용어
↓
Rule-Based Layer — 약어 사전 기반 물리명 후보 생성
↓
DL Layer — 도메인 그룹 분류 모델 (이 글의 주제)
↓
RAG Layer — LLM + Vector DB 기반 최종 메타데이터 추천
↓
출력 (물리명, 도메인 그룹, 데이터 타입)
DL Layer가 하는 일은 하나다: 입력 용어에서 도메인 그룹을 분류한다.
- Input: 분류단어(도메인)가 포함된 표준 용어 (예:
실험시작일시,시약농도비율,양성대조군여부) - Output: 14개 도메인 그룹 중 하나 (예:
날짜,율,분류)
표준화 원칙에서 정의하는 14개 도메인 그룹은 다음과 같다.
| 도메인 그룹 | 대표 분류단어 예시 |
|---|---|
| 날짜 | 일시, 일자, 년월, 년도, 타임스탬프 |
| 명 | 명, 성명, 제품명, 주소 |
| 내용 | 내용 |
| 값 | 값, 측정값, 항목값, 계산값 |
| 수 | 수, 건수, 개수, 횟수, 연령, 수량 |
| 율 | 율, 비율, 이율, 세율, 환율 |
| 번호 | 번호, 일련번호, 전화번호, 계좌번호 |
| 식별 | UUID, 업무식별자, 해시ID, 사용자ID |
| 코드 | 코드, 부서코드, 제품코드 |
| 분류 | 여부, 유무 |
| 보안 | 비밀번호, 인증토큰, API키 |
| 단위 | 길이단위, 무게단위, 온도단위, 농도단위 |
| 집합 | JSON, 배열, XML, 집합 |
| 일반단어 | (위 13개에 속하지 않는 나머지) |
2 핵심 문제: 극단적 데이터 불균형
실제 표준 용어 사전에서 가져온 학습 데이터의 분포가 다음과 같다.
| 도메인 그룹 | 샘플 수 |
|---|---|
| 코드 | 많음 |
| 식별 | 많음 |
| 내용 | 1개 |
| 보안 | 극소 |
| 번호 | 극소 |
| 단위 | 극소 |
| … | … |
내용 그룹은 분류단어가 사실상 “내용” 하나뿐이고, 실제 등록된 용어도 1개다. DL 학습이 불가능한 수준이다.
목표: 3가지 증강 방법으로 학습 데이터를 생성하여 DL 분류 모델을 훈련할 수 있는 수준으로 만든다.
3 데이터 증강 방법 3가지
3.1 방법 1: 규칙 기반 스크립트 (기계적 합성)
표준단어사전과 도메인사전을 재료로, 용어 구성 규칙에 따라 단어를 기계적으로 조합한다.
용어 구성 규칙: [수식어] + [주제어] + [도메인 분류단어]
도메인 분류단어는 도메인 그룹을 결정하므로, 그룹별로 해당하는 분류단어를 고정하고 앞의 수식어·주제어를 교체하면 된다.
# 예시: '날짜' 그룹 데이터 생성
modifiers = ["시작", "종료", "등록", "수정", "최초", "최종", "승인"]
subjects = ["실험", "과제", "검사", "시약", "장비", "플레이트"]
domains = ["일시", "일자", "년월", "년도"] # 날짜 그룹 분류단어
generated = []
for mod in modifiers:
for sub in subjects:
for dom in domains:
term = mod + sub + dom # 예: "시작실험일시"
generated.append((term, "날짜"))장점: 대량 생성 가능, 레이블 정확도 100% 단점: 의미적 다양성 낮음, 실제로 쓰이지 않는 조합 포함 가능
3.2 방법 2: LLM 멀티턴 생성
LLM에게 도메인 그룹 정의와 예시를 컨텍스트로 제공하고, 멀티턴 대화로 다양한 용어를 생성한다.
system_prompt = """
당신은 데이터 표준화 전문가입니다.
다음 '내용' 도메인 그룹의 정의와 예시를 참고하여,
이 그룹에 속하는 새로운 표준 용어 20개를 생성하세요.
[내용 도메인 그룹 정의]
자유 형식의 상세 내용을 서술 형식의 텍스트로 표현.
분류단어: '내용' (예: 사고내용, 평가자의견내용, 운영비고내용)
[규칙]
- 반드시 '내용'으로 끝나야 함
- [수식어] + [주제어] + 내용 구조
- PCR, 분자진단, 시약, 실험 도메인 맥락 선호
"""
# 멀티턴: 첫 번째 생성 후 "더 다양한 맥락으로 20개 추가" 요청
# → 생물정보학, 품질관리, 임상시험 등 맥락 다양화장점: 의미적으로 자연스러운 용어, 도메인 특화 가능 단점: 생성 비용(토큰), 속도, 품질 편차
3.3 방법 3: RAG 기반 생성
표준화 원칙 문서, 도메인 사전 등을 Vector DB에 인덱싱하고, 도메인 그룹별로 관련 문서를 검색하여 그 맥락 기반으로 용어를 생성한다.
# 검색 → 생성 파이프라인
query = "내용 도메인그룹에 속하는 용어 예시"
retrieved_chunks = vector_store.search(query, k=5)
prompt = f"""
[검색된 원칙 문서]
{retrieved_chunks}
위 문서를 참고하여 '내용' 도메인 그룹에 해당하는
실제 업무에서 사용할 법한 표준 용어 20개를 생성하세요.
"""장점: 실제 원칙 문서 기반 → 규칙 준수도 높음, 다양한 맥락 커버 단점: RAG 파이프라인 구축 필요, 검색 품질에 의존
4 클래스당 몇 개를 만들어야 하는가
4.1 추정 가능한 부분
모델 아키텍처가 먼저 결정되어야 한다. Fine-tuning에 필요한 샘플 수는 모델에 따라 크게 달라진다.
| 모델 유형 | 클래스당 필요 샘플 수 (경험치) |
|---|---|
| TF-IDF + SVM / Logistic Regression | 수백 ~ 1,000개 |
| KoBERT / KLUE-RoBERTa fine-tuning | 200 ~ 500개 |
| fastText / 경량 임베딩 | 500 ~ 2,000개 |
이 태스크에서는 Pre-trained 한국어 모델 fine-tuning이 가장 현실적이므로, 클래스당 최소 300 ~ 500개가 기준점이 된다.
4.2 이 태스크의 고유 특성으로 추정 범위가 좁혀진다
용어에서 도메인 그룹을 결정하는 핵심 신호는 마지막 분류단어(suffix)에 집중되어 있다.
실험시작 일시 → 날짜 그룹
시약농도 비율 → 율 그룹
완료 여부 → 분류 그룹
모델이 학습해야 하는 패턴이 비교적 단순하다 → 일반 텍스트 분류보다 샘플 효율이 높다 → 하한선을 조금 낮게 잡을 수 있다.
단, 미등록 분류단어(신규 용어)가 등장하거나 분류단어가 그룹 간 겹치는 경우를 커버하려면 다양성이 중요하다. 같은 분류단어에 수식어만 바꾼 샘플 500개는 진짜 500개만큼의 가치가 없다.
4.3 현재 정보로 낼 수 있는 추정치
- 클래스당 500개
- 14개 그룹 × 500 = 총 7,000개
이 숫자는 “클래스 불균형 해소 + KoBERT fine-tuning 수렴 시작” 두 조건을 동시에 만족하는 최소 목표다.
4.4 아직 결정할 수 없는 부분
| 미확정 요소 | 이유 |
|---|---|
| 현재 클래스별 실제 데이터 수 | term_dictionary 내부 분포 미확인 |
| 그룹당 분류단어 어휘 수 | domain_dictionary 내용 미확인 |
| 목표 분류 정확도 | 아직 정의되지 않음 |
| 최종 모델 아키텍처 | 확정 전 |
현재 실제 데이터 분포를 확인하면 부족분만 생성하면 되므로, 다음 단계로 term_dictionary와 domain_dictionary의 그룹별 분포를 파악하는 것이 먼저다.
5 증강 방법별 역할 분담 (안)
3가지 방법을 무작정 병렬로 돌리기보다, 각 방법의 장단점에 맞게 역할을 나눈다.
| 방법 | 역할 | 목표 비율 |
|---|---|---|
| 규칙 기반 스크립트 | 대량의 기본 커버리지 확보 | ~60% |
| LLM 멀티턴 | 의미적 다양성 확보 (특히 희소 클래스) | ~30% |
| RAG 기반 생성 | 원칙 문서 기반 정합성 높은 샘플 보완 | ~10% |
단, 내용, 보안, 번호, 단위처럼 분류단어 어휘 수 자체가 적은 그룹은 규칙 기반으로 만들 수 있는 조합이 제한적이다. 이 그룹들은 LLM 멀티턴 비중을 높이는 것이 현실적이다.
6 샘플 수 추정 근거: 모델별 상세 분석
6.1 핵심 개념: 모델이 “사전에 얼마나 알고 있는가”
샘플 수 추정의 핵심은 모델이 학습 시작 전에 이미 알고 있는 지식의 양이다.
사전 지식 많음 ──────────────────────→ 사전 지식 없음
KoBERT / ALBERT fastText / BiLSTM TF-IDF + SVM
(문맥까지 앎) (통계 패턴만 앎) (아무것도 모름)
필요 샘플 ↓ ↓ ↑
데이터가 하는 역할은 “모델이 모르는 부분을 채우는 것”이다. 이미 많이 아는 모델일수록 적은 데이터로 충분하다.
6.2 KoBERT / ALBERT: 왜 200~500인가
6.2.1 Fine-tuning에서 실제로 학습되는 것
KoBERT를 fine-tuning할 때 일어나는 일:
[KoBERT 사전학습 완료 상태]
- 한국어 형태소 패턴 학습 완료
- "일시", "비율", "여부" 같은 단어의 의미 이미 표현 가능
- 문맥에 따른 의미 변화 이미 학습됨
[Fine-tuning 시 새로 학습해야 하는 것]
- Classification head만 새로 추가
- 파라미터 수: 14 × hidden_size(768) = 10,752개
- Transformer body는 "약간 조정" 수준
10,752개 파라미터를 안정적으로 추정하려면 이론상 그 몇 배의 샘플이 필요하다. 클래스당 200개 × 14 = 2,800개 샘플이면 파라미터 대비 샘플 비율이 약 0.26이다. 이것이 다른 모델이었다면 턱없이 부족하지만, Transformer body가 고품질 표현을 이미 제공하므로 classification head의 학습이 매우 쉬운 문제가 된다.
6.2.2 BERT 원 논문에서 나온 실증
Devlin et al. (2018) BERT 논문의 fine-tuning 실험:
| 태스크 | 전체 샘플 수 | 클래스 수 | 클래스당 샘플 수 |
|---|---|---|---|
| RTE | 2,490 | 2 | ~1,245 |
| MRPC | 3,668 | 2 | ~1,834 |
| CoLA | 8,551 | 2 | ~4,275 |
2-class 기준이므로, 14-class로 확장하면 클래스당 200~500 수준에서 의미있는 학습이 가능하다는 경험적 기준이 된다.
6.2.3 이 태스크는 더 유리하다
실험시작 일시 → 날짜 그룹
시약농도 비율 → 율 그룹
완료 여부 → 분류 그룹
KoBERT는 “일시”, “비율”, “여부”가 어떤 종류의 단어인지 이미 안다. 모델에게 필요한 것은 “이 표현이 14개 중 몇 번 레이블인지”를 맵핑하는 것뿐이다. 하한선을 200까지 낮게 잡을 수 있는 이유가 여기에 있다.
ALBERT는 KoBERT보다 파라미터를 더 효율적으로 쓰는 구조(parameter sharing)라서 같은 범위 안에 있다.
6.3 200~500은 수식으로 유도 가능한가
결론부터: 정확히 200~500을 수식으로 유도하는 것은 불가능하다.
다만 “왜 사전학습 모델이 적은 데이터로도 되는가”를 이론적으로 지지하는 프레임워크는 존재한다.
6.3.1 시도 1: PAC / VC 이론 — 실패
고전적 통계학습 이론은 다음 bound를 준다.
\[m \geq O\left(\frac{d_{VC} \cdot \log(1/\epsilon) + \log(1/\delta)}{\epsilon}\right)\]
BERT의 파라미터 수 ≈ 1억 1천만. VC dimension이 이와 비례한다고 보면 필요 샘플 수는 수십억 단위가 나온다. 실제 관찰(수백 개로 동작)과 10만 배 이상 차이가 난다. PAC bound는 딥러닝에 적용하면 실용적으로 무의미하다.
6.3.2 시도 2: 파라미터 수 휴리스틱 — 실패
통계학의 전통적 경험칙: “파라미터당 10~20개 샘플”
KoBERT classification head: \(14 \times 768 = 10{,}752\) 파라미터
\[m \geq 10 \times 10{,}752 = 107{,}520\]
실제 관찰(2,800~7,000개)과 10~40배 차이난다. 이 경험칙은 선형 모델 기준이라 사전학습의 효과를 전혀 반영하지 못한다.
6.3.3 이론적으로 지지 가능한 프레임워크: PAC-Bayes
완전한 유도는 아니지만, 방향을 설명하는 가장 정직한 이론 도구다.
\[\mathbb{E}_{h \sim Q}\left[L(h)\right] \leq \mathbb{E}_{h \sim Q}\left[\hat{L}(h)\right] + \sqrt{\frac{KL(Q \| P) + \ln\frac{2\sqrt{m}}{\delta}}{2m}}\]
- \(P\): 사전학습 완료 후 가중치 분포 (prior)
- \(Q\): fine-tuning 후 가중치 분포 (posterior)
- \(KL(Q \| P)\): fine-tuning으로 가중치가 얼마나 이동했는가
- \(m\): 학습 샘플 수
일반화 오차의 상한이 \(\sqrt{\frac{KL(Q \| P)}{2m}}\) 에 지배된다. 핵심:
\[KL(Q \| P) \text{ 이 작을수록, 같은 } m \text{ 으로 더 tight한 bound를 얻는다}\]
사전학습 모델은 fine-tuning 시 가중치가 크게 움직이지 않으므로 \(KL(Q \| P)\) 이 작다. 적은 \(m\) 으로도 일반화 bound가 tight해질 수 있다는 이론적 근거다. 그러나 실제 \(KL(Q \| P)\) 를 측정하지 않으면 200~500이라는 구체적 수는 여전히 나오지 않는다.
6.3.4 결론: 200~500은 경험적 관찰의 누적
| 이론 도구 | 결과 | 이유 |
|---|---|---|
| PAC / VC bound | 수십억 → 무의미 | 딥러닝의 inductive bias 미반영 |
| 파라미터 수 휴리스틱 | ~107,000 → 실제와 괴리 | 선형 모델 기준, 사전학습 효과 미반영 |
| PAC-Bayes | 방향만 설명 가능 | \(KL(Q \| P)\) 실측 없이 수 산출 불가 |
200~500은 BERT 원 논문 이후 수백 편의 fine-tuning 실험에서 누적된 커뮤니티 경험칙이다. PAC-Bayes로 “왜 적어도 되는가”의 방향은 설명 가능하지만, 정확한 숫자는 이론이 아닌 실험에서 나왔다.
6.4 BiLSTM: 동일 범위인가, 다른가
pre-trained embedding 사용 여부가 결정적이다.
6.4.1 Case 1: 랜덤 초기화 (embedding from scratch)
BiLSTM 파라미터 (hidden=256, 2layer 기준):
Embedding layer: vocab_size × 256 (vocab에 따라 수십만)
LSTM weights: ~4 × (256 + 256) × 256 × 2 ≈ 1M+
Classifier: 14 × 256 = 3,584
수백만 파라미터를 처음부터 학습해야 한다. 클래스당 200개로는 완전히 under-determined이다. 최소 500~1,000개 이상이 필요하다.
6.4.2 Case 2: Pre-trained embedding 사용 (KoBERT embedding or fastText)
KoBERT의 embedding layer만 가져와서 BiLSTM encoder에 연결하면:
- Embedding weights는 freeze 또는 천천히 업데이트
- LSTM과 classifier만 새로 학습
- 실질적으로 학습해야 하는 파라미터가 크게 줄어듦
이 경우 300~500 범위로 내려온다.
6.4.3 BiLSTM 조건별 필요 샘플 수
| BiLSTM 조건 | 필요 샘플 수 |
|---|---|
| 랜덤 초기화 | 500 ~ 1,000+ |
| fastText embedding 사용 | 400 ~ 800 |
| KoBERT embedding frozen | 300 ~ 500 |
6.5 전통 ML (TF-IDF + SVM/LogReg): 왜 더 많이 드나
전통 ML이 단순히 “더 많이 든다”고 말하기엔 이 태스크는 예외가 있어서 정확히 설명한다.
6.5.1 일반적으로 더 많이 드는 이유
TF-IDF는 단어/n-gram 빈도를 그대로 feature로 쓴다. 아무런 사전 의미 지식이 없다.
"실험시작일시" → TF-IDF → [실험:0.3, 시작:0.2, 일시:0.4, 시작일:0.3, ...]
"장비등록일시" → TF-IDF → [장비:0.3, 등록:0.2, 일시:0.4, 등록일:0.3, ...]
“일시”가 날짜 그룹임을 모델이 처음부터 직접 학습해야 한다. 이를 위해 다양한 수식어+주제어 조합이 충분히 들어와야 일반화된 결정경계를 만들 수 있다.
6.5.2 그러나 이 태스크에서는 상황이 다르다
character n-gram TF-IDF를 쓰면, suffix를 직접 feature로 잡는다:
SVM은 “일시” feature가 날짜 그룹에만 나타남을 빠르게 학습할 수 있다. 이 태스크에서는 500개 이하로도 SVM이 잘 동작할 가능성이 있다.
6.5.3 그럼에도 더 많이 필요한 상황
- 분류단어 어휘가 그룹 간 겹치는 경우 (예: “코드”가 여러 그룹에 등장)
- 처음 보는 수식어+주제어 조합 (rare combination)
- Semantic generalization이 필요한 경우
이런 상황에서 TF-IDF는 의미 기반 일반화가 안 되므로 충분한 커버리지가 필요하다. “수백 ~ 1,000개”는 이를 감안한 보수적 추정이다.
6.6 fastText / 경량 임베딩: 왜 더 많이 드나
fastText는 사전학습된 subword 임베딩을 사용한다. KoBERT처럼 적게 들어야 할 것 같은데, 왜 더 많이 드는가?
6.6.1 이유 1: Static embedding (문맥이 없다)
KoBERT: "시작일시"에서 "일시" → 문맥에 따라 다른 벡터 생성
fastText: "시작일시"에서 "일시" → 항상 동일한 벡터
Contextual representation이 없으면, 같은 분류단어라도 다양한 문맥에서 나타나는 패턴을 학습하려면 더 많은 샘플이 필요하다.
6.6.2 이유 2: Classifier가 단순하다
fastText 구조:
input → subword n-gram 평균 벡터 (300d) → linear classifier (14 class)
KoBERT fine-tuning:
input → 12-layer transformer (768d, contextual) → linear classifier
표현력이 훨씬 낮다. 낮은 표현력을 데이터로 보완해야 한다.
6.6.3 이유 3: Subword 평균이 정보를 희석시킨다
"실험시작일시" → ["실험", "시작", "일시", "실험시", "시작일"] → 평균 벡터
모든 subword의 평균이라 마지막 “일시”의 정보가 다른 성분들에 의해 희석된다. KoBERT의 attention mechanism은 “일시”에 집중할 수 있지만, fastText 평균은 그게 안 된다.
6.7 전체 비교 요약
| 모델 | 사전 지식 | Contextual | 표현력 | 클래스당 추정 |
|---|---|---|---|---|
| KoBERT fine-tuning | 높음 | O | 높음 | 200 ~ 500 |
| ALBERT fine-tuning | 높음 | O | 높음 | 200 ~ 500 |
| BiLSTM (KoBERT embedding frozen) | 중간 | △ | 중간 | 300 ~ 500 |
| BiLSTM (fastText embedding) | 중간 | X | 중간 | 400 ~ 800 |
| BiLSTM (랜덤 초기화) | 없음 | X | 중간 | 500 ~ 1,000+ |
| fastText | 중간 (subword) | X | 낮음 | 500 ~ 2,000 |
| TF-IDF + SVM/LR | 없음 | X | 낮음 | 수백 ~ 1,000 |
위 추정은 전부 “일반 텍스트 분류 태스크 기준”이다. 이 태스크는 suffix 패턴이 매우 강한 신호이므로 전 모델에서 하한선을 낮게 볼 수 있다. 최종적으로 신뢰할 수 있는 숫자는 Learning Curve 실험을 통해 직접 확인해야 한다.
7 Learning Curve로 샘플 수 결정하기
이론적 추정이 200~500이라는 범위를 주었다면, Learning Curve 실험은 이 범위 안에서 실제로 몇 개면 충분한지를 데이터로 확인하는 과정이다.
7.1 실험 설계 원칙
Learning Curve 실험의 구조는 하나다: 샘플 수를 바꾸면서 동일 조건으로 학습하고, 고정된 test set에서 정확도를 비교한다.
세 가지 원칙이 결과의 신뢰도를 결정한다.
원칙 1: Stratified sampling — 모든 클래스를 균등하게
sampled = pd.concat([
g.sample(n=min(n, len(g)), random_state=42)
for _, g in df_train.groupby('label')
])그룹당 정확히 n개씩 샘플링한다. 단순 random sampling을 쓰면 희소 클래스가 누락되어 클래스 불균형 효과와 샘플 수 효과가 뒤섞인다. Stratified sampling은 두 효과를 분리한다.
원칙 2: 매 실험마다 모델 재초기화 — 이전 학습 결과를 이어받지 않는다
def train_and_evaluate(X_tr, y_tr, X_te, y_te, epochs=5, ...):
m = KoBertClassifier(MODEL_NAME, num_classes).to(device) # 새 모델
...
return acc샘플 수가 늘어날 때 성능이 오르는 것이 “더 많은 데이터 덕분”인지 “더 많은 학습 스텝 덕분”인지 구분해야 한다. 매번 새 모델을 만들어 동일한 epoch 수로 학습하면 순수하게 데이터 양의 효과만 측정된다.
원칙 3: 고정된 test set — 모든 실험에 동일한 기준자
acc = train_and_evaluate(
sampled['domain'].tolist(), sampled['label'].values,
X_test, y_test, # ← 항상 동일
epochs=LC_EPOCHS
)test set이 바뀌면 정확도 변화가 데이터 양의 효과인지 test set 구성의 차이인지 알 수 없다.
7.2 실험 결과
| 그룹당 샘플 수 | 전체 학습 데이터 | Test Accuracy | 구간 증가 |
|---|---|---|---|
| 50 | 700 | 59.1% | — |
| 100 | 1,400 | 89.2% | +30.1%p |
| 200 | 2,800 | 95.9% | +6.7%p |
| 300 | 4,200 | 96.8% | +0.9%p |
| 302 (전체) | 4,501 | 97.4% | +0.6%p |
50→100 구간의 +30.1%p가 압도적으로 크고, 200개부터 증가폭이 급격히 줄어든다. 300개 이후는 사실상 plateau다.
7.3 Plateau 판정 로직
accs = lc_df['accuracy'].values
last_gain = (accs[-1] - accs[-2]) * 100 # 마지막 구간 정확도 향상 (%p)
if abs(last_gain) < 1.0:
print("→ 이미 plateau 도달. 현재 데이터 양이 충분합니다.")
elif last_gain > 0:
print("→ 아직 상승 중. 데이터를 더 늘리면 개선 여지가 있습니다.")
else:
print("→ 오히려 하락. 데이터 품질 문제일 수 있습니다.")이 실험의 판정:
마지막 구간 정확도 향상: +0.62%p
→ 이미 plateau 도달. 현재 데이터 양이 충분합니다.
임계값 1.0%p는 절대적인 기준이 아니다. 목표 정확도와 업무 맥락에 따라 조정한다. 이 태스크에서는 97% 수준이 실용적으로 충분하므로 0.62%p 추가 이득을 위해 데이터를 더 수집할 필요가 없다.
하락(-) 케이스는 데이터 품질 문제를 시사한다. 샘플 수를 늘렸는데 성능이 떨어지면, 추가된 합성 데이터가 실제 분포를 왜곡하고 있다는 신호다.
7.4 이 실험이 이론 추정보다 신뢰할 수 있는 이유
| 비교 항목 | 이론 추정 | Learning Curve |
|---|---|---|
| 근거 | 커뮤니티 경험칙, PAC-Bayes 방향성 | 실제 데이터 + 실제 모델로 직접 측정 |
| 태스크 특성 반영 | 부분적 (suffix 신호 강도 등 미반영) | 완전 반영 |
| 출력 형태 | 범위 (200~500) | 구체적 숫자 (300개면 충분) |
| 모델 아키텍처 의존성 | 높음 (모델마다 다시 추정) | 낮음 (실험이 자동 반영) |
이론 추정은 “어느 범위를 실험해야 하는가”를 정하는 데 유용하고, Learning Curve는 그 범위 안에서 실제 필요량을 확정하는 데 쓴다. 두 접근이 순서상 보완 관계다.
8 결론
클래스당 500개, 총 7,000개를 1차 목표로 잡는 것이 합리적이다
양보다 다양성이 먼저다 — 같은 분류단어 + 수식어만 교체한 샘플의 중복을 피해야 한다
현재 데이터 분포 확인이 선행되어야 증강 목표량을 정확히 계산할 수 있다
최종 검증은 Learning Curve로 — 클래스당 100, 200, 400, 500개씩 늘려가며 validation accuracy가 plateau가 되는 지점을 실험으로 확인한다
9 관련 주제
선행 지식
관련 개념