Gegründet 2006

keras batch normalization 예제

이 경우 일괄 처리 정규화 없이 이전 섹션의 모델보다 모델이 문제를 더 빠르게 학습한 것을 확인할 수 있습니다. 특히, 일괄 정규화 없이 모델의 30~40년 형과 는 달리, 처음 20개 시대 내에서 열차 및 테스트 데이터 세트의 분류 정확도가 80% 이상 뛰어오르는 것을 볼 수 있습니다. 각 배치에서 이전 계층의 활성화를 정규화하는 경우, 즉 평균 활성화를 0에 가깝게 유지하고 활성화 표준 편차를 1에 가깝게 유지하는 변환을 적용합니다. batch 정규화는 tf.nn 모듈에서도 사용할 수 있지만 평균 및 분산은 함수에 필요한 인수이기 때문에 추가 부기 작성이 필요합니다. 따라서 사용자는 배치 수준과 학습 집합 수준 모두에서 평균과 분산을 수동으로 계산해야 합니다. 따라서 tf.keras.layers 또는 tf.layers보다 낮은 추상화 수준입니다. tf.nn 구현을 피하십시오. 아래 예제는 조밀한 숨겨진 레이어 간의 활성화 함수 후에 일괄 정규화를 추가합니다. 적어도 이 특정 데이터 집합의 이 모델 구성의 경우 정류선형 활성화 함수 후에 일괄 처리 정규화가 더 효과적인 것으로 보입니다.

데이터가 심층 네트워크를 통해 흐를 때 가중치와 매개 변수는 이러한 값을 조정하여 데이터를 다시 너무 크거나 너무 작게 만드는 경우가 있습니다. 각 미니 일괄 처리의 데이터를 정규화하면 이 문제를 크게 피할 수 있습니다. 일괄 처리 정규화는 평균 및 분산 참조로 각 일괄 처리를 정규화합니다. 플롯은 일괄 처리 정규화없이 모델과 동일한 속도로 모델을 학습하는 것을 보여 주지만 학습 데이터 집합에 대한 모델의 성능이 훨씬 더 나빠서 약 70 % ~ 75 %의 정확도를 가리키며 다시 수집및 사용된 통계의 효과일 가능성이 높습니다. 각 미니 배치를 통해. 마지막으로 일괄 정규화가 없는 원래 모델은 학습할 수 있으며 배치 정규화 모델은 교육 중에 더 높은 검증 정확도로 우수합니다. 다행히도 Tensorflow API에는 이미 tf.layers.batch_normalization 계층에서 이 모든 수학이 구현되어 있습니다. 이 예제에서는 분류 및 회귀 문제에 대해 자체 신경망에 일괄 정규화를 적용하기 위한 템플릿을 제공합니다. 일괄 정규화없이 원래 모델은이 학습 속도로 전혀 배울 수 없습니다. „“모멘텀“ 인수를 사용하면 업데이트가 계산될 때 포함할 이전 미니 배치의 통계 양을 제어할 수 있습니다“ 08/18/2018 업데이트: DNNClassifier 및 DNNRegressor에는 이제 batch_norm 매개 변수가 있어 가능하고 쉽게 통조림 추정기로 일괄 정규화를 수행합니다. 따라서 각 배치에 m 샘플이 있고 j 일괄 처리가 있는 경우: 아래 플롯은 네트워크 깊이의 함수로서 90% 테스트 정확도에 도달하는 데 필요한 교육 반복 횟수(1반복에는 500개의 배치 크기포함)를 보여 준다.

Comments are closed.