C.W.K.
Stream
Lesson 03 of 06 · published

Data augmentation layer

~11 min · augmentation, regularization

Level 0Level 0
0 XP0/78 lessons0/17 achievements
0/100 XP to next level100 XP to go0% complete

실제로 작동하는 공짜 regularization

Data augmentation은 이미지 model에 가장 효과적인 단일 regularizer — model에 "회전된 고양이"랑 "뒤집힌 고양이"도 여전히 고양이라는 걸 가르쳐. Keras가 model graph에 바로 넣거나 tf.data로 적용할 수 있는 preprocessing layer 제공.

이미지 classification의 표준 augmentation 세트:

  • RandomFlip('horizontal') — 대부분 이미지는 수평 대칭
  • RandomRotation(0.1) — 작은 회전 (±10%)
  • RandomZoom(0.1) — 살짝 확대/축소
  • RandomBrightness(0.1), RandomContrast(0.1)

자연 이미지엔 수직 flip 금지 — 거꾸로 된 고양이는 고양이 아냐. 의미 바꾸는 컬러 변환 금지 — 초록 stop 표지판은 stop 표지판 아냐.

Augmentation은 training 때만 실행. Layer가 training 플래그 자동 존중 — inference 땐 augmentation 없음. 즉 model 자체의 일부로 포함 가능 → 배포 단순화.

Code

Augmentation inside the model·python
import tensorflow as tf
from tensorflow import keras
from keras import layers

augmentation = keras.Sequential([
    layers.RandomFlip('horizontal'),
    layers.RandomRotation(0.1),
    layers.RandomZoom(0.1),
    layers.RandomBrightness(0.1),
    layers.RandomContrast(0.1),
], name="augmentation")

model = keras.Sequential([
    keras.Input(shape=(224, 224, 3)),
    augmentation,                          # only active when training=True
    layers.Rescaling(1./255),
    layers.Conv2D(32, 3, activation='relu', padding='same'),
    layers.MaxPooling2D(),
    layers.Conv2D(64, 3, activation='relu', padding='same'),
    layers.GlobalAveragePooling2D(),
    layers.Dropout(0.4),
    layers.Dense(10),
])

# At inference, augmentation is bypassed automatically
preds = model(test_images, training=False)

Progress

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

댓글 0

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

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