위는 영어논문 아래는 한국어로 번역된 논문이다.
ImageNet Classification with Deep Convolutional Neural Networks
개요
우리는 ImeageNet LSVRC-2010대회에서 120만개의 고해상도 이미지를 1000개의 다른 클래스로 분류하기 위해 대규모의 심층 합성곱 신경망을 훈련했습니다. 테스트데이터에서 우리는 이전 최첨단 기술보다 상당히 나은 35.7%와 17.0%의 상위 1및 상위 5 오류율을 달성했습니다.6000만개의 매개변수와 650,000개의 뉴런을 가진 신경망은 5개의 합성곱계층으로 구성되어있으며 그 중 일부는 최대 풀링계층으로 이어지고 3개의 완전 연결 계층에는 최종 1000방향 SOFTMAX가 있습니다. 훈련을 더 빠르게 하기 위해 우리는 포화되지 않는 뉴런과 합성곱 연산의 매우 효율적인 GPU구현을 사용했습니다.
완전 연결계층에서 과적합을 줄이기 위해 우리는 매우 효과적인것인 것으로 입증된 '드롭아웃'이라는 최근 개발된 정규화 방법을 사용했습니다. 우리는 이 모델의 변형 모델을 ILSVRC-2012 대회에 출품하여 2위를 차지한 모델의 26.2%보다 낮은 15.3%의 상위 5개 테스트 오류율을 기록하며 우승을 차지했습니다.
1. 서론
객체 인식에 대한 현재의 접근 방식은 기계 학습 방법을 필수적으로 활용합니다.
성능을 개선하기 위해 더 큰 데이터 세트를 수집하고 더 강력한 모델을 학습하고 과적합을 방지하기 위한 더 나은 기술을 사용할 수 있습니다. 최근까지 레이블이 지정된 이미지의 데이터세트는 수만개의 이미지 순서로 비교적 작았습니다.(NORB[16], Caltech-101/256[8,9], CIFAR-10/100[12]).
간단한 인식 작업은 이 크기의 데이터세트로 매우 잘 해결할 수 있으며, 특히 레이블을 보존하는 변환으로 보강하는 경우 더욱 그렇습니다.
예를들어서 MNST 숫자 인식 작업의 현재 최고 오류율은(<0.3%)은 인간의 성능에 근접합니다.
그러나 현실적인 설정의 객체는 상당한 가변성을 보이기때문에 이를 인식하는 법을 배우려면 훨씬 더 큰 학습세트를 사용해야합니다.
실제로 작은 이미지 데이터 세트의 단점은 널리 알려져있지만 최근에야 수백만개의 이미지로 레이블이 지정된 데이터 세트를 수집할 수 있게 되었습니다.
새로운 대규모 데이터 세트에는 완전히 분할된 수십만 개의 이미지로 구성된 LableMe와 22000개 이상의 범주에 걸쳐 레이블이 지정된 1,500만개 이상의 고해상도 이미지로 구성된 ImageNet이 포함됩니다.
수백만 개의 이미지에서 수천개의 객체에 대해 학습하려면 학습 용량이 큰 모델이 필요합니다.
그러나 객체 인식 작업의 엄청난 복잡성으로 인해 ImageNet만큼 큰 데이터 세트로도 이 문제를 지정할 수 없으므로 모델은 우리가 가지고 있지 않은 모든 데이터를 보상하기 위해 많은 사전지식이 있어야합니다.
합성곱 신경망(CNN)은 그러한 모델 클래스 중 하나를 구성합니다 [16,11,13,18,15,22,26]. 그 용량은 깊이와 폭을 변경하여 제어할 수 있으며 이미지의 특성(즉, 통계의 정상성 및 픽셀 종속성의 지역성)에 대한 강력하고 대체로 정확한 가정을 합니다.
따라서 비슷한 크기의 계층을 가진 표준 피드포워드 신경망과 비교할때 CNN은 연결과 매개변수가 훨씬 적기때문에 학습하기가 쉽지만 이론적으로 가장 좋은 성능은 약간 떨어질 가능성이 있습니다
CNN의 매력적인 특성과 로컬 아키텍처의 상대적 효율에도 불구하고 여전히 고해상도 이미지에 대규모로 적용하기에는 엄청나게 비쌉니다. 다행히도 고도로 최적화된 2D합성곱 구현과 결합된 현재의 GPU는 흥미롭게도 큰 CNN의 학습을 용이하게 할만큼 강력하고 ImageNet과 같은 최근 데이터 세트에는 심각한 과적합 없이 이러한 모델을 학습하기에 충분한 레이블이 지정된 예제가 포함되어있습니다.
알렉스넷 논문의 구체적인 기여는 다음과 같습니다. 우리는 ILSVRC-2010및 ILSVRC-2012대회에서 사용된 ImageNet의 하위 집합에서 지금까지 가장 큰 합성곱 신경망 중 하나를 훈련했고 이러한 데이터세트에서 보고된 가장 뛰어난 결과를 달성했습니다. 2d 합성곱과 합성곱 신경망 훈련에 내제된 모든 다른 연산의 고도로 최적화된 gpu구현을 작성했고 이를 공개적으로 제공합니다.
저희 네트워크에는 성능을 개선하고 학습 시간을 단축하는 여러가지 새롭고 특이한 기능이 포함되어있으며,
이는 섹션3에 자세히 설명되어있습니다. 저희 네트워크의 크기때문에 120만개 레이블이 지정된 학습 예제가 있어도 과적합이 심각한 문제였으므로 저희는 과적합을 방지하기 위한 여러가지 효과적인 기술을 사용했고 그 기술들은 섹션4에 설명되어있습니다.
저희의 최종 네트워크에는 5개의 합성곱 계층과 3개의 완전 연결 계층이 포함되어있으며 이 깊이는 중요한 것으로 보입니다.
저희는 합성곱계층(각 계층이 모델 매개변수의 1%이하를 포함)을 제거하면 성능이 떨어지는것을 발견했습니다.
결국 네트워크의 크기는 주로 혀내 gpu에서 사용가능한 메모리양과 우리가 허용할 수 있는 훈련시간에 의해 제한됩니다.
우리 네트워크는 두 개의 gtx 59- 3gb gpu에서 훈련하는데 5~6일이 걸립니다.
우리의 모든 실험은 더 빠른 gpu와 더 큰 데이터 세트가 사용 가능해질때까지 기다리기만 하면 결과가 개선될 수 있음을 시사합니다.
2. 데이터 세트
ImageNet은 약 2.2만개의 범주에 속하는 1,500만개 이상의 레이블이 지정된 고해상도 이미지로 구성된 데이터세트입니다.
이미지는 웹에서 수집되었으며 아마존의 머시니컬 turk 크라우드 소싱 도구를 사용하여 인간 레이블러가 레이블을 지정했습니다.
2010년부터 Pascal visual Object Cgallenge의 일환으로 ilsvrc라는 연례 대회가 개최되었습니다.
이 대화ㅣ는 1천개의 범주에 각각 1천개의 이미지가 있는 imageNet의 하위 집합을 사용합니다.
전체적으로 약 120만개 훈련이미지, 5만개의 검증이미지 15만개의 테스트이미지가 있습니다.
이 대회는 테스트 세트 레이블을 사용할 수 있는 유일한 ILSVRC버전이므로 이 버전에서 대부분의 실험을 수행했습니다.
ILSVRC-2012 대회에서도 모델을 등록했기때문에 섹션 6에서 테스트 세트 레이블을 사용할 수 없는 이 버전의 데이터 세트에 대한 결과도 보고합니다. 이미지넷에서는 두가지 오류율 즉 TOP1과 TOP5를 보고하는것이 일반적입니다.
여기서 TOO5 오류율은 모델에서 가장 가능성이 높다고 생각하는 5개 레이블에 올바른 레이블이 없는 테스트 이미지의일부입니다.
IMAGENET은 가변 해상도 이미지로 구성되어있는 반면 우리 시스템은 일정한 입력 차원을 요구합니다.
따라서 우리는 이미지를 고정 해상도로 다운 샘플링했습니다. 256*256 직사각형 이미지가 주어지면 먼저 짧은 변의길이가 256이 되도록 이미지 크기를 조정한다음 중앙을 잘라냈습니다.
256*256결과 이미지에서 패치를 추출합니다. 우리는 각 픽셀에서 훈련세트에 대한 평균 활동을 빼는것 제외하고는 다른 방식으로 이미지를 사전처리하지 않았습니다.
그래서 우리는 픽셀의 중앙에 있는 RGB값에 대해 네트워크를 훈련했습니다.
3. 건축
우리 네트워크의 아키텍처는 그림2에 요약되어있습니다. 여기에는 8개의 학습된 레이어가 있습니다.
5개의 합성곱 레이어와 3개의 완전 연결 레이어입니다. 아래에서 우리 네트워크 아키텍처의 몇가지 새롭고 특이한 특징을 설명합니다.
섹션 3.1-3.4는 가장 중요한것을 먼저 포함하여 중요도에 대한 추정을 따라 정렬되어있습니다.
3-1. ReLU 비선형성

