CNN(Convolutional Neural Network) 아키텍처는 이미지와 같은 구조화된 격자형 데이터를 처리하도록 설계된 딥 러닝 모델입니다. 컨벌루션, 풀링 및 완전 연결 레이어를 포함한 여러 레이어로 구성됩니다. CNN은 계층적 특징 추출 기능으로 인해 이미지 분류, 객체 감지, 이미지 분할과 같은 작업에 매우 효과적입니다.
VGG-16
VGG-16 모델은 옥스포드 대학의 VGG(Visual Geometry Group)가 제안한 CNN(Convolutional Neural Network) 아키텍처입니다. Convolutional Layer 13개, Fully Connected Layer 3개 등 총 16개의 Layer로 구성된 깊이가 특징입니다. VGG-16은 단순성과 효율성뿐만 아니라 이미지 분류 및 객체 인식을 포함한 다양한 컴퓨터 비전 작업에서 강력한 성능을 달성하는 능력으로도 유명합니다. 모델의 아키텍처는 컨볼루셔널 레이어 스택과 그 뒤를 잇는 최대 풀링 레이어를 특징으로 하며 깊이가 점차 증가합니다. 이 설계를 통해 모델은 시각적 특징의 복잡한 계층적 표현을 학습하여 강력하고 정확한 예측을 할 수 있습니다. 최신 아키텍처에 비해 단순함에도 불구하고 VGG-16은 다용성과 탁월한 성능으로 인해 많은 딥 러닝 애플리케이션에서 여전히 인기 있는 선택입니다.
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)는 팀이 객체 위치 파악 및 이미지 분류를 포함한 작업을 다루는 컴퓨터 비전 분야의 연례 대회입니다. 2014년 Karen Simonyan과 Andrew Zisserman이 제안한 VGG16은 200개의 클래스에서 객체를 감지하고 이미지를 1000개의 카테고리로 분류하여 두 작업 모두에서 최고 순위를 달성했습니다.
C++ 세트

VGG-16 아키텍처
이 모델은 92.7% 상위 5위 다음을 포함하는 ImageNet 데이터 세트의 정확도 테스트 14 1000개의 클래스에 속하는 백만 개의 이미지.
VGG-16 모델 목표:
ImageNet 데이터세트에는 고정된 크기의 이미지가 포함되어 있습니다. 224*224 그리고 RGB 채널이 있습니다. 따라서 우리는 다음과 같은 텐서를 가지고 있습니다. (224, 224, 3) 우리의 입력으로. 이 모델은 입력 이미지를 처리하고 1000 값:
이 벡터는 해당 클래스의 분류 확률을 나타냅니다. 이미지가 확률적으로 클래스 0에 속한다고 예측하는 모델이 있다고 가정합니다. 1 , 1급 확률적으로 0.05 , 2급 확률적으로 0.05 , 수업 삼 확률적으로 0.03 , 클래스 780 확률적으로 0.72 , 수업 999 확률적으로 0.05 그리고 다른 모든 수업은 0 .
따라서 이에 대한 분류 벡터는 다음과 같습니다.
이러한 확률이 추가되는지 확인하려면 1 , 우리는 Softmax 함수를 사용합니다.
이 소프트맥스 함수는 다음과 같이 정의됩니다.
자바 문자열 cmp
그런 다음 가장 가능성이 높은 5개의 후보를 벡터에 넣습니다.
우리의 Ground Truth 벡터는 다음과 같이 정의됩니다.
그런 다음 Error 함수를 다음과 같이 정의합니다.
해시셋 대 해시맵
각 실측 클래스와 예측 후보 사이의 최소 거리를 계산합니다. 여기서 거리 함수 d는 다음과 같이 정의됩니다.
- d=0인 경우
c_i=G_k - 그렇지 않으면 d=1
따라서 이 예의 손실 함수는 다음과 같습니다.
Ground Truth의 모든 범주는 예측된 상위 5개 행렬에 있으므로 손실은 0이 됩니다.
VGG 건축학:
VGG-16 아키텍처는 이미지 분류 작업을 위해 설계된 심층 합성곱 신경망(CNN)입니다. 옥스포드 대학의 시각 기하학 그룹(Visual Geometry Group)에 의해 소개되었습니다. VGG-16은 단순성과 균일한 아키텍처가 특징이므로 이해하고 구현하기 쉽습니다.
맘타 쿨카르니
VGG-16 구성은 일반적으로 13개의 컨벌루션 레이어와 3개의 완전 연결 레이어를 포함하여 16개의 레이어로 구성됩니다. 이러한 레이어는 블록으로 구성되며, 각 블록에는 여러 컨볼루셔널 레이어와 다운샘플링을 위한 최대 풀링 레이어가 포함됩니다.

