답변:
읽기-전학 학습이 불리 할 때? (@ media 덕분에) (나에게 유익한 것으로 보이 므로이 답변을 완전한 답변으로 만들기 위해 여기에 추가했습니다 ...)
귀하의 질문에 대한 답변. (여기서 시작)
편입 학습은 당신이 찾고있는 것입니다 ..
예를 들어 이미지의 데이터 세트에 대해 Convolutional Neural Network (Covnet)를 훈련시키는 딥 러닝 과제가 주어지면 첫 번째 본능은 네트워크를 처음부터 훈련시키는 것입니다. 그러나 실제로 Covnet과 같은 심층 신경망은 종종 수백만 범위의 매개 변수를 가지고 있습니다. 작은 데이터 집합 (매개 변수 수보다 작은 것)에 대해 Covnet을 교육하면 Covnet의 일반화 기능에 큰 영향을 미치며, 종종 초과 피팅이 발생합니다.
따라서 실제로는 더 작은 데이터 세트에 대해 계속 학습하여 (즉, 역 전파를 실행하여) ImageNet (1.2M 레이블이있는 이미지)과 같은 대규모 데이터 세트에서 학습 된 기존 네트워크를 미세 조정하는 경우가 더 많습니다. 데이터 집합이 원본 데이터 집합 (예 : ImageNet)과 크게 다르지 않은 경우 사전 훈련 된 모델은 이미 자체 분류 문제와 관련된 기능을 학습했을 것입니다.
모델을 미세 조정할 때?
일반적으로 사전 훈련 된 모델이 훈련 된 데이터 집합과 맥락이 크게 다르지 않으면 미세 조정을 수행해야합니다. ImageNet과 같이 크고 다양한 데이터 세트에서 사전 훈련 된 네트워크는 초기 계층의 곡선 및 모서리와 같은 보편적 인 기능을 캡처하여 대부분의 분류 문제와 관련이 있습니다.
물론 데이터 세트가 의료 이미지 또는 중국어 필기 문자와 같이 매우 특정한 도메인을 나타내며 해당 도메인에서 사전 훈련 된 네트워크를 찾을 수없는 경우 네트워크를 처음부터 교육하는 것을 고려해야합니다.
또 다른 문제는 데이터 세트가 작은 경우 작은 데이터 세트에서 사전 훈련 된 네트워크를 미세 조정하면 특히 VGG 네트워크의 경우와 같이 네트워크의 마지막 몇 레이어가 완전히 연결된 레이어 인 경우 과적 합으로 이어질 수 있다는 것입니다. 내 경험에 따르면, 수천 개의 원시 샘플이 있고 일반적인 데이터 확대 전략 (번역, 회전, 뒤집기 등)을 구현하면 미세 조정이 일반적으로 더 나은 결과를 얻을 수 있습니다.
데이터 세트가 실제로 작은 경우 (예 : 천 개 미만의 샘플) 더 나은 접근 방법은 완전히 연결된 레이어에 앞서 중간 레이어의 출력을 피쳐 (병목 피쳐)로 취하고 선형 분류기 (예 : SVM)를 훈련시키는 것입니다. 그것. SVM은 특히 작은 데이터 집합에서 의사 결정 경계를 그리는 데 효과적입니다.
미세 조정 기법
다음은 미세 조정 구현을위한 일반적인 지침입니다.
일반적인 방법은 사전 훈련 된 네트워크의 마지막 계층 (softmax 계층)을 자르고 자체 문제와 관련된 새로운 softmax 계층으로 대체하는 것입니다. 예를 들어 ImageNet의 사전 훈련 된 네트워크에는 1000 개 범주의 softmax 레이어가 제공됩니다.
우리의 과제가 10 개 범주로 분류 된 경우, 네트워크의 새로운 softmax 계층은 1000 개 범주가 아닌 10 개 범주입니다. 그런 다음 사전 훈련 된 가중치를 미세 조정하기 위해 네트워크에서 전파를 다시 실행합니다. 네트워크가 일반화 될 수 있도록 교차 검증이 수행되는지 확인하십시오.
더 작은 학습 속도를 사용하여 네트워크를 훈련하십시오. 우리는 미리 훈련 된 가중치가 무작위로 초기화 된 가중치와 비교할 때 이미 꽤 좋을 것으로 기대하기 때문에 너무 빨리 너무 많이 왜곡하고 싶지 않습니다. 일반적인 연습은 처음 학습 속도를 스크래치 훈련에 사용 된 것보다 10 배 작게 만드는 것입니다.
사전 훈련 된 네트워크의 처음 몇 계층의 가중치를 고정하는 것도 일반적인 관행입니다. 처음 몇 개의 레이어는 새로운 문제와 관련된 커브 및 가장자리와 같은 보편적 인 기능을 캡처하기 때문입니다. 우리는 그 무게를 그대로 유지하고 싶습니다. 대신, 네트워크가 후속 계층의 데이터 세트 별 기능을 학습하는 데 집중할 수있게됩니다.
이 경우에 내가 틀리지 않은 것처럼 다시 훈련시켜야합니다. 배경 화면은 Image-net 모델의 클래스가 아닙니다. 또한 여기 ..)
추가 자료를 원하시면