Tech

CNN의 주요 모델 - AlexNet

안녕하세요, 지난 포스팅에서는 합성곱 신경망(CNN)의 개념과 그 원리에 대해서 다뤘습니다. 이해를 위해 VGG를 CNN의 예시로 들어 설명했습니다. VGG가 가장 보편적인 CNN의 모델 중 하나이기 때문입니다. 앞으로 다룰 주제는 대표적으로 쓰이는 CNN의 모델들에 관한 내용입니다. 첫 번째로 다룰 모델은 AlexNet입니다.

AlexNet

AlexNet은 인공지능의 Classification 대회인 ILSVRC에서 2012년에 당시 오차율 16.4%로 다른 모델들을 압도하고 우승한 모델입니다. 지금 이 수치를 보자면 그렇게 좋은 정확도가 아니지만, 저 당시에는 굉장한 정확도였다고 합니다. 그도 그럴 것이 2011년에 우승했던 모델의 오차율이 25.8%였으니, 오차율로만 보자면 성능이 40% 만큼 좋아진 셈입니다. AlexNet의 'Alex'는 모델 논문의 저자인 Alex Khrizevsky의 이름을 딴 것이라고 합니다.

AlexNet의 구조

AlexNet은 총 8개의 층으로 구성되어 있습니다. 첫 5개 층은 Convolution, 그 뒤 3개 층은 Fully-Connected 층입니다. 각각의 층들은 하나의 이미지에 대해 독립적으로 특징을 추출하여(Feature Extraction) 가중치를 조정함으로써 필터를 학습시킵니다. 층별로 어떤 역할을 하는지 살펴보겠습니다.

- 1~2층은 Max Pooling 층입니다. 이를 통해 데이터의 중요한 요소들만 요약하여 추출합니다.

- 3~5층은 서로 직접 연결되어 중간다리 역할을 합니다.

- 5층 뒤에는 Max Pooling 층이 뒤따르는데, 이곳의 출력은 Fully Connected 층 두 개로 구성됩니다. 1~5층에서 학습된 데이터들은 Fully Connected 층에서 분류됩니다.

- 최종적으로는 1000 class label이 있는 Softmax 분류기로 분류됩니다.

한편, AlexNet은 특이한 점이 몇 가지 있습니다.

- 첫 번째 층에서 학습된 필터를 시각화 하면 상단에는 주로 Non-Color Feature가, 하단에는 주로 Color Feature가 나타나는데 상단과 하단의 학습 환경이 같음에도 불구하고 이런 결과가 나타난 이유를 알 수 없었습니다.

- 또한 세 번째 층은 예외적으로 이전 단계의 층으로부터 학습된 모든 필터들을 가져오는데, 이러한 알고리즘은 아마 병렬 학습으로 인해 각각의 필터들의 연관성이 크게 벗어나는 것을 방지하기 위한 것으로 보입니다.

AlexNet의 구조적 특징들

Non-overlapping pooling과 Overlapping pooling 비교

1) Overlapping Pooling Layer: 다른 CNN 모델에서 Pooling은 일반적으로 필터를 겹치지 않게 Stride를 적절히 조정하여 사용합니다. 그러나 AlexNet에서는 Stride를 좁혀 Overlapping 하는 구조를 만들었습니다. 이 경우, 정확도는 약 0.4%가 향상되지만 Overlapping의 사용은 연상량을 증가시켰습니다.

ReLU와 tanh의 학습 속도 비교

2) ReLU Activation Function 사용: ReLU는 최근까지도 가장 보편적으로 쓰이는 활성화 함수입니다. AlexNet에서도 ReLU를 사용하면 tanh함수에 비해 학습 속도가 최고 6배까지 빠릅니다.

Local Response Normalization

3) Local Response Normalization(LRN) 사용: 이 기법은 AlexNet에서 처음 도입되었습니다. 활성화 함수를 적용하기 전에 Normalization을 적용하여 함수의 결과값에서 더 좋은 일반화 결과를 도출했습니다. LRN은 사용하는 이유는 이미지의 인접화소들을 억제시키고 특징을 부각시키기 위함입니다. 그 결과, 정확도가 1.4% 향상되었습니다. LRN은 신경생물학에서 그 원리를 가져왔습니다. 예컨대, 밝은 빛을 보면 눈이 어두워진다거나, 특정 사물에 집중하면 그 부분만 집중하여 보이게 되는 현상입니다.

Dropout이 수행되는 과정

4) Dropout 사용: 6, 7층(Fully-Connected)에서 50% 확률의 Dropout을 적용했습니다. 이는 신경망 사이의 연결을 랜덤으로 끊음으로서 Overfitting을 줄여줍니다. Dropout이 비록 학습시간을 약 2배 가량 증가시키지만, 이 기법이 없으면 Overfitting이 늘어나 에러 확률이 높아집니다.

*Overfitting

Underfitting / Baleaced / Overfitting 비교

- Overfitting은 컴퓨터가 주어진 데이터에만 너무 최적화되어서 오히려 새로운 데이터에 대한 예측을 못하게 되는 현상입니다. 반대로 Underfitting은 학습이 충분히 이루어지지 않은 경우입니다.

5) Training on Multiple GPUs: GPU 여러 개를 사용한 병렬처리 기법으로 학습시간을 획기적으로 줄였습니다.

PCA Color Augmentation, Random Crops

6) Data Augmentation: 동일한 이미지들을 조금씩 변형시켜가며 학습하면 Overfitting을 방지하는 데 도움이 됩니다. Data Augmentation에는 이미지를 좌우 반전시키는 Mirroring 기법, 이미지의 특정 부분을 무작위로 자르는 Random Crops 기법, RGB채널을 임의로 바꾸는 PCA Color Augmentation 기법 등이 있습니다. AlexNet을 만든 연구원들은 이러한 방법을 사용하여 데이터 양을 2048배로 늘렸습니다.

AlexNet에서 사용된 기법들은 지금은 비교적 보편화되었으나 2012년 논문 발표 당시에는 매우 생소한 개념이었습니다. 또한 오늘날 사용하고 있는 딥러닝 구조들은 AlexNet에서 계승 되었다고 해도 과언이 아닙니다.

오늘은 AlexNet에 대한 간략한 설명과 특징에 대해 알아보았습니다. 다음 포스팅에서는 또 다른 CNN 모델인 VGG에 대해 다루겠습니다.

Get Started Today
with datamaker

데이터메이커 시냅스를 회사에 도입하고 싶으시다면,
아래 의뢰하기 버튼을 눌러주세요!

Synapse 문의하기