왜 이제와서 CNN 글을 올리냐고 한다면.. 너무 오래 안쓰다보니 까먹었기 때문에...
최근에는 nlp, cv 분야를 막론하고 모두 transformer 를 사용하지만 이건 학계 또는 빅테크 기준이라고 볼 수 있음
실제 산업, 특히 on-device AI 를 위해선, 모델이 작고 빠른 inference 가 가능해야함
산업에서 사용되는 Object Detection 모델은 대부분 YOLO 라는 CNN 기반의 모델이기 때문에 복습겸 정리해보기로 했음
신경망의 역사를 간단하게 보자면 기존에는 MLP 로 이것저것 다 처리하다가 이미지 처리용으로 CNN 이 등장하게 되었음
CNN 은 이미지에 대한 Inductive Bias 를 가지고 있음
Inductive Bias: 어떤 문제를 해결하기 위한 사전 정보를 통해 추가된 가정
e.g. CNN 의 작은 부분의 서로간의 관계를 보는 locality
Transformer 는 흔히 inductive bias 가 CNN 에 비해 약하다고 함 → 데이터에 대해 모두 attention 을 계산하기 때문
그럼 이제 CNN 의 필터(커널) 연산을 살펴보자
필터 F (Filter): 이미지 또는 feature map 위를 일정한 간격으로 이동하는 윈도우로, 결국 CNN 의 학습은 이 필터(커널)이 학습된다고 보면 됨
패딩 P (Padding): 여백을 준다는 뜻으로, 원래 convolution 연산을 진행하다보면 feature map size 가 점점 작아짐
이를 해결하기 위해 이미지 또는 feature map 외곽에 같은 수 (0이나 1) 을 채워서 conv 연산 후에 원하는 output size 를 가질 수 있도록 함
스트라이드 S (Stride): 필터를 적용하는 간격
► 최종 Output size
입력 size: (H, W)
필터 size: (FH, FW)
출력 size: (OH, OW)
$OH=\frac{H+2P-FH}{S}+1$
$OW=\frac{W+2P-FW}{S}+1$
'AI > Deep Learning' 카테고리의 다른 글
Object Pose Estimation, 6DoF, BOP challenge (0) | 2024.07.26 |
---|---|
Self Attention, Cross Attention (0) | 2024.03.11 |
Autoregressive Model (0) | 2024.03.08 |
Variational Auto-Encoder (VAE) (0) | 2024.02.28 |
Generative Adversarial Nets (GAN) 수식으로 이해 (0) | 2023.09.13 |