일반적인 CNN은 성능을 높이기 위해 레이어의 깊이를 늘리는데에 집중해왔다. 하지만 wideresnet은 깊이보다는 넓이를 늘여보려는 여러가지 실험으로 모델을 제시했다.

 

 

1. Width vs depth in residual networks

 

깊은 신경망이 갖는 표현력을 얕은 신경망이 갖기 위해서는 넓은 신경망을 구성해야한다. 그만큼 paras수도 증가하게 e된다.

일반 resnet은 깊은 신경망을 구축하기위해서 conv필터를 최소화하여 얇은 res block을 만들었으며 bottleneck을 이용해 더욱 얇게 만들었다.

 

 

resblock은 신경망을 깊게 만들수 있는 장점을 가졌지만 역시나 단점을 가지고있었다.

 

gradient flow 과정 중에 res block 으로 gradient 를 반드시 전달하지 않아도 되는 구조라 학습이 잘 안될 수 있다.
따라서 일부 block 만이 유용한 정보들을 학습하게 된다.
결국 대부분의 block 이 정보를 가지고 있지 못하거나 많은 block 들에 아주 적은 정보만 담긴채 공유되게 된다.

 

 

 2. Use of dropout in ResNet blocks

 

 

WRN의 경우 더 넓은 redidual block 을 사용하게 되므로 parameter 의 수가 증가하게 된다.

Dropout 을 사용하면 regularization 효과가 생겨 오버피팅을 줄이게 된다. 이를 convolution laye사이에 사용했다.

 

이는 더불어 학습시간의 감소를 가져왓다.

 

 

 

3. architecture

 

하이퍼 파라미터 k 에 따라서 더 넓어질 수 있다. conv시 groupconv를 사용한다.  이런면에서 resnext와 비슷하다.

cross channel 연산이 줄어 속도와 pram문제에서 벗어날 수 있었다. 

k에 따라 성능이 바뀌는 것이 확인가능하다

 

성능도 훌륭하다.

 

width로 성능을 늘릴수 있는것은 res넷같이 구조가 복잡하지 않은 경우에만 사용가능하다

일반적으로 적용이 가능한 것이 아니다.

+ Recent posts