본문 바로가기
카테고리 없음

[AI] CNN (Convolution Neural Network) 개념알기

by Foxy현 2022. 12. 7.
728x90
반응형

안녕하세요! Foxyhyun입니다!
오늘은 이미지 분류의 기초인 CNN에 대해 알아보려고 합니다

Convolution Neural Network, 줄여서 CNN이라고 부르죠.
파라미터만 지정하면 특징 추출도 알고리즘이 자동으로 이미지의 데이터를 추출하며, 영상 처리에 유용하게 쓰이고 있습니다.
주로 Convolution + pooling + flatten + fully-connected + softmax의 구조로 표현됩니다

 

 

 

 

먼저 Convolution에 대해 알아보겠습니다.

Convolution layer에서는 해당하는 요소들을 각각 곱하고 이 값을 모두 더하는 연산을 수행합니다.

아래 그림과 같이, 커널이라는 것을 이동시키며 연산을 수행합니다.

 

 

 

 

여기서 padding이라는 것을 하는데, Convolution연산 후 크기가 줄어들지 않도록 이미지 주변을 0으로 채우는 것을 말합니다.

 

 

 

또한 커널(kernel)은 나름의 필터 개념인데, size를 지정할 수 있고(보통 홀수), 모양을 지정(주로 정사각형)할 수 있습니다.

그리고 커널이 이동하는 칸 수를 결정하는 stride가 있습니다. stride가 클수록 출력 크기가 줄어듭니다.

 

 

다음은 Pooling layer입니다.

대푯값을 뽑아 크기를 줄여줍니다.

max pooling의 경우, 커널에 속한 값 중 최댓값을 선택합니다.

 

 

 

Flatten층은 다차원으로 입력받은 데이터를 1차원으로 변환해줍니다.

 

 

Fully-connected 층은 기존 뉴럴 네트워크와 동일합니다.

 

Softmax 층은 각 노드의 출력 값이 클래스에 대한 예측 확률 값으로 해석할 수 있도록 0~1 사이의 값을 갖게 하고,

이를 다 더하면 총합이 1이 되게 해 줍니다.

 

추가적으로 One-Hot Encoding은 분류하고자 하는 종류를 0과 1로 표현함으로써, 분류하는 값은 1, 아니면 0으로 통일하는 과정입니다.

 


간단하게 CNN의 구조와 각 층의 기능에 대해 알아보았습니다.

다음 글에서는 CNN 구현 시 고려해야 할 사항들에 대해 알아보겠습니다.

 

 

 

 

 

728x90
반응형