본 포스팅은 AI 네이버 부스트캠프 강의의 복습용도로 쓰여졌습니다.
다층신경망(MLP) 구조는 Ax = b 의 행렬에 벡터를 곱한 선형결합식에 활성화 함수를 씌워 연결된 fully connected 구조이다.
반면 Convolution 연산의 경우 커널을 입력벡터 상에서 움직이며 벡터를 도출해낸다.(Convolution 연산도 선형변환에 해당한다.)
- Convolution 연산의 수학적 의미
함수와 함수 사이의 상호 작용을 나타내는 것입니다. Convolution은 두 함수 f와 g를 입력받아 새로운 함수 h를 출력하는 방법으로, 함수 f와 g의 곱을 적분한 것입니다.
수식으로 표현하면 다음과 같습니다.
Convolution 연산은 입력 함수 f와 필터 g가 신호를 국소적으로 증가 시키거나 감소시켜 정보를 추출하거나 filtering 한다.
엄밀히 말하면 CNN 에서 하는 연산은 cross-correlation이라고 부르지만 관용적으로 Convolution 연산이라고 부른다.
다양한 차원의 Convolution 연산이 가능하다.
2차원 Convolution 연산 이해하기
- 2차원 Convolution 연산의 Output 크기 계산
2차원 Convolution 연산의 출력 크기는 입력 이미지와 필터의 크기에 따라 결정됩니다. 일반적으로 출력 크기는 다음과 같은 공식으로 계산됩니다.
output size = ((input size - filter size + 2*padding) / stride) + 1
여기서 input size는 입력 이미지의 크기(가로, 세로), filter size는 필터의 크기(가로, 세로), padding은 패딩의 크기, stride는 필터를 이동시키는 간격을 나타냅니다.
이 공식을 이용하여 출력 크기를 구할 수 있습니다. 예를 들어, 입력 이미지의 크기가 28x28이고 필터의 크기가 5x5이며, 패딩을 0으로, stride를 1로 설정한 경우, 출력 이미지의 크기는 다음과 같이 계산됩니다.
output size = ((28 - 5 + 2*0) / 1) + 1 = 24
따라서, 출력 이미지의 크기는 24x24가 됩니다. 이와 같이 Convolution 연산의 출력 크기를 계산하는 공식을 이용하여 다양한 입력 이미지와 필터에 대한 출력 크기를 계산할 수 있습니다.
채널이 여러개인 2차원 입력 -> 2차원 입력의 갯수 C개만큼 커널도 C개 있어야한다. 그러면 1개의 출력 이 나온다.
여러개의 출력을 만들고 싶다면 어떻게 하면될까?? 커널의 수를 늘리면 된다.
Convolution 연산에서의 오차역전파
먼저 컨볼루션 연산의 식은 위와 같이 볼 수 있다. 컨볼루션 연산은 미분을 해도 Convolution 연산이 나온다.
그러면 위와 같이 Convolution연산과 같은 식이 나와 각 가중치의 오차 역전파를 계산할 수 있다.
'수학 > AI Math' 카테고리의 다른 글
RNN (0) | 2023.03.11 |
---|---|
베이즈 통계 (0) | 2023.03.11 |
모수, 최대가능도 추정법,쿨백 라이블러 발산 (1) | 2023.03.11 |
몬테 카를로 샘플링 (0) | 2023.03.11 |
비선형 함수 모델링 (0) | 2023.03.11 |