그림1 : 4층 합성 신경망 ReLU를 사용한 네트워크(실선) : CIFAR-10에서 동등한 네트워크보다 6배 빠르게 25%의 교육 오류율에 도달합니다. 탄신경세포(점선) : 각 네트워크의 학습률은 가능한 한 빨리 학습할 수 있도록 독립적으로 선택되었습니다. 어떤 종류의 정규화도 사용되지 않았습니다. 여기서 입증된 효과의 크기는 네트워크 아키텍처에 따라 다르지만 ReLU가 있는 네트워크는 포화 뉴런이 있는 동등한 네트워크보다 일관되게 몇배 더 빨리 학습합니다. |
뉴런의 출력을 모델링하는 F(X) = tanh(x)또는 f(x) = (1 + e-x)-1 경사하강법을 사용한 훈련 시간측면에서 이러한 포화 비선현성을 가진 뉴런을 ReLUs라고 합니다.
ReLU를 사용한 딥 합성 신경망은 이를 사용한 동등신경망보다 몇 배 더 빠르게 학습합니다.
이는 그림1에서 입증되며 특정 4계층 합성곱 신경망에 대한 CIFAR-10데이터 세트에서 25%의 학습 오류에 도달하는데 필요한 반복횟수를 보여줍니다.
이 플롯은 기존의 포화 뉴런 모델을 사용했다면 이 작업을 위해 이렇게 큰 신경망을 실험할 수 없었을것임을 보여줍니다.
CNN에서 기존 뉴런 모델에 대한 대안을 고려한 것은 우리가 처음은 아닙니다. 예를들어서 JARRETT ET AL.은 비선형성을 주정합니다.
CALTECH-101데이터 세트에서 로컬 평균 풀링에 따른 대비 정규화 유형과 특히 잘 작동합니다.
그러나 이 데이터세트에서 가장 중요한 관심사는 과적합을 방지하는것이므로 관찰하는 효과는 ReLU를 사용할 때 보고하는 훈련세트에 대한 가속된 적합능력과 다릅니다.
더빠른 학습은 대규모 데이터 세트를 사용하여 학습된 대규모 모델의 성능입니다.
3-2. 다중 GPU에서의 학습
단일 GTX 580 GPU는 3GB메모리만 가지고 있어서 학습할 수 있는 최대 크기가 제한되는 네트워크입니다.
120만개 학습예제는 학습하기에 충분하지만 이는 하나의 GPU에 맞추기에는 너무 큽니다.
그래서 GPU는 GPU간 병렬 처리를 수행하는데 특히 적합합니다.
GPU간 메모리는 호스트(중앙)메모리를 거치지 않고 직접 쓸 수 있기때문입니다.
우리가 사용한 병렬화 방식은 기본적으로 각 GPU의 절반의 커널(또는 뉴런)을 배치하고 여기에 추가적인 트릭을 더합니다.
GPU들은 특정 레이어에서만 서로 통신합니다.
예를들어서 3번 레이어의 커널은 2번 레이어의 모든 커널맵으로부터 입력을 받습니다
그러나 4번 레이블의 커널은 3번 레이어에서 같은 GPU에 위치한 커널 맵으로부터만 입력을 받습니다.
이 연결 패턴을 선택하는것은 교차 검증을 통해 해결해야할 문제지만 이러한 방식으로 우리는 통신량을 계산량의 허용 가능한 비율로 조정할 수 있습니다.
결과적으로 이 아키텍쳐는 Cireşan 등의 "열(columnar)" CNN과 유사합니다.
하지만, 우리의 "열"들은 독립적이지 않습니다(그림 2 참고).
이 방식은 한 GPU에서 학습된 각 합성곱 레이어의 커널 수를 절반으로 줄인 네트워크와 비교했을 때, top-1 에러율을 1.7%, top-5 에러율을 1.2% 줄여줍니다.
두 GPU를 사용한 네트워크는 한 GPU를 사용한 네트워크보다 학습 시간이 약간 더 적게 소요됩니다.
2.
한 GPU를 사용하는 네트워크는 실제로 최종 합성곱 레이어에서 두 GPU를 사용하는 네트워크와 동일한 수의 커널을 가지고 있습니다.
그 이유는 네트워크의 대부분의 파라미터가 첫 번째 완전연결(fully-connected) 레이어에 포함되어 있기 때문입니다. 이 레이어는 최종 합성곱 레이어를 입력으로 사용합니다.
따라서 두 네트워크가 대략 동일한 파라미터 수를 가지도록 하기 위해,
우리는 최종 합성곱 레이어(그리고 그 뒤에 오는 완전연결 레이어)의 크기를 절반으로 줄이지 않았습니다.
결과적으로, 이 비교는 한 GPU 네트워크에 유리한 방향으로 편향됩니다.
왜냐하면 한 GPU 네트워크는 두 GPU 네트워크 크기의 "절반"보다 더 크기 때문입니다.
3-3. Local Response Normalization
단일 GTX 580 GPU는 3GB메모리만 가지고 있어서 학습할 수 있는 최대 크기가 제한되는 네트워크입니다.
120만개 학습예제는 학습하기에 충분하지만 이는 하나의 GPU에 맞추기에는 너무 큽니다.
ReLU는 입력값이 포화(SATURATION)되지 않도록 하기 위해 입력 정규화를 필요로 하지 않는다는 바람직한 특성을 가지고있습니다.
ReLU에 양수 입력을 생성하는 학습 예자가 적어도 일부 존재한다면 해당 뉴런에서 학습이 이루어집니다.
그러나 우리는 여전히 다음과 같은 국소(normal) 정규화 방식이일반화 성능을 향상시키는데 도움이 된다는것을 발견했습니다.
커널 i를 위치(x,y)에서 적용하고 그 후 ReLU 비선형성을 적용한 뉴런의 활성도를 ai xy로 나타냅니다.
응답 정규화된 활성도는 bixy는 다음수식에 의해 정의됩니다.

