Problems of Deep CNN
일반적으로 네트워크가 깊고 넓을수록 성능이 더 나을 것이라는 사실이 널리 알려져 있었는데, 이에 반하는 결과들이 나타나기 시작했다.

더 Depp한 네트워크가 적어도 Train Set에서는(Overfitting이 발생하더라도) 더 나은 성능이 나타나야 하는데 트레이닝과 테스트 모두에서 더 낮은 성능을 기록한 것이다. 이는 네트워크가 깊어질수록 각 weight들을 최적화 하는것이 어렵고, Gradient Vanishing 문제가 발생할 수 있기 때문이다.
ResNet은 이를 해결하고 더 깊은 레이어의 학습에도 성공했다.
ResNet

Residual 구조에서 추가된 Skip-Connection 이 주요한 역할을 함
Skip-connection

처음 제안되었던 Skip Connection 구조. Feature를 추출하기 전 후의 값을 더해서 activation 적용시킨다.
Plain : y = f(x), Residual : y = f(x) + x
y' = f'(x), y' = f'(x) + 1
-> Gradient != 0, Gradient Vanishing 문제 해결
Pre-activation
Conv -> BN -> ReLU 구조를 BN -> ReLU -> Conv 구조로 변경. Activation을 Conv Layer보다 앞에 둠

한 단위의 특징 맵을 추출하고 난 후에 activation을 적용하는 것이 상식이었지만, 개선된 구조에서는 Identitiy Mapping을 얻기 위해 Pre-Activation을 제안함.


논문에서는 위와 같은 과정으로 pre-activation 구조를 제안 하게 되었고, 또한, Conv-BN-ReLU 구조를 BN-ReLU-Conv 구조로 변경한 것으로 성능개선을 얻을 수 있었음.
'ML > CNN' 카테고리의 다른 글
[CNN] ResNet50 Implementation(Keras) (0) | 2021.08.09 |
---|---|
[CNN] GoogLeNet Implementation (Keras) (0) | 2021.08.06 |
[CNN] DenseNet 요약 (0) | 2021.08.04 |
[CNN] GoogLeNet 요약 (0) | 2021.08.02 |
Convolutional : Autoencoder / Neural Network (0) | 2021.07.29 |
댓글