diff --git a/README.md b/README.md index fa849fa..0fad825 100644 --- a/README.md +++ b/README.md @@ -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 등| @@ -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) diff --git a/ViT.md b/ViT.md new file mode 100644 index 0000000..caf9d63 --- /dev/null +++ b/ViT.md @@ -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를 달성하는 우수한 성능을 보였고, 사전 학습 비용 또한 저렴함. diff --git a/YOLO.md b/YOLO.md new file mode 100644 index 0000000..b0c60d9 --- /dev/null +++ b/YOLO.md @@ -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** : 새로운 도메인에도 강인 -> 실제 응용 가능 +