여기서 합은 동일한 공간 위치에서 인접함 n개의 커널 맵을 대상으로 하며 n은 해당 레이어의 전체 커널 수입니다.
커널 맵의 순서는 임의적이며 학습이 시작되기 전에 결정됩니다.
이와 같은 응답 정규화는 실제 뉴런에서 발견되는 측면억제(later inhibition)형태에서 영감을 얻은 방식으로
다른 커널을 사용하여 계산된 뉴런 출력들 사이에서 큰 활성도에 대한 경쟁을 만들어냅니다.
상수는 하이퍼파라미터로 검증세틀ㄹ 사용하여 값을 결정했습니다.
우리는 , n=5n = 5, α=10−4\alpha = 10^{-4}, β=0.75\beta = 0.75 값을 사용했습니다.
우리는 ReLU비선형을 특정 레이어에 적용한 후 이 정규화를 적용했습니다.
이 방식은 jarrett등 로컬대비 정규화방식과 일부 유사하지만 알렉스텟은 평균 활성도를 빼지 않기때문에 더 정확히는
"밝기 정규화"라고 부를 수 있습니다.
응답 정규화는 알렉스넷 top-1, top-5에러율을 각각 1.4%, 1.2%를 감소시켰습니다.
또한 이 방식을 CIFAR-10데이터셋에도 검증했는데 네 층으로 ㄱ성된 CNN은 정규화 없이 13% 테스트 에러율을 정규화 적용시 11% 테스트 에러율을 기록했습니다.
3-4 Overlapping Pooling
CNN의 풀링 레이어는 동일한 커널 맵에서 인접한 뉴런 그룹의 출력을 요약합니다.
전통적으로 인접한 풀링 유닛에 의해 요약된 이웃은 겹치지 않습니다.
더 구체적으로말하면 풀링 레이어는 서로 S픽셀 간격으로 배치된 풀링 유닛의 그리드로 구성된다고 볼 수 있습니다.
각 풀링 유닛은 크기 Z * Z인 영역을 요약하며 이는 풀링 유닛의 위치를 중심으로 합니다.
만약 S=Z로 설정하면 전통적인 로컬 풀링 방식을 얻을 수 있으며 이는 CNN에서 흔히 사용됩니다.
반면 S<Z로 설정하면 겹치는 풀링(OVERLAPPING POOLING)이 이루어집니다.
우리는 네트워크 전체에서 S=2, Z=3을 설정했습니다.
이 방식은 S=2, Z=2로 설정된 비겹치는 방식과 비교했을 때, 출력 크기는 동일하지만 TOP1, TOP5에러율을 각각 0.4와 0.3%감소시켰습니다.
또한 우리는 훈련중에 겹치는 풀링 방식을 사용한 모델이 과적합되기가 약간 더 어려운 경향이 있음을 관찰했습니다.
3-5 Overall Architecture
전체 아키텍처. 이제 CNN의 전체 아키텍처에 대해 설명할 준비가 되었습니다.
그림2에 나타난 바와 같이 네트워크는 가중치를 가진 8개의 레이어로 구성되어있습니다.
첫 5개는 합성곱레이어고 나머지 3개는 완전 연결레이어입니다.
마지막 완전연결 레이어는 1000-방향 소프트맥스로 입력되며, 이는 1000개의 클래스 레이블에 대한 분포를 생성합니다.
우리의 네트워크는 다항 로지스틱회귀 목적을 최대화합니다.
이는 학습 예제마다 정답 레이블의 로그확률을 예측 분포에서 평균화한 값을 최대화하는것과 같습니다.
2,4,5 합성곱 레이어의 커널은 이전 레이어에서 같은 GPU에 위치한 커널 맵에만 연결됩니다.
반면에 세번째 합성곱레이어의 커널은 두번째 레이어의 모든 커널 맵에 연결됩니다.
완전연결 레이어의 뉴런은 이전 레이어의 모든 뉴런에 연결됩니다.
응답정규화 레이어는 첫번째와 두번째 합성곱 레이어 뒤에 위치합니다.
최대 풀링 레이어는 응답 정규화 레이어 뒤와 다섯 번째 합성곱 레이어뒤에 위치합니다.
ReLU 비선형성은 모든 합성곱 및 완전연결 레이어의 출력에 적용됩니다.
첫번째 합서곱 레이어는 크기 224*224*3의 입력 이미지를 필터링합니다.
이때 96개의 11 * 11 * 3 크기의 커널을 사용하며 스트라이드는 4픽셀입니다. (이웃하는 수용 영역의 중심간 거리를 의미함)
이 네트워크를 공간 제약으로 인해 자세히 설명할 수는 없지만,
제공된 코드와 매개변수 파일을 통해 정확히 명시되어 있습니다:
http://code.google.com/p/cuda-convnet/

