0Pricing
Learn AI with Python · 강의

전이 학습의 개념과 전략

특성 추출과 미세 조정의 차이, 동결된 레이어, 전이 학습이 도움이 되는 경우를 알아봅니다.

전이 학습의 개념과 전략은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

전이 학습이란 무엇인가

전이 학습은 대규모 데이터 세트로 학습된 모델을 새롭고 관련된 작업의 출발점으로 재사용하는 방법입니다. 시각적 특징을 처음부터 학습하는 대신, 네트워크가 이미 학습한 특징을 활용합니다.

이를 통해 높은 정확도에 도달하는 데 필요한 데이터와 계산량을 크게 줄일 수 있습니다.

ImageNet의 기반

대부분의 사전 학습된 비전 모델은 ImageNet으로 학습됩니다. ImageNet은 약 140만 개의 이미지와 1000개의 클래스로 구성됩니다.

이 학습 과정에서 네트워크는 특징의 계층 구조를 학습합니다. 초기 계층에서는 가장자리와 색상을, 중간 계층에서는 질감을, 상위 계층에 가까워질수록 객체의 부분을 학습합니다. 이러한 저수준 특징은 거의 모든 이미지 작업에 잘 전이됩니다.

초기 특징이 전이되는 이유

첫 번째 합성곱 계층은 모든 자연 이미지에 나타나는 일반적인 패턴(가장자리, 얼룩, 그레이디언트)을 감지합니다. 이미지가 고양이 사진이든 엑스레이든 위성 사진이든 마찬가지입니다.

더 깊은 계층은 더욱 작업별 특징을 학습합니다. 즉, 이러한 가장자리를 ImageNet 객체의 부분으로 조합합니다. 따라서 일반적으로 초기 계층은 유지하고 후반 계층은 교체하거나 다시 학습합니다.

전략 1: 특징 추출

특징 추출에서는 사전 학습된 기반 모델의 모든 계층을 동결하여 가중치가 절대 변경되지 않도록 합니다. 기반 모델은 고정된 특징 추출기 역할을 하며, 그 위에 추가한 작은 분류 헤드만 학습합니다.

데이터 세트가 작고 ImageNet과 유사할 때 사용하십시오. 학습 가능한 매개변수가 적기 때문에 빠르고 과적합에도 강합니다.

base.trainable = False

model = Sequential([
    base,                      # frozen ImageNet features
    GlobalAveragePooling2D(),
    Dense(num_classes, activation="softmax")  # only this trains
])

전략 2: 미세 조정

미세 조정에서는 기반 모델의 상위 계층을 동결 해제하고 헤드와 함께 다시 학습하여, 네트워크가 고수준 특징을 특정 데이터에 맞게 조정하도록 합니다.

데이터가 더 많거나 도메인이 ImageNet과 다를 때 사용하십시오(예: 의료 스캔 이미지). 사전 학습된 가중치가 손상되지 않도록 항상 매우 낮은 학습률로 미세 조정해야 합니다.

특징 추출과 미세 조정 비교

  • 특징 추출: 기반 모델은 동결되고 헤드만 학습되며, 매우 빠르고 작거나 유사한 데이터에 적합합니다.
  • 미세 조정: 기반 모델의 상위 계층을 동결 해제하고 헤드와 함께 학습하며, 더 느리지만 규모가 크거나 서로 다른 데이터에 적합합니다.

일반적인 방법은 먼저 특징 추출을 수행한 다음, 헤드가 안정화되면 두 번째 단계에서 미세 조정을 진행하는 것입니다.

필요한 데이터 양

보유한 데이터의 양에 따라 전략이 결정됩니다:

  • 수백 개의 이미지: 특징 추출만 수행합니다(모든 계층 동결).
  • 수천 개: 특징 추출을 수행한 다음 상위 몇 개 계층을 미세 조정합니다.
  • 수만 개 이상: 기반 모델의 더 많은 부분, 경우에 따라 전체 네트워크를 미세 조정합니다.

데이터가 적을수록 더 많이 동결해야 합니다. 학습 가능한 매개변수가 적으면 과적합 위험이 줄어들기 때문입니다.

분류 헤드 교체

ImageNet 모델은 1000개의 클래스를 출력합니다. 그러나 여러분의 작업은 클래스 수가 다를 가능성이 높으므로, 원래 상위 부분(include_top=False)을 제거하고 클래스 수에 맞는 자체 헤드를 연결합니다.

from tensorflow.keras import layers, Model

x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x)  # 5 custom classes
model = Model(base.input, outputs)

전처리 방식 일치시키기

각 사전 학습 모델 계열은 ImageNet 학습 당시와 동일한 방식으로 크기가 조정된 입력을 기대합니다. 이에 맞는 preprocess_input을 사용하는 것이 필수이며, 그렇지 않으면 정확도가 급격히 떨어집니다.

from tensorflow.keras.applications.resnet50 import preprocess_input

# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)

학습률 조절

특징 추출 중에는 새로 추가한 헤드만 학습하므로 일반적인 학습률(예: 1e-3)을 사용해도 괜찮습니다.

미세 조정 중에는 1e-5처럼 매우 작은 값으로 낮춰야 합니다. 큰 업데이트는 정교하게 학습된 ImageNet 가중치를 지워 버릴 수 있으며, 이러한 현상을 치명적 망각이라고 합니다.

일반적인 작업 흐름

  1. include_top=False로 사전 학습된 기반 모델을 불러옵니다.
  2. 기반 모델을 동결하고 새 헤드를 학습합니다(특징 추출).
  3. 상위 계층의 동결을 해제하고 매우 작은 학습률로 다시 학습합니다(미세 조정).
  4. 평가한 후 배포용으로 변환합니다.

이러한 단계적 접근법을 사용하면 데이터 세트가 적당한 규모여도 높은 정확도를 얻을 수 있습니다.

빠른 확인

전이 학습 전략에 대한 이해도를 테스트해 보십시오.

복습

전이 학습은 ImageNet으로 사전 학습된 특징을 재사용합니다(이미지 140만 개, 클래스 1000개). 특징 추출은 작거나 유사한 데이터 세트를 위해 기반 모델을 동결하고, 미세 조정은 규모가 크거나 서로 다른 데이터에 맞게 매우 작은 학습률로 상위 계층의 동결을 해제합니다.

기반 모델에 맞는 전처리를 사용하고, 클래스에 맞게 헤드를 교체하며, 단계적 작업 흐름을 사용하십시오. 다음에는 VGG16과 ResNet50을 사용해 이 과정을 코드로 구현합니다.

자주 묻는 질문

“전이 학습의 개념과 전략” 강의는 무료인가요?

네 — “전이 학습의 개념과 전략” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“전이 학습의 개념과 전략”에서 뭘 배우나요?

특성 추출과 미세 조정의 차이, 동결된 레이어, 전이 학습이 도움이 되는 경우를 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“전이 학습의 개념과 전략” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 전이 학습의 개념과 전략
  2. VGG16과 ResNet50을 기본 모델로 사용하기
  3. 미세 조정: 동결 해제와 재학습
  4. 엣지 배포를 위한 MobileNet과 EfficientNet
← Learn AI with Python(으)로 돌아가기