중간 크기의 conv net을 배치 정상화로 깔끔하게 정리했습니다. 배치 정규화의 효과는 엄청나게 긍정적입니다 [10 배 이상의 교육 속도와 훨씬 향상된 정확도].일괄 정규화 [tensorflow]로 보충?
그러나 교육 및 유효성 검사/테스트 세트 사이의 정확도 격차는 10 %에 가까워지면서 크게 증가합니다. 이것은 불안해하고 있습니다. 격차는 훈련 중 천천히 쌓입니다.
BN 구현은 표준 TF 지수 이동 평균을 사용합니다. 검증과 훈련 세트가 동일한 통계를 공유하고 테스트 세트 통계에 대한 이동 평균을 "콜드 웜 - 업 (cold warm-up)"하려했기 때문에 이는 문제가되지 않습니다. 이 절차는 효과가 없었습니다. 또한 BN이 제대로 작동하려면 12 2 정규화와 중퇴를 해제해야했습니다.
누구와도 비슷한 일이 발생 했습니까? 어떤 아이디어? BN 네트워크에 "보다 표준적인"정규화를 추가하는 방법에 대한 제안이 있습니까?
배치 기준에는 매개 변수가 거의 없으므로 초과 조정이 발생하지 않아야합니다. 모델이 충분한 시간을 훈련하지 않았기 때문에 아마도 지나치게 눈치 채지 못했을 것입니다. –
감사합니다. 음, 거의 모든 무게에 대해 그림자 매개 변수가 있기 때문에 BN이 매개 변수에 2-3X를 추가한다고 말하고 싶습니다. 단순하게. [나는 또한 컨버전스가 아닌, 완전히 연결된 레이어를 가지고 있습니다.] 이전에 지나치게 눈치 채지 못했을 가능성이 있습니다. BN이 없으면 네트워크 속도가 훨씬 느려집니다. 그렇다면 BN 네트워크를 제대로 정비하는 방법은 여전히 남아 있습니다. – amitmi
나는 BN을 오해한다고 생각합니다. 2-3 배 더 많은 매개 변수가 없습니다. 컨볼 루션의 경우 BN은 배치 평균이 모든 피쳐 맵에서 계산되므로 '2 * feature_size' 매개 변수 (평균 및 분산)를가집니다. [doc] (https://www.tensorflow.org/versions/r0.9/api_docs/python/nn.html#batch_normalization)에 잘 설명되어 있습니다. –