CNN

홍찬우·2023년 7월 22일
0

Basic CNN

RGB Image Convolution

  • output의 channel은 filter의 개수
  • input channel과 filter channel은 동일해야 함

Convolution & Pooling layers

  • feature extraction

Fully Connected layer

  • decision making (e.g. classification)
  • 최근들어 fc layer를 없애거나 줄이는 추세
    - parameter 수를 줄이기 위해

Padding

  • input과 output의 dimension size를 맞춰줄 때 사용

Number of parameters

  • Padding(1), Stride(1) 이므로 output의 W, H의 크기는 변하지 않는다.
  • filter의 shape은 (128, 3, 3), 개수는 64이므로 33128*64

  • fully connected layer의 파라미터 수는 input dimension * output dimension
  • convolution layer와 비교해 훨씬 많은 parameter가 필요하다.

1×1 Convolution

  • dimension reduction (channel dimension)
  • convolution layer를 깊게 쌓으면서 parameter 수를 줄이기 위해 사용
    • e.g., bottleneck





Modern CNN

Network parameter 숫자, depth에 focus

  • 뒤로 갈수록 depth는 깊어지며 parameter 수는 줄고, 성능은 오른다.

ILSVRC (ImageNet Large-Scale Visual Recognition Challenge)

  • image classification, detection, localization, segmentation 대회
  • 2015년부터 사람보다 네트워크 성능이 좋아짐


Networks

1. AlexNet

  • 두 GPU에 Network를 나눠서 input
  • 총 depth는 8

key ideas

  • ReLU activation
    • linear model의 좋은 점을 갖고 있음
    • 최적화하기 쉬움
    • 기울기 소실 문제 극복
  • 2 GPUs
  • Overlapping Pooling
  • Data Augmentation
  • Dropout



2. VGGNet

  • layer depth가 16개면 VGG16, 19개면 VGG19

3×3 convolution

  • 같은 output 결과를 얻음에도 3×3 convolution이 5×5 convolution보다 parameter가 적음



3. GoogleNet

  • NiN(network-in-network) 구조
  • Inception blocks
    • 1×1 convolution layer를 활용해 parameter 수를 줄임

  • 같은 receptive field임에도 parameter 수를 줄일 수 있음



4. ResNet

  • 보통은 parameter수가 많으면 overfitting이 발생
    • 위 case는 overfitting은 아니지만 network가 커지면서 학습을 못 시키는 case

  • residual connection(identity map)
    • input x를 출력 f(x)에 더해줌

  • input x와 output f(x)의 dimesion shape이 맞아야 함
    • shape match를 위해 1×1 convolution 사용

Bottleneck architecture

  • 3×3 convolution을 하기 전, 후로 1×1 convolution을 통해 channel을 맞춰 주면서 parameter 수를 줄임



5. DenseNet

ResNet과 달리 input과 output을 concatenate 시킴

  • Dense Block
    • feature map을 기하급수적으로 계속 키움
  • Transition Block
    • 1×1 convolution을 통해 차원 축소

→ Dense Block과 Transition Block을 반복적으로 사용



Summary

  • VGG : repeated 3×3 blocks
  • GoogleNet : 1×1 convolution to reduce dimension
  • ResNet : skip connection
  • DenseNet : concatenation






※ 모든 이미지의 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※

profile
AI-Kid

0개의 댓글