Kim Seon Deok

GoogleNet 본문

AI/논문

GoogleNet

seondeok 2022. 3. 24. 17:07

GoogleNet[szegedy et al., 2014]

 

네트워크가 깊고 넓을수록 학습이 성능이 좋아질 것이라 생각.

네트워크가 너무 깊으면

-파라미터 수가 많아짐 >> 연산량 증가 & overfitting에 취약해질 수 있다. 

 

1.모델 구조에 대한 연구

2.backpropagation을 효율적으로 전달하기 위한 연구

전체적으로 보면 inception module의 덩어리로 이루어진 구조

맨 앞부분 - inception module로 들어가기 위해 정제되는 부분

맨 뒷부분 - inception module로 정제된 output을 최종 결과로 만들어 주는 부분

 

 

inception module

다양한 크기의 filter를 이용하지만 연산량이 증가하므로 비효율적인 결과를 가져온다.
1*1filter가 추가된 수정된 version의 inception module

previous layer에서 input을 받아 4갈래로 나뉘어 연산이 진행.

4개의 feature map들을 concatenate함 >> (작은크기의 feature & 중간크기의 feature & 큰 크기의 feature & 이전 layer의 중요한 특징만 뽑아낸 feature)

 

 

1*1 convolution 의 효과

-dimmension reduction을 통해 input filter의 수를 조절

-다양한 크기의 filter를 적용해 여러 시각적 특징을 추출하면서도 연산량을 낮추고 속도를 빠르게 함.

-Conv연산 후에 ReLU를 통해 non-linearity을 추가로 얻음.

 

inception module의 효과

-시각 정보가 다양한 1*1, 3*3, 5*5 Conv 연산을 통해 여러 scale로 처리되고 이를 통해 다음 layer는 서로 다른 scale의 특징을 동시에 추상화할 수 있다.

-pooling layer를 통해 좋은 정보들만 남기고 안 좋은 정보들은 걸러짐

-컴퓨팅 연산의 증가 없이 unit의 갯수를 증가시켜 모델의 성능을 개선

 

한계

forward과정에서 모든 layer에 효과적인 방법으로 기울기를 다음 layer로 전달하는 과정에서 생기는 gradient vanishing현상과

backpropagation과정에서 정보가 소실되는 단점을 해결하지 못함

>> auxiliary classifier(출력층과 유사한 구조의 네트워크 층)을 intermediate layer의 출력부분에 추가해 loss를 계산

 

 

auxiliary classifier의 효과

-중간 layer의 back propagation의 결과를 더할 수 있기 때문에 layer가 깊어짐에 따라 intermediate layer의 gradient가 작아지는 문제를 피한다.

-auxiliary classifier의 loss가 network의 loss에 더해지므로 추가적인 regularization의 역할도 동시에 수행.

 

Conclusion

inception network는 sparse structure를 dense structure로 근사화하여 성능을 개선.

 

요약

1.inception module을 사용

2.inception module의 구조를 1*1filter를 추가해 수정

3.auxiliary classifier를 추가

 

'AI > 논문' 카테고리의 다른 글

DenseNet  (0) 2022.03.30
ResNet 구현  (0) 2022.03.25
ResNet  (0) 2022.03.24
VGGNet  (0) 2022.03.22
AlexNet  (0) 2022.03.22
Comments