6-2. CNN: LeNet, AlexNet

1. CNN 발전의 시작: LeNet

합성곱 신경망(Convolutional Neural Network, CNN)은 이미지 인식 분야에서 혁신적인 발전을 이루었습니다. 특히, CNN은 이미지의 공간적 특징을 효과적으로 학습하여 기존의 신경망으로는 달성하기 어려웠던 성능 향상을 이끌어냈습니다. CNN의 기본적인 개념은 이전 포스트에서 다루었으므로, 여기서는 CNN의 시초라고 할 수 있는 LeNet과 AlexNet에 대해 자세히 알아보겠습니다.

LeNet은 1998년 Yann LeCun 등에 의해 제안된 CNN 구조입니다. 당시에는 컴퓨터 연산 능력의 한계로 인해, 현재의 딥러닝 모델에 비해 매우 단순한 구조를 가지고 있었지만, CNN의 핵심적인 아이디어를 제시하고 MNIST 데이터셋에서 뛰어난 성능을 보이며 CNN 시대를 열었습니다. LeNet은 손글씨 숫자 인식을 목표로 설계되었으며, 합성곱 계층(Convolutional Layer), 풀링 계층(Pooling Layer), 그리고 완전 연결 계층(Fully Connected Layer)으로 구성됩니다.

LeNet 구조 설명 뒤

LeNet의 핵심적인 특징은 다음과 같습니다.

  • 합성곱 연산: 이미지의 지역적인 특징을 추출하기 위해 사용됩니다. 합성곱 연산은 입력 이미지에 필터(kernel)를 적용하여 특징 맵(feature map)을 생성합니다.
  • 풀링 연산: 특징 맵의 크기를 줄이고, 과적합을 방지하기 위해 사용됩니다. 주로 max pooling이 사용되어, 특정 영역에서 가장 큰 값을 선택합니다.
  • 활성화 함수: 비선형성을 부여하기 위해 sigmoid 함수 또는 tanh 함수를 사용했습니다.
  • 완전 연결 계층: 추출된 특징을 바탕으로 최종적인 분류를 수행합니다.

LeNet의 아키텍처는 다음과 같습니다.

  1. 입력: 32x32 크기의 흑백 이미지
  2. C1: 6개의 5x5 합성곱 필터를 사용하여 특징 맵 생성
  3. S2: 2x2 max pooling을 통해 특징 맵 크기 축소
  4. C3: 16개의 5x5 합성곱 필터 사용
  5. S4: 2x2 max pooling
  6. C5: 120개의 유닛을 가진 완전 연결 계층
  7. F6: 84개의 유닛을 가진 완전 연결 계층
  8. 출력: 10개의 유닛을 가진 완전 연결 계층 (각 숫자 0-9에 해당)

LeNet은 당시 MNIST 데이터셋에서 99% 이상의 정확도를 달성하며, 손글씨 숫자 인식 분야에서 획기적인 성과를 거두었습니다. LeNet은 CNN의 기본 구조를 제시하고, 이미지 인식 분야의 발전에 큰 영향을 미쳤습니다.

2. LeNet의 한계와 AlexNet의 등장

LeNet은 CNN의 기본적인 구조를 제시했지만, 여러 가지 한계를 가지고 있었습니다.

  • 낮은 계산 능력: 당시 컴퓨터의 계산 능력 부족으로 인해, 복잡한 모델을 구성하는 데 제약이 있었습니다.
  • 단일 이미지 크기: 32x32 픽셀의 작은 크기의 이미지에 최적화되어, 다양한 크기의 이미지를 처리하는 데 어려움이 있었습니다.
  • 활성화 함수: sigmoid 함수나 tanh 함수는 기울기 소실(vanishing gradient) 문제로 인해 학습 속도가 느려질 수 있었습니다.

이러한 한계점들을 극복하고, CNN의 성능을 획기적으로 향상시킨 모델이 바로 AlexNet입니다. AlexNet은 2012년 ImageNet Large Scale Visual Recognition Challenge (ILSVRC)에서 압도적인 성능으로 우승을 차지하며, 딥러닝 시대를 본격적으로 열었습니다. AlexNet의 등장은 CNN 연구에 불을 지폈고, 이후 다양한 CNN 모델들이 개발되는 계기가 되었습니다.

3. AlexNet의 구조와 특징

