일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Python
- 표집분포
- unstack
- Comparisons
- namedtuple
- subplot
- seaborn
- linalg
- VSCode
- python 문법
- 부스트캠프 AI테크
- dtype
- 딥러닝
- pivot table
- boolean & fancy index
- 최대가능도 추정법
- Python 특징
- Operation function
- Python 유래
- 카테고리분포 MLE
- BOXPLOT
- type hints
- scatter
- 정규분포 MLE
- Numpy data I/O
- ndarray
- Array operations
- groupby
- 가능도
- Numpy
- Today
- Total
또르르's 개발 Story
[31] Image Classification (1) 본문
1️⃣ K Nearest Neighbors
세상에 있는 모든 데이터를 다 저장하고 있다면 Image Classification을 어떻게 수행하면 될까요?
바로 간단한 K Nearest Neighbors (K-NN) 방법을 사용하면 됩니다.
K Nearest Neighbors 방법에서는 query data(회색)을 찾으려고 할 때,
query data 근처에 포진하고 있는 k개의 이웃 데이터를 데이터베이스에서 찾고, 이웃 데이터들이 가지고 있던 label 정보를 기반(label의 개수)으로 해서 query data의 label을 정해주는 방법입니다.
하지만 모든 데이터들을 담기에는 시간 복잡도, 공간 복잡도가 너무 커집니다.
- Time Complexity (e.g., linear search) => O(n), n=infinite
- Memory Complexity => O(n), n=infinite
2️⃣ Image Classification using CNN
Neural Networks는 이러한 방대한 데이터를 제한된 복잡도의 시스템에 압축해서 녹여넣는 방법입니다.
그렇지만 Fully connected layer를 Image Classification에 사용하게 되면 두 가지 문제가 있습니다.
(1) layer가 한층으로 단순해져서 W에 보여지는 평균 이미지 같은 것 외에는 표현이 되지 않습니다.
아래 그림과 같이 가중치 W에 보이는 사진은 각각의 label들의 blur 처리한 느낌으로 밖에 표현되지 않습니다.
(2) Crop이나 Resize와 같이 템플릿에 맞지 않는 사진을 넣었을 때 NN이 이상한 결과를 출력한다는 것을 알 수 있습니다.
위와 같은 문제점으로 Locally Connected layer 개념이 탄생하게 되었습니다.
Locaaly Connected layer는 모든 픽셀을 고려하는 Fully connected layer와 다르게 영상의 공간적인 특성을 고려해서 국부적인 영역들만 connection을 고려한 layer입니다. (돌아다니면서 뽑음)
Locally Connected layer를 사용하면서 필요한 parameter가 획기적으로 줄어들게 됩니다.
위와 같이 필요한 local 영역들만 connection을 진행하면서 여기에 convolution을 씌어주게 되면, Convolution nerual network 즉, CNN입니다.
CNN은 CV task들의 BackBone network(기반이 되는 network)입니다.
CNN을 사용해서 Image Classification, Clasification + Regression, Pixel-level classification 등 여러 task들을 수행할 수 있습니다.
✅ Receptive Field
Layer i+2의 한 점의 값은 Layer i의 모든 점의 정보를 담고 있습니다.
따라서 kernel의 size가 중요하며, kernel size : K x K, pooling layer size : P x P 일때,
input patch size는 (P+K-1) x (P+K-1)입니다.
[32] Image Classification (2)에서 이어집니다.
[32] Image Classification (2)
[31] Image Classification에 이어서 작성합니다. [31] Image Classification (1) 1️⃣ K Nearest Neighbors 세상에 있는 모든 데이터를 다 저장하고 있다면 Image Classification을 어떻게 수행하면 될까요? 바..
dororo21.tistory.com
'부스트캠프 AI 테크 U stage > 이론' 카테고리의 다른 글
[32] Image Classification (2) (0) | 2021.03.09 |
---|---|
[31-1] Annotation data efficient learning (0) | 2021.03.08 |
[30] 퀀트 트레이딩 (Quant Trading) (0) | 2021.03.05 |
[29-1] Creative Commons License (CCL) 분류 (0) | 2021.03.04 |
[29] GLUE와 KLUE (0) | 2021.03.04 |