본문 바로가기
ML/CNN

[CNN] ResNet 요약

by 나른한 사람 2021. 8. 3.

Problems of Deep CNN

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

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

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

댓글