Figure2 : 우리의 cnn아키텍처를 설명하는 그림으로 두 GPU간의 역할 분담을 명시적으로 보여줍니다.
한 GPU는 그림상단에있는 레이어를 실행하고 다른GPU는 아래에있는 레이어를 실행합니다.
GPU는 특정 레이어에서만 서로 통신합니다.
네트워크 입력은 150,528차원이며 나머지 레이어의 뉴런 수는 다음과 같습니다.
253,440 – 186,624 – 64,896 – 64,896 – 43,264 – 4096 – 4096 – 1000.
첫번째 합성곱 레이어는 입력 이미지를 필터링하며
두번째 합성곱 레이어는 (응답 정규화 및 풀링된) 첫번째 합성곱 레이어의 출력을 입력으로 받아, 크기 5*5*48인 256개의 커널로 필터링합니다.
3,4,5합성곱 헤이어는 풀링, 또는 정규화 레이어 없이 서로 직접 연결됩니다.
세번째 합성곱 레이어는 크기 3*3*256인 384개의 커널을 사용하며 두번째 합성곱 레이어의(정규화 및 풀링된) 출력에 연결됩니다.
네번째 합성곱 레이어는 크기 3*3*192인 384개의 커널을 사용하고 다섯번째 합성곱 레이어는 크기 3*3*192인 256개의 커널을 사용합니다.
완전 연결 레이어는 각각 4096개의 뉴런을 가지고있습니다.
4 Reducing Overfitting
우리의 신경망 아키텍처는 6천만개의 파라미터를 가지고있습니다.
ILSRC의 1천개의 클래스는 각 학습예제가 이미지와 레이블 간의 매핑에 대해 10비트의 제약을 가하지만
이는 이처럼 많은 파라미터를 학습하기에는 부족하여 상당한 과적합이 발생할 수 있습니다.
아래에서는 우리가 과적합을 방지하기 위해 사용하는 두가지 주요 방법을 설명합니다.
4.1 Data Augmentation
이미지 데이터에서 과적합을 줄이는 가장 쉽고 일반적인 방법은, 라벨을 보존하는 변환(label-preserving transformation)을 사용하여 데이터셋을 인위적으로 확장하는것입니다.
우리는 데이터 증강의 두가지 독립적인 형태를 사용합니다. 이 방법들은 모두 원본이미지에서 변환된 이미지를 매우 적은 연산으로 생성할 수 있기때문에 변환된 이미지를 디스크에저장할 필요가 없습니다.
우리 구현에서는 변환된 이미지를 gpu가 이전 배치의 이미지를 학습하는 동안 python 코드로 CPU에서 생성합니다.
따라서 이러한 데이터 증강 방식은 사실상 계산적으로 무료라고 할 수 있습니다.
첫번째 데이터 증강방식:
이미지의 평생이동 및 수평반사를 생성하는 방식입니다.
우리는 256*256ㅇ이미지에서 랜덤 224*224 패치(및 그 수평반사)를 추출하여 네트워크를 학습시킵니다.
이 방식으로 훈련 데이터셋 크기가 2048배 증가하지만 결과적으로 생성된 학습 예제들은 서로 높은 의존성을 가집니다.
이 방식을 사용하지 않을 경우 네트워크는 상당한 과적합에 직면하게 되며
이는 훨씬 더 작은 네트워크를 사용해야 하는 상황을 초래했을 것입니다.
테스트시 네트워크는 224 * 224 크기의 다섯개 패치(네 모서리와 중앙패치) 및 그 수평반사(총 10개 패치)를 추출하여 ㅅ프트맥스 층의 예측값을 평균내어 최종예측을 수행합니다.
두번째 데이터증강방식
훈련이미지의 RGB채널의 강도를 변경합니다.
구체적으로는 훈련세트의 RGB픽셀값에 대해서 PCA를 수행합니다.
훈련 이미지 각각에 대해 계산된 주성분에 특정크기와 랜덤변수(평균0, 표준편차0.1, 가우시안 분포에서 샘플링된 값)을 곱한 값을 추가합니다.

