본문 바로가기
C.W.K.
Stream
Lesson 02 of 06 · published

사전 학습된 백본

~8 min · keras-cv

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

백본은 특징 추출기야

백본은 모델에서 마지막 과제별 레이어를 뺀 부분으로, 원시 픽셀을 풍부한 특징 맵으로 바꾸는 합성곱이나 Transformer 블록의 묶음이야. ImageNet으로 사전 학습돼 모서리, 질감, 모양, 객체의 부분을 이미 알아보므로 이후 과제는 그 특징을 어떻게 읽을지만 배우면 돼. 이것이 전이 학습의 지렛대이며 2026년에 이미지 모델을 무작위 가중치에서 시작하는 경우가 드문 이유야.

backbone = ResNetBackbone.from_preset('resnet_50_imagenet') 한 줄이면 프리셋이 가중치와 설정을 함께 내려받아. CNN, 모바일, DenseNet, ViT 계열까지 선택지가 넓어.

알맞은 크기 고르기

B0과 B7, ResNet18과 ResNet152 같은 크기 접미사는 지연 시간과 정확도의 절충을 나타내. 큰 백본은 더 많은 표현을 배우지만 추론 비용도 커. 작은 모델에서 시작해. ResNet50이나 EfficientNetV2-S는 대부분의 과제에 충분한 용량과 빠른 반복 속도를 갖춘 기본 선택이야. 성능 한계가 자료 부족이 아니라 실제 용량 부족 때문임을 확인한 뒤에만 거대한 모델로 올라가.

Code

from_preset()으로 사전 학습 백본 불러오기·python
import keras_cv

# Load a pretrained backbone
backbone = keras_cv.models.EfficientNetV2Backbone.from_preset(
    "efficientnetv2_s_imagenet"
)
백본 위에 분류 출력 헤드 붙이기·python
import keras

# backbone outputs a feature map; pool it, then classify
model = keras.Sequential([
    backbone,
    keras.layers.GlobalAveragePooling2D(),
    keras.layers.Dense(num_classes, activation="softmax"),
])

# Or skip the manual wiring: a task preset bundles backbone + head
classifier = keras_cv.models.ImageClassifier.from_preset(
    "efficientnetv2_s_imagenet", num_classes=num_classes
)

External links

Exercise

ResNet18, ResNet50, ResNet152 백본으로 분류기 3개를 만들고 Oxford Flowers 102 같은 작은 데이터셋에 미세 조정해. 정확도, 학습 시간, 매개변수 수를 한 차트에 그리고 용량을 늘려도 이득이 멈추는 무릎 지점을 찾아. 그 지점이 이 자료의 실용적인 기본값이야.
Hint
처음 몇 에포크는 백본을 고정해 출력 헤드만 학습하고, 이후 낮은 학습률로 풀어. ResNet152는 작은 데이터셋에서 ResNet50보다 빨리 과적합할 수 있으니 최종 정확도뿐 아니라 검증 곡선을 봐.

Progress

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

댓글 0

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

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