본문 바로가기
IT

Transfer Learning - CNN

by mimmic 2021. 5. 15.

1. 학습 이전 - 목표

이 블로그에서는 Transfer Learning에 대해 알아보겠습니다. 이 전이 학습 개념은 딥 러닝 및 CNN과도 관련이 있다.

2. 전이 학습 소개

우리는 전이 학습이 기계 학습 방법이라고 말할 수 있다. 이때, 모델은 두 번째 작업에서 모델의 시작점으로 재사용되는 작업을 위해 개발되었다.

전이 학습 전이 학습에 대한 소개는 딥 러닝에서 가장 인기 있는 접근법이다. 이때, 우리는 컴퓨터 비전의 출발점으로 사전 훈련된 모델을 사용한다. 또한 자연어 처리 작업은 방대한 계산 및 시간 리소스를 제공합니다. 그러나, 우리는 신경망 모델을 개발해야 한다. 전이 학습은 많은 문제와 관련이 있기 때문이다. 다중 작업 학습 및 개념 드리프트와 같은 경우. 비록 그것이 딥 러닝만을 위한 연구 영역은 아니지만.

3. 사전 교육 모델이란?

문제를 해결하려면 유사한 문제에 대한 사전 훈련된 모델이 필요합니다. 유사한 문제를 해결하기 위해 처음부터 모델을 구축하는 대신, 우리는 다른 문제에 대해 훈련된 모델을 출발점으로 사용한다.

4. 사전 교육을 받은 모델을 사용하려면 어떻게 해야 합니까?

사전 훈련된 모델을 사용하기 위한 사전 정의된 목표가 있기 때문이다. 또한 전이 학습의 개념은 사전 훈련된 모델에서 중요한 역할을 한다.

사전 훈련된 모델을 선택하는 동안, 사람들은 그들의 경우에 주의해야 한다. 만약 우리가 당면한 문제 진술이 사전 훈련된 모델과 매우 다르다면, 우리가 얻을 수 있는 예측은 매우 부정확할 것이다.

이미 많은 사전 훈련된 아키텍처를 케라스 라이브러리에서 직접 사용할 수 있다. 이매그넷 데이터 세트는 일반화된 모델을 만들 수 있을 만큼 크기(1.2M 이미지) 때문에 다양한 아키텍처를 구축하는 데 널리 사용되어 왔다. 그럼에도 불구하고, 문제 진술은 모델을 훈련시킬 때 나온다.

이렇게 하면 이미지를 1,000개의 개별 개체 범주로 올바르게 분류할 수 있습니다. 또한, 이러한 1,000개의 이미지 범주는 일상생활에서 접하게 되는 객체 클래스를 나타낸다. 개의 종, 고양이, 각종 생활용품, 차량 종류 등

우리는 전송 학습을 사용하여 ImageNet 데이터 세트 외부의 이미지로 일반화한다. 이는 사전 훈련된 모델의 경우에만 발생합니다. 또한 사전 훈련된 모델의 수정에 미세 조정 모델을 사용한다. 우리는 사전 훈련된 네트워크가 상당히 잘 훈련되었다고 가정하기 때문이다.

따라서, 우리는 너무 빨리 너무 많이 무게를 수정하고 싶지 않습니다. 수정하는 동안 우리는 일반적으로 처음에 모델을 훈련하는 데 사용된 것보다 더 작은 학습 속도를 사용한다.

