또르르's 개발 Story

[31] Image Classification (1) 본문

부스트캠프 AI 테크 U stage/이론

[31] Image Classification (1)

또르르21 2021. 3. 8. 19:21

1️⃣ K Nearest Neighbors

 

세상에 있는 모든 데이터를 다 저장하고 있다면 Image Classification을 어떻게 수행하면 될까요?

바로 간단한 K Nearest Neighbors (K-NN) 방법을 사용하면 됩니다.

 

K Nearest Neighbors 방법에서는 query data(회색)을 찾으려고 할 때,

query data 근처에 포진하고 있는 k개의 이웃 데이터를 데이터베이스에서 찾고, 이웃 데이터들이 가지고 있던 label 정보를 기반(label의 개수)으로 해서 query data의 label을 정해주는 방법입니다.

 

https://medium.com/capital-one-tech/k-nearest-neighbors-knn-algorithm-for-machine-learning-e883219c8f26

 

하지만 모든 데이터들을 담기에는 시간 복잡도, 공간 복잡도가 너무 커집니다.

 

  • Time Complexity (e.g., linear search) => O(n), n=infinite

  • Memory Complexity => O(n), n=infinite

 

 

2️⃣ Image Classification using CNN

 

Neural Networks는 이러한 방대한 데이터를 제한된 복잡도의 시스템에 압축해서 녹여넣는 방법입니다.

 

https://www.edwith.org/bcaitech1

 

그렇지만 Fully connected layer를 Image Classification에 사용하게 되면 두 가지 문제가 있습니다.

 

(1) layer가 한층으로 단순해져서 W에 보여지는 평균 이미지 같은 것 외에는 표현이 되지 않습니다.

아래 그림과 같이 가중치 W에 보이는 사진은 각각의 label들의 blur 처리한 느낌으로 밖에 표현되지 않습니다.

 

[SlideCredit:Fei-FeiLi,JustinJohnson,SerenaYeung,CS231n]

 

(2) Crop이나 Resize와 같이 템플릿에 맞지 않는 사진을 넣었을 때 NN이 이상한 결과를 출력한다는 것을 알 수 있습니다.

 

https://www.edwith.org/bcaitech1

 

위와 같은 문제점으로 Locally Connected layer 개념이 탄생하게 되었습니다.

Locaaly Connected layer는 모든 픽셀을 고려하는 Fully connected layer와 다르게 영상의 공간적인 특성을 고려해서 국부적인 영역들만 connection을 고려한 layer입니다. (돌아다니면서 뽑음)

Locally Connected layer를 사용하면서 필요한 parameter가 획기적으로 줄어들게 됩니다.

 

https://www.gitbook.com/?utm_source=legacy&utm_medium=redirect&utm_campaign=close_legacy

 

위와 같이 필요한 local 영역들만 connection을 진행하면서 여기에 convolution을 씌어주게 되면, Convolution nerual network 즉, CNN입니다. 

 

CNN은 CV task들의 BackBone network(기반이 되는 network)입니다.

CNN을 사용해서 Image Classification, Clasification + Regression, Pixel-level classification 등 여러 task들을 수행할 수 있습니다.

 

https://www.edwith.org/bcaitech1


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)입니다.

 

[© Dhruv Batra and Zsolt Kira, Slide Credit : Marc’Aurelio Ranzato]


 

[32] Image Classification (2)에서 이어집니다.

 

[32] Image Classification (2)

[31] Image Classification에 이어서 작성합니다. [31] Image Classification (1) 1️⃣ K Nearest Neighbors 세상에 있는 모든 데이터를 다 저장하고 있다면 Image Classification을 어떻게 수행하면 될까요? 바..

dororo21.tistory.com

 

Comments