최대 풀링 레이어를 통한 역 전파?


62

이것은 한동안 나에 대한 작은 개념적 질문입니다. 신경망에서 최대 풀링 레이어를 통해 어떻게 역 전파 할 수 있습니까?

Torch 7의 nn 라이브러리에 대한 자습서 를 진행하면서 최대 풀링 레이어를 발견했습니다 . 라이브러리는 딥 네트워크의 각 레이어에 대한 그라디언트 계산 및 전달 패스를 추상화합니다. 최대 풀링 레이어에 대한 그래디언트 계산이 어떻게 수행되는지 이해하지 못합니다.

I는 알고있는 경우, 입력이있는 경우 신경 들어가는 층의 다음 로 정의 ( )은 zililδilδil=Ezil

δil=θ(zil)jδjl+1wi,jl,l+1

따라서, 최대 풀링 계층은 평소와 같이 다음 계층 의 받습니다 . 그러나 최대 풀링 뉴런에 대한 활성화 함수는 입력으로 값 벡터 (최대 값 초과)를 취하므로 {\ delta_i} ^ {l} 은 더 이상 단일 숫자가 아니라 벡터 ( \ theta ^ { '} ({z_j} ^ l)\ nabla \ theta (\ left \ {{z_j} ^ l \ right \}) 로 대체해야합니다 . 또한 max 함수 인 \ theta 는 입력과 관련하여 구별 할 수 없습니다.δjl+1δilθ(zjl)θ({zjl})θ

그래서 .. 정확히 어떻게 작동해야합니까?

답변:


58

값을 약간 변경해도 출력에 영향을 미치지 않기 때문에 최대 값 이외의 값에 대해서는 기울기가 없습니다. 또한 최대 값은 실제로 최대 값을 달성하는 입력과 관련하여 기울기 1과 로컬로 선형입니다. 따라서, 다음 층으로부터의 구배는 최대를 달성 한 뉴런으로 다시 전달된다. 다른 모든 뉴런은 0 기울기를 얻습니다.

따라서 귀하의 예에서 은 위치가 값을 얻는 것을 제외하고는 모두 0으로 구성된 벡터입니다. 여기서δili{δjl+1}i=argmaxi(zil)


7
그렇습니다. 비 최대 뉴런을 통해 역 전파되는 지점은 없습니다. 그것은 중요한 통찰력이었습니다. 이제 이것을 올바르게 이해하면 max-pooling 레이어를 통한 역 전파는 단순히 max를 선택합니다. (최대 풀링이 수행 된) 이전 계층의 뉴런을 통해서만 역 전파를 계속합니다.
shinvu

그러나 활성화 함수의 미분과 곱할 필요는 없습니까?
Jason

1
@Jason : max 함수는 최대 값을 얻은 활성화에 대해 로컬에서 선형이므로 파생 함수는 상수 1입니다.이를 통과하지 못한 활성화의 경우 0입니다. 이는 개념적으로 ReLU (x를 차별화하는 것과 매우 유사합니다. ) = max (0, x) 활성화 함수.
Chrigi

최대 풀링의 보폭은 커널 너비보다 작습니까?
Vatsal

1
좋은 답변입니다! 여러 항목의 최대 값이 동일한 경우 (예 : 2 개의 값은 ReLU에서 0이고 다른 2 개의 값은 음수) 인 경우는 어떻습니까?
DankMasterDan

6

최대 풀링

따라서 레이어 PR 위에있는 레이어 P가 있다고 가정합니다. 그러면 정방향 패스는 다음과 같습니다.

Pi=f(jWijPRj) ,

여기서 는 층 P의 i 번째 뉴런의 활성화이고, f는 활성화 함수이고 W는 가중치입니다. 따라서 그것을 도출하면 체인 규칙에 따라 그라디언트가 다음과 같이 흐릅니다.Pi

grad(PRj)=igrad(Pi)fWij 입니다.

그러나 이제 최대 풀링이 있으면 최대 뉴런의 경우 이고 다른 모든 뉴런의 경우 이므로 이전 레이어의 최대 뉴런의 경우 이고 다른 모든 뉴런의 경우 입니다. 뉴런. 그래서:f=idf=0f=1f=0

grad(PRmax neuron)=igrad(Pi)Wi max neuron ,

grad(PRothers)=0.


2

Shinvu의 대답은 잘 작성된 것입니다 @, 나는 가리 싶습니다 최대 () 작업의 기울기를 설명 비디오이를 파악 빠른 전산 그래프 내에서.!

maxpool 연산 (전산 그래프 -NN 아키텍처의 전산 노드)을 구현하는 동안 행렬의 최대 위치를 추적하는 "마스크"행렬을 만드는 함수가 필요합니다. 참 (1)은 X의 최대 위치를 나타내며 다른 항목은 거짓 (0)입니다. 우리는 최대의 위치를 ​​추적합니다. 이것이 출력에 궁극적으로 영향을 미치는 입력 값이므로 비용입니다. Backprop는 비용과 관련하여 그라디언트를 계산하므로 최종 비용에 영향을 미치는 모든 항목에는 0이 아닌 그라디언트가 있어야합니다. 따라서, 백프로 프는 그레디언트를 비용에 영향을 미쳤던이 특정 입력 값으로 다시 전파합니다.

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