합성곱 함수는 수학의 합성곱과 다르게 실제 응용에서 사용됩니다.
신경망에서의 합성곱의 병렬 적용
신경망에서의 합성곱은 여러 합성곱을 병렬로 적용하는 연산을 의미하며, 이는 하나의 합성곱이 한 종류의 특징만 추출하기 때문에 필요합니다. 신경망의 각 층에서 여러 위치에서 여러 특징을 추출하는 것이 일반적으로 바람직합니다.
입력의 다양성과 합성곱의 3차원 텐서 표현
신경망의 합성곱에서는 입력이 실숫값들의 격자가 아니라 여러 관측값으로 이루어진 벡터들의 격자입니다. 예를 들어, 원색 이미지의 한 픽셀은 빨간색, 녹색, 파란색의 세 가지 값으로 구성됩니다. 다중 합성곱 신경망에서 둘째 층의 입력은 첫 층의 출력이며, 보통 그 출력은 이미지의 각 위치에서 서로 다른 합성곱 연산의 결과로 이루어집니다. 이미지 처리에서는 합성곱의 입력과 출력을 3차원 텐서로 간주하는 경우가 많으며, 한 색인은 채널을 지정하고 다른 두 색인은 해당 채널의 공간 좌표를 결정합니다. 소프트웨어 구현에서는 일반적으로 배치 모드로 작동하기 때문에 네 번째 색인을 추가하여 4차원 텐서를 사용하는 경우가 많습니다.
다채널 합성곱의 제약과 특성
합성곱 신경망은 흔히 다채널 합성곱을 사용합니다. 그러나 다채널 연산이 기반이 되는 선형 연산들은 반드시 가환적인 것은 아닙니다. 이러한 다채널 연산은 각 연산의 출력 채널 수와 입력 채널 수가 같을 때만 교환법칙을 만족합니다.
입력에 대한 0 채우기의 중요성과 설정 방법
합성곱 신경망 구현에서 반드시 갖추어야 하는 기능 중 하나는 입력에 암묵적으로 0들을 채워 입력 텐서를 더 넓게 만드는 것입니다. 이 기능이 없으면 각 층에서 표현의 너비가 핵의 너비보다 한 픽셀 줄어들게 됩니다. 0을 채우는 기능을 통해 핵의 너비와 출력의 크기를 개별적으로 제어할 수 있습니다. 이 기능이 없으면 신경망의 공간적 크기를 유지하기 위해 작은 핵을 사용하거나, 그렇지 않으면 신경망의 표현력이 크게 제한됩니다.
0 채우기 설정의 세 가지 특별한 경우
0 채우기 설정에는 세 가지 특별한 경우가 있습니다.
1. 0 채우기를 아예 사용하지 않는 극단적인 경우: 이 경우 합성곱 핵은 이미지 안에 완전히 들어가는 위치만 방문할 수 있습니다. 출력의 크기는 입력의 너비 m 핵의 너비 k에 따라 결정되며, m-k+1이 됩니다. 이 방식에서는 출력의 너비가 계속 줄어들어 신경망에 포함할 수 있는 합성곱 층의 개수가 제한됩니다. 층을 계속 추가하다 보면 신경망의 공간 차원이 1x1로 축소되어 의미 있는 합성곱 연산이 더 이상 적용되지 않습니다.
2. 출력이 입력과 같은 크기가 될 정도로만 0들을 채우는 경우: 이 경우 신경망에 포함할 수 있는 합성곱 층의 수는 하드웨어의 능력에만 제약받습니다. 그러나 가장자리 부근의 입력 픽셀들은 중앙 부근의 입력 픽셀들보다 적은 수의 출력 픽셀들에 영향을 미치므로 가장자리 픽셀들이 모형에 덜 반영됩니다. 이를 해결하기 위해 각 방향에서 모든 픽셀이 k번 방문되도록 충분한 0들을 채우는 방법도 있으며, 이를 '완전 합성곱'이라고 합니다. 이 경우 출력 이미지의 너비는 m+k-1 됩니다.
3. 최적의 0 채우기 분량: 보통의 경우 최적의 0 채우기 분량은 유효한 합성곱과 동일 합성곱 사이의 한 지점입니다.
이러한 0 채우기 설정은 신경망의 합성곱 층에서의 출력 특성과 성능에 큰 영향을 미칩니다.
국소 연결 MLP와 합성곱 신경망의 비교
합성곱을 사용하는 대신 국소적으로 층들을 연결하는 방식도 효과적일 수 있습니다. 이러한 국소 연결 MLP의 구조를 나타내는 그래프의 인접성 행렬은 합성곱 신경망의 것과 유사하지만, 모든 연결에 고유한 가중치가 할당됩니다. 이러한 가중치는 6차원 텐서에 담을 수 있으며, 각 색인은 다음과 같은 의미를 가집니다:
- 색인 i 출력 채널
- 색인 j 출력 채널 내의 행
- 색인 k 출력 채널 내의 열
- 색인 l, m, n 입력 채널 및 해당 행과 열을 나타냅니다.
이러한 구조를 통해 국소 연결 MLP는 합성곱 신경망과 유사한 특징 추출 능력을 갖추면서도 각 연결에 대한 고유한 가중치를 사용하여 더 유연한 표현이 가능합니다.
국소적으로 연결된 층들은 각 특징이 반드시 공간의 작은 부분에만 의존하는 것으로 가정할 필요가 없기 때문에 유용합니다. 예를 들어, 주어진 이미지가 사람의 얼굴인지 판정하는 경우, 입 모양은 이미지의 아래쪽 절반에만 있어도 판별하는 데 충분할 수 있습니다. 이러한 경우에는 국소적으로 연결된 층들이 특징의 공간적 위치에 덜 민감하면서도 유연하게 특징을 학습할 수 있습니다.
제약을 가한 연결 관계의 효과
합성곱이나 국소 연결 층들의 연결 관계를 제한하는 특별한 버전들을 만드는 것은 유용할 수 있습니다. 예를 들어, 각 출력 채널 i가 오직 입력 채널 l의 한 부분집합의 함수이어야 한다는 제약을 둘 수 있습니다. 이러한 제약을 가할 때 흔히 사용하는 방법은 다음과 같습니다:
처음 m개의 출력 채널을 처음 n개의 입력 채널에만 연결하고, 그다음 m개의 출력 채널은 그 다음 n개의 입력 채널에만 연결하는 방식입니다.
이렇게 일부 채널들 사이의 상호작용을 모형화하면 신경망의 매개변수 개수를 줄일 수 있습니다. 이에 따라 메모리 사용량이 줄고, 통계적 효율성이 증가하며, 순전파와 역전파를 수행하는 데 필요한 계산량도 감소합니다. 이러한 방법을 통해 모델의 효율성과 학습 능력을 향상할 수 있습니다.
치우침 항의 적용 방식
일반적으로 하나의 합성곱 층에서는 입력을 출력으로 변환할 때 선형 연산 하나만 사용하지 않습니다. 비선형성을 적용하기 전에 각 출력에 어떤 치우침 항을 추가하는 것이 흔한데, 이러한 치우침 항들을 어떻게 공유해야 하는지에 대한 궁금증이 있을 수 있습니다.
1. 국소 연결 층 : 각 단위에 개별적인 치우침 항을 부여하는 것이 자연스럽습니다
2. 타일식 합성곱 : 핵들의 타일링 패턴과 동일한 타일링 패턴으로 치우침 항들을 공유하는 것이 자연스러운 방식입니다.
3. 일반적인 합성곱 층 : 출력 채널당 하나의 치우침 항을 두고, 각 합성곱 맵 안의 모든 위치에서 동일한 치우침 항을 사용하는 것이 일반적입니다. 그러나 입력의 크기가 고정되어 있고, 그 크기를 미리 알고 있다면 출력 맵의 각 위치에서 개별적인 치우침 값을 학습하는 것도 가능합니다.
개별적인 치우침 값을 학습하면 모형의 통계적 효율성이 조금 줄어들 수 있지만, 대신 서로 다른 위치에서 이미지 통계량의 차이를 모형이 보정할 수 있는 장점이 생깁니다. 이렇게 함으로써 모델이 다양한 이미지 특징과 통계량을 더 잘 학습할 수 있게 됩니다.
결론
합성곱 함수는 실제 응용에서 사용되며, 신경망에서의 합성곱은 병렬적으로 적용되며 입력의 다양성과 3차원 텐서 표현이 중요합니다. 다채널 합성곱의 제약과 특성, 그리고 0 채우기의 중요성과 설정 방법은 합성곱 신경망의 성능과 출력 특성에 큰 영향을 미칩니다. 국소 연결 MLP와 합성곱 신경망의 비교를 통해 제한된 연결 관계의 효과와 치우침 항의 적용 방식을 살펴볼 수 있습니다. 이러한 내용들은 신경망 구성 및 성능 향상을 위해 고려되어야 합니다.