1. 모델 이해 (Understanding Model)
1) 모델은 어떻게 이해할까??
딥러닝 모델의 작동 방식을 이해하는 것은 복잡한 과정이지만, 그 근본적인 원리는 비교적 간단하다.
우리는 데이터를 입력으로 주고, 모델은 그 데이터를 처리하여 예측을 내놓는다.
하지만 그 과정에서 모델이 실제로 데이터를 어떻게 이해하고,
왜 특정한 결과를 도출하는지에 대한 이해는 어려울 수 있다.
Model은 어떻게 복잡한 데이터를 이해 할까??
딥러닝의 Model 에서 집중적으로 봐야할 것은 그 안에 시스템이다.
이 모델이 무엇이길래?? 어떻게 구성되어 있길래?? 학습을 어떻게 하는거지??
모델의 근간에 대해서 이해를 해보자.
2) Inductive Bias (귀납적 편향)
위의 표는 딥러닝의 구성 요소들이 어떻게 데이터 내의 관계와 패턴을 다루고,
그 과정에서 어떤 편향과 불변성을 가지는지를 잘 보여줍니다.
각 구성 요소는 서로 다른 데이터 특성에 맞게 설계되었습니다.
즉, 특정 관계적 패턴(데이터, 이미지)에 적합한 방식으로 학습하는 경향이 있다는 말이다.
- Component (구성 요소):
- 딥러닝에서 사용되는 네 가지 주요 구성 요소를 나타냅니다:
- Fully connected
- Convolutional
- Recurrent (순환)
- Graph network
- 딥러닝에서 사용되는 네 가지 주요 구성 요소를 나타냅니다:
- Entities (개체):
- 각 구성 요소가 처리하는 데이터의 기본 단위를 나타냅니다.
- Fully connected는 개별 유닛(노드)을 처리합니다.
- Convolutional은 그리드(grid) 형식의 요소, 즉 이미지의 픽셀이나 필터링된 값들을 처리합니다.
- Recurrent는 시계열 데이터나 순차적인 데이터의 각 시점을 처리합니다.
- Graph network는 그래프 구조의 노드를 처리합니다.
- 각 구성 요소가 처리하는 데이터의 기본 단위를 나타냅니다.
- Relations (관계):
- 개체 간의 관계 유형을 나타냅니다.
- Fully connected는 모든 유닛이 모든 다른 유닛과 연결되는 All-to-all (모두-모두) 관계를 가집니다.
- Convolutional은 지역적 패턴을 찾기 위한 Local (지역적) 관계를 형성합니다.
- Recurrent는 시간적인 순서에 따라 Sequential (순차적) 관계를 형성합니다.
- Graph network는 노드 간의 Edges (엣지, 연결) 관계를 형성합니다.
- 개체 간의 관계 유형을 나타냅니다.
- Relations inductive bias (관계적 귀납적 편향):
- 각 구성 요소가 데이터를 처리할 때 선호하는 관계나 패턴을 나타냅니다.
- Fully connected는 관계적 편향이 약한 반면(Weak),
- Convolutional은 데이터의 지역성(Locality)을 잘 반영합니다.
- Recurrent는 순차적(Sequentiality) 패턴을 반영합니다.
- Graph network는 임의적(Arbitrary) 관계를 잘 처리합니다.
- 각 구성 요소가 데이터를 처리할 때 선호하는 관계나 패턴을 나타냅니다.
- Invariance (불변성):
- 각 구성 요소가 처리할 때 불변성을 가지는 특성들을 나타냅니다.
- Convolutional은 공간적 변환(Spatial translation)에 불변적입니다.
즉, 이미지에서 동일한 패턴이 위치가 변하더라도 동일하게 처리됩니다. - Recurrent는 시간적 변환(Time translation)에 불변적입니다.
- Graph network는 노드와 엣지의 순열(Node, edge permutations)에 불변적입니다.
즉, 그래프의 구조가 변하지 않는 한 순서가 바뀌어도 동일하게 처리됩니다.
- Convolutional은 공간적 변환(Spatial translation)에 불변적입니다.
- 각 구성 요소가 처리할 때 불변성을 가지는 특성들을 나타냅니다.
3) Inductive Bias 이해 및 예시
1. CNN (Convolutional Neural Network)
CNN은 여러 커널을 이용해 이미지 내의 패턴을 파악하는 모델입니다. 중요한 특징은 어떤 feature가 이미지의 어디에 있든지 커널을 공유함으로써 동일하게 인식할 수 있다는 점입니다. 이로 인해 패턴을 빠르게 찾아내고, 수렴 속도도 빠르다는 장점을 가집니다.
- CNN은 처음에는 단순한 패턴을 찾고, 레이어가 깊어질수록 점차 더 복잡하고 의미 있는 특징을 학습합니다.
- 이러한 방식으로 이미지의 Local 패턴에 집중하며,
적은 연산으로도 이미지의 중요한 특징을 효과적으로 학습할 수 있습니다.
CNN의 장점은 이미지가 어디에서 나타나든 동일한 패턴을 인식하고,
단순한 특징에서부터 복잡한 특징까지 차례대로 학습할 수 있다는 것입니다.
정리하면 커널을 공유하면서 하나의 눈으로 이미지를 파악한다,
좀 더 명확하게 말하면 "커널 공유를 통해 동일한 필터가 이미지의 모든 위치에 적용된다" 라고 말할 수 있습니다.
이는 CNN이 공간 변환에 불변성을 가지게 되는 이유입니다.
2. Transformers
Transformers는 self-attention 메커니즘을 기반으로 입력 데이터의 중요도를 파악하고 의사결정을 내리는 모델입니다. q(query), k(key), v(value)로 이루어진 Fully connected Layer을 사용해 입력 간의 상호 연관성을 계산합니다.
- CNN에 비해 이미지를 이해하는데 시간이 오래 걸리는 경향이 있으며, 중요도를 파악하는 과정이 복잡합니다.
- CNN은 지역적인 패턴에 집중하는 반면,
Transformers는 전체 데이터를 동시에 파악하여 다음 레이어에 전달하는 방식을 취합니다. - Transformers는 모든 유닛이 서로 연결되어 있어, 넓은 사이즈의 자유도를 가지고 다양한 의미를 처리할 수 있습니다.
- 특히, 입력의 중요도를 동적으로 가중할 수 있다는 것이 큰 장점입니다.
Transformers는 CNN과 달리 멀리 떨어진 패턴 간의 상호작용을 고려하여 더 복잡한 데이터를 처리하는 데 적합합니다.
또 다른 예시를 보면서 더 이해를 해보자.
CNN은 무조건 이미지 표현에만 쓸까??
텍스트를 학습할 때 CNN 의 구조를 사용하기도 한다.
3. 1-D CNN과 텍스트 처리
1-D CNN은 한 방향으로만 CNN 연산을 적용하는 방식으로, 텍스트 처리에도 사용할 수 있습니다.
텍스트 데이터의 경우, 각 단어를 임베딩하여 1-D CNN에서 처리할 수 있습니다.
이는 텍스트의 지역적 특성을 파악하는 방식으로 이해할 수 있으며,
특히 N-gram 단위로 텍스트를 처리하는 것과 유사합니다.
1-D CNN이 텍스트를 이해하는 방식은 N-gram 기반의 인코딩과 닮아 있습니다.
CNN의 지역적 특성을 활용하여 텍스트의 일부분에서 중요한 패턴을 학습할 수 있으며,
이는 이미지 처리뿐만 아니라 텍스트에서도 효과적입니다.
이 사실을 통해 우리는 CNN이 지역적 특성을 파악하는 데 용이하다는 점을 알 수 있으며, 모델을 선택할 때 그 특징에 맞는 문제에 적합한 모델을 선택하는 것이 중요하다는 것을 알 수 있습니다.
4. Semantic Segmentation과 CNN의 문제 해결 (U-Net 구조를 바탕으로)
Semantic segmentation은 이미지 내에서 물체가 어느 영역에 위치하는지 의미 단위로 분할하는 작업입니다.
이 작업은 이미지의 의미(Semantic)를 파악하여 Local 정보를 통해 대상을 구분하는 것을 목표로 합니다.
그러나 CNN에는 한 가지 문제가 있었습니다. 레이어가 깊어질수록, Max pooling 과정을 통해 중요한 로컬리티 정보가 점차 사라지면서 처음에 학습했던 지역적인 특징이 퇴색된다는 것이 문제였습니다. 즉, 처음에 학습했던 Low 레벨의 지역적 정보가 레이어가 깊어지면서 손실되는 문제가 있었습니다.
이 문제를 해결하기 위해, 로컬리티 정보를 복원하는 과정(expanding pass)을 도입했습니다. 하지만 이 과정만으로는 처음의 Low 레벨 feature를 완벽하게 복원할 수 없었습니다. 그래서 U-Net 구조에서는, 초기의 Low레벨 feature를 복사(copy)하여 나중에 결합(crop and merge)하는 방식으로 Local 정보를 복원합니다. 이렇게 결합된 레이어는 High 레벨과 Low 레벨 정보를 모두 반영하여, 더 나은 세그멘테이션 성능을 발휘할 수 있게 합니다.
이미지에서 볼 수 있는 U-Net 구조는, 왼쪽에서 지역적인 정보를 추출하는 경로를 통해 특징을 점진적으로 요약하고, 오른쪽에서는 추출된 정보를 복원하는 경로를 따라 High 레벨 정보와 Low 레벨 정보를 결합합니다. 이를 통해 지역적 특성과 의미적 특성을 모두 고려한 정확한 세그멘테이션이 가능해집니다.
Tip.
Low 레벨 정보: 선, 모서리, 색상 변화 등 기본적인 시각적 패턴이나 단어, N-gram 같은 기본 텍스트 패턴
High 레벨 정보: 사람, 물체, 사물처럼 추상적이고 복잡한 개념을 말하며, 여러 Low 레벨 정보를 종합해서 나오는 정보
따라서 모델을 선택할 때는, Inductive bias(귀납적 편향)을 고려하여 각 모델의 특징을 이해하고, 해당 문제에 적합한 모델을 선택하는 것이 중요합니다. U-Net은 이러한 귀납적 편향을 바탕으로 지역적 특성을 잘 복원하여 의미적인 분할을 수행하는 데 적합한 모델입니다.
4) 결론
Inductive bias 의 의미를 다시 생각해보자.
모델을 선택할 때는, 주어진 데이터를 어떻게 바라보고 문제를 해결할 것인가를 고려해야 합니다.
단순히 "이미지는 CNN"이라는 식의 고정된 사고방식에서 벗어나, 모델이 가진 특성을 이해하는 것이 중요합니다.
모델은 각기 다른 Inductive Bias를 가지고 있으며, 이는 모델이 데이터를 어떤 관점에서 바라보고 처리할지를 설명하는 요소입니다. Inductive Bias를 잘 이해하면, 특정 데이터에 대해 어떤 모델이 적합할지 결정할 수 있으며, 모델 선택의 자유도가 크게 높아집니다.
이미지에서 보듯이, 단순히 데이터의 종류(예: 이미지, 텍스트)에 따라 모델이 자동으로 결정되는 것은 아닙니다. 데이터와 문제의 특성에 맞춰 가장 적합한 표현(Representation)을 낼 수 있는 모델을 가정해야 합니다.
모델 선택의 배경
모델을 선택하는 것은 쉬운 일이 아닙니다. 선택의 근거가 되는 요소들은 다음과 같습니다:
- 논문에서 말하는 모델의 배경
해당 모델이 어떻게 설계되었고, 어떤 문제를 해결하기 위해 만들어졌는지에 대한 배경을 이해해야 합니다. - 벤치마크 데이터 set
논문에서 소개된 벤치마크 데이터셋의 특성을 참고하여 유사한 데이터에 모델을 적용할 수 있는지 고려합니다. - 경험치
과거의 경험을 통해 어떤 모델이 특정 데이터에서 더 잘 동작하는지에 대한 통찰을 얻을 수 있습니다.
결국,
어떤 관점에서 데이터를 바라보느냐에 따라 모델 선택의 폭이 달라집니다.
다양한 모델의 특성과 Inductive Bias를 이해하고, 문제 해결에 가장 적합한 모델을 선택하는 것이 중요하다.
2. CNN vs Transformer
어떤 환경에서 어떤 모델을 선택하는게 좋을까?? 라는것을 생각해보자.
1) CNN
CNN(Convolutional Neural Network)은 시각적 특징을 커널을 통해 계층적으로 표현하는 구조를 가지고 있습니다. 처음에는 단순한 패턴을 찾다가, 계층이 깊어질수록 점점 더 의미적인 관점으로 데이터를 추론하려고 합니다.
최근에는 CNN 성능에 대한 논의가 있지만, ViT(Vision Transformer)와 비교해도 CNN만의 강점을 무시할 수 없습니다. CNN은 여전히 시각적 특징을 처리하는 데 강력한 모델이며, CNN의 성능을 개선하려는 여러 논문들이 계속해서 발표되고 있습니다.
CNN은 이미지와 같은 Grid 형태의 데이터를 처리하는 데 최적화되어 있으며, Convolutional layer와 Pooling layer를 통해 특징을 추출하고, 마지막에는 Fully connected layer로 결과를 예측합니다. 이 과정에서 점점 더 복잡한 시각적 특징을 학습하여, 최종적으로 의미적이고 고수준의 정보를 바탕으로 예측을 수행합니다.
CNN의 성능이 절대적으로 떨어지는 것이 아니며, 그 장점을 극대화하는 연구들이 활발히 진행되고 있습니다.
그 장점을 극대화한 모델에서 ConvNeXt 을 말할 수 있겠다.
- ConvNeXt와 ViT 비교
- ViT(Vision Transformer)는 성능이 뛰어난 모델로 잘 알려져 있으며,최근 많은 연구와 실험에서 널리 사용되고 있습니다.
- 하지만 **CNN(Covolutional Neural Network)**도 여전히 여러 장점을 가지고 있어서 많이 사용되고 있으며, ConvNeXt는 이러한 CNN 계열 모델을 다시 설계하여 성능을 높이려는 시도입니다.
- ConvNeXt의 특징:
- ConvNeXt는 표준 ConvNet의 단순성과 효율성을 유지하면서도 성능을 크게 향상시켰습니다.
- ImageNet 데이터셋에서 SOTA(최고 성능) 결과를 달성하였으며, 이는 ConvNeXt가 여전히 CNN 기반 모델로서도 강력한 성능을 발휘하고 있음을 보여줍니다.
- 그래프 설명:
- 왼쪽 그래프는 ImageNet-1K로 훈련된 모델들의 성능을 보여줍니다. ConvNeXt가 Swin Transformer, ViT와 비교해도 높은 정확도를 보이는 것을 확인할 수 있습니다.
- 오른쪽 그래프는 ImageNet-22K로 사전 학습(pre-trained)된 모델들의 성능을 보여주고 있으며, ConvNeXt는 이 데이터셋에서도 뛰어난 성능을 기록하고 있습니다.
- 그래프의 원의 크기는 각 모델의 계산 비용(GFLOPs)을 나타냅니다. ConvNeXt는 더 높은 성능을 보이면서도 ViT 및 Swin Transformer와 유사한 계산 비용을 요구합니다.
ConvNeXt는 기존 CNN 아키텍처를 개선하여, 단순성과 효율성을 유지하면서도 최신 Transformer 모델들과 경쟁할 만한 성능을 발휘하고 있습니다. ViT가 주목받고 있지만, CNN 기반의 ConvNeXt도 SOTA(State of the Art)를 달성하며 여전히 강력한 선택지가 될 수 있음을 보여줍니다.
2) Transformers
1. Transformer의 주요 특징
- 원래 NLP에서 제안됨: Transformer는 텍스트와 같은 순차 데이터(sequence data*를 처리하기 위한 모델입니다. 이전에는 RNN(Recurrent Neural Network) 또는 LSTM(Long Short-Term Memory)과 같은 모델들이 주로 사용되었으나, Transformer는 이러한 순차 처리의 한계를 극복하기 위해 개발되었습니다.
- Encoder와 Decoder로 구성됨: Transformer는 Encoder-Decoder 구조로 이루어져 있습니다.
- Encoder는 입력 데이터를 처리하여 embedding 으로 변환합니다.
- Decoder는 이 표현을 받아서 최종적으로 출력(예: 텍스트, 이미지 등)을 생성하는 역할을 합니다.
- Self-Attention 메커니즘: Transformer의 핵심은 Self-Attention 메커니즘입니다. 이는 입력의 각 부분이 다른 모든 부분과 어떻게 연관되어 있는지를 동적으로 계산하여, 중요한 부분에 가중치를 더 부여하는 방식으로 동작합니다. 이를 통해 중요한 정보에 더 많은 집중을 할 수 있습니다.
2. Transformer의 내부 구조
이미지 오른쪽의 Encoder layer와 Decoder layer 구조를 보면, Transformer는 다음과 같은 구성 요소들로 이루어져 있습니다:
- Multi-Head Attention: 입력 데이터의 서로 다른 부분 간의 상호작용을 계산하며, 여러 개의 Attention 메커니즘을 병렬로 처리하여 더 많은 정보를 학습할 수 있습니다.
- Add & Norm: 각 레이어의 출력을 정규화(Normalization)하고, 입력에 다시 더하는 구조입니다. 이를 통해 모델의 안정성을 높입니다.
- Feed Forward: Attention 메커니즘이 적용된 후, 비선형 변환을 통해 더 복잡한 특징을 학습할 수 있도록 하는 레이어입니다.
- Masked Multi-Head Attention: Decoder에서 사용되며, 시퀀스의 미래 정보를 차단(masking)하여 순차적으로 데이터를 처리합니다.
Transformer는 Self-Attention 메커니즘을 기반으로 동작하는 Encoder-Decoder 구조를 가지고 있으며, NLP 분야에서 시작해 이미지 처리 등 다양한 영역으로 확장되었습니다. 이 모델은 데이터를 처리할 때 중요한 부분을 동적으로 가중하는 방식으로, 기존 순차 처리 모델들의 한계를 넘어선 성능을 발휘하고 있습니다.
3) ViT (Vision Transformer)
- 이미지 분류에 Transformer 적용:
- Transformer는 원래 시퀀스 데이터(예: 텍스트)를 처리하기 위해 개발되었지만, ViT는 이 구조를 이미지 분류에 활용합니다.
- 이미지를 패치(patch)로 분할하고, 각 패치를 토큰처럼 처리하여 Transformer의 입력으로 사용합니다.
- Patch Embedding:
- 이미지를 일정 크기의 패치로 분할한 후, 각 패치를 flatten하여 선형 변환을 적용합니다. 이 패치들은 Transformer가 처리할 수 있는 형식으로 변환됩니다.
- 또한, 각 패치에는 위치 임베딩을 추가하여 Transformer가 이미지 내에서 패치의 위치 정보를 학습할 수 있도록 합니다. 위치 임베딩을 통해 Transformer는 순서 정보를 보완할 수 있습니다.
- Transformer Encoder:
- Transformer에서 중요한 Self-Attention 메커니즘을 사용하여, 패치 간의 중요한 관계를 학습합니다. 각 패치가 다른 모든 패치와 상호작용하며 중요한 정보에 더 많은 가중치를 부여합니다.
- Feed-forward layer는 추가적인 비선형 변환을 통해 패치 표현을 더욱 정교하게 만듭니다.
- 이 과정을 통해 패치 간의 계층적 표현을 학습합니다.
- Classification Head:
- Transformer의 출력은 Classification Head로 전달됩니다. 이 Head는 일반적으로 Global Average Pooling과 선형 레이어로 구성되며, 이미지가 어느 클래스에 속하는지 예측하는 확률 값을 출력합니다.
- ViT는 주로 이미지 분류 작업에 사용되며, 마지막에 클래스 확률을 예측하는 방식으로 결과를 도출합니다.
Vision Transformer (ViT)는 이미지를 작은 패치로 나누어, 각 패치를 시퀀스로 변환한 후 Transformer로 처리하는 방식입니다. 패치 간의 관계를 Self-Attention을 통해 학습하며, 마지막에 Classification Head를 통해 이미지를 특정 클래스에 분류합니다. ViT는 기존 CNN 구조와 다르게 이미지를 시퀀스처럼 처리하는 혁신적인 접근 방식으로, 특히 대규모 데이터셋에서 강력한 성능을 발휘합니다.
4) CNN 계열 모델 vs Transoformer 모델 어떻게 선택해야 하는가??
- Local Pattern 학습
- CNN: 지역적 특성(Local Pattern)을 잘 파악하며, 이미지를 처리할 때 로컬 패턴을 효과적으로 학습합니다.
- Transformer: 지역적 패턴 학습이 CNN보다 어려울 수 있습니다. 대신 여러 패치 간의 관계를 파악하는 데 더 중점을 둡니다.
- 계산 효율성
- CNN: 가중치 공유(weight sharing)를 통해 필터를 재사용하며, 이미지 처리에서 계산 효율이 높습니다.
- Transformer: 모든 패치 간의 관계를 계산하는 Self-Attention 메커니즘을 사용하므로, 더 많은 자원과 메모리가 필요합니다.
- 가변 크기 입력
- CNN: 입력 이미지의 가로세로 비율이 다르면 처리하기 어렵고, 일반적으로 Resizing을 통해 이미지를 고정 크기로 조정해야 합니다.
- Transformer: 이미지를 패치 단위로 분할하기 때문에 가변 크기의 입력도 매끄럽게 처리할 수 있습니다.
- 장거리 의존성(Long-Range Dependencies)
- CNN: 하나의 필터가 보는 영역이 제한적이어서 장거리 의존성을 학습하는 데 상대적으로 약할 수 있습니다.
- Transformer: Self-Attention 메커니즘을 통해 장거리 의존성을 효과적으로 학습할 수 있습니다.
- 데이터 효율성
- CNN: 데이터가 적어도 로컬 패턴을 잘 학습하기 때문에 효율적입니다. 하지만 복잡한 문제에서는 한계가 있을 수 있습니다.
- Transformer: 많은 데이터를 필요로 하며, 대량의 레이블된 데이터가 있을 때 더 효과적으로 학습할 수 있습니다. 하지만 파운데이션 모델로서 다양한 예측을 할 수 있다는 장점이 있습니다.
- local pattern
cnn 은 지역적 특성을 파악하려고 함
trans 여러 관계를 파악을 함
- 계산 효율성
cnn 필터를 재사용하면서 이미지를 이해하기 때문에 w 공유라는 특징이 있고
tran 는 모든 연산을 확인 하면서 많은 자원이 필요함
- 가변크기 입력
cnn 이미지의 크기가 가로세로 사이즈를 다르면 사용 못하고, 스케일링 넣고 resize
trans 는 패치단위로 조정하기 때문에 인풋으로 넣기 때문에 매끄럽게 처리 가능
- 장거리 의존성
cnn 하나의 필터가 바라보는 것을 결정해서 layer 넘기고 해서 학습하기 때문에 연결성이 높지 않음
trans 그것을 다 계산하고 넘어가기 때문에 효과가 좋다.
- 데이터 효율적
cnn 은 데이터가 적어도 커널로 인해서 로컬리티로 해서 특징을 잘 파악한다. 복잡한 문제에 대해서는 좀 못한다.
trnas 너가 알아서 중요한것이 체크해라 하면서 학습하기때문에 오래 학습해야한다.
파운데잍션 모델이다, 큰 모델을 가지고 다양한것을 예측해야하는 경우가 있는데 이럴때문 trans 좋다.
데이터와 자원이 많으면 trans 가 좋을 수 있다.
데이터가 적고 많고에 따라 cnn, trans 편견을 가지지 말고,
이것저것 해보면서 경험을 쌓자.
개의치 말고 사용해보자.
이러한 관점으로 model 를 선택하자.
데이터의 양과 자원의 양에 따라 CNN이나 Transformer를 선택하는 것이 좋다.
CNN은 데이터가 적을 때나 지역적 패턴 학습이 중요할 때 유리하며,
Transformer는 대량의 데이터와 자원이 있을 때 더 좋은 성능을 낼 수 있다.
모델에 대한 편견을 가지지 말고 다양한 모델을 시도하면서 경험을 쌓자.
데이터 특성과 문제에 맞는 모델을 선택하는 것이 중요하다!
3. Hybrid Models
CNN 모델과 Transformer 모델을 합치면 더 좋지 않을까??
각각의 장점만 가져와서 모델을 만들면 더 좋지 않을까??
그것이 Hybrid Models 이다.
CoAtNet (A Hybrid Architecture)
Key Insights
- Depthwise Convolution과 Self-Attention을 통합한 구조로, 각 레이어에서 지역적 패턴과 전역적 패턴을 동시에 학습합니다.
- Conv 레이어와 Attention 레이어를 체계적으로 쌓는 방식으로 설계되었습니다. 이를 통해, CNN의 로컬 패턴 인식 능력과 Transformer의 전역 패턴 인식 능력을 동시에 활용할 수 있습니다.
아키텍처 설명
- 초기 단계(CNN): 모델의 처음 부분에서는 CNN을 사용하여 지역적 정보를 학습합니다. CNN은 이미지의 저수준 특징(엣지, 모서리 등)을 효율적으로 학습합니다.
- 후기 단계(Attention): 모델의 중후반 부분에서는 Self-Attention 메커니즘을 사용하여 의미적이고 전역적인 정보를 파악합니다. 이 단계에서 이미지는 다양한 요소 간의 상호작용을 학습합니다.
CoAtNet의 주요 구조
- S-stage 설계: CoAtNet은 S0부터 S4까지 여러 단계로 구성되어 있으며, 각 단계에서 Conv 레이어(C)와 Transformer(T) 레이어를 교차로 배치하여 정보를 처리합니다.
- MBConv 블록과 Squeeze-and-Excitation(SE) 레이어 사용: MBConv 블록은 모바일 네트워크에서 자주 사용되는 경량화된 컨볼루션 방식으로, 더 적은 연산량으로 더 나은 성능을 낼 수 있습니다. SE 레이어는 중요 채널에 더 많은 가중치를 부여하여 성능을 최적화합니다.
장점
- 적은 데이터로도 잘 학습: CNN의 특성 덕분에 데이터가 적더라도 지역적 패턴을 잘 학습할 수 있어, 상대적으로 적은 데이터로도 좋은 성능을 낼 수 있습니다.
- 빠른 학습 속도: CNN 기반 구조 덕분에 빠르게 학습이 가능합니다. 특히, 대량의 사전 학습 없이도 우수한 성능을 낼 수 있습니다.
- 복잡한 문제 처리: Transformer의 Self-Attention을 통해 복잡한 장거리 의존성 문제를 효율적으로 처리할 수 있습니다. 특히, 많은 데이터를 활용할 수 있을 때 Transformer의 장점이 극대화됩니다.
CoAtNet은 CNN과 Transformer의 장점을 결합한 하이브리드 모델로, 지역적 패턴과 전역적 패턴을 동시에 학습할 수 있습니다. 이는 적은 데이터에서도 우수한 성능을 발휘하며, 복잡한 의사결정이나 대규모 데이터셋을 처리하는 데도 적합한 모델입니다.
.
위의 표를 보면 CoAtNet 은 적은 데이터로 더 나은 결과를 보여준다.
또한 수렴이 바르고 큰 데이터셋에 대한 우수한 Scalability 를 가지고 있다.
이러한 Hybrid 모델을 더 자세히 보면 싶으면 아래 모델의 논문을 보자.
ConViT
CvT
LocalViT
어떤 딥러닝 프로젝트를 진행 할때
막연한 과정에, 막연한 결론을 내봤자, 막연한 경험이 될뿐 이다
그래서 근간의 이해하면서 공부와 프로젝를 진행 해야한다.
이상 입니다!
'AI Naver boost camp > [Week 06] - CV 프로젝트' 카테고리의 다른 글
[02] - 다양한 Image Format (0) | 2024.09.10 |
---|---|
[01] - 딥러닝 문제 정의 및 구체화 (2) | 2024.09.10 |
댓글