컴퓨터비전/CNN

[컴퓨터비전] CNN - Convolutional Neural Network

구코딩 2024. 1. 13. 12:54
728x90

CNN이 등장하기 전까지, 컴퓨터 비전 분야에서는 fully connected neural net을 사용해 task를 해결했습니다.

그러다 fully connected neural net의 단점을 커버하고, 더 높은 성능을 보이는 CNN이 등장하고 많은 컴퓨터 비전 문제의 backbone이 되었습니다.

 

하나의 특징을 뽑기 위해 이미지의 전체를 검사하는 fully connected neural net에서 벗어나,
이미지의 공간적인 특성을 고려하여 국부적인 영역만 connection을 고려하는 locally connected neural net 채용된 것입니다.

 

이러한 방식으로 인해,

→ 필요한 파라미터가 획기적으로 감소.

→ connection을 공유해서 전영역을 순회하며 feature를 추출함.

→ overfitting 방지까지.

(그림의 위치가 바뀌더라도 특징을 뽑는 것에 있어서 유리)

 

 

fully connected neural net 단점

  • 클래스의 평균적인 이미지와 동떨어져있는 이미지의 경우 잘 표현되지 않음.
  • Test time에서의 성능이 매우 떨어질 수 있음.
  • 이미지의 변형에 취약함.

CNN - Convolutional Neural Network

  • 국부적인 영역에 대한 연결만 고려한 Locally Connected Layer를 바탕으로 구성.
  • 파라미터를 재활용(Parameter sharing)할 수 있기 때문에 파라미터의 수를 획기적으로 줄일 수 있음.
  • → overfitting을 방지하는 효과.
  • 지역적인 특징을 추출하기 때문에 약간 변형된 이미지를 입력하더라도 올바르게 분류할 수 있음.

 

 

여기서 convolution이란, 두 함수를 반전 이동한 값을 곱하고 적분하여 새로운 함수를 구하는 연산자입니다.

앞으로 CNN을 이해하게 되시면 해당 수학적 개념과 굉장히 똑같다는 것을 알 수 있습니다.
(필터가 n stride만큼 움직이며 이미지와 행렬곱하는 것이 CNN의 기초 개념이기 때문)

 

그리고 공부하면서 작성했던 필기자료를 아래에 첨부했습니다.

CNN은 아래와 같은 방식으로 동작합니다.

 

 

다음 게시물부터는 CNN의 발전 과정을 알아보도록 하겠습니다.

감사합니다.

728x90
반응형

'컴퓨터비전 > CNN' 카테고리의 다른 글

[컴퓨터비전] LeNet-5  (0) 2024.01.13