아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.
최근에 컴퓨터 비전 분야를 세부전공으로 정했다.
따라서 computer vision(CV)분야의 논문을 많이 포스팅하게 될 것 같다.
이 논문은 CV분야에서 처음으로 읽는 논문으로 AlexNet이라고 부르는 유명한 모델에 대한 설명이다.
<논문 링크>
이 글이 다룬 논문의 전문을 보고 싶다면 아래 링크를 클릭하면 된다.
Abstract
120만 개의 고해상도 이미지를 1,000개의 클래스로 분류하는 ImageNet대회에서 기존의 최첨단 모델들을 압도하는 성적을 거뒀다.
신경망은 6천만 개의 파라미터와 65만 개의 뉴런을 가졌고, 5개의 Convolutional Layers와 3개의 fully-connected layer를 사용해 최종적으로 1000종류의 분류를 하는 softmax함수로 연결된다.
몇몇 convolutional layer뒤에는 max-pooling layer가 있다.
과적합 방지를 위해 dropout을 사용했다.
1. Introduction
최근까지의 이미지 데이터 셋은 대략 수만 장 정도의 규모였다.
하지만 현실의 환경에 적용하려면 더 큰 데이터 셋이 필요하다.
소규모 이미지 셋의 한계가 있었고, 최근에서야 수백만 장 규모의 이미지 셋을 얻을 수 있게 되었다.
이런 큰 규모의 데이터 셋의 예시로 LabelMe, ImageNet이 있다.
이런 ImageNet같은 대규모 셋도 복잡한 객체인식문제를 해결하기에는 부족하다.
우리가 가지고 있지 못한 데이터를 보충하기 위해 모델은 prior knowledge가 있어야 한다.
CNN은 이런 조건을 충족하는 신경망이다.
CNN은 이미지의 특성에 대한 타당한 가정을 가지고 있다.
예를 들면 '픽셀의 의존관계는 국소적이다'라는 것이다.
이건 잠깐 생각해보면 꽤 타당한데, 자동차의 사진을 봤을 때 자동차의 구성요소는 모두 비슷한 곳에 있기 때문이다.
타이어가 이쪽 끝, 저쪽 끝에 떨어져있는 사진이라면 그건 그냥 자동차 사진이 아닐 것이다.
이런 특성 때문에 일반적인 순전파 신경망에 비해 CNN은 연결 수와 파라미터 수가 매우 적다.
따라서 학습은 빠르고 쉬워지면서 성능은 비슷할 가능성이 높다.
이 CNN이 기존에 비해 간결한 신경망이긴 하지만 아직도 고해상도 이미지 처리에는 너무 비용이 비쌌다.
하지만 GPU성능 향상, 효율적 합성곱 구현 등 덕분에 사용이 가능해졌다.
과적합을 막기 위해 여러 정규화 기법을 사용했다.
최종 모델은 5개의 합성곱 층과 3개의 완전연결 층으로 구성되며,
합성곱 층 하나라도 제거하면 성능이 눈에 띄게 저하되었다.
2. The DataSet
논문에서 사용한 데이터 셋과 데이터 처리과정에 대한 부분이다.
- ImageNet은 약 1,500만 장의 고해상도 이미지와 22,000개 카테고리로 구성된 대규모 데이터셋이다.
- ILSVRC라는 매년 열리는 이미지 인식 대회에서는 1000개의 클래스와 클래스당 1000개의 이미지를 사용한다.
- 이 논문은 2010년 대회와 2012년 대회에서 실험을 진행했다.
- 성능은 오류율을 통해 측정한다.
- ImageNet은 다양한 해상도의 이미지가 있는데 논문에서는 256x256으로 크기를 리사이징한 후 사용했다.
- 만약 직사각형 이미지라면 짧은 쪽을 256으로 맞춘 뒤 중앙 256x256부분을 잘라서 사용했다.
- 모델은 raw RGB값을 사용했다.
3. The Architecture
3.1. ReLU Nonlinearity
이 논문에서는 ReLU를 사용했다. Deep CNN에서 ReLU가 tanh보다 몇 배나 학습이 빠르기 때문이다.
아래 그림에서 실선이 ReLU, 점선이 tanh이다.

