답변:
네트워크를 훈련시키는 일반적인 방법 :
데이터 세트 (예 : 이미지 세트)에서 작업 (예 : 분류)을 수행하도록 신경망을 학습하려고합니다. 가중치를 무작위로 초기화하여 훈련을 시작합니다. 훈련을 시작하자마자 실수가 적은 작업 (예 : 최적화)을 수행하기 위해 가중치가 변경됩니다. 훈련 결과에 만족하면 어딘가에 네트워크의 무게를 줄일 수 있습니다.
이제 다른 데이터 세트 (예 : 이미지는 있지만 이전에 사용했던 이미지와 동일하지는 않음)에서 새 작업 (예 : 개체 감지)을 수행하도록 네트워크를 훈련하는 데 관심이 있습니다. 첫 번째 네트워크에서 수행 한 작업을 반복하고 무작위로 초기화 된 가중치로 훈련을 시작하는 대신 이전 네트워크에서 저장 한 가중치를 새 실험의 초기 가중치로 사용할 수 있습니다. 이러한 방식으로 가중치를 초기화하는 것을 사전 훈련 된 네트워크를 사용하는 것으로합니다. 첫 번째 네트워크는 사전 훈련 된 네트워크입니다. 두 번째는 미세 조정중인 네트워크입니다.
사전 훈련의 아이디어는 무작위 초기화가 ... 잘 ... 무작위입니다. 무게 값은 해결하려는 작업과 관련이 없습니다. 값 집합이 다른 집합보다 나은 이유는 무엇입니까? 그러나 어떻게 다른 가중치를 초기화 하시겠습니까? 작업에 맞게 올바르게 초기화하는 방법을 알고 있다면 최적의 값 (약간 과장)으로 설정할 수도 있습니다. 교육 할 필요가 없습니다. 문제에 대한 최적의 솔루션이 있습니다. 사전 교육을 통해 네트워크를 빠르게 시작할 수 있습니다. 마치 이전에 데이터를 본 것처럼.
사전 훈련시주의 사항 :
네트워크 사전 교육에 사용 된 첫 번째 작업은 미세 조정 단계와 동일 할 수 있습니다. 사전 훈련과 미세 튜닝에 사용 된 데이터 세트도 동일 할 수 있지만 다를 수도 있습니다. 다른 작업과 다른 데이터 집합에 대한 사전 교육을 새로운 데이터 집합과 약간 다른 새 작업으로 어떻게 전송할 수 있는지 보는 것은 정말 흥미 롭습니다 . 사전 훈련 된 네트워크를 사용하는 것은 일반적으로 두 작업 또는 두 데이터 세트에 공통점이있는 경우에 적합합니다. 간격이 클수록 프리 트레이닝이 덜 효과적입니다. 재무 데이터에 대해 먼저 교육함으로써 이미지 분류를위한 네트워크를 사전 훈련하는 것은 의미가 없습니다. 이 경우 사전 훈련 단계와 미세 조정 단계 사이에 연결 이 너무 많이 끊어 집니다.