5. 모델을 미세 조정하는 방법

  • 특징 추출 - 특징 추출 메커니즘의 경우, 우리는 이 단계에서 출력 계층을 제거할 수 있는 사전 훈련된 모델을 사용한다. 또한, 우리는 전체 네트워크를 새로운 데이터 세트의 고정 기능 추출기로 사용해야 한다.
  • 사전 훈련된 모델의 아키텍처 사용 - 데이터 세트에 따르면, 초기화하고 모델을 훈련할 때 우리는 그것의 아키텍처를 사용한다.
  • 다른 계층을 동결하는 동안 일부 계층을 훈련시킨다 - 사전 훈련된 모델, 즉 부분적으로 모델을 훈련시키는 한 가지 다른 방법이 있다. 또한, 우리는 모델의 초기 레이어의 가중치를 동결해야 한다. 더 높은 층만 다시 훈련해야 합니다. 우리는 얼릴 층수와 훈련할 층수에 대해 시험해 볼 수 있다.
  • 시나리오 1 - 데이터 세트의 크기는 작은 반면 데이터 유사성은 매우 높다. 이 특별한 경우에서와 같이, 우리는 데이터 유사성이 매우 높기 때문에 모델을 유지할 필요가 없다. 하지만, 우리의 문제 진술에 따르면, 우리는 출력 계층을 사용자 정의하고 수정해야 합니다. 우리는 여기서 피처 추출기로 사전 훈련된 모델을 사용한다. 또한 고양이나 개가 있는 새로운 이미지 세트를 식별하기 위해 Imagenet에서 훈련된 모델을 사용한다. 여기서 우리는 고양이 또는 개라는 두 가지 출력을 분류하기 위해 Imagnet과 유사한 이미지를 필요로 한다. 마지막으로, 이 경우, 우리는 조밀한 계층을 수정해야 한다. 또한, 최종 소프트맥스 레이어를 1000개 대신 2개의 카테고리로 출력해야 한다.
  • 시나리오 2 - 데이터의 크기가 작을 뿐 아니라 데이터 유사성도 매우 낮다. 이 경우에서처럼, 우리는 사전 훈련된 모델의 초기(예: k) 레이어를 동결해야 한다. 또한 동결 완료 후 나머지 (n-k) 레이어를 다시 훈련합니다.
  • 시나리오 2 - 데이터의 크기가 작을 뿐 아니라 데이터 유사성도 매우 낮다. 이 경우에서처럼, 우리는 사전 훈련된 모델의 초기(예: k) 레이어를 동결해야 한다. 또한 동결 완료 후 나머지 (n-k) 레이어를 다시 훈련합니다.
  • 시나리오 3 - 데이터 세트의 크기는 크지만 데이터 유사성은 매우 낮다. 특히 이 경우 신경망 훈련이 더 효과적이다. 대용량 데이터 세트를 가지고 있기 때문에. 또한, 중요한 것은 우리가 사용하는 데이터가 다르다는 것입니다. 데이터를 사용하므로 교육 시 사용하는 데이터와 다릅니다. 따라서 데이터에 따라 신경망을 처음부터 훈련시키는 것이 최선이다.
  • 시나리오 4 - 데이터의 크기가 클 뿐만 아니라 데이터 유사성도 높습니다. 이것이 최종적이고 이상적인 상황이라고 말할 수 있습니다. 이 경우 사전 훈련된 모델이 더 효과적이다. 또한, 우리는 이 모델을 매우 좋은 방법으로 사용할 수 있습니다.

우리는 모델의 구조와 모델의 초기 가중치를 유지하기 위해 모델을 사용해야만 한다. 또한, 우리는 사전 훈련된 모델에서 초기화된 가중치를 사용하여 이 모델을 재교육할 수 있다.

6. 유도 학습 및 유도 전달

우리는 이러한 형태의 전이 학습을 유도 전달을 요구하는 딥 러닝에서 사용한다. 따라서, 이 영역은 가능한 모델의 범위가 유익한 방식으로 좁혀지는 영역입니다. 그러나 이 모델은 서로 다르지만 관련된 작업에 적합합니다.

7. 전이 학습을 사용하는 방법?

전이 학습을 위한 두 가지 일반적인 접근 방식은 다음과 같습니다.

  • 모델 접근 방식 개발
  • 사전 훈련된 모델 접근 방식

a. 모델 접근법 개발

원본 작업 선택: 작업을 선택하는 동안 예측 모델링 문제를 선택해야 합니다. 데이터가 많은 문제입니다.

 

소스 모델 개발: 다음으로, 우리는 이 첫 번째 작업을 위한 숙련된 모델을 개발해야 합니다. 비록, 모델이 순진한 모델보다 더 나은 것이 틀림없습니다. 그것은 일부 모델이 순진한 모델보다 더 낫다는 것을 보증하는 것이다.

 

모델 재사용: 모델이 원본 태스크에 적합해야 합니다. 또한 관심 있는 두 번째 작업에 대한 모델의 출발점으로 사용한다. 또한, 여기에는 사용된 모델링 기법에 따라 모델의 일부가 포함됩니다.

 

모델 튜닝: 우리는 관심 있는 작업에 사용할 수 있는 입력-출력 쌍 데이터에 대한 모델을 채택해야 한다.

b. 사전 훈련된 모델 접근법

소스 모델 선택: 우리는 사용 가능한 모델에서 사전 훈련된 소스 모델을 선택해야 한다. 모델은 많은 연구 기관에 의해 크고 어려운 데이터 세트에 공개된다.

 

모델 재사용: 출발점에서와 같이, 우리는 사전 훈련된 모델을 사용할 수 있다. 그것은 관심의 두 번째 과제이다. 사용된 모형에 따라 모델의 모든 부분이 포함됩니다.

 

튜닝 모드: 우리는 관심 있는 작업에 사용할 수 있는 입력-출력 쌍 데이터에 대한 모델을 채택해야 한다.

8. 언제 전이 학습을 사용해야 합니까?

우리는 최적화인 만큼 시간을 절약하거나 더 나은 성능을 얻기 위해 전이 학습을 사용한다.

상위 시작: 원본 모델의 초기 스킬이 그렇지 않은 경우보다 높습니다.

높은 기울기: 소스 모델을 교육하는 동안 스킬이 향상되는 비율입니다. 그것은 다른 것보다 더 가팔랐다.

높은 점근 법: 훈련된 모델의 융합 기술은 그렇지 않은 경우보다 더 우수합니다.

9. 결론

그 결과 우리는 전이 학습을 공부했습니다. 또한 전이 학습의 W를 모두 배웠습니다. 이와 함께, 우리는 다이어그램과 함께 개념을 연구했습니다.

댓글