3.2. Training on Multiple GPUs
당시 GPU는 메모리가 3GB여서 모든 파라미터와 뉴런을 하나에 담을 수 없었기 때문에 논문에서는 2개의 GPU를 병렬로 사용했다.
두 GPU사이에서 항상 데이터가 왔다갔다하면 느리기 때문에 어떤 layer에 대해서는 이런 과정을 생략했다.
어떤 layer에서 이렇게 할지는 실험을 통해 결정했다.
또 신기한 것은 같은 모델을 똑같이 학습시키는데 1개의 GPU를 사용하는 것보다 GPU간 통신이 추가로 필요함에도 2개를 사용하는 것이 더 빨랐다는 것이다.
3.3. Local Response Normalization
이 논문의 모델에서는 성능 향상을 위해 LRN(Local Response Normalization)라는 것을 사용한다.
sigmoid같은 경우 양 끝에서 기울기가 거의 0에 가까워서 출력이 포화될 수 있다. 따라서 sigmoid함수에 들어가는 입력이 너무 극단적인 값이 안되도록 정규화를 할 필요가 있다.
하지만 ReLU는 양수에서 항상 기울기가 있으므로 이것을 막기위한 입력 정규화가 필요하지는 않다.
그렇지만 성능을 더 높이기 위해 LRN을 도입했다.
식이 좀 복잡해 보이는데 먼저 $i,j$는 $i,j$번째 커널을 의미한다.
커널은 필터라고 생각할 수 있는데, 예를 들어 첫번째 커널이 이 부분이 강아지 귀인지 판단하는 커널이라고 하면, $x,y$위치에서 이 커널의 값이 높게 나온다면 이 부분이 강아지 귀일 확률이 높다는 것을 의미한다.
결과적으로 아래 식은 특정 위치 $(x, y)$에서 $i$번째 커널의 출력값($a^i_{x,y}$)을 인접한 $n$개의 커널 맵 출력들의 제곱합으로 나누어 정규화하는 과정을 나타낸다.
$\alpha, k, \beta$같은 약간의 조작이 있다.

이렇게 하면 좋은 점은 여러 커널에서 큰 값이 나올 경우, 이 정규화를 통하면 그 값이 낮아진다는 것이다.
즉 고양이 귀인지, 강아지 귀인지 그 확률이 비슷하게 크게 나왔다면 큰 의미없는 값인 것이므로 분모를 키워 이 비중을 줄이는 것이다.
반대로 한 값만 명확히 클 경우 이 값을 더 독보적으로 보이게 해준다.
즉 확실히 고양이 귀라고 판단이 되면 그 판단에 힘을 실어주는 것이다.
실험을 통해 각 변수의 최적값은 $k=2, n=5, \alpha=10^{-4}, \beta=0.75$으로 정했다.
적용은 특정 layer에서 ReLU함수를 거친 후 LRN을 적용한다.
이 방법을 적용해서 ImageNet 데이터 셋에서 top-1 에러율은 1.4%, top-5 에러율은 1.2% 감소하는 성과를 가져왔다.
논문 저자들은 평균 활동량을 빼지 않았기 때문에 Brightness Normalization라고 이 방법을 부른다.
3.4. Overlapping Pooling
pooling이 무엇인지는 여기서 다루지 않고 이 논문에서 어떻게 pooling을 했는지만 글을 쓸 예정이다.
$s,z$는 각각 pooling에서 stride, size를 의미한다.
기존의 겹치지 않는($s=z$) pooling 보다, 각 pooling unit끼리 조금 겹치는 부분이 있는 overlapping pooling ($s<z$)방식을 사용했을 때 에러율의 정도와 과적합 방지에서 더 우위를 가진다는 것을 발견했다.
이 모델에서는 $s=2,z=3$을 사용해 1픽셀씩 겹치게끔 설정했다.
3.5. Overall Architecture
이 모델의 구조를 설명하는 부분이다.
로지스틱 회귀 목적함수를 최대화 하는 방향으로 학습한다.
그림을 보면 상단에 약간 짤린 쪽이 GPU 하나의 과정을 나타내고 그 밑의 과정들이 다른 GPU를 나타낸다.

