-
Classficiation Model Outlinedeep learning/computer vision 2024. 2. 10. 21:38
Conputer Vision에 있어 주요 Classification Model들의 탄생 배경과 특징, architecture 구성과 의의 및 한계에 대해서 간단하게 요약해보고자 한다. 주요 model에 대해서는 paper review를 통해 자세하게 분석하고, 코드 리뷰까지 해보려고 한다.
Annotiation
- 데이터 집합의 데이터 정보 또는 레이블을 추가하는 프로레스 (데이터에 대한 추가 정보를 제공하는 것)
- 종류 : bounding box, keypoint, segmentaiton
- bounding box : 이미지 내 개체의 위치 및 크기를 정의
- keypoint : joint 혹은 landmark와 같은 개채 내의 특정 관심 지점을 표시
- segmentation : 이미지 내 객체의 경계를 포함하는 것으로, 픽셀 수준에서 가공
CNN (Convolution Neural Network)의 키워드
- convolution layer를 사용하여 feature extraction을 하고, pooling layer를 통해 차원을 줄이고, non-linear activation function을 사용, fully connected layer를 통해 classificatino 수행
- kernel = receptive field
Classification Model
LeNet-5 (1998) : Yann LeCun (★★★★★)
- 이미지 분류 및 인식 작업을 위해 설계된 최초의 딥러닝 모델 중 하나로, CNN Architecture
- Convolution - SubSampling(MaxPooling) - Convolution - SubSampling - FCNN으로 구성
- CNN의 Basic model Architecture
AlexNet (2012) : Alex Krizhevsky (★★★★★)
- 이미지 분류 및 인식 작업을 위한 CNN 기반의 architecture로 ImageNet Dataset에 상당한 성능 향상을 달성한 최초의 딥러닝 모델
- Convolution(ReLu) - MaxPooling - Convolution(ReLu) - MaxPooling - Convolution(ReLu) - Convolution(ReLu) - Convolution(ReLu) - MaxPooling - FCNN(ReLu) - FCNN(ReLu) - FCNN(softmax)
- MaxPool의 용어가 사용되었으며, Conv layer와 Pooling layer의 반복적인 사용을 통해 성능 향상
- CV에 대한 딥러닝 모델의 효과를 입증했다는 점에서 큰 의의
VGGNet (2014) : Karen Simonyan, Andrew Zisserman (★★★★★)
- Convolution과 MaxPooling layer의 여러 스택과 여러 FCNN으로 구성된 간단하고 균일한 architecture로 빠른 훈련이 가능하다는 장점이 있음.
- Convolution - FCNN
- Convolution
- 여러 개의 Stack으로 구성되어 있으며, 각 스택에는 2~3개의 Convolution Layer와 MaxPooling Layer로 구성
- 각 Convolution Layer에서의 filter 사이즈는 동일 (3 * 3)
- 단순하면서도 효과적인 구조를 갖고 있어 이해가 쉬우며, 대규모 Dataset에서 학습된다는 점에서 사전 학습 모델로 많이 사용되며, 전이 학습에 적합
- 이후 다양한 모델의 Backbone 모델로 사용되고 있음
- VGG 뒤에 붙은 숫자는 layer의 갯수
Inception Net (2014) : Chistian Szegedy (aka. GoogleNet) (★★★★★)
- 여러 스케일로 정보를 캡처하고 특징 간의 복잡한 관계를 학습할 수 있는 모델로, 여러 Inception 모듈로 구성
- Convolution Layers
- filter 사이즈가 다른 여러 병렬 Convolution Layer를 사용
- (1*1) : 채널 간의 선형 조합을 수행하여 입력의 차원을 줄이거나 증가시키는 역할 수행
- (3*3) : 공간적인 구조를 감지하는 역할 수행
- (5*5) : 넓은 영역에서의 패턴 감지 역할 수행
- MaxPooling Layer : 이전 layer의 주요 특징을 추출하고 공간 차원을 줄이기 위한 layer
- Concatenation : Convolution Layer와 MaxPooling Layer의 출력값을 연결하여 다음 네트워크 계층으로 전달
- Inception 모듈의 경우, 네트워크가 여러 스케일의 data feature를 학습(다양한 feature를 동시에 고려 가능)하고, 그 결과 값이 차원 축소된 결과값과 함께 다음 계층으로 전달된다는 점에서 다양한 feature 학습이 가능
Inception Architecture ResNet (2015) : Kaiming He (★★★★★)
- 모델의 성능 향상을 위해 Layer의 depth를 확장하는 동시에, 이로 인해 발생하는 degradation problem(Vanishing / Exploding Gradient Problem)을 해결하기 위해 등장한 network model
- Residual Network인 ResNet은 심층 architecture와 신경망에서 발생하는 gradient vanishing 문제를 해결하는 네트워크로, 입력값과 출력값의 Residual Mapping을 학습하는 ‘Residual Learning’이라는 개념을 기반으로 깊은 신경망 모델 구축이 가능
- 이를 위해 Residual Block 개념을 추가
- residual learning : 이전 layer의 결과를 다시 이용하여 학습을 진행하는 것
- 잘 학습된 shallow model에 identity mapping된 layer를 추가하여 network를 깊게 구성하는 layer block
- Shallow model : 적은 수의 layer로 구성된 층으로, 적은 parameters를 갖고 있어 간단하고 직관적인 모델 구조를 갖고 있음
- identity mapping : 입력값을 그대로 출력값으로 매핑하는 것으로, f(x) = x를 의미
- identity mapping을 추가하는 이유 : 네트워크를 깊게 만들면서 발생하는 gradient vanishing 문제를 해결하기 위한 것으로, identity mapping은 input과 output 간의 shortcut 역할을 하여, residual(잔차)를 학습시켜 gradient vanishing을 완화
ResNet Architecture - Plain Network의 경우 input x에 대해 output y = H(x)이고, 모델의 학습은 H(x)를 최적화 하는 것
- ResNet은 identity layer를 shortcut connection으로 추가하여 input과 output을 연결하고, H(x) = F(x) + x (F(x) = H(x) - x를 최적화하는 것으로 변경하고, 이 때 x는 상수이므로 결과적으로 F(x)를 최적화하는 Layer로 간주하는 것
- 이를 통해 graident 계산에 있어서도 원본 x가 유지되어 vanishing 문제 극복
ResNext (2016) : Saining Xie
- ResNet의 architecture를 확장하고 network의 용량과 다양성을 높여 성능을 향상시킨 모델로,
- 네트워크의 병렬 경로 수를 늘려 네트워크가 기능 간의 더 복잡한 관계를 학습할 수 있도록 하는 것
- 그룹화된 convolution layer를 사용하고, 이를 병렬적으로 적영되어 여러 스케일의 불변 특징을 학습할 수 있음
MobileNet (2017) : Andrew G. Howard (★★★★★)
- 계산 효율적으로 설계되어 계산 리소스가 제한된 모바일 및 임베디드 장치에 배포하는 데 적합한 CNN 모델
- 깊이별 분리가 가능한 Convolution Layer를 사용하여 네트워크의 parameter를 절약
- 깊이 분리가 가능한 Convolution layer (Depth-wise Separable Convolution)
- Convolution 연산을 두 단계로 분리하는 기법으로, 채널과 공간 차원을 분리할 수 있다는 idea에서 출발 (일반적인 Convolution에서는 채널 방향과 공간 방향의 convolution을 동시에 수행)
- Depth-wise Convolution과 Point-wise Convolution으로 구성
- Depth-wise Convolution은 각 입력 채널에 대해 3*3 convolution filter가 하나의 feature map을 형성 (각 채널에 대한 독립적으로 연산을 수행) (spatial correlation 계산)
- Point-wise Convolution은 Depth-wise Convolution이 생성한 feature maps에 대해 1*1 convolution fiter를 적용 (cross-channel correlation 계산)
- 깊이 분리가 가능한 Convolution layer (Depth-wise Separable Convolution)
- filter의 크기와 작동 방법을 조정하여 parameter를 줄여 연산의 효율성을 높이는 것이 핵심 목적
DenseNet (2017) : Gao Huang
- 각 계층이 feed-forward 방식으로 다른 모든 계층에 연결되어, 각 layer의 기능을 재사용하여 정보 손실을 줄이는 방법을 적용한 network
- 연산 과정에서의 정보 손실을 줄이기 위해 ResNet의 아이디어를 활용하여 layer를 연속적으로 concatenate하고 잔차를 학습하는 등의 방법을 사용
- 연산량이 많다는 단점이 있으나, 복잡한 관계를 정보 손실을 최소화하며 학습할 수 있고 과적합의 위험을 줄일 수 있다는 점에서 딥러닝 애플리케이션에 널리 사용
ShuffleNet (2018) : Xiangyu Zhang
- 계산 효율적 설계를 통해 계산 리소스가 제한된 모바일 및 임베디드 장치에 배포하는데 적합한 모델
- feature recording의 한 유형인 channel shuffling을 통해 네트워크 계층 간 정보 흐름을 개선하는 것으로, 복잡한 관계의 학습을 위해 feature map의 채널을 재정렬
SE-NET (2018) : Jie Hu (★★★★★)
- Squeeze-and-Excitation Network
- 입력의 전역 정보를 기반으로 네트워크의 feature map을 동적으로 재보정하여 CNN의 성능을 향상시키는 모델
- Squeeze-and-Excitation block을 사용하여 네트워크의 feature map에 가중치를 부여하는 것
- feature map의 공간 차원을 줄여 전역 정보 벡터를 계산하고,
- 이 벡터를 사용하여 가장 중요한 feature를 강조하는 방식으로 feature map에 가중치를 부여
- 표준 CNN Architecture에 residual block과 squeeze-and-excitation block이 추가
- squeeze-and-excitation block은 FCNN과 activation function을 사용하여 전역 정보 벡터를 계산하고 특징 맵의 가중치를 부여하는 network block
EfifcientNet(2019) : Mingxing Tan, Quoc V. Le (★★★★★)
Outline Summary ★ Degradation Problem
- model의 Layer depth가 깊어짐에 따라 Vanishing / Exploding Gradient 문제가 발생하여 성능이 더 약화되는 현
★ Skip connection (U-NET)
- 두 Layer 사이에서 일어나는 연결로, 두 Layer의 출력을 Concatenate하는 연결을 의미
- 네트워크의 여러 층을 건너뛰어 짧은 경로를 형성함으로서 Gradient가 빠르게 전파되도록 하는 역할
★ Residual Connection (ResNet)
- 하나의 Layer에서 입력과 출력 간의 차이(Residual)을 학습하는 방식을 강조하는 것으로,
- 입력이 층을 거치며 변형된 값을 출력에 더하는 방식으로 구현
- 층을 거치면서 발생하는 gradient vanishing 문제를 극복하기 위한 방법
'deep learning > computer vision' 카테고리의 다른 글
ResNet-101 Classification 실습 연습 (0) 2024.02.11 Classification Evaluation Metrics (1) 2024.02.09