딥 러닝에서 현재 이미지 평균 대신 데이터 세트의 이미지 평균을 빼서 이미지를 정규화하는 이유는 무엇입니까?


88

이미지를 정규화하는 방법에는 몇 가지 변형이 있지만 대부분 다음 두 가지 방법을 사용하는 것 같습니다.

  1. 모든 이미지에서 계산 된 채널당 평균을 빼십시오 (예 : VGG_ILSVRC_16_layers )
  2. 모든 이미지에서 계산 된 픽셀 / 채널로 빼기 (예 : CNN_S , Caffe 's reference network 참조 )

자연스러운 접근 방식은 각 이미지를 정규화하는 것입니다. 넓은 일광에서 촬영 한 이미지는 야간 이미지보다 더 많은 뉴런을 발생시키고 일반적으로 가장자리에있는 더 흥미로운 기능에 관심이있는 시간을 알려줍니다.

Pierre Sermanet 은 3.3.3에서 이미지 당 기반의 로컬 대비 정규화 를 언급하지만 필자가 본 예제 / 자습서에서는이 문제를 다루지 않았습니다. 또한 흥미로운 Quora 질문Xiu-Shen Wei의 게시물을 보았지만 위의 두 가지 접근 방식을 지원하지 않는 것 같습니다.

내가 정확히 무엇을 놓치고 있습니까? 이것이 색상 정규화 문제 입니까, 아니면 왜 많은 사람들이이 접근법을 사용하는지 실제로 설명하는 논문이 있습니까?


답을 모르겠지만 각 방법을 시도해 보셨습니까? 공연에 차이가 있습니까?
user112758

@ user112758-그것들을 구현하는 것은 (특히 픽셀별로) 약간 고통 스럽습니다. 제 경험에 따르면 이미지 당 정규화는 정상적으로 작동하지만 내 데이터는 그 대표자가 아닙니다. 나는 정규화를 실험하려고 시도하지만 이상한 정규화 절차 뒤에있는 동기를 듣고 싶습니다.
Max Gordon

좋아, 아마도 당신은 caffe Google 그룹 caffe GitHub 문제에서 이것을 요청할 수 있습니다. 이 주제에 대해 더 많은 전문가가있을 것 같습니다.
user112758

답변:


58

데이터 세트 평균을 빼면 데이터를 "중심"시키는 역할을합니다. 또한 각 기능 값을 z- 점수로 정규화하려는 경우 해당 기능이나 픽셀의 sttdev로 나누는 것이 이상적입니다.

우리가이 두 가지를하는 이유는 네트워크를 훈련하는 과정에서 초기 입력 값을 곱하고 (가중치) 추가하기 (바이어스)하기 때문에 활성화를 유발하기 위해 모델을 훈련시킵니다.

이 과정에서 각 기능의 범위가 비슷하여 그래디언트가 제어 범위를 벗어나지 않고 하나의 글로벌 학습률 승수 만 필요합니다.

당신이 그것에 대해 생각할 수있는 또 다른 방법은 전통적으로 딥 러닝 네트워크가 많은 매개 변수를 공유하는 것입니다-비슷한 범위의 기능 값 (즉, 평균을 빼서 전체 데이터 세트에서)으로 공유를 공유하지 않는 방식으로 입력을 조정하지 않으면 이미지 무게의 한 부분이 w많고 다른 부분이 너무 작기 때문에 매우 쉽게 발생 합니다.

일부 CNN 모델에서는 이미지 별 미백이 사용된다는 것을 알 수 있습니다.


4
답변 감사합니다. 나는 데이터를 중심에두고 안정적인 그라디언트를 얻기 위해 범위가 비슷한 지 확인하는 개념에 익숙합니다. 문제는 왜 우리가 전체 데이터 세트에 대해 이것을 수행해야하는지 그리고 왜 이것이 이미지 별 미백과 대조되는 데 도움이 될까요? 나는 이것이 대답을 받아들이 기 전에 학습을 향상시키는 방법을 보여주는 간단한 참조를 원합니다. 배치 정규화 가 매우 강력한 기술 이라는 것을 알고 있지만 전체 데이터 세트 정규화에 대한 연결이 보이지 않습니다.
Max Gordon

배치 정규화가 좋다는 것을 받아들이면 이미 있습니다. 일괄 정규화하는 유일한 이유는 메모리에 전체 데이터 세트를 넣을 수 없거나 교육을 배포하는 경우 (종종 동일한 문제)입니다. 이것이 우리에게 배치가있는 이유입니다.
lollercoaster 2016 년

배치도 확률 적 경사 하강의 기초라고 생각했습니다. 모든 것을 메모리에 넣을 수 있더라도 각 시대 이후보다 매개 변수를 더 자주 업데이트하려고합니다.
Max Gordon

3
그들은. 또한 원하는 빈도로 업데이트 할 수 있습니다. 분석 시사점은 동일하며 그래디언트 디센트에 대해 매우 훌륭하고 확장 가능합니다. 스토캐스틱 그라디언트 디센트 (셔플 링 입력 순서 + 배치)를 사용하는 이유는 그라디언트 공간을 통해 힐 클라이밍을 부드럽게하기위한 것입니다. 단일 지점이 주어지면 업데이트로 인해 로컬 최대 점으로 진행될 것이라고 확신 할 수는 없지만 충분한 지점을 선택하면이 가능성이 높아집니다 (예상).
lollercoaster 2016 년

2
이 기능이 유사한 범위로 기능을 얻는 데 어떻게 도움이됩니까? 두 개의 이미지가있는 경우 하나는 0에서 255 사이의 범위에 있고 다른 하나는 픽셀 값에서 0에서 50까지의 범위에 속합니다 (평균은 50이고 stdev는 15). -3.3 to 0. 그들은 여전히 ​​같은 규모가 아닙니다.
다니엘

9

배치 정규화 이전에, 각 채널 (R, G, B)에 대해 제로 평균 주위에 데이터를 집중시키기 위해 채널당 평균 감산이 사용되었다. 이는 일반적으로 그라디언트가 각 채널에 균일하게 작용하기 때문에 네트워크가 더 빨리 학습하는 데 도움이됩니다. 배치 정규화를 사용하는 경우 미니 배치마다 정규화하기 때문에 채널 당 평균 빼기 사전 처리 단계가 실제로 필요하지 않은 것 같습니다.


1
"배치 정규화를 사용하는 경우 미니 배치 당 정규화하기 때문에 채널당 평균 빼기 전처리 단계가 실제로 필요하지 않다고 생각합니다." 그러나 배치 표준은 실제 입력 이미지가 아닌 네트워크 계층의 가중치를 정규화하는 것을 말합니다. 이것들은 2 가지입니다.
Monica Heddneck

4

이미지 당 정규화는 일반적이며 현재 Tensorflow에 내장 된 유일한 기능입니다 (주로 구현하기 매우 쉽기 때문에). 언급 한 정확한 이유로 사용됩니다 (동일한 이미지의 경우 낮 VS 밤). 그러나 조명이 제어되는 더 이상적인 시나리오를 상상한다면 알고리즘에서 각 이미지 간의 상대적인 차이가 큰 가치가 있으며 이미지 당 정규화로 지우고 싶지 않을 것입니다. 전체 교육 데이터 세트의 맥락에서 정규화를 수행하십시오).


4

이것을 사용하기 전에 데이터의 전처리라고합니다. 여러 가지 방법으로 처리 할 수 ​​있지만 X_preproc = f (X)와 동일한 함수를 사용하여 각 데이터를 처리해야하는 한 가지 조건이 있으며이 f (.)는 데이터 자체에 의존하지 않아야합니다. 따라서 현재 이미지 평균을 사용하여이를 처리하는 경우 현재 이미지를 보면 f (X)는 실제로는 f (X, image)가되고 싶지 않습니다.

당신이 이야기했던 이미지 콘트라스트 정규화는 다른 목적을위한 것입니다. 이미지 대비 정규화가 기능에 도움이됩니다.

그러나 위의 f (.)는 모든 기능을 수치 적으로 동일하게 유지함으로써 최적화에 도움이됩니다 (물론 대략)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.