본문 바로가기
AI

CNN

by KJY 2021. 5. 2.

합성공 신경망(Convolutional Neural Network)

합성곱 신경망은 크게 합성곱층(Convolution layer) 와 풀링층(Pooling layer)으로 구성됨.

합성곱 + ReLU -> 합성곱층, 풀링 연산 풀링층

 

1. 합성신경망의 대두

이미지의 공간적인 구조 정보를 보존하면서 학습할 수 있는 방법이 필요해졌고, 이를 위해 사용하는 것이 합성곱 신경망.

 

2. 채널(Channel)

이미지는 (높이, 너비, 채널) 이라는 3차원 텐서. (높이, 너비 깊이)로 표현하기도 함.

 

3. 합성곱 연산(Convolution operation)

합성곱층은 합성곱 연산을 통해서 이미지의 특징을 추출하는 역할을 함. N * M 필터 또는 커널이라 불리는 이미지를 흝으면서, 각각의 곱을 더하는 식으로 진행됨.

  • 커널은 일반적으로 3 * 3 또는 5 * 5를 사용함.

커널을 사용하여 합성곱 연산을 통해 나온 결과를 특성 맵(feature map) 이라고 함. 커널의 크기는는 물론이고 이동하는 범위를 정할 수 있음. 이러한 이동 범위를 스트라이드(stride) 라고함.

 

4. 패딩(Padding)

합성곱 연산의 결과를 출력이 입력에 보다 작아짐. 동일하게 유지하기 위해 패딩을 사용함. 패딩은 (합성곱 연산을 하기 전에) 입력의 가장자리에 지정된 개수의 폭만큼 행과 열을 추가해주는 것을 말함. 주로 0을 채우는 제로 패딩(zero padding)을 사용함.

 

5. 가중치와 편향

1. 합성곱 신경망의 가중치

퍼셉트론에서 입력층 9개의 뉴런과 은닉층 4개의 뉴련 사이에 가중치는 9 * 4 = 36개. 합성곱에서 3* 3 이미지에 2* 2 커널을 사용한다 했을때 가중치는 커널의 원소 개수인 4임. 또한 각 연산마다 모든 픽셀을 사용하지 않고 매핑되는 픽셀만 사용함

결국 퍼셉트론보다 훨씬 적은 수의 가중치를 사용하며 공간적 구조 정보를 보존한다는 특징이 있다. 합성 곱으로 특성맵을 얻고 활성화 함수를 지나느 연산을 합성곱 층 이라고 함.

2. 합성곱 신경망의 편향

합성곱 신경망의 편향을 적용하면 커널을 적용한뒤 모든 원소에 편향을 더함.

6. 특성 맵의 크기 계산 방법

특성 맵의 크기는 스탭 수를 의미함. floor 연산은 소수점을 버린다는 의미

패딩 P 까지 고려하면

 

7. 다수의 채널을 가질 경우의 합성곱 연산(3차원 텐서의 합성곱 연산)

만약, 다수의 채널을 가진 입력 데이터를 가지고 합성곱 연산을 한다고 하면 커널의 채널 수 도 입력의 채널 수만큼 존재해야 함. 채널마다 특성맵을 얻고 더하는 방식을 사용함

주의할 점은 위 연산에서 사용되는 커널은 3개의 커널이 아니라 3개의 채널을 가지는 1개의 커널이라는 것

8. 3차원 텐서의 합성곱 연산

하나의 입력에 여러 개의 커널을 사용하는 합성곱 연산을 할 수 도 있음.

C0개의 커널을 사용할 경우의 특성맵의 크기

 

9. 풀링(Pooling)

풀링 층에서는 특성 맵을 다운샘플링하여 특성 맵의 크기를 줄이는 풀링 연산이 이루어짐. 일반적으로 최대 풀링(max pooling)과 평균 풀링(average pooling)이 사용됨. 풀링은 커널과 스트라이드 개념이 존재함.

풀링을 사용하면, 특성 맵의 크기가 줄어드므로 특성 맵의 가중치의 개수를 줄여줌.

'AI' 카테고리의 다른 글

CNN으로 mnist 분류하기  (0) 2021.05.02
ANN  (0) 2021.05.02

댓글