본문 바로가기
AI | 딥러닝/Concept

[AI/딥러닝] CNN Network layer 모델들 (AlexNet, GoogLeNet, ResNet)

by 고뭉나무 2021. 8. 1.

 

이전 포스팅에서는 CNN 기법이 어떠한 원리로 이루어지는 지를 살펴보았다.

2021.07.11 - [SW programming/Computer Vision] - [딥러닝 모델] CNN (Convolutional Neural Network) 설명

 

[딥러닝 모델] CNN (Convolutional Neural Network) 설명

저번 포스팅에서는 딥러닝의 모델별 특징에 대해 알아보았습니다. 2021.07.10 - [SW programming/Computer Vision] - AI, 머신러닝, 딥러닝 이란? 그리고 딥러닝 모델 종류 그리고 이번 포스팅에서는 그 중 Compu

rubber-tree.tistory.com

 

CNN 기법은 딥러닝 학습을 위한 인공 신경망 알고리즘의 큰 카테고리 중 하나이며, 이 CNN 이라는 기술을 기반으로 이미지를 분류하는 여러가지 Network layer 들이 존재한다. 보통 CNN 모델들이라고 부르며 그 중 대표적인 3가지에 대해서 알아보고자 한다.

 

 

CNN Network layer 모델

Benchmark Analysis of Representative Deep Neural Network Architectures

출처: https://www.researchgate.net/figure/Ball-chart-reporting-the-Top-1-and-Top-5-accuracy-vs-computational-complexity-Top-1-and_fig1_328509150

 

 

이번 포스팅에서 다룰 모델은 AlexNet, GoogLeNet, ResNet 이다. 적은 순서대로 점차 기술이 발전했으며 이는 위 그래프를 통해서도 알 수 있다. 그래프는 x축은 Operations. 즉, 연산 처리량을 말하며 y축은 Accuracy로 연산 정확도를 뜻한다. 그리고 원의 크기는 사용되는 메모리의 용량이다. 

따라서 우측 상단으로 갈 수록 연산 처리량과 연산 정확도가 높은 더욱 발전된 기술이라고 볼 수 있으며 원의 크기는 작을 수록 좋다. 

이러한 관점에서 볼 때 ResNet은 과거 모델에 비해 많이 발전했다고 볼 수 있다.

 

CNN Network layer 모델의 목적은 다음과 같다.

 

더 깊은 네트워크를 만들면서(Layer 수를 늘려 정확도를 올림), 성능을 높여간다(파라미터 수를 줄여 처리속도를 낮춤).

 

 

AlexNet

기존 문제: 
고해상도 이미지에 대규모로 Convolutional Neural Network를 적용하기에는 여전히 많은 연산량이 소모됨.
이와 함께 적은 데이터셋 있으니, 과적합을 막아야 함.

핵심 아이디어:
1) 학습 최적화
- ReLU 활성화 함수 사용
- 2개의 GPU 사용

2) 과적합 방지
- Data Augmentation (적은 연산으로 학습 데이터를 늘리는 법)
- Dropout (일부 Layer를 생략하여 Overfitting 이슈를 해결하는 법)

*Overfitting: Training accuracy는 점점 올라가는데 반해 Test accuracy는 점점 떨어지는 현상


모델 설명:
뉴런: 약 65만개

파라미터 : 약 6200만개
연산량 : 약 6억 3000만개

Convolution layer : 5개
Pooling layer : 3개

Local Response Normalization layer : 2개
Fully-connected layer : 3개
총 Layer : 8개

AlexNet 구조
파라미터 수 계산하는 방법

 

GoogLeNet

기존 문제:
CNN의 성능을 향상시키기 위해 망의 크기를 늘리자.
즉, 망의 Layer 수(Depth)를 늘리는 것 뿐만 아니라 각 Layer에 있는 unit 수(Width)도 늘리자.
하지만 더 깊고 넓은 네트워크(파라미터 증가)를 형성하면 overfitting, 연산량(연산비용) 증가 등의 문제가 생김.
=> 이를 위해
Inception(1x1 사용) 개념을 적용함.

