13-tf.nn.batch_normalization (대량 귀 일화)

1907 단어 딥 러 닝
1. 전언 본 편 은 주로 tf. nn. batch 를 소개 합 니 다.normalization 의 소개 와 사용 방법 은 이 BN 등급 은 블 로 거들 이 이전에 네트워크 를 구축 하 는 과정 에서 기록 하지 않 은 것 으로 이 등급 의 실용성 이 매우 강하 고 자주 사용 하 는 방법 이다.2. 1. BN 알고리즘 을 소개 하 는데 보통 전 연결 또는 권 적 신경 망 에 사용 합 니 다.전체 신경 망 의 식별 정확도 와 모델 훈련 과정 에서 의 수렴 능력 을 강화 할 수 있다.2. 가중치 매개 변수 두 세트, 예 를 들 어 (w 1: 0.01, w 2: 10000, w3: 0.01) 와 (w 1: 1, w2: 1, w3: 1) 에 대응 하 는 (Z = x * w1 * w2 * w3) 표현 식 Z 값 은 모두 같 습 니 다.그러나 이때 이 두 가지 매개 변 수 를 각각 훈련 시 키 면 업 데 이 트 된 가중치 매개 변 수 는 (w 1: 100.01, w 2: 10000.001, w 3: 100.01) (w 1: 2, w 2: 2, w 3: 2) 로 바 뀌 었 고 두 번 째 정방 향 계산 을 한 다음 에 Z1 = 1 * 2 * 2 * 2 = 8, Z2 = 1 * 100.01 * 1000.001 * 100.01 = 100000000 으로 나 타 났 다. 이 를 통 해 알 수 있 듯 이 두 업데이트 후의 가중치 가 야기 하 는 네트워크 출력 변화 가 심 한 정 도 를 알 수 있다.Z2 는 Z1 에 비해 매우 격렬 하 다. 이때 계 산 된 loss 값 이 매우 커서 전체 네트워크 의 계산 이 불가능 하 다. 이런 현상 을 사다리 폭발 이 라 고 한다.이런 현상 이 발생 하 는 원인 은 바로 네트워크 의 내부 협 변수 가 이전 되 기 때문이다. 즉, 정방 향 전파 시의 서로 다른 층 의 매개 변 수 는 역방향 전 파 를 계산 할 때 참조 하 는 견본 의 분 포 를 변화 시 킬 수 있다.3. BN 층 을 도입 하 는 역할 은 매번 정방 향 전파 가 같은 분포 에 출력 되 는 것 을 최대한 확보 하 는 데 있다. 이렇게 역방향 계산 을 할 때 참조 하 는 데이터 견본 의 분 포 는 정방 향 계산 시의 데이터 분포 와 같다.분포 의 통일 을 보장 해 야 가중치 조정 에 더욱 의미 가 있다.3. 함수 와 관련 공식 소개 1. tf. nn. batchnormalization (x, mean, variance, offset, scale, variance epsilon, name = None) x: input mean: 샘플 평균 값 variance: 샘플 분산 오프셋: 샘플 오프셋 (전환 값 추가) scale: 크기 조정 (기본 값 1) varianceepsilon: 분모 가 0 인 것 을 피하 기 위해 극소 값 2. tf. nn. mments (x, axes, name = None, keep dims = False) x: input axes: 차원 3. axes = list (range (len (x. get shape () - 1) 를 추가 합 니 다. 이 공식 은 input 의 차원 정 보 를 구 하 는 데 자주 사 용 됩 니 다.4. tf. train. ExponentialMovingAverage. 이 방법 은 하나의 유형 으로 대상 을 먼저 호출 한 다음 에 대상 방법 apply () 를 호출 해 야 합 니 다. 이 방법 은 부 드 러 운 지수 가 쇠퇴 하 는 방법 으로 매번 의 평균 값 과 방 차 를 최적화 하 는 역할 을 합 니 다.
아래 코드 를 직접 사용 하면 됩 니 다.
from tensorflow.contrib.layers.python.layers import batch_norm
batch_norm(value,decay=0.9,updates_collections=None,is_training=True)

좋은 웹페이지 즐겨찾기