AlexNet은 LeNet에 비해 훨씬 깊고 복잡한 구조를 가지고 있으며, 다음과 같은 특징을 가집니다.

  • 깊은 구조: 8개의 계층 (5개의 합성곱 계층과 3개의 완전 연결 계층)으로 구성되어, 더욱 풍부한 특징을 학습할 수 있었습니다.
  • ReLU 활성화 함수: sigmoid 함수나 tanh 함수 대신 ReLU (Rectified Linear Unit) 함수를 사용하여, 기울기 소실 문제를 완화하고 학습 속도를 향상시켰습니다.
  • Local Response Normalization (LRN): 각 계층의 활성화 값들을 정규화하여, 모델의 일반화 성능을 향상시켰습니다.
  • Data Augmentation: 훈련 데이터의 양을 늘리기 위해, 이미지의 크기를 조절하거나, 회전, 이동시키는 등의 기법을 사용했습니다.
  • Dropout: 과적합을 방지하기 위해 사용되는 정규화 기법으로, 훈련 과정에서 일부 뉴런을 무작위로 비활성화시킵니다.
  • GPU 활용: 대용량 데이터와 깊은 모델을 학습하기 위해, 두 개의 GPU를 사용하여 병렬 처리를 수행했습니다.

AlexNet 구조 설명 뒤

AlexNet의 아키텍처는 다음과 같습니다.

  1. 입력: 227x227x3 크기의 이미지 (RGB)
  2. C1: 96개의 11x11 필터를 사용, ReLU 활성화 함수 적용
  3. P1: 3x3 max pooling
  4. C2: 256개의 5x5 필터 사용, ReLU 활성화 함수 적용
  5. P2: 3x3 max pooling
  6. C3: 384개의 3x3 필터 사용, ReLU 활성화 함수 적용
  7. C4: 384개의 3x3 필터 사용, ReLU 활성화 함수 적용
  8. C5: 256개의 3x3 필터 사용, ReLU 활성화 함수 적용
  9. P5: 3x3 max pooling
  10. FC6: 4096개의 유닛, ReLU 활성화 함수 적용, dropout 적용
  11. FC7: 4096개의 유닛, ReLU 활성화 함수 적용, dropout 적용
  12. FC8: 1000개의 유닛 (ImageNet의 클래스 수), softmax 활성화 함수 적용

AlexNet은 ImageNet 데이터셋에서 획기적인 성능 향상을 보였고, CNN 기반의 이미지 인식 모델의 성능을 크게 끌어올렸습니다. 특히, AlexNet은 깊은 구조, ReLU 활성화 함수, 데이터 증강, Dropout 등의 기법을 활용하여, 과적합을 방지하고 일반화 성능을 높이는 데 성공했습니다.

4. LeNet과 AlexNet 비교

LeNet과 AlexNet은 CNN의 초기 모델로서, 이미지 인식 분야에 큰 영향을 미쳤습니다. 두 모델의 주요 차이점은 다음과 같습니다.

특징 LeNet AlexNet
입력 이미지 크기 32x32 227x227
계층 수 7 8
활성화 함수 Sigmoid/Tanh ReLU
정규화 기법 없음 LRN, Dropout
데이터 증강 사용 안 함 사용
GPU 활용 사용 안 함 2개의 GPU 병렬 처리
주요 목적 손글씨 숫자 인식 ImageNet 이미지 분류
성능 (정확도) MNIST 데이터셋에서 99% 이상 ImageNet 데이터셋에서 ILSVRC 2012 우승 (Top-5 Error: 15.3%)

AlexNet은 LeNet에 비해 훨씬 깊고 복잡한 구조를 가지고 있으며, 다양한 기법들을 활용하여 성능을 크게 향상시켰습니다. 이러한 차이점들은 딥러닝 모델의 발전과정과 그에 따른 성능 향상을 보여주는 중요한 사례입니다.

5. 결론

LeNet과 AlexNet은 CNN의 초기 모델로서, 딥러닝 기반의 이미지 인식 분야의 발전에 큰 기여를 했습니다. LeNet은 CNN의 기본 구조를 제시하고 MNIST 데이터셋에서 뛰어난 성능을 보이며 CNN 시대를 열었습니다. AlexNet은 LeNet의 한계를 극복하고, 깊은 구조, ReLU 활성화 함수, 데이터 증강, Dropout 등의 기법을 활용하여 획기적인 성능 향상을 이루었습니다.

두 모델은 현재의 딥러닝 모델에 비하면 단순하지만, CNN의 핵심적인 아이디어를 제시하고, 이미지 인식 분야의 발전에 큰 영향을 미쳤다는 점에서 그 의의가 큽니다. 이러한 초기 모델들의 연구는 이후 ResNet, DenseNet과 같은 더욱 발전된 CNN 모델 개발의 기반이 되었으며, 딥러닝 기술의 발전을 가속화하는 데 크게 기여했습니다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!