AI

VGGnet

pullwall 2024. 9. 12. 00:39
728x90
해당 강의는 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.

https://wikidocs.net/164796

 

https://wikidocs.net/164796

 

VGG net의 골자인 첫번째 구조를 table로 나타낸 것이 위 표의 D 부분이다. 해당 부분에 대해 순서대로 이해해 보겠다.

  • Input data : input으로는 3x224x224 size의 image를 받는다.
  • conv3-64 통과 : conv3-64는 64x3x3x3을 의미하는데 이는 64개의 3x3x3 필터로 이미지를 컨볼루션 하겠다는 의미이다. (zero padding은 1로 설정한다고 논문에 나와있다.
    • 출력 shape : conv3-64를 거치면 64x224x224
  • conv3-64 통과 : 위의 출력 shape에 대하여 conv3-64의 필터는 64x64x3x3
    • 출력 shape : conv3-64를 거치면 64x224x224
  • maxpool 통과 : 2x2, stride=2인 maxpool 통과
    • 출력 shape : 64x112x112
  • conv3-128 통과 : 위의 출력 shape에 대하여 conv3-128의 필터는 128x64x3x3 
    • 출력 shape : 128x112x112
  • 위와 같은 과정 반복...
  • 마지막 maxpool 통과
    • 출력 shape : 512x7x7 (특징을 표현하는 7x7size가 512개 존재)
  • FC-4096 : (FC : Fully Connected) 마지막엔 결국 CNN을 통과하게 되는데, 노드 하나를 만들기 위해서는 512x7x7개의 weight가 필요하다. 이러한 노드를 4096개 만든다.
  • FC-4096 : 노드를 4096개 만든 다음 앞서 만든 4096개의 노드를 연결한다.
  • FC-1000 : 1000종류의 class로 분류하기 위해 마지막 노드를 1000개로 줄인다.

 

위와 같은 흐름에서,

 

max pooling을 통해 생성되는 값은 비유하자면 반대표->학년대표->학교대표->시대표 처럼 점점 더 넓은 구역을 대표하게 된다.

결국 7x7개의 시대표들이  각 시의 512개 특징을 가지고 분류한다.

 

channel 수는 두 배로 늘리면서 점점 더 많은 특징을 포착하도록 한다.

728x90