← 문제 목록/DropConnect (weight drop)
문제 해설

DropConnect (weight drop)

정규화 · easy

preview

DropConnect (weight drop)

79번 Column Dropoutactivation 을 drop. DropConnect (Wan et al. 2013) 는 한 단계 더 들어가 weight 행렬 자체 의 원소를 독립적으로 drop:

Wdrop=WM/(1p),MijBernoulli(1p)W_{\text{drop}} = W \odot M / (1 - p), \quad M_{ij} \sim \text{Bernoulli}(1 - p)

WdropW_{\text{drop}} 로 forward pass를 진행. Dropout 이 "뉴런 끈다" 면 DropConnect 는 "연결을 끈다".

왜 weight-level 인가

  • 같은 뉴런이 출력에 주는 영향이 입력마다 다름 → 미세한 정규화.
  • 이론적으로 Dropout 의 일반화 (Dropout = DropConnect 의 특수 경우).
  • 실전 성능은 문제 따라 다름; Dropout 이 더 널리 쓰이지만 연구적으로 흥미로움.

Inverted 관례

훈련 중 스케일 업 1/(1p)1/(1-p) → inference 시 그대로 쓰면 됨.

Dropout vs DropConnect

관점DropoutDropConnect
대상activation (뉴런 출력)weight (연결)
마스크 shapeactivation 과 같음W 와 같음 (훨씬 많음)
적용forward output에 곱forward 전에 W 교체

과제

함수 drop_connect(W, p, seed, training) 를 완성하세요.

  • W shape 임의 (예: (in, out)).
  • training=FalseW 그대로.
  • training=TrueM ~ Bernoulli(1-p) shape of W, 반환 W * M / (1-p).

테스트 케이스

#이름검증
1training=False → 그대로
2shape 유지
3엔트리별 drop (구조 없음)각 원소가 독립적
4기대값 보존E[W_drop] ≈ W
5시드 재현성
6p=0 → 그대로
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.