본문 바로가기
C.W.K.
Stream
Lesson 04 of 07 · published

텍스트 분류

~8 min · keras-nlp

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

자연어 과제의 80%를 차지하는 기본형

감정, 주제, 의도, 스팸을 판정하는 텍스트 분류는 팀이 실제로 배포하는 가장 흔한 자연어 기능이야. 언어 모델을 처음부터 학습하지 않고 이미 언어를 아는 백본 위에 작은 분류 출력 헤드만 붙이는 전이 학습이 특히 효과적이지. BertClassifier.from_preset(..., num_classes=2) 한 줄이 사전 학습 백본과 레이블 수에 맞는 새 헤드를 함께 만들어.

불러오기 → 컴파일 → 학습의 세 단계

Keras 학습은 불러오기, 컴파일, 학습 순서로 진행돼. 컴파일에서 학습률은 5e-5처럼 작게 잡아야 해. 처음부터 학습할 때의 1e-3과 달리 이미 배운 모델을 조금만 움직이는 과정이며, 너무 높은 값은 사전 학습 지식을 지울 수 있어. 레이블이 원-핫이 아닌 정수 0, 1, 2…이므로 손실 함수는 sparse_categorical_crossentropy를 사용해. 사전 학습 모델은 빨리 수렴해 보통 3에포크면 충분하고 더 오래 돌리면 과적합하기 쉬워.

문자열 목록을 그대로 입력하면 전처리기가 토큰화와 길이 맞추기를 자동 처리해. 레이블은 이진 분류에서 0과 1, 다중 분류에서 0부터 N-1까지의 정수야.

Code

BERT 감정 분류기 불러오기 → 컴파일 → 학습·python
import keras
import keras_hub

# Load BERT for classification
classifier = keras_hub.models.BertClassifier.from_preset(
    "bert_base_en",
    num_classes=2,  # Binary sentiment
)

# Compile and train
classifier.compile(
    optimizer=keras.optimizers.Adam(5e-5),
    loss="sparse_categorical_crossentropy",
    metrics=["accuracy"],
)
classifier.fit(train_ds, validation_data=val_ds, epochs=3)

External links

Exercise

BertClassifier를 num_classes=2로 불러와 keras.datasets나 Hugging Face의 IMDb 감정 데이터셋으로 학습해. 시험 정확도 85% 이상을 달성하고 모델을 저장한 뒤 직접 쓴 리뷰 몇 개를 예측해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.