1. CNN 의 등장
Neural Network 중 가장 간단한 Fully Connected Neural Network 를 생각해보자.
모든 layer가 완전 연결 layer 로 구성되어 있어 입력에 대해서 각 픽셀마다 개별적인 weight 들로 선형결합을 하고, 각 class의 결과를 예측하는 네트워크다.
그렇다면 이 네트워크가 이미지 분류 문제도 잘 해결할 수 있을까?
각 class 에 대응하는 weight 를 통해 데이터 평균 프로토타입 이미지를 만들어내는데 이 이미지가 해당 class의 모든 이미지를 대표할 수 없다는 것이 가장 큰 단점이다.
예를 들어, crop된 같은 class 이미지가 입력으로 주어진다면, 잘 예측하지 못할 것이다.
그렇게 해서 CNN이 등장하게 됐다.
locally connected neural network 로서 파라미터 연산이 효율적이고, local feature도 학습할 수 있다.
-> CV의 backbone 모델로 많이 사용
2. AlexNet
- 5개의 Conv layer, 3개의 Fully connected layer 로 구성된 8layer model
- 데이터 증강을 통해 대규모 데이터로 학습 -> 오버피팅 해결
- 2개의 GPU 로 분산학습
- ReLU 활성화 함수 사용
- Dropout 기법 사용
- LRN (지역 응답 정규화) : feature map 각각의 뉴런에 대해 주변 뉴런들의 활성화 정도에 의해 정규화 수행, 활성화 값의 분포를 균형있게 유지
* receptive field (수용영역) : 한 픽셀에 해당하는 특징을 어느정도 범위의 값들이 설명하는지를 나타냄. 다시 말하면 해당 픽셀은 수용영역밖의 정보는 담고 있지 않다.
K * K의 conv.filter 에 1 stride, P*P pooling layer -> (P+K-1)*(P+K-1) 크기의 수용영역
3. VGGNet
- 16, 19 layer로 구성
- 13개의 Conv layer, 3개의 Fully connected layer 로 구성 (6개의 block)
- 큰 커널 대신 작은 커널 (3*3) 여러개를 쌓아 파라미터 수를 크게 줄이고, 큰 수용영역을 가지고, layer사이 nonlinear 활성화함수 더 많이 사용
- ReLU 활성화 함수 사용
- 파인튜닝 없이 다른 작업에도 성능이 좋아 좋은 일반화 성능을 가짐
그렇다면 층을 깊게 쌓으면 쌓을 수록 성능이 좋아지나? -> 꼭 그런것은 아님 (기울기 폭발, 기울기 소실, 오버피팅 발생)
4. ResNet
- 깊은 신경망을 효율적으로 학습할 수 있도록 설계된 network
- residual block 도입 : 일반적인 네트워크가 층이 깊어질수록 문제가 발생 (학습할 양이 너무 많아짐) 하므로 잔차학습 개념 도입 (입력과 출력 사이의 차이를 학습하도록 함)
- shortcut connection (기울기 소실 문제 해결) : shotcut을 만들어서 그래디언트가 그대로 흘려주는 것으로 해결
- skip connection : 입력 피처가 출력 피처까지 여러개의 조합을 만들어서 풍부한 특징을 가지도록 모델링 (2^n 가능)
현재도 backbone model 로 VGGNet과 ResNet이 많이 사용되고 있다.
'AI Tech 7기 > Computer Vision' 카테고리의 다른 글
DreamFusion (1) | 2024.09.06 |
---|---|
AE(Auto Encoder), VAE(Variational Auto Encoder) (1) | 2024.09.04 |
CNN 시각화 (0) | 2024.08.29 |
Vision Transformer (0) | 2024.08.29 |