여기서 Pi와 는 RGB 픽셀 값의 3*3 공분산 행렬의 i번째 고유벡터와 고유값이며 ai는 앞서 언급한 랜덤변수입니다.
특정 훈련 이미지의 모든 픽셀에 대해 ai는 한 번만 샘플링되며 이미지가 다시 학습에 사용될 때 새로 샘플링됩니다.
이 방식은 자연 이미지의 중요한 특성 즉 객체의 정체성이 조명강도와 색상 변화에 대해 불변하다는 점을 반영합니다.
이 방식은 top-1에러율을 1%이상 감소시켰습니다.
4.2 Drop out
다양한 모델의 예측을 결합하는 것은 테스트 오류를 줄이는 매우 효과적인 방법입니다.
(그러나 이미 학습에 여러 날이 걸리는 대형 신경망에서는 너무 비용이 많이듦)
하지만 학습 중 비용을 약 두배만 증가시키는 매우 효율적인 모델 결합 방법이 있습니다.
최근 도입된 dropout이라는 기법은 각 은닉 뉴런의 출력을 확률50% 로 0으로 설정하는 방식으로 이루어집니다.
이렇게 드롭아웃된 뉴런은 순방향계산(포워드 패스)에 기여하지않으며 역전파(백프라파게이션)에도 참여하지않습니다.
따라서 입력이 주어질때마다 신경망은 서로 다른 아키텍쳐를 샘플링하지만
이들 모든 아키텍처는 가중치를 공유합니다.
이 기법은 뉴런 간의 복잡한 공동 적응을 줄여줍니다.
왜냐면 뉴런이 특정 다른 뉴런의 존재에 의존할 수 없기때문입니다.
결과적으로 뉴런은 다양한 다른 뉴런의 랜덤 부분 집합과 함게 유용한 보다 강건한 특징을 학습하도록 강제됩니다.
테스트시에는 모든 뉴런을 사용하되 출력에 0.5를 곱하게됩니다.
이는 드롭아웃 네트워크로부터 생성된 지수적으로 많은 예측 분포의 기하 평균을 취하는 합리적인 근사치입니다.
우리는 그림 2의 첫 두 개 완전연결 레이어에 드롭아웃을 적용했습니다.
드롭아웃을 사용하지 않으면, 네트워크는 상당한 과적합을 보입니다.
드롭아웃은 수렴에 필요한 반복 횟수를 대략 두 배로 증가시킵니다
5 Detail of learning

