maxnorm 제약 조건이란 무엇입니까? Convolutional Neural Networks에서 어떻게 유용합니까?


답변:



8

다른 질문 에 McLawrence답변 이 매우 도움이된다는 것을 알았 습니다 . 아래에서 재현 :

무게 제한은 max_norm무엇입니까?

maxnorm(m)체중의 L2-Norm이을 초과하면 m전체 중량 매트릭스의 크기를로 줄 m입니다. keras 코드 에서 찾을 수 있듯이 class MaxNorm(Constraint):

def __call__(self, w):
    norms = K.sqrt(K.sum(K.square(w), axis=self.axis, keepdims=True))
    desired = K.clip(norms, 0, self.max_value)
    w *= (desired / (K.epsilon() + norms))
    return w

Aditionally, maxnorm갖는 axis표준 계산 된 따라 인수. 귀하의 예에서는 축을 지정하지 않으므로 전체 가중치 행렬에 대해 표준이 계산됩니다. 예를 들어, tf차원 순서를 사용한다고 가정 할 때 모든 컨볼 루션 필터의 표준을 제한하려는 경우 가중치 행렬의 모양은 (rows, cols, input_depth, output_depth)입니다. 기준을 계산하면 axis = [0, 1, 2]각 필터가 주어진 기준으로 제한됩니다.

왜해야합니까?

가중치 매트릭스를 직접 제한하는 것은 또 다른 종류의 정규화입니다. 간단한 L2 정규화 용어를 사용하면 손실 함수로 높은 가중치를 페널티합니다. 이 제약 조건을 사용하면 직접 정규화 할 수 있습니다. keras코드에 링크 된 것처럼 이것은 dropout레이어 와 함께 특히 잘 작동하는 것 같습니다 . 자세한 내용은 이 백서의 5.1 장을 참조하십시오.


좋은 대답이지만 조심하십시오. "예제에서는 축을 지정하지 않으므로 표준이 전체 가중치 행렬에 대해 계산됩니다." -이것은 사실이 아닌 것 같습니다 (적어도 현재). 오히려, 표준은 기본값에 대해 계산 axis=0됩니다.
Bobson Dugnutt

max-norm은 숨겨진 계층의 노드에 팬인 가중치의 길이, 즉 . 또한 드롭 아웃 정규화에 대해 모든 실행에 max-norm이 사용 되었음을 알 수 있습니다 (cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf의 1934 페이지 마지막 단락 참조 ). ||w||
wrktsj 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.