Mathematics for Artificial Intelligence 9강: CNN 첫걸음
2023. 1. 5. 23:15ㆍBOOTCAMP/boostcamp AI Tech Pre-Course
Convolution 연산 이해하기
- 지금까지 배운 다층신경망(MLP)은 각 뉴런들이 선형모델과 활성함수로 모두 연결된 (fully connected) 구조이다. (만일 i가 바뀌면 사용되는 가중치도 바뀐다.)
- Convolution 연산은 이와 달리 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다. (모든 i에 대해 적용되는 커널은 V로 같고, 커널의 사이즈만큼 x상에서 이동하면서 적용한다. / 활성화 함수를 제외한 Convolution 연산도 선형변환에 속한다.)
- 커널 사이즈는 고정된 상태이기에 파라미터를 많이 줄일 수 있다.
- Convolution 연산의 수학적인 의미는 신호(signal)를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것이다.
- Convolution을 수식으로만 이해하는 것은 매우 어렵다.
- CNN에서 사용하는 연산은 사실 convolution이 아니고, cross-correlation이라 부른다.
- 커널은 정의역 내에서 움직여도 변하지 않고(translation invariant) 주어진 신호에 국소적(local)으로 적용한다.
영상처리에서 Convolution
- 여러 커널을 선택하면서 노이즈, 블러 등의 효과로 영상처리가 가능하다.
다양한 차원에서의 Convolution
- Convolution 연산은 1차원뿐만 아니라 다양한 차원에서 계산 가능하다.
- 1D-conv, 2D-conv, 3D-conv 데이터의 성격에 따라 사용하는 커널이 달라진다.
2차원 Convolution 연산 이해하기
- 2D-Conv 연산은 이와 달리 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다.
- 입력 크기를 (H, W), 커널 크기를 (KH, KW), 출력 크기를 (OH, OW)라 하면 출력 크기는 다음과 같이 계산한다.
OH = H - KH + 1 OW = W - KW + 1
- 가령 28X28 입력을 3X3 커널로 2D-Conv 연산을 하면 26X26이 된다.
- 채널이 여러 개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다고 생각하면 된다.
커널 * 3차원 입력
- 3차원부터는 행렬이 아닌 텐서라 부른다.
- 채널이 여러개인 경우 커널의 채널 수와 입력의 채널수가 같아야 한다.
커널 * 2차원 입력 + 커널 * 2차원 입력 + 커널 * 2차원 입력
- 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다고 생각하면 된다. 텐서를 직육면체 블록으로 이해하면 좀 더 이해하기 쉽다.
- 커널을 Oc개 사용하면 출력도 텐서가 된다.
- 커널(KH, KW, C) * 3차원 입력(H, W, C) -> 출력(OH, OW, l)
Convolution 연산의 역전파 이해하기
- Convolution 연산은 커널이 모든 입력데이터에 공통으로 적용되기 때문에 역전파를 계산할 때도 convolution 연산이 나오게 된다.
- Discrete일 때도 마찬가지로 성립한다.
- 역전파 단계에서 다시 커널을 통해 그레디언트가 전달된다.
- 커널에는 델타에 입력값 x3을 곱해서 전달한다.
'BOOTCAMP > boostcamp AI Tech Pre-Course' 카테고리의 다른 글
Deep Learning Basics Lecture7: Recurrent Neural Networks (0) | 2023.01.06 |
---|---|
Mathematics for Artificial Intelligence 10강: RNN 첫걸음 (0) | 2023.01.06 |
Deep Learning Basics Lecture3: Optimization (0) | 2023.01.05 |
Mathematics for Artificial Intelligence 8강: 베이즈 통계학 맛보기 (0) | 2023.01.04 |
Deep Learning Basis Lecture 4: Convolutional Neural Networks (0) | 2023.01.04 |