가중치가 있는 layer는 총 8개이다.
합성곱 계층 5개와 완전연결 계층 3개로 이루어져있다.
최종 출력은 1000개 클래스에 대한 분포를 생성하는 softmax로 전달된다.
각 단계별로 계산되는 내용을 아래 노트에 작성해놓았다.

앞에서 잠시 설명했었던 전처리한 256x256의 이미지를 224x224크기로 잘라서 모델의 입력으로 사용한다.
이 부분은 4.1. Data Augmentation에서 더 설명될 것이다.
4. Reducing Overfitting
6천만개의 파라미터가 있기 때문에 과적합이 발생할 가능성이 높다.
4.1. Data Augmentation
이미지를 변형해서 데이터를 늘리는 작업이다.
여기서 그럼 '변형한 이미지를 다 저장해놓아야 하냐?'는 질문이 있을 수 있는데 답은 '아니다' 이다.
GPU가 이전 이미지를 학습하는 동안 CPU가 이미지를 바꿔놓으면 되기 때문이다.
방법 1.
위에서 얘기한 256x256을 224x224로 자르는 이유가 이렇게 하면 한 이미지에서 여러개의 224x224를 만들어 낼 수 있기 때문이다.
또 이 이미지들을 좌우반전까지 한다면 한 이미지로 2048개의 이미지를 얻을 수 있다.
방법 2.
색을 변경하는 것이다.
이미지의 RGB값에 대해 PCA(주성분분석)를 수행한다.
데이터 셋 내의 모든 이미지의 모든 픽셀의 RGB값을 모아 $N \times 3$행렬을 만들고, 여기서 공분산 행렬 $3\times 3$을 구한다.
이 공분산 행렬을 PCA해서 나온 Eigenvector를 $p_1,p_2,p_3$이라고 하고 각각의 Eigenvalue를 $\lambda$라고 하자.
평균이 0, 표준편차가 0.1인 가우시안 분포의 랜덤 값$\alpha$에 대해 아래 값을 계산한다.

원래 RGB값에 이 값을 더해 이미지를 조작한다.
이 방법을 직관적으로 해석하자면, 조명에 따라 사물의 색이 조금 달라보일 수 있어도 그 본질은 똑같다는 점을 이용한 것이다.
이 방법을 사용해 오류율을 줄일 수 있었다.
4.2. Dropout
nlp관련 글에서도 한번 언급한 적이 있는 dropout이다.
조금 간단히 얘기하면 뉴런을 일정 확률로 끄는 것이다.
이렇게 하면 신경망의 구조가 매번 달라져서 여러 모델을 학습시키는 효과가 나오게 된다.
이 모델에서는 0.5의 확률을 적용했다.
fully-connected layer의 1,2번째 층에만 dropout이 적용되었다.
5. Details of learning
<최적화>
이 모델은 Stochastic Gradient Descent (SGD)를 사용했다.
배치 사이즈는 128로, Momentum는 0.9로 Weight Decay는 0.0005로 설정했다.
<초기화>
가중치는 평균 0, 표준편차 0.01 인 가우시안 분포에서 무작위 값으로 초기화했다.
편향은 2, 4, 5번 합성곱 계층과 모든 FC 계층은 1로, 나머지 계층은 0으로 초기화했다.
<학습률>
학습의 효율을 극대화하기 위해 학습률을 상황에 맞게 줄였다.
초기 학습률 0.01로 시작해서 Validation error가 더 이상 개선되지 않을 때 학습률을 10으로 나눴다.
이 모델에서는 총 3번 학습률을 낮췄고, 120만장의 이미지를 90번 반복학습했다.
이 당시 기준 NVIDIA GTX 580 3GB GPU 두 장으로 5~6일이 걸렸다고 한다.
<Dropout>
위에서 얘기한 Dropout을 사용해 학습시간은 2배가 늘어났지만 과적합을 잘 줄일 수 있었다.
6. Results
이렇게 만들어진 AlexNet이 얼마나 뛰어났는지 살펴보는 부분이다.
처음에 언급했던 ILSVRC대회의 2010년 버전(ILSVRC-2010)에서 오류율 45.7%와 25.7%의 기존 모델에 비해 37.5%와 17.0%으로 큰 성능 향상이 있었다.

