Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ BOAZ 25기 분석 Base 세션 자료 및 과제 제출 repo

|branch|날짜|세션 내용|
|------|-------|-------|
|Week0|25.07.10|전통 ML: SVM, 로지스틱 회귀, 선형/비선형 회귀, KNN, PCA|
|Week1|25.07.17|딥러닝 기초 (ANN, DNN, CNN)|
|Week2|25.07.24|순환신경망 (RNN, LSTM, GRU) → Seq2Seq 구조|
|Week3|25.07.31|GPU 성능 향상 기법: Gradient Accumulation 등|
Expand All @@ -24,4 +23,4 @@ BOAZ 25기 분석 Base 세션 자료 및 과제 제출 repo
|Week12|25.10.02|VISION 논문 리뷰(미정)|
|Week13|25.10.09|VISION 논문 리뷰(미정)|
***
Github 사용 안내 : [실습 시 Git Hub 사용 가이드라인](https://oval-alligator-fbf.notion.site/Git-Hub-15c6710199ab8171bc44c081bb22aa00?pvs=4)
Github 사용 안내 : [실습 시 Git Hub 사용 가이드라인](https://observant-wax-f96.notion.site/Git-Hub-229c031af4b980479de4cb6d7e73bf90?source=copy_link)
32 changes: 32 additions & 0 deletions ViT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## Introduction
- NLP에서 Transformer가 강한 long-range dependency를 보여주고, 실제로 대규모 corpus를 통해 학습한 모델의 지식을 전이해 다양한 task에 적용 가능한 엄청난 성공을 보임.
- 따라서 CV에서도 CNN에서 발전하여, Attention을 결합하고자 하였지만 하드웨어 가속화 단계에서 보편화에 실패함.
-> Transformer를 Image에 직접적으로 적용시키는 연구를 진행.
## Research Objectives
1. ImageNet보다도 큰 dataset에서 Transformer가 CNN을 능가할 수 있는지 확인
2. Transformer를 바로 CV 분야에 적용
3. Medium-Resolution 이미지에도 모델을 바로 적용 : 기존의 Attention을 응용한 연구가 저해상도 이미지로 제한되었던 점을 극복
## Method
### Architecture
- 이미지를 1차원의 벡터(h x w x c)로 만든 뒤, **Linear Projection**을 통해 D차원으로 변환
- **CLS token** 추가 : BERT의 그것과 유사.
- **Position Embedding** : patch간 상대적 위치 정보를 알 수 없는 1차원 벡터의 한계 극복
- **Transformer Encoder** : LN + Multi-Head Self-Attention -> Residual Connection, LN -> MLP (GELU) + Residual Connection의 구조.
### Fine-Tuning + etc.
- Pre-trained model에서 Prediction Head 제거 후 새 FC Layer 추가 -> downstream task에 맞추어 학습
- Pre-training보다 높은 해상도로 Fine-tuning 시 성능 증가.
- 패치 수가 변할 시 Pre-trained Position Embedding 불일치 -> 2D Interpolation으로 해결.
## Experiment
### Comparison to SOTA
- 기존 SOTA 대비 **높은 정확도** 기록 및 **학습 연산량 감소**
### Position Embedding
- 적용하지 않을 시 성능 저하, 방식에 따른 차이 (1D, 2D, etc.)는 크지 않음. -> 1D로도 충분.
### Data Requirement
- Data가 많을 수록 성능 증가
- 모델이 복잡할 수록 많은 데이터 요구
### Self-Supervision
- 지도 학습에 비해서는 약 4% 낮은 정확도를 보이지만, scratch보다는 약 3% 높은 정확도를 보임. -> 아직 지도 학습을 대체할 수는 없지만, 성능 향상의 가능성을 보여줌.
## Conclusion
CV에 Transformer를 접목하여 SOTA를 달성한 연구이며, 아래와 같은 기여를 함.
- 기존의 Self-Attention을 접목하였던 CV 연구들의 한계를 극복.
- SOTA를 달성하는 우수한 성능을 보였고, 사전 학습 비용 또한 저렴함.
71 changes: 71 additions & 0 deletions YOLO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
## Background & Related Work
### Object Detection
- **Classification (What)**
- 한 이미지에 있는 물체가 무엇인지 알아내는 것
- **Localization (Where)**
- 이미지가 어디에 있는지 찾는 것

### YOLO 탄생 아이디어
#### 기존 접근법(DPM, R-CNN)의 문제점
- Pipeline이 복잡 -> 최적화의 어려움, 느림
- 제한된 범위에서만 object classification이 이루어짐 -> 전역적인 정보를 볼 수 없음
#### YOLO의 차별점
- 하나의 Convolutional network를 사용해 **간단한 구조**를 가짐.
- 예측 시 **전역적인 정보**를 사용함.
- 객체에 대한 generalizable representation을 학습.

## Method
### Unified Detection
1. input image를 $S \times S$ grid로 나눔
2. 각 grid가 B개의 bounding box와 각 box의 confidence score를 예측
3. 각 grid cell이 C개의 conditional class probability를 예측
4. conditional class probability와 confidence prediction을 곱해, 각 box에 대한 **class-specific confidence score**를 구함.

### Network
GoogLeNet에 영감을 받아 설계.
- 24 convolutional layer + 2 fully connected layer
- 1 x 1 reduction layer, 3 x 3 convolutional layer

### Training
#### Pretraining
- ImageNet 1000-class competition dataset으로 훈련.
- 224 x 224 resolution
#### Detection으로의 전환
- 4개의 convolutional layer와 2개의 fc layer 추가
- 448 x 448 resolution (fine-grained visual information을 위해)
- box coordinate를 0과 1 사이 값으로 정규화해 표현
- Leaky ReLU 사용
### Multi-part loss function
- object가 없는 cell의 수가 더 많음. -> object를 가진 cell의 영향력이 감소하여 학습이 약화.
-> 별도의 파라미터를 통해 object가 있을 때의 loss를 증가, 없을 때를 감소시킴.
- 박스 size가 detection 성능에 영향을 주기 때문에 이 또한 학습에 반영해야 함.
-> bounding box의 width와 height의 square root 또한 예측.
### Inference
- Single Forward Pass로 진행
- 같은 객체에 대해 중복 박스가 생성되는 문제 -> NMS를 통해 해결.

## Limitation
- Grid 제약 : 한 셀 당 박스와 클래스의 개수가 제약됨.
- 작은 물체 탐지 취약 : 다운샘플링 + 손실함수 한계로 localiztion error 증가
- Aspect ratio 일반화 어려움
- Loss-Metric 불일치
- NMS의 한계 : 근접 객체 제거 위험

## Experiments
### Comparison
- 다른 탐지기들에 비해 월등이 빠르면서, 안정적인 정확도를 기록
### Error Analysis
- YOLO와 Fast R-CNN의 상위 5개 예측을 5개의 카테고리로 나누어 분류한 결과, 각 분류기의 특징을 파악할 수 있었음.
- YOLO : Localization Error 높음
- Fast R-CNN : Background Error 높음
-> 서로의 단점을 보완해주어, 함께 사용 시 성능 향상을 보임.
### Generalizability
- 다른 모델에 비해 다양한 데이터셋 (VOC, Picasso)에서도 모두 잘 작동함 : 픽셀 수준 차이가 커도 구조적, 맥락적 특징을 잘 잡아냄.
-> 일반화 성능 우수

## Conclusion
객체 탐지 패러다임을 바꾼 모델로, 아래와 같은 기여를 했다고 볼 수 있음.
- **End-to-End Unified Model** : 하나의 네트워크로 모든 과정을 수행.
- **Fastest Real-Time Detector** : 빠르면서 우수한 정확도
- **Strong Generalization** : 새로운 도메인에도 강인 -> 실제 응용 가능