우리는 모델을 학습시킬때 확률적 경사하강법을 사용했고 배치크기는 128, 모멘텀은 0.9, 가중치 감소는 0.0005로 설정했습니다.
이 작은 가중치 감소 값은 모델 학습에 중요했습니다.
다시말해서 여기서 가중치 감소는 단순한 정규화 도구이상의 역할을 합니다.
가중치 감소 모델은 모델의 훈련오류(training error)를 감소합니다. 가중치 w에 대한 업데이트 규칙은 아래와 같습니다.
그림 3: 입력 이미지에서 첫 번째 합성곱 레이어가 학습한 크기의 96개 합성곱 커널.
상단의 48개 커널은 GPU 1에서 학습되었으며, 하단의 48개 커널은 GPU 2에서 학습되었습니다.
자세한 내용은 6.1절을 참조하십시오.

여기서 i는 반복인덱스고 v는 모멘텀변수 ,e는 학습률이고 <>안에있는 식은 w에 대한 목적 함수의 미분 값을 i번째 배치 Di에서 평균을 낸 것입니다.
가중치는 각 레이어에서 평균이 0이고 표준편차가 0.01인 가우시안 분포에서 초기화했습니다.
뉴런의 바이어스(bias)는 두번째 네번째 다섯번째 합성곱 레이어와 완전연결(hidden)레이어에서 상수1로 초기화했습니다.
이 초기화는 ReLU에 양수 입력을 제공하여 학습 초기에 속도를 높이는데 기여합니다.
나머지 레이어의 뉴런 바이어스는 상수 0으로 초기화했습니다.
모든 레이어에 동일한 학습률을 사용했으며, 학습률은 학습 과정에서 수동으로 조정했습니다.
우리가 따랐던 휴리스틱은 현재 학습률에서 검증 오류율이 개선되지않을때
학습률을 10으로 나누는 방시이었습니다.
학습률은 초기값으로 0.01으로 설정되었으며 학습 종료전에 세번감소했습니다.
네트워크는 120만개의 학습 이미지에 대해 약 90번 순환하며 학습되었습니다.
이 과정은 두 대의 NVIDIA GTX 580 3GB GPU를 사용해 5~6일이 걸렸습니다.
6 Results
우리의 ILSVRC -2010결과는 표1에 요약되어있습니다.
우리는 네트워크 테스트 세트에서 top-1 오류율 37.5%와 top-5 오류율 17%을 달성했습니다.
ILSVRC-2010대회 동안 달성된 최고의 성능은
서로 다른 특징(features)으로 학습된 6개의 희소 코딩(sparse-coding) 모델의 예측을 평균내는 접근 방식으로
top-1 오류율 47.1%와 top-5 오류율 28.2% 였습니다.
그 이후로 가장 우수한 발표된 결과는
두 종류의 조밀하게 샘플링된 특징으로부터 계산된 Fisher Vectors(FVs)를 사용해 학습된 두개의 분류기의 예측을 평균내는 접근 방식으로 top-1오류율 45.7%, top-5오류율 25.7%을 기록했습니다.

표 1: ILSVRC-2010 테스트 세트에서의 결과 비교.
**이탤릭체(기울임꼴)**로 표시된 결과는 다른 연구자들에 의해 달성된 최고의 결과를 나타냅니다.
우리는 또한 ILSVRC-2012 대회에 우리 모델을 제출했으며, 결과는 표 2에 보고되어 있습니다.
ILSVRC-2012 테스트 세트 레이블은 공개적으로 이용할 수 없기 때문에,
우리가 시도했던 모든 모델에 대해 테스트 오류율을 보고할 수는 없습니다.
이 단락의 나머지 부분에서는 검증 오류율(validation error rate)과 테스트 오류율(test error rate)을 상호 교환하여 사용합니다. 우리 경험에 따르면 두 값은 0.1% 이상 차이 나지 않기 때문입니다(표 2 참고).
이 논문에서 설명된 cnn은 top-5오류율 18.2%를 달성했습니다.
비슷한 CNN이 5개의 예측을 평균하면 오류율이 16.4%로 감소합니다.
마지막 풀링 레이어 위에 여섯번째 합성곱 레이어를 추가하여 ImageNet Fall 2011릴리스 전체(1500만개 이미지, 22000개 카테고리)를 분류하도록 학습한 뒤, 이를 ILSVRC-2012 데이터에 대해 파인튜닝하면 오류율이 16.6%로 나타납니다.
ImageNet Fall 2011 릴리스 전체를 사전학습한 두 cnn의 예측을 앞서 언급된 5개의 cnn과 평균하면 오류율이 15.3%으로 감소합니다.
대회에서 두번째로 높은 점수를 기록한 참가자는 여러 유형의 조밀하게 샘플링된 특징으로부터 계산된 fisher vectors(FVs)를 사용해 학습된 여러 분류기의 예측을 평균내는 방식으로 오류율 26.2%를 달성했습니다.

