CastleJo의 개발일지

Computer Vision - Introduce

|

CV in Deep Learning

  • 과거의 머신러닝 : Feature를 전문가가 설정 (Feature Extention)
  • 딥러닝 : Feature 또한 자동으로 설정(사람의 눈 또한 선입견이 있음)

k-NN

  • k Nearest Neighbors

쿼리 데이터가 들어오면 주변에 얼마나 많은 데이터가 있는지

간단하고 단순하지만, 시간과 공간 복잡도가 전부 O(n)으로 방대한 데이터를 넣을 수 없다.
또한 영상의 통일성까지 갖춰야하므로 이론은 간단하지만 상당히 어렵다.

Single Fully Connected Layer

클래스를 전부 1차원으로 늘려놓고 weight에 따라 이미지를 분류하는 것
학습중에 본 적 없는, 예를들면 부분만 Crop되어 들어온 이미지에 대하여 취약하다.

Locally Connected Layer

하나의 특징을 영상의 공간적인 특징들을 고려해 국소적인 부분들만 판단하여 가중치를 여러개 결정
슬라이딩 윈도우 방식으로 파라미터를 재활용 할 수 있어 적은 파라미터로도 효과적으로 특징 추출이 가능

CNN

영상 처리에 최적화된 네트워크로 대부분의 CV task에서 Backbone으로 설정

AlexNet

유명했던 모델 중 가장 오래된 모델이다.

  • Conv - Pool - Conv - Pool - Fc - Fc 형태로 구성되어이다.
  • 5x5에 stride : 1인 Conv 필터를 갖는다.
  • 2x2에 stride : 2인 Pooling Layer를 갖는다.

특이하게 두 개로 나누어진 네트워크 구조를 갖고있는데, 그 당시 GPU의 성능이 좋지 않아서 그랬던 것이다.

fc레이어로 갈 때 torch.flatten(x,1)과 같은 레이어를 1차원으로 쭉 펴주는 방식을 이용한다.

5x5인 상당히 큰 Conv 필터를 사용하는데, 이는 이후 3x3을 두번 쓰는 방식으로 개선되었다(VGGNet)

VGGNet

현재에도 자주 사용되는 네트워크로, 3x3을 두번 썼다.

이 때 5x5와 같은 결과를 보이지만 파라미터 수로 비교해보면 5x5, 3x3x2로 약 70%정도의 파라미터만을 가진다.

여러 특징이 있지만, 이미 다 배운것들이라 논문 링크를 참고하자