0. Reference
https://arxiv.org/abs/1605.07146
Wide Residual Networks
Deep residual networks were shown to be able to scale up to thousands of layers and still have improving performance. However, each fraction of a percent of improved accuracy costs nearly doubling the number of layers, and so training very deep residual ne
arxiv.org
1. Introduction
- 해당 논문에선 ResNet에서 Activation 순서외에도 다양한 구조를 연구하며, 다양한 통찰을 얻고자 하였다고 한다.
- 해당 논문에서의 주요 문제는 다음과 같다.
"얕고 넓은 Network VS 깊고 얇은 Network"
- ResNet에서는 Network를 최대한 얇게 유지하면서 깊이를 늘리는 방식으로 설계하였으며,
- parameter를 줄이기 위해 bottleneck을 도입하였다고한다.
- 하지만, identity mapping을 가진 residual block를 장점이자 단점이 된다고 한다.
- 학습 중에 gradient가 residual block을 통과하지 않고 학습이 되지 않는 상황이 발생할 수 있다.
- 이를 통해 "diminishing feature reuse"문제로 이어질 수 있다.
- 이 문제를 해결하기 위해서, Residual block을 무작위로 비활성화하는 dropout기법을 제안하였다고한다.
- 이에 따라서, Residual block을 병렬로 연결하여 Residual Network의 너비를 확장하여,
- 16층 Wide Residual Network와 1000층 Deep network와 비교하였을 때,
- 비슷한 정확도를 보이며, parameter수도 유사하면서, 학습속도는 훨씬 빨랐다고 한다.
- 이러한 결과는 깊은 Residual network의 핵심성능이 residual block에 있으며,
- 깊이는 단순히 보조적인 역할을 한다는 것을 시사한다.
2. Wide Residual Networks
- identity mapping을 사용하는 Residual block은 다음과 같은 수식으로 표현가능하다.
- 하지만 wide residual networks에서 사용하는 residual block은 기존의 resnet에서 쓰인 것과는 차이가 있다.
- 그차이점은 BN, ReLU,Conv간의 순서이다.
- 기존의 resnet은 ConV --> BN --> ReLU로 진행되었지만,
- Wide Residual Networks에서는 BN --> ReLU --> ConV로 진행하였다고한다.
- 해당 방식이 더 빠르고 성능이 좋았다고한다.
- Residual block을 한개를 없앨수록, 그만큼 전층 Residual block의 channel개수를 2k배를 해준다. (k는 ConV개수)
- 즉, depth를 줄이고, 각 Residual block마다 channel을 늘려, 학습하고자하는 feature를 늘려줄 수 있다.
- 이로인해 ResNet보다 성능이 향상됨을 보였다.
-해당 논문은 살짝 난해해서, 가볍게 넘어가겠습니다.
- 가져가야할 핵심은,Layer수가 많다고 좋은게 아니고, Width가 더 좋을 수도 있다.라는 것이다.
- 참고로, ConV이전에 Dropout을 해주면 더욱 더 좋은 성능을 보인다고한다.