표 2: ILSVRC-2012 검증 세트와 테스트 세트에서의 오류율 비교.
**이탤릭체(기울임꼴)**로 표시된 결과는 다른 연구자들에 의해 달성된 최고의 결과를 나타냅니다.
**별표(*)**가 붙은 모델은 ImageNet 2011 Fall 릴리스 전체를 분류하도록 "사전 학습(pre-trained)"된 모델입니다.
자세한 내용은 섹션 6을 참조하십시오.
마지막으로 우리는 Fall 2009버전 ImageNet(10,184개의 카테고리와 890만개 이미지)에 대한 오류율도 보고합니다.
이 데이터셋에서는 문헌에서 사용되는 관례를 따라 이미지를 절반으로 나누어 절반은 학습, 절반은 테스트용으로 사용했습니다.
공식적인 테스트 세트가 없기때문에 우리의 데이터 분할은 이전 연구자들이 사용한 분할과 다를 수 밖에 없지만, 이로인해 결과가 크게 영향을 받지는 않았습니다.
이 데이터셋에서 우리의 top-1, 오류율은 67.4% top-5오류율은 40.9%를 기록했습니다.
이는 위에서 설명한 네트워크에 마지막 풀링 레이어 위에 여섯번째 합성곱 레이어를 추가한 모델로 달성한 결과입니다.
이 데이터셋에 대한 가장 우수하게 발표된 결과는 top1 오류율 78.1, top-5오류율은 60.9%입니다.
6.1 Qualitative Evaluations(정성적 평가)
그림3은 네트워크의 두 데이터 연결 레이어에서 학습된 합성곱 커널을 보여줍니다.
네트워크는 다양한 주파수와 방향 선택적 커널, 그리고 다양한 색상의 블롭을 학습했습니다.
3.5절에서 설명된 제한된 연결성의 결과로 두 GPU간에 나타난 전문화에 주목하십시오
GPU1의 커널은 주로 색상과 무관한 특성을 보이는 반면
GPU2의 커널은 주로 색상에 민감한 특성을 보입니다.
이런 종류의 전문화는 모든 실행(RUN)에서 발생하며 특정 랜덤 가중치 초기화와는 무관하다고 합니다.
섹션 4.1에서 설명된 대로, 10개의 패치에 대한 예측을 평균하지 않은 경우의 오류율은
top-1 오류율이 39.0%, **top-5 오류율이 18.3%**입니다.

