programing

컨볼 루션 신경망의 배치 정규화

yoursource 2021. 1. 15. 19:50
반응형

컨볼 루션 신경망의 배치 정규화


저는 컨볼 루션 신경망의 초보자이며 피처 맵과 피처를 추출하기 위해 이미지에서 컨볼 루션이 수행되는 방법에 대한 아이디어가 있습니다. CNN에서 배치 정규화를 적용하는 방법에 대한 세부 정보를 알게되어 기쁩니다.

이 논문 https://arxiv.org/pdf/1502.03167v3.pdf를 읽고 데이터에 적용된 BN 알고리즘을 이해할 수 있었지만 결국 CNN에 적용 할 때 약간의 수정이 필요하다고 언급했습니다.

컨벌루션 레이어의 경우 추가로 정규화가 컨볼 루션 속성을 따르도록하여 동일한 기능 맵의 다른 요소가 서로 다른 위치에서 동일한 방식으로 정규화되도록합니다. 이를 달성하기 위해 모든 위치에서 미니 배치로 모든 활성화를 공동으로 정규화합니다. Alg에서. 1에서 B를 미니 배치 및 공간 위치의 요소에 대한 특성 맵의 모든 값 집합으로 지정합니다. 따라서 크기 m의 미니 배치와 크기 p × q의 특성 맵의 경우 effec을 사용합니다. -m ′ = | B | 크기의 tive mini-batch = m · pq. 활성화가 아닌 특성 맵당 한 쌍의 매개 변수 γ (k) 및 β (k)를 학습합니다. Alg. 2는 유사하게 수정되어 추론하는 동안 BN 변환은 주어진 특성 맵의 각 활성화에 동일한 선형 변환을 적용합니다.

"동일한 기능 맵의 다른 요소가 서로 다른 위치에서 동일한 방식으로 정규화되도록" 라고 말하면 완전히 혼란 스럽 습니다.

기능 맵이 무엇을 의미하는지 알고 있으며 모든 기능 맵의 가중치는 다른 요소입니다. 그러나 나는 위치 나 공간적 위치가 무엇을 의미하는지 이해할 수 없었다.

아래 문장을 전혀 이해할 수 없었습니다 . "Alg. 1에서는 B를 미니 배치의 요소와 공간적 위치 모두에 걸쳐 특성 맵의 모든 값 집합으로 설정했습니다."

차가운 누군가가 훨씬 더 간단한 용어로 나를 정교하게 설명하면 기쁠 것입니다.


용어부터 시작하겠습니다. 컨벌루션 계층의 출력은 4 순위 텐서 [B, H, W, C]이며, 여기서 B배치 크기 (H, W)피처 맵 크기이고 C채널 수입니다. 인덱스 A는 공간 위치 .(x, y)0 <= x < H0 <= y < W

일반적인 batchnorm

이제 일반적인 방법 (의사 코드에서)으로 batchnorm이 적용되는 방법은 다음과 같습니다.

# t is the incoming tensor of shape [B, H, W, C]
# mean and stddev are computed along 0 axis and have shape [H, W, C]
mean = mean(t, axis=0)
stddev = stddev(t, axis=0)
for i in 0..B-1:
  out[i,:,:,:] = norm(t[i,:,:,:], mean, stddev)

기본적으로 요소 간의 H*W*C평균 및 H*W*C표준 편차를 계산 합니다 B. 서로 다른 공간 위치에있는 서로 다른 요소에는 자체 평균과 분산이 있고 B값만 수집한다는 것을 알 수 있습니다.

전환 레이어의 Batchnorm

이 방법은 완전히 가능합니다. 그러나 컨벌루션 레이어에는 특별한 속성이 있습니다. 필터 가중치는 입력 이미지 전체에서 공유됩니다 ( 이 게시물 에서 자세히 읽을 수 있음 ). 그렇기 때문에 각 출력 값이 B*H*W다른 위치에서 값 의 평균과 분산을 취하도록 동일한 방식으로 출력을 정규화하는 것이 합리적 입니다.

다음은이 경우 코드가 어떻게 보이는지입니다 (다시 의사 코드).

# t is still the incoming tensor of shape [B, H, W, C]
# but mean and stddev are computed along (0, 1, 2) axes and have just [C] shape
mean = mean(t, axis=(0, 1, 2))
stddev = stddev(t, axis=(0, 1, 2))
for i in 0..B-1, x in 0..H-1, y in 0..W-1:
  out[i,x,y,:] = norm(t[i,x,y,:], mean, stddev)

전체적으로 C평균과 표준 편차 만 있으며 각각은 값에 대해 계산 B*H*W됩니다. 이것이 그들이 "유효 미니 배치"라고 말할 때 의미하는 것입니다. 둘 사이의 차이점은 축 선택에만 있습니다 (또는 동등하게 "미니 배치 선택").


나는 내 말에 대해 70 % 만 확신하므로 말이 안되는 경우에는 투표하기 전에 편집하거나 언급하십시오.

정보 locationspatial location: 그들은 이미지 나 기능 맵의 픽셀의 위치를 의미한다. 기능 맵은 개념이 표현되는 이미지의 희소 수정 버전과 비슷합니다.

정보 so that different elements of the same feature map, at different locations, are normalized in the same way: 일부 정규화 알고리즘은 로컬이므로 이미지에서 멀리 떨어져있는 것이 아니라 가까운 주변 (위치)에 의존합니다. 그들은 아마도 위치에 관계없이 모든 픽셀이 직접적인 특수 환경과는 독립적으로 세트의 요소처럼 취급된다는 것을 의미합니다.

정보 In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations: 그들은 미니 배치에있는 모든 훈련 예제의 모든 값에 대한 단순 목록을 얻습니다.이 목록은 기능 맵에서 위치가 무엇이든 결합합니다.

참조 URL : https://stackoverflow.com/questions/38553927/batch-normalization-in-convolutional-neural-network

반응형