핵심 아이디어:
1) 향상된 Inception module 
  기본적인 Inception module은 아래 (a)의 그림 처럼 여러 개의 갈림길을 갖는 것이다. 그럼 다양한 물체의 크기(이미지 크기)에   유동적으로 변화하여 결과 값을 뽑을 수 있다. 즉, 여러 상황에 대비하여 출력값을 얻을 수 있다.
 그리고 GoogLeNet에 적용한 향상된 Inception module 은 여기에 1 x 1 convolution layer를 추가한 것이다. 그리고 이를 통해   dimension reduction을 하는 효과를 얻고 있다. (layer를 추가했는데 dimension reduction이 되는 이유는 바로 아래 설명 참조)


Inception module 구조



2) 1 x 1 convolution의 효과

(왼쪽) 기존 방식, (오른쪽) 1x1 convolution layer를 추가했을 때 방식


위 그림을 보면 동일한 단위의 Filter에서 1 x 1 convolution layer를 추가했음에도 불구하고 총 파라미터 갯수는 1440으로 기존보다 더 적어짐을 알 수 있다. 즉, 이를 통해 dimension reduction을 하는 효과를 얻은 것이다.



모델 설명:
파라미터 : 약 500만개
총 Layer : 22개
총 Unit : 약 100개

 

AlexNet에 비해 파라미터 1/12 수준, 연산 2배 빠름, top5 error 10% 까지 감소

 

GoogLeNet 구조 (노란 박스는 inception module)

 

ResNet

기존 문제:
deep 한 네트워크를 위해 layer만 늘린다고 성능이 좋아지지 않는다. 즉 degradation이 발생한다. Training도 잘 되고 Test도 잘 되는데 성능이 잘 안나올 때를 말한다. 

Degradation 예시


핵심 아이디어:
1) Residual learning building block

기본 원리는 입력 x가 들어가고 입력 x값에 출력 값을 더해 내보낸다. 이렇게 하기 위해서는 한가지 지켜야하는 약속이 있는데, 입력과 출력의 dimension을 맞춰주어야 한다. 이것이 유일한 제약 조건이다.

Residual learning building block

의미는 다음과 같다. 현재 입력과 출력의 차이에 대해서만 학습을 하겠다.

그냥 모의 실험없이 가정해서 진행한 이론인데 결과는 훌륭하였다. 쉬운 방법으로 최적화가 되는 결과가 나온 것이다. 

 

2) Deeper bottle architecture

여기도 1 x 1 convolution을 추가하고 입력과 출력의 Dimension을 맞춰주어야 하므로 마지막에 1x1, 256 layer를 추가해준다.

Deeper bottle architecture
ResNet 구조


모델 설명:

총 Layer : 152개

 

 

앞으로의 과제

ResNet에 사용된 기법을 통해 100개 정도의 Layer까지의 학습은 많을 수록 성능이 더 좋아졌다. 하지만 그 이상으로 Layer 수를 늘리면 성능이 또 떨어지는 Degradation이 발생한다. 

그 이상의 Layer를 사용할 때 성능을 높이는 기법을 또 다시 연구해야 되는 상황이다.

100 layer vs. 1000 layer 성능 비교

 

 

종합 정리용 그래프

 

 


참고하면 좋은 글

https://m.blog.naver.com/laonple/220654387455

 

[Part Ⅴ. Best CNN Architecture] 3. AlexNet [1] - 라온피플 머신러닝 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic Segmentat...

blog.naver.com

 

https://warm-uk.tistory.com/44?category=824848 

 

[CNN 개념정리] CNN의 발전, 모델 요약정리 1 (AlexNet ~ GoogLeNet)

* 참고자료 및 강의 - cs231n 우리말 해석 강의 https://www.youtube.com/watch?v=y1dBz6QPxBc&list=PL1Kb3QTCLIVtyOuMgyVgT-OeW0PYXl3j5&index=6 - Coursera, Andrew Ng교수님 인터넷 강의 * 목차 1. 모델 발전..

warm-uk.tistory.com

https://www.edwith.org/deeplearningchoi/lecture/15296?isDesc=false 

 

[LECTURE] 4가지 CNN 살펴보기: AlexNET, VGG, GoogLeNet, ResNet : edwith

학습목표 최신 CNN 구조 중 AlexNet, VGG, GoogLeNet, ResNet 이렇게 4가지 구조에 대해서 알아보겠습니다. 위 4가지 구조들은 일반적으로 딥러닝의 유명한 ... - 커넥트재단

www.edwith.org

 

위 글이 도움이 되셨나면, 아래 하트를 눌러주세요↓ 

감사합니다 \( ˆoˆ )/​

반응형

댓글