"알렉스넷"의 두 판 사이의 차이
leejia1222 (토론 | 기여) |
leejia1222 (토론 | 기여) |
||
1번째 줄: | 1번째 줄: | ||
− | '''알렉스넷'''(AlexNet)은 2012년에 등장한 [[딥러닝]] [[신경망]] 구조로, [[이미지]] 분류 작업에서 획기적인 성과를 이끌어낸 모델이다. 이 모델은 [[제프리 힌턴]](Geoffrey Hinton)<ref>〈[https://ko.wikipedia.org/wiki/%EC%A0%9C%ED%94%84%EB%A6%AC_%ED%9E%8C%ED%84%B4 제프리 힌턴]〉, 《위키백과》</ref>과 [[알렉스 | + | '''알렉스넷'''(AlexNet)은 2012년에 등장한 [[딥러닝]] [[신경망]] 구조로, [[이미지]] 분류 작업에서 획기적인 성과를 이끌어낸 모델이다. 이 모델은 [[제프리 힌턴]](Geoffrey Hinton)<ref>〈[https://ko.wikipedia.org/wiki/%EC%A0%9C%ED%94%84%EB%A6%AC_%ED%9E%8C%ED%84%B4 제프리 힌턴]〉, 《위키백과》</ref>과 [[알렉스 크리제브스키]](Alex Krizhevsky)<ref>〈[https://en.wikipedia.org/wiki/Alex_Krizhevsky Alex Krizhevsky]〉, 《Wikipedia》</ref> 등이 개발하였으며, 이미지넷(ImageNet) 대회에서 우승한 최초의 컨볼루션 신경망이다. |
알렉스넷은 5개의 컨볼루션 계층과 3개의 완전 연결 계층으로 구성되어 있으며, ReLU 활성화 함수와 드롭아웃 기법을 적용한 것이 특징이다.<ref>〈[https://wikidocs.net/170551 인공지능(AI) & 머신러닝(ML) 사전 - AlexNet (알렉스넷)]〉, 《위키독스》</ref> 이 모델은 [[GPU]]를 활용한 병렬 처리로 학습 속도를 크게 향상시켰으며, 이를 통해 딥러닝 연구와 실용화에 중요한 영향을 미쳤다. | 알렉스넷은 5개의 컨볼루션 계층과 3개의 완전 연결 계층으로 구성되어 있으며, ReLU 활성화 함수와 드롭아웃 기법을 적용한 것이 특징이다.<ref>〈[https://wikidocs.net/170551 인공지능(AI) & 머신러닝(ML) 사전 - AlexNet (알렉스넷)]〉, 《위키독스》</ref> 이 모델은 [[GPU]]를 활용한 병렬 처리로 학습 속도를 크게 향상시켰으며, 이를 통해 딥러닝 연구와 실용화에 중요한 영향을 미쳤다. |
2024년 8월 27일 (화) 14:09 판
알렉스넷(AlexNet)은 2012년에 등장한 딥러닝 신경망 구조로, 이미지 분류 작업에서 획기적인 성과를 이끌어낸 모델이다. 이 모델은 제프리 힌턴(Geoffrey Hinton)[1]과 알렉스 크리제브스키(Alex Krizhevsky)[2] 등이 개발하였으며, 이미지넷(ImageNet) 대회에서 우승한 최초의 컨볼루션 신경망이다.
알렉스넷은 5개의 컨볼루션 계층과 3개의 완전 연결 계층으로 구성되어 있으며, ReLU 활성화 함수와 드롭아웃 기법을 적용한 것이 특징이다.[3] 이 모델은 GPU를 활용한 병렬 처리로 학습 속도를 크게 향상시켰으며, 이를 통해 딥러닝 연구와 실용화에 중요한 영향을 미쳤다.
개요
알렉스넷은 2012년에 개최된 이미지넷 대규모 시각 인식 챌린지(ILSVRC)에서 우승을 차지한 컨볼루션 신경망(CNN) 구조이다. 이로 인해 딥러닝 기술이 컴퓨터 비전 분야에서 최고 성능을 발휘할 수 있음을 증명하게 되었다. 이전까지는 딥러닝이 과장된 기술로 여겨졌기 때문에, 알렉스넷을 활용한 팀도 초기에는 회의적인 반응을 받았다고 한다. 당시 대회에서 사용된 알고리즘들의 점수를 나타낸 차트를 보면, SuperVision으로 불린 알렉스넷이 다른 알고리즘들과 비교했을 때 현저하게 낮은 오류율을 기록한 것을 확인할 수 있다. 이러한 알렉스넷의 성공으로 딥러닝 기술이 컴퓨터 비전 분야에서 주요한 주제로 자리잡게 되었다.[4]
알렉스넷은 딥러닝의 전성기를 여는 변화를 이끈 중요한 시작점이었다. 이 모델은 복잡한 이미지나 영상을 처리할 때, 적절한 알고리즘 구조와 충분한 데이터, 그리고 고성능 컴퓨터가 뒷받침된다면 뛰어난 시각 인지 능력을 발휘할 수 있음을 증명하였다. 알렉스넷은 뇌의 구조를 모방한 인공신경망 모델인 합성곱 신경망(CNN)을 사용하여 심층 신경망(Deep Neural Network)을 구현하였다. 또한, 기존의 머신러닝이 CPU를 주로 활용한 것과 달리, 알렉스넷은 병렬 연산에 유리한 GPU를 활용하여 고속으로 연산을 처리하였다. 이러한 GPU 기반의 딥러닝 기술은 이후에도 지속적으로 발전하였으며, 현재 이미지넷 대규모 시각 인식 챌린지(ILSVRC)에 참가하는 팀들은 인간의 이미지 인식률을 넘어서는 성과를 내고 있다. 대회 우승 후, 슈퍼비전 팀은 딥러닝 기술을 바탕으로 현실 문제를 해결하기 위해 DNN 리서치라는 스타트업을 창업하였다. 이듬해, 이 회사는 구글에 인수되었으며, 이후 힌튼은 토론토대 교수와 구글 석학연구원(Distinguished Researcher)을 겸임하며 AI 기술 연구를 지속적으로 이끌고 있다.[5]
등장배경
과거 대륙들이 연결되어 있었고 지금도 계속 움직이고 있다는 주장을 한 알프레트 베게너(Alfred Lothar Wegener)는 한때 세상의 웃음거리로 여겨졌다. 이와 비슷하게, 2019년 제프리 힌튼(Geoffrey Everest Hinton)은 2018 튜링상 수상 연설에서 자신의 연구 여정을 회상하며 당시의 상황을 이야기했다. 2000년대 후반, 제프리 힌튼 교수팀의 알렉스 크리제프스키(Alex Krizhevsky)는 딥러닝이 현실적인 문제를 해결할 수 있다는 것을 증명하기 위해 다양한 시도를 시작했다. 그들은 먼저 2009년에 딥러닝을 활용한 이미지 분류 연구를 위해 CIFAR 데이터셋을 만들었다.
2011년, 딥러닝을 통해 CIFAR 데이터셋의 이미지를 훌륭하게 인식하던 중, 같은 연구실의 일리야 수츠케버(Ilya Sutskever)가 이미지넷 대회에 참가할 것을 제안했다. 당시 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)는 비전 분야의 중요한 대회로, 이미지 인식 오류율을 조금이라도 낮추는 것이 목표였다. 2010년에 시작된 이 대회는 2011년에 제록스 연구소의 SVM 머신러닝 기법이 우승을 차지했으며, 그때의 오류율은 25.7%였다. 알렉스와 일리야는 이미지넷 대회에 출전하기로 결심하고 연구를 시작했으며, 성능을 향상시키기 위해 자신들의 모델에 GPU 기능을 추가했다.
그러나 오버피팅 문제가 큰 도전으로 남아 있었다. 특히 딥러닝에서는 신경망의 특성상 이 문제를 해결하는 것이 어려웠다. 이 고질적인 문제를 해결한 것은 연구실의 후배 니티시 스리바스타바(Nitish Srivastava)였으며, 그는 모든 노드를 계산하지 않고 일부 노드의 계산값을 랜덤하게 버리는 드롭아웃(dropout) 기법을 제안했다. 이 아이디어는 이후 네 사람의 특허로 등록되고, 니티시의 석사 논문으로 발표되었다. GPU와 드롭아웃 기법에 이어 요슈아 벤지오 연구실에서 개발된 ReLU(Rectified Linear Unit) 활성화 함수를 사용하면서 모델 성능이 더욱 향상되었다.
마침내 2012년 ILSVRC 대회에 출전한 알렉스의 팀은 놀라운 성과로 우승을 차지했으며, 이를 통해 딥러닝이 연구실의 한계를 넘어 인류의 미래를 바꿀 준비가 되었음을 세상에 알렸다. 이 대회 우승을 계기로 힌튼, 알렉스, 일리야는 자신들의 딥러닝 기술로 세상을 변화시키기 위해 2012년에 DNNResearch라는 스타트업을 창업하였고, 1년 후 구글이 이 회사를 인수하였다.[6]
효과
알렉스넷이 뛰어난 성과를 거두게 된 주요 요인은 다음과 같다.
- ReLU 함수 : "rectified linear unit"의 약자로, 비선형 활성화 함수로 사용된다. 알렉스넷에서 ReLU가 활성화 함수로 도입되면서, 이전에 주로 사용되던 Tanh 함수에 비해 학습 속도가 약 6배 빠른 것으로 알려졌다. ReLU는 비선형성을 유지하면서도 vanishing gradient 문제를 해결하는 데 효과적이어서, 이후 많은 신경망 모델에서 선호되고 있다.
- 드롭아웃(Dropout) : 과적합을 방지하기 위해 사용되는 규제 기법으로, 학습 과정에서 완전 연결 계층의 일부 뉴런을 무작위로 생략하는 방식으로 작동한다. 드롭아웃은 훈련 시 뉴런의 일부 출력을 0으로 설정하여, 특정 패턴에 과도하게 의존하지 않도록 한다. 이를 통해 모델의 일반화 성능을 향상시키며, 훈련 과정에서만 적용되고 테스트 시에는 모든 뉴런이 활성화된다.
- 겹치는 풀링(Overlapping Pooling) : 알렉스넷에서는 최대 풀링(max pooling)을 적용하되, 중첩되는 방식의 겹치는 풀링(overlapping pooling)을 사용하여 특성 맵의 크기를 줄였다. 풀링 과정에서 커널이 이동하는 stride를 겹치게 함으로써, 중첩되지 않는 풀링보다 성능이 향상되고 과적합을 방지하는 효과를 얻었다. 이러한 방식은 모델의 일반화 성능을 높이는 데 기여하였다.
- 국소 응답 정규화(Local Response Normalization, LRN) : 신경생물학의 측방 억제(lateral inhibition) 개념을 모델링한 기법으로, 강하게 활성화된 뉴런이 주변의 이웃 뉴런 출력을 억제하는 효과를 구현한 것이다. ReLU 함수의 특성상 높은 활성화 값을 가진 뉴런이 주변 뉴런에 영향을 미칠 수 있는데, LRN을 통해 이 효과를 줄여 특정 뉴런의 반응이 더욱 두드러지게 하거나 전체적으로 활성화 수준이 조정되도록 한다.
- 데이터 증강(Data Augmentation) : 학습 데이터의 양을 늘려 과적합을 방지하는 기법이다. AlexNet에서는 이미지를 좌우 반전하거나, 허용된 입력 이미지 크기인 227x227x3보다 큰 이미지를 다양한 방식으로 잘라 추가적인 학습 데이터를 생성하였다. 또한, RGB 채널 값을 변형하여 다양한 이미지를 만들어냄으로써, 모델의 일반화 성능을 향상시켰다. 이를 통해 훈련 데이터의 다양성을 높여, 과적합 문제를 효과적으로 완화하였다.
- 멀티 GPU의 사용 : 알렉스넷은 GPU를 사용하여 CNN을 학습시킴으로써 에러율을 줄이고 학습 시간을 크게 단축시킬 수 있었다. 이후 대부분의 CNN 연구에서 GPU가 필수적인 도구로 자리 잡게 되었다.[4][7]
구조
AlexNet은 총 8개의 계층으로 구성된 대규모 합성곱 신경망(CNN) 모델로, 5개의 합성곱 계층과 3개의 완전 연결 계층을 포함한다. 이 모델은 이전의 CNN 모델에 비해 훨씬 크고 깊은 구조를 가지고 있으며, 특히 두 개의 GPU를 활용한 병렬 학습을 위해 동일한 구조가 두 갈래로 나뉘어 설계되었다. 원래 논문에서는 입력 이미지 크기를 224×224×3으로 명시했으나, 이후 첫 번째 계층에서의 패딩을 통해 227×227×3 크기로 수정되었다.
AlexNet에는 몇 가지 특이한 점이 존재한다. 첫 번째 층에서 학습된 필터를 시각화해 보면, 상단에는 주로 비색상 특징이, 하단에는 주로 색상 특징이 나타난다. 상단과 하단의 학습 환경이 동일함에도 불구하고 이러한 결과가 나타나는 이유는 아직 밝혀지지 않았다. 또한, 세 번째 층은 예외적으로 이전 단계의 층에서 학습된 모든 필터를 포함한다. 이와 같은 알고리즘은 병렬 학습 과정에서 필터 간의 연관성이 크게 달라지는 것을 방지하기 위한 것으로 추측된다.[8]
- 입력 이미지 전처리
- 입력 이미지의 크기는 227×227×3(RGB)이다. 만약 원본 이미지의 크기가 다를 경우, 먼저 256×256 크기로 조정한 후 227×227 크기의 영역을 잘라낸다.
- 데이터 증강(Data Augmentation)을 위해 입력 이미지를 좌우로 반전시키거나, 227×227 영역을 무작위로 추출하는 방법을 사용한다.
- AlexNet은 입력부터 완전 연결 계층 직전까지 동일한 구조를 두 갈래로 병렬 처리하도록 설계되었다.
- 각 계층의 작업
- 합성곱 계층
- 11×11×3 크기의 커널 96개를 두 그룹으로 나누어 사용하여, 55×55×96 크기의 특징 맵을 생성한다(stride=4, padding=0).
- 3×3 크기의 중첩 최대 풀링(Overlapping Max Pooling)을 적용하여, 27×27×96 크기의 특징 맵을 생성한다(stride=2).
- 지역 응답 정규화(Local Response Normalization, LRN)를 적용하여, 27×27×96 크기의 특징 맵을 출력한다.
- 합성곱 계층 2
- 5×5×48 크기의 커널 256개를 사용하여, 27×27×256 크기의 특징 맵을 출력한다(stride=1, padding=2).
- 3×3 크기의 중첩 최대 풀링을 적용하여, 13×13×256 크기의 특징 맵을 생성한다(stride=2).
- 지역 응답 정규화를 적용하여, 13×13×256 크기의 특징 맵을 출력한다.
- 합성곱 계층 3
- 3×3×256 크기의 커널 384개를 사용하여, 13×13×384 크기의 특징 맵을 출력한다(stride=1, padding=1).
- 합성곱 계층 4
- 3×3×192 크기의 커널 384개를 사용하여, 13×13×384 크기의 특징 맵을 출력한다(stride=1, padding=1).
- 합성곱 계층 5
- 3×3×192 크기의 커널 256개를 사용하여, 13×13×256 크기의 특징 맵을 출력한다(stride=1, padding=1).
- 3×3 크기의 중첩 최대 풀링을 적용하여, 6×6×256 크기의 특징 맵을 생성한다(stride=2).
- 완전 연결 계층 6-8
- 합성곱 계층을 통해 추출된 6×6×256 크기의 특징 맵을 평탄화하여 9216개의 1차원 벡터로 변환한 후, 4096개의 노드를 갖는 완전 연결 계층 6과 7에 전달한다. 이 계층들은 ReLU 활성화 함수로 처리된다.
- 마지막 8계층에서는 1000개의 노드를 사용하여, 최종적으로 1000개 클래스에 대한 확률 값을 출력한다.
- 파라미터 수와 계산 복잡도
AlexNet에는 약 6천만 개의 학습 가능한 파라미터가 존재한다. 이 모델은 당시에 GPU 환경에서 학습하는 데 약 5~6일이 소요되었던 대규모 모델이다. 이 모델의 설계와 병렬 학습 기법 덕분에, 이전에는 불가능했던 대규모 연산이 현실화될 수 있었다.[7][9]
각주
- ↑ 〈제프리 힌턴〉, 《위키백과》
- ↑ 〈Alex Krizhevsky〉, 《Wikipedia》
- ↑ 〈인공지능(AI) & 머신러닝(ML) 사전 - AlexNet (알렉스넷)〉, 《위키독스》
- ↑ 4.0 4.1 Cammie, 〈AlexNet이란〉, 《벨로그》, 2022-07-04
- ↑ 〈(AI 이야기) 인간 VS 인공지능 (3)딥러닝의 시대를 연 알렉스넷(AlexNet)〉, 《라이프웍스》, 2021-10-01
- ↑ 루나, 〈딥러닝-압도적 무공을 보여주다, 알렉스넷〉, 《브런치스토리》, 2020-05-17
- ↑ 7.0 7.1 박재한, 〈AlexNet의 이해〉, 《벨로그》, 2022-02-22
- ↑ 〈CNN의 주요 모델 - AlexNet〉, 《데이터메이커》
- ↑ 나융, 〈AlexNet의 구조〉, 《모두의연구소》, 2024-03-26
참고자료
- 〈CNN의 주요 모델 - AlexNet〉, 《데이터메이커》
- 〈제프리 힌턴〉, 《위키백과》
- 〈인공지능(AI) & 머신러닝(ML) 사전 - AlexNet (알렉스넷)〉, 《위키독스》
- 〈Alex Krizhevsky〉, 《Wikipedia》
- 루나, 〈딥러닝-압도적 무공을 보여주다, 알렉스넷〉, 《브런치스토리》, 2020-05-17
- 〈(AI 이야기) 인간 VS 인공지능 (3)딥러닝의 시대를 연 알렉스넷(AlexNet)〉, 《라이프웍스》, 2021-10-01
- 박재한, 〈AlexNet의 이해〉, 《벨로그》, 2022-02-22
- Cammie, 〈AlexNet이란〉, 《벨로그》, 2022-07-04
- 나융, 〈AlexNet의 구조〉, 《모두의연구소》, 2024-03-26
같이 보기