AlexNet 한 개 모델로 18.2%의 에러율을 기록했다.
비슷한 5개 모델의 예측값을 평균 내는 앙상블(Ensemble)을 사용했을 때는 15.3%까지 에러율을 낮췄다.

6.1. Qualitative Evaluations
이 부분에서 중요하게 얘기하는 것이 있다.
GPU를 2개 쓰는 것은 단순히 계산을 나눠서 하는 것이 아니다.
아래 그림의 결과에서 위3줄과 아래3줄이 각각 다른 GPU이다.
GPU1의 필터는 거의 흑백이고, 뾰족한지 뭉톡한지 같은 특징을 보고, GPU2의 필터는 색과 관련된 내용을 본다.
모든 레이어가 모든 GPU와 연결된 것이 아니고, 어떤 층에서는 같은 GPU안에서만 연산이 진행된다.
흥미로운 것은 이런 현상이 항상 발생했다는 것이다.
즉 구조가 행동을 만든다고 생각할 수 있다.

ILSVRC-2010의 8개의 테스트 데이터와, 이 모델이 예측한 값 top 5를 나타낸 그림이다.
오답에 대해서는 사람도 틀린만한 그림들인 것을 확인할 수 있다.

또, 마지막 FC layer에서 나온 4096차원의 벡터에서 두 벡터간 거리가 가깝다면 실제 사진도 비슷하다는 결과도 확인할 수 있었다.
7. Discussion
당시에는 신경망을 너무 깊게하면 안된다는 분위기가 강했다.
이 논문은 깊은 CNN을 잘 학습시키면 좋은 성능이 나온다는 것을 증명했다.
또 레이어를 하나만 빼도 성능이 확 나빠지는 것을 볼 수 있었다.
또 당시에 비지도 사전학습이 아니면 안된다는 인식도 있었다.
하지만 순수 지도학습으로도 좋은 성능이 나온다는 것을 알 수 있었다.
이 모델은 멈춰있는 사진 한장만 보고 판단하는 방식이기 때문에 점차 비디오처럼 시간에 대한 처리도 가능한 모델을 만드는 것을 미래 과제로 제시하면서 논문을 끝낸다.
어려운 수식이 없어 꽤나 잘 읽히는 논문이었다.
모델 구조를 차원을 직접 계산해보며 이해했던 것 정도가 시간이 조금 소요됐던 부분이었다.
'AI > 컴퓨터비전(CV)' 카테고리의 다른 글
| [CV 논문] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (1) | 2026.01.07 |
|---|---|
| [CV 논문] Squeeze-and-Excitation Networks (1) | 2026.01.03 |
| [CV 논문] Deep Residual Learning for Image Recognition (4) | 2025.12.31 |
| [CV 논문] Going Deeper with Convolutions (2) | 2025.12.30 |
| [CV 논문] Very Deep Convolutional Networks for Large-Scale Image Recognition (4) | 2025.12.28 |