8-6. VGGNet

VGGNet의 배경

  • 강의에는 나오지 않았지만 검색해서 나온 몇가지 정보를 적어놓으려고 한다.
  • VGGNet은 ImageNet 대회에서 가장 처음으로 CNN를 깊이있게 신경망을 구축한 사례이다.
  • VGGNet은 2014년에 준우승을 차지했고 그 이후 대회 수상자들의 네트워크도 점점 더 층이 깊어져가며 우리가 흔히 아는 ResNet은 152개의 층으로 이루어져있다.

VGGNet의 구조

image 7.png

image.png

  • VGGNet논문에서는 6가지의 버전을 내놓았지만 우리가 여기서 다룰 것은 D파트에 해당한다.

  • 총 16개의 층으로 구성되어있으며 합성곱과 최대 풀링이 반복되고 마지막에 FC Layer가 오는 전형적인 CNN의 모습을 띈다.
  • 입력 층
    • 입력 데이터로는 3x224x224 사이즈의 RGB 컬러 이미지가 들어온다.
  • Conv_Block_1_1 (conv3-64)
    • 3x3x3 사이즈의 64개의 필터가 합성곱 연산이 될 예정이다.
    • 입력 채널이 3개였으니 여기도 필터가 3개의 채널을 가지고 있을 것이다.
    • Stride는 1, Padding 사이즈도 1로 고정된다. (이 과정은 매 합성곱마다 반복이니 이후엔 설명을 생략하겠다)
    • 합성곱 이후 64x224x224 사이즈의 피처 맵이 출력된다.
  • Conv_Block_1_2 (conv3-64)
    • 64x3x3 사이즈의 64개의 필터가 적용이 된다.
    • 출력 피처 맵 사이즈는 64x224x224.
  • MaxPool(2)
    • Stride와 Size가 모두 (2,2) 이다. (VGG-Net에서의 풀링은 모두 사이즈가 2이다)
    • 풀링 이후 사이즈는 64x112x112이다.
  • Conv_Block_2_1 (conv3-128)
    • 64x3x3 사이즈의 128개의 필터가 적용 된다.
    • 출력 피처 맵 사이즈는 128x112x112
  • Conv_Block_2_2(conv3-128)
    • 128x3x3 사이즈의 128개의 필터가 적용 된다.
    • 출력 피처 맵 사이즈는 128x112x112
  • MaxPool(2)
    • 풀링 이후 사이즈는 128x56x56
  • Conv_Block_3_1(conv3-256)
    • 128x3x3 사이즈의 256개의 필터가 적용된다.
    • 출력 피처 맵 사이즈는 256x56x56
  • Conv_Block_3_2 & Conv_Block_3_3(conv3-256)
    • 256x3x3 사이즈의 256개의 필터가 적용된다.
    • 출력 피처 맵 사이즈는 256x56x56
  • MaxPool(2)
    • 풀링 이후 사이즈는 256x28x28
  • Conv_Block_4_1(conv3-512)
    • 256x3x3 사이즈의 512개의 필터가 적용된다.
    • 출력 피처 맵 사이즈는 512x28x28
  • Conv_Block_4_2 & 3 (conv3-512)
    • 512x3x3 사이즈의 512개의 필터가 적용된다.
    • 출력 피처 맵 사이즈는 512x28x28
  • MaxPool(2)
    • 풀링 이후 사이즈는 512x14x14
  • Conv_Block_5_1 & 2 & 3 (conv3-512)
    • 512x3x3 사이즈의 512개의 필터가 적용된다.
    • 출력 피처 맵 사이즈는 512x28x28
  • MaxPool(2)
    • 풀링 이후 사이즈는 512x7x7
  • FC-4096
    • 512x7x7의 입력 데이터를 4096개의 노드와 fully connect 해준다.
  • FC-4096
    • 4096개의 노드를 다시 4096개의 노드와 fully connect 해준다.
  • FC-1000
    • 4096개의 노드를 1000개의 노드와 fully connect 해준다.
  • Softmax
    • 1000개의 노드의 출력 값을 softmax를 이용해 확률 값으로 바꾸어준다.

Updated: