인공지능 딥러닝 기계학습 DeepLearning Inception imagenet

Inception 모듈의 동기에 대해 논의 했으므로 이제 그림에서 실제 모듈 자체를 살펴 보겠습니다.

GoogLeNet에서 사용 된 원래 Inception 모듈. Inception 모듈은 네트워크의 동일한 모듈 내에서 1 × 1, 3 × 3 및 5 × 5 컨볼 루션을 계산하여 “다단계 특징 추출기”역할을합니다.

Szegedy et al., 2014 논문 그림

활성화 함수 (ReLU)는 모든 CONV 계층 이후에 암시 적으로 적용됩니다. 공간을 절약하기 위해이 활성화 기능은 위의 네트워크 다이어그램에 포함되지 않았습니다. GoogLeNet을 구현할 때이 활성화가 Inception 모듈에서 어떻게 사용되는지 볼 수 있습니다.

특히 Inception 모듈이 입력 계층에서 4개의 개별 경로로 분기되는 방식을 주목하십시오. Inception 모듈의 첫 번째 분기는 입력에서 일련의 1×1 로컬피처를 학습합니다.

두 번째 배치는 먼저 1×1 컨볼루션을 로컬 피처 학습의 한 형태로 적용 할뿐만 아니라 차원 감소로 적용합니다. 더 큰 컨볼루션 (즉, 3×3 및 5×5)은 정의상 더 많은 계산을 수행해야합니다. 따라서 1×1 컨볼루션을 적용하여 이러한 더 큰 필터에 대한 입력의 차원을 줄일 수 있다면 네트워크에 필요한 계산량을 줄일 수 있습니다. 따라서 두 번째 분기의 1×1 CONV에서 학습 된 필터의 수는 항상 나중에 직접 학습 된 3×3 필터의 수보다 적습니다.

세 번째 분기는 두 번째 분기와 동일한 논리를 적용하지만 이번에는 5×5 필터 학습을 목표로 합니다. 다시 한 번 1×1 컨볼 루션을 통해 차원을 줄인 다음 출력을 5×5 필터에 공급합니다.

Inception 모듈의 네 번째이자 마지막 분기는 1 × 1의 stride로 3 × 3 max 풀링을 수행합니다. 이 분기를 일반적으로 풀 프로젝션 분기라고합니다. 역사적으로 풀링을 수행하는 모델은 더 높은 정확도를 얻을 수있는 능력을 보여 왔지만 2014 년 Springenberg et al 논문, Striving for Simplicity : The All Convolutional Net 에서는 이것이 반드시 사실은 아니며 볼륨 크기를 줄이기 위해 POOL 레이어를 CONV 레이어로 대체 할 수 있다고 설명했습니다.

Szegedy et al.의 경우 CNN이 합리적으로 수행되는 데 필요하다고 생각했기 때문에 이 POOL 레이어가 추가되었습니다. 그런 다음 POOL의 출력은 로컬 기능을 학습하기 위해 또 다른 일련의 1 x 1 컨볼 루션으로 공급됩니다.

마지막으로 Inception 모듈의 4 개 분기가 모두 수렴하여 채널 차원을 따라 함께 연결됩니다. 구현 중에 (제로 패딩을 통해) 각 분기의 출력이 동일한 볼륨 크기를 가지도록 특별히 주의하여 출력을 연결할 수 있도록 합니다. Inception 모듈의 출력은 네트워크의 다음 계층으로 공급됩니다. 실제로, 우리는 종종 볼륨 크기를 줄이기 위해 풀링 작업을 수행하기 전에 여러 Inception 모듈을 서로 겹쳐 쌓습니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다