VGG-16 아키텍처 맵
제공된 세부 정보를 기반으로 한 VGG-16 아키텍처의 분석은 다음과 같습니다.
- 입력 레이어:
- 입력 차원: (224, 224, 3)
- 컨벌루션 레이어(64개 필터, 3×3 필터, 동일한 패딩):
- 각각 64개의 필터와 3×3의 필터 크기를 갖는 두 개의 연속적인 컨벌루션 레이어.
- 공간적 차원을 유지하기 위해 동일한 패딩이 적용됩니다.
- 최대 풀링 계층(2×2, 스트라이드 2):
- 풀 크기가 2×2이고 스트라이드가 2인 맥스 풀링 레이어입니다.
- 컨벌루션 레이어(128개 필터, 3×3 필터, 동일한 패딩):
- 각각 128개의 필터와 3×3의 필터 크기를 갖는 두 개의 연속적인 컨벌루션 레이어.
- 최대 풀링 계층(2×2, 스트라이드 2):
- 풀 크기가 2×2이고 스트라이드가 2인 맥스 풀링 레이어입니다.
- 컨벌루션 레이어(256개 필터, 3×3 필터, 동일한 패딩):
- 각각 256개의 필터와 3×3의 필터 크기를 갖는 두 개의 연속 컨벌루션 레이어.
- 컨벌루션 레이어(512개 필터, 3×3 필터, 동일한 패딩):
- 각각 512개의 필터와 3×3의 필터 크기를 갖는 3개의 연속 컨벌루션 레이어로 구성된 두 세트.
- 최대 풀링 계층(2×2, 스트라이드 2):
- 풀 크기가 2×2이고 스트라이드가 2인 맥스 풀링 레이어입니다.
- 컨벌루션 레이어 스택 및 최대 풀링:
- 이전 스택 뒤에 두 개의 추가 컨벌루션 레이어가 있습니다.
- 필터 크기: 3×3.
- 편평화:
- 출력 특징 맵(7x7x512)을 크기 25088의 벡터로 평면화합니다.
- 완전히 연결된 레이어:
- ReLU가 활성화된 3개의 완전히 연결된 레이어.
- 입력 크기가 25088이고 출력 크기가 4096인 첫 번째 레이어입니다.
- 입력 크기가 4096이고 출력 크기가 4096인 두 번째 레이어입니다.
- 입력 크기가 4096이고 출력 크기가 1000인 세 번째 레이어는 ILSVRC 챌린지의 1000개 클래스에 해당합니다.
- 분류를 위해 세 번째 완전 연결 계층의 출력에 Softmax 활성화가 적용됩니다.
이 아키텍처는 ReLU 활성화 함수 사용 및 소프트맥스 활성화를 사용하여 1000개 클래스에 대한 최종 완전 연결 계층 출력 확률을 포함하여 제공된 사양을 따릅니다.
VGG-16 구성:
VGG-16 구성 C와 D의 주요 차이점은 일부 컨볼루셔널 레이어에서 필터 크기를 사용한다는 점입니다. 두 버전 모두 주로 3×3 필터를 사용하지만, 버전 D에서는 대신 1×1 필터를 사용하는 경우가 있습니다. 이러한 약간의 변화로 인해 매개변수 수가 달라지며 버전 D는 버전 C에 비해 매개변수 수가 약간 더 높습니다. 그러나 두 버전 모두 VGG-16 모델의 전체 아키텍처와 원리를 유지합니다.

다른 VGG 구성
이미지의 객체 현지화:
현지화를 수행하려면 클래스 점수를 경계 상자 위치 좌표로 바꿔야 합니다. 경계 상자 위치는 4차원 벡터(중심 좌표(x,y), 높이, 너비)로 표시됩니다. 현지화 아키텍처에는 두 가지 버전이 있습니다. 하나는 경계 상자가 여러 후보 간에 공유되는 것입니다(출력은 4 매개변수 벡터), 다른 하나는 클래스별 경계 상자입니다(출력은 다음과 같습니다). 4000 매개변수 벡터). 이 논문에서는 VGG -16(D) 아키텍처에 대한 두 가지 접근 방식을 모두 실험했습니다. 여기서도 손실을 분류 손실에서 회귀 손실 함수로 변경해야 합니다(예: MSE ) 이는 실제 실제값에서 예측된 손실의 편차에 페널티를 적용합니다.
결과: VGG-16은 2014년 ILSVRC 챌린지에서 가장 성능이 뛰어난 아키텍처 중 하나였습니다. 분류 작업에서 상위 5개 분류 오류로 2위를 차지했습니다. 7.32% (분류 오류가 있는 GoogLeNet 뒤에만 6.66% ). 또한 국산화 과제에서도 우승을 차지했습니다. 25.32% 현지화 오류.
VGG 16의 한계:
- 훈련 속도가 매우 느립니다(원래 VGG 모델은 Nvidia Titan GPU에서 2~3주 동안 훈련되었습니다).
- VGG-16 훈련된 imageNet 가중치의 크기는 다음과 같습니다. 528 MB. 따라서 디스크 공간과 대역폭이 많이 필요하므로 비효율적입니다.
- 1억 3,800만 개의 매개변수로 인해 경사도 폭발 문제가 발생합니다.
추가 개선 사항: VGG-16에서 발생한 폭발적인 경사 문제를 방지하기 위해 Resnet이 도입되었습니다.