CNN 다수 채널의 합성곱

NYC·2021년 8월 4일
0

딥러닝 이론 정리

목록 보기
3/6

다채널 합성곱 연산

CNN의 합성곱을 설명하는 블로그에 가보면 1채널 이미지, 3채널 이미지에 대해서 convolution 연산을 설명하고 있다.

초기 입력 convolution에 대한 이해는 가지만 다양한 모델을 보게되면 여러층을 쌓아서 convolution을 하기 때문에 중간 단계의 convolution에 대해서 감이 안잡히는 경우가 있었다.

그래서 다채널의 합성곱 연산에 대해서 적어보게 되었다.

3차원 텐서의 합성곱 연산

일단 다수의 채널을 가진 입력 데이터를 가지고 합성곱(conv) 연산을 한다고 하면 커널의 수도 입력 채널의 수 만큼 있어야한다. 즉, 입력 채널 수와 커널의 채널의 수는 같다. 그래서 합성곱 연산을 채널마다 수행하고 그 결과를 모두 더하여 특성맵을 얻게된다.

3개의 채널을 가진 입력 데이터와 3개의 채널을 가진 커널의 합성곱
여기서 주의할 점은 위 연산에서 사용되는 커널은 3개의 커널이 아니라 3개의 채널을 가지는 1개의 커널이라는 점이다.

3차원 텐서의 합성곱 연산

일반화를 위해 사용하는 각 변수가 의미하는 바는 아래와 같다.

다음은 3차원 텐서의 합성곱 연산 ( 위에서 봤던 내용 )

다수의 입력 데이터의 채널의 수와 커널의 채널의 수가 같고 커널의 개수는 1개이다.
커널의 수가 1개일 경우 특징맵은 1개가 나오게 되는 것이 특징이다.
그렇다면 다수의 커널을 사용할 경우, 특성맵의 크기가 어떻게 바뀔까?

합성곱 연산에서 다수의 커널을 사용할 경우, 다수의 커널 수가 특성맵의 채널 수와 같아지게 된다.

이를 이해했다면 커널의 크기와 입력 데이터의 채널 수(Ci)와 특성 맵(출력 데이터)의 채널 수(Co)가 주어졌을 때, 가중치 매개변수의 총 개수를 구할 수 있다

가중치는 커널의 원소들이므로 하나의 커널의 하나의 채널은 Ki×Ko 개의 매개변수를 가지게 된다.

그런데 합성곱 연산을 하려면 커널은 입력 데이터의 채널 수와 동일한 채널 수를 가져야 한다.

따라서 하나의 커널이 가지는 매개변수의 수는 Ki× Ko× Ci 이고 커널이 총 Co개가 있어야 된다.

가중치 매개변수의 총 수 : Ki× Ko× Ci× Co

profile
Vision_NLP

0개의 댓글