다음 섹션은 Stanford의 cs231n 클래스의 우수한 “전이 학습”강의에서 영감을 받았습니다. 또한 실험에 도움이 되는 저만의 일화 경험을 포함했습니다. 특성 추출에 관한 23 장과 미세 조정에 관한 25 장의 전이 학습의 성공을 감안할 때 전이 학습을 적용해야 하는시기와 모델을 처음부터 학습해야하는 시기가 궁금 할 수 있습니다. 이 결정을 내리려면 두 가지 중요한 요소를 고려해야합니다.
1. 데이터 세트의 크기.
2. 사전 훈련된 CNN이 훈련에 사용한 데이터 세트(일반적으로 ImageNet)와 데이터 세트의 유사성.
이러한 요소를 기반으로 전이 학습을 적용해야하는지 아니면 처음부터 훈련해야하는지 여부를 결정하는 데 도움이되는 차트를 만들 수 있습니다 (아래 그림). 아래의 네 가지 가능성을 각각 검토해 보겠습니다.

네트워크를 처음부터 훈련해야 하는지 아니면 전이 학습에서 훈련해야하는지 결정하는 데 사용할 수 있는 표입니다.
Deep Learning Sandbox의 Greg Chu에서 인용함
데이터 세트가 작고 원본 데이터 세트와 유사합니다.
데이터 세트가 작기 때문에 처음부터 CNN을 학습 할 수있는 학습 예제가 충분하지 않을 수 있습니다 (다시 말하지만 인식을 원하는 클래스 당 1,000 ~ 5,000 개의 예제가 이상적으로 있어야 한다는 점을 기억하세요). 또한 학습 데이터가 부족하기 때문에 과적합 상태가 될 수 있으므로 미세 조정을 시도하는 것은 좋지 않습니다.
대신 이미지 데이터 세트가 사전 훈련 된 네트워크가 훈련 된 것과 유사하므로 네트워크를 특성 추출기로 취급하고 이러한 특성 위에 간단한 기계 학습 분류기를 훈련해야합니다. 이러한 기능은 더 풍부하고 원래 데이터 세트에서 학습 한 패턴을 대표하므로 아키텍처의 더 깊은 계층에서 기능을 추출해야합니다.
데이터 세트가 크고 원본 데이터 세트와 유사합니다.
데이터 세트가 큰 경우 과적합없이 미세 조정을 적용 할 수있는 충분한 예가 있어야합니다. 여기에서 자신의 모델을 처음부터 훈련시키고 싶을 수도 있습니다. 이 실험은 실행할 가치가 있습니다. 그러나 데이터 세트가 네트워크가 이미 훈련 된 원래 데이터 세트와 유사하기 때문에 네트워크 내부의 필터는 합리적인 분류기를 얻을 수있을 만큼 이미 차별적 일 수 있습니다. 따라서 이 경우 미세 조정을 적용하십시오.
데이터 세트가 작고 원본 데이터 세트와 다릅니다.
다시 한 번 작은 데이터 세트를 고려할 때 처음부터 학습하여 높은 정확도의 딥 러닝 모델을 얻지 못할 가능성이 높습니다. 대신 특성 추출을 다시 적용하고 그 위에 표준 머신 러닝 모델을 학습시켜야 합니다.하지만 데이터가 원래 데이터 세트와 다르기 때문에 네트워크에서 더 낮은 수준의 계층을 특성 추출기로 사용해야 합니다. 네트워크 아키텍처에 더 깊이 들어 갈수록 학습된 데이터 세트에 특화된 기능이 더 풍부하고 차별적이라는 점을 명심하십시오. 네트워크의 하위 계층에서 기능을 추출하여 이러한 필터를 계속 활용할 수 있지만 더 깊은 계층으로 인한 추상화는 이루어지지 않습니다.
새 데이터 세트가 크고 원본 데이터 세트와 다릅니다.
이 경우 두 가지 옵션이 있습니다. 훈련 데이터가 충분하기 때문에 자체 사용자 지정 네트워크를 처음부터 훈련시킬 수 있습니다. 그러나 ImageNet과 같은 데이터 세트에서 훈련 된 모델의 사전 훈련 된 가중치는 데이터 세트가 관련이 없더라도 우수한 초기화를 제공합니다. 따라서 두 세트의 실험을 수행해야합니다. 1. 첫 번째 실험 세트에서 사전 훈련 된 네트워크를 데이터 세트에 맞게 미세 조정하고 성능을 평가합니다.
2. 그런 다음 두 번째 실험 세트에서 새로운 모델을 처음부터 훈련시키고 평가합니다.
정확히 어떤 방법이 가장 잘 수행되는지는 전적으로 데이터 세트 및 분류 문제에 따라 다릅니다. 그러나 이 방법을 사용하면 두 번째 실험 세트로 이동하고 네트워크를 처음부터 훈련 할 때 이길 기준을 설정할 수 있으므로 먼저 미세 조정을 시도하는 것이 좋습니다.
이 장에서는 사용자 지정 네트워크를 훈련 할 때 딥 러닝 기술을 적용하는 최적의 경로를 탐색했습니다. 훈련 데이터를 수집 할 때 지름길이 없다는 점을 염두에 두십시오. 모델을 훈련하는 데 사용하는 데이터가 실제 애플리케이션에 배포 될 때 네트워크가 보게 될 이미지를 나타내는 지 확인하십시오.
“Garbage in, garbage out”이라는 오래된 일화가 있습니다. 입력 데이터가 학습 후 모델이 보게 될 데이터 포인트의 예를 나타내지 않는 경우 기본적으로 이 쓰레기통에 빠지게됩니다. 그렇다고 데이터가 “쓰레기”라는 것은 아닙니다. 대신 자신의 실험을 수행 할 때 이 일화를 기억하고 처음에 인식하도록 훈련되지 않은 데이터 포인트에서 딥러닝 모델이 잘 수행 될 수 없다는 사실을 깨달으십시오. 또한 전이 학습과 자신의 네트워크를 처음부터 훈련해야 하는 시기를 검토했습니다. 작은 데이터 세트의 경우 특징 추출을 고려해야합니다. 더 큰 데이터 세트의 경우 먼저 미세 조정 (기준선 설정)을 고려한 다음 처음부터 모델 학습으로 이동합니다