그림 4:
(왼쪽) 8개의 ILSVRC-2010 테스트 이미지와 모델이 가장 가능성이 높다고 판단한 상위 5개의 레이블을 보여줍니다.
각 이미지 아래에는 정답 레이블이 표시되어 있으며,
정답 레이블이 상위 5개 레이블 안에 포함될 경우, 그 레이블에 할당된 확률이 빨간 막대로 표시됩니다.
(오른쪽) 첫 번째 열에는 5개의 ILSVRC-2010 테스트 이미지가 있습니다.
나머지 열은 테스트 이미지의 **마지막 은닉층(hidden layer)**에서 추출된 특징 벡터와
유클리드 거리(Euclidean distance)가 가장 작은 특징 벡터를 가진 6개의 학습 이미지를 보여줍니다.
그림 4의 왼쪽 패널에서 우리는 8개의 테스트 이미지에 대한 네트워크 상위 5개 예측을 계산하여 네트워크가 학습한 내용을 정성적으로 평가했습니다. 예를들어서 왼쪽 위의 진드기와 같이 중심에 있지 않은 객체도 네트워크가 인식할 수 있음을 알 수 있습니다.
상위 5개의 레이블 중 대부분은 합리적으로 잘 예측하는것같습니다.
예를들어 표범의경우 네트워크는 다른 고양이 종류만을 가능성 있는 레이블로 고려합니다.
그러나 어떤 경우에는(예: 그릴(grille), 체리(cherry)), 사진의 초점이 무엇인지에 대해 실제적인 모호성이 존재합니다.
네트워크의 시각적 지식을 탐구하는 또 다른 방법은 이미지가 마지막 4096차원의 은닉층에서 유도하는 특징 활성화를 고려하는 것입니다.
두 이미지가 유클리드 거리가 작은 특징 활성화 벡터를 생성하면 신경망의 높은 레벨에서 이 두 이미지를 유사하다고 간주할 수 있습니다.
그림4는 테스트 세트에서 선택된 5개 이미지와 이 기준에 다라 해당 이미지와 가장 유사한 학습 세트의 6개 이미지를 보여줍니다.
픽셀수준에서는 검색된 학습 이미지들이 첫번째 열의 쿼리 이미지와 L2거리상 가까운 것은 아닙니다.
예를들어 검색된 개와 코끼리는 다양한 자세를 취하고 있습니다. 더 많은 테스트 이미지에 대한 결과는 보충자료에서 확인할 수 있습니다.
4096차원의 실수 벡터간 유클리드 거리를 사용해 유사성을 계산하는것은 비효율적입니다.
하지만 오토인코더를 사용해 이 벡터를 짧은 이진코드로 압축하도록 학습하면 효율성을 높일 수있습니다.
이는 원시 픽셀에 오토인코더를 적용하는것보다 훨씬 더 나은 이미지 검색 방법을 제공할 것입니다.
원시 픽셀에 오토인코더를 적용하면 이미지 라벨을 사용하지 않으므로
의미적으로 유사한지 여부와 상관없이 유사한 에지 패턴을 가진 이미지를 검색하는 경향잉 있기 때문입니다.
7. Discussion (논의)
우리의 결과는 크고 깊은 합성곱 신경망이 순수히 지도학습만으로도 매우 도전적인 데이터셋에서 기록적인 결과를 달성할 수 있음을 보여줍니다.
특히 단일 합성곱 레이어를 제거하면 네트워크 성능이 저하된다는 점은 주목할만합니다.
예를들어 중간 레이어 중 하나를 제거하면 네트워크의 top1 성능이 약 2% 감소합니다.
따라서 뎁스(깊이)는 우리의 결과를 달성하는데 있어서 정말 중요한 요소임을 알 수 있습니다.
실험을 단순화하기 위해 우리는 비지도 학습 기반의 사전학습을 사용하지 않았습니다.
하지만 네트워크 크기를 크게 늘리고 학습에 사용할 수 있는 레이블 데이터의 양이 부족하지 않을만큼 충분한 계산 능력을 확보한다면 비지도 학습은 성능에 도움이 될 것으로 예상됩니다.
현재까지 우리의 결과는 네트워크를 더 크게 만들고 학습을 더 오래 수행함에 따라 계속 개선되고 있지만
인간 시각 시스템의 하부측두 경로와 일치하기 위해서는 여전히 수많이 단계가 남아 있습니다.
궁극적으로 우리는 매우 크고 깊은 합성곱 신경망을 비디오 시퀀스에 적용하고 싶습니다.
비디오 시퀀스의 시간적 구조는 정적인 이미지에서는 누락되거나 덜 명확한 정보를 제공하기 때문입니다.
ALEXNET 논문을 읽으며...
세상에 다양한 모델이있지만 거의 시초라고할수있는 알렉스넷을 읽으면서 합성곱 그리고 ReLU함수에 대해서 다시한번 상기할 수 있는 기회가 되었다. 딥러닝의 역사의 중요한 전환점 중 하나라고 생각하기때문이다.
일단 대규모 데이터셋을 GPU병렬구조로 하면서 모델을 효율적으로 사용했고 이미지 데이터도 버리지않고 모두 사용할 수 있었다.
또한 과적합 방지로는 1. DROP OUT 2. Data Augmentation을 적용해서 데이터셋의 크기를 확장할 수 있고
dropout으로는 지금까지도 많은 곳에서 사용되는 기본적인 정규화 기법을 확인해볼 수 있어서 좋았다.
또한 ReLU함수의 등장인데 이전의 activity funtion (활성화함수)로는 시그모이드,탄 과는 달리 학습 속도를 크게 향상시키고 기울기 소실 문제를 완화할 수 있는 활성화 렐루함수를 사용했다.
그리고 이 부분은 처음 으로 좀 더 깊이 본 부분인데
응답정규화( Response Normalization)였다. 특정 레이어에서 뉴런 출력을 정규화하여 성능을 향상시킨 기법이라고하는데
역시 못들어본이유는 요즘 많이 사용하진 않는다고 합니다.
그렇지만 정규화를하면서 뉴런관의 응답? 상호작용의 중요성을 배울 수 있었습니다.
기존 안 겹치는 풀링을 사용하는것대신 겹치는 풀링을 사용하면서 모델 성능을 향상했고
풀링 크기, 스트라이드 설정 자체의 숫자는 매우 작지만 모델에는 아주 큰 결과를 불러일으키는것을 확인할 수 있었습니다.
또한 알렉스넷은 적은양이아닌 대규모 데이터셋을 활용했고 학습 성능을 끌어올렸습니다.
모델은 2대의 GTX 580 GPU로 학습했고 병렬로 했다는점입니다.
마무리에서는 깊은 신경망과 데이터의 중요성을 강조했지만 더 깊은 네트워크인 ResNet이나 DenseNet같은것은 없었습니다.
'모델 논문, 학습' 카테고리의 다른 글
모델 GITHUB참고 (0) | 2025.02.23 |
---|---|
Vision Transformer(ViT) 논문 리뷰(직역) (0) | 2025.02.18 |
YOLO TRACKER 문서 및 실험&구현해보기 (2) | 2024.12.24 |
You Only Look Once:Unified, Real-Time Object Detection (0) | 2024.12.03 |