CNN

hj choi·2022년 9월 23일
0

AI

목록 보기
4/27

CNN(Convolution Neural Network

Convolution 연산 이해하기

  • Convolution 연산은 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조.

  • i번째 해당하는 hih_i의 값을 계산할 때 커널은 그대로 유지를하게되고, xx라는 입력 벡터상에서 커널사이즈만큼 움직여가면서 계산을 하는 방식

  • 공통된 커널을 연산에 활용하기 때문에 가중치 행렬이 i의 개수에 상관없이 커널사이즈는 고정된 형태로 커널이 공통적으로 적용되기 때문에 파라미터사이즈를 굉장히 많이 줄일 수 있다.

  • Convolution연산의 수학적인 의미는 신호(signal)를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것이다.


2개의 함수f와g가 있을 때, x라는 입력(신호)에 대해서 값을 계산할때는 전체 정의역에서 f와g를 각각 z를 움직여가면서 두 함수를 곱해주고, 적분을하거나 더해주는 형태로 convolution연산을 수행하게 된다. g:신호,f:커널

다양한 차원에서의 Convolution

2차원 Convolution연산 이해하기

  • 2D-Conv연산은 이와 달리 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다.

  • 입력크기를 (H,W)(H,W), 커널 크기를 (KH,KW)(K_H,K_W), 출력 크기를(OH,OW)(O_H,O_W)라 하면 출력 크기는 다음과 같이 계산한다.

  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용해야 한다.


커널의 채널 개수와 입력의 채널 개수를 같게 설정했기때문에 convolution연산을 수행하면 출력에 해당하는 텐서의 3차원 차원은 1이되고, 가로와 세로의 길이는 앞에서 계산하는 출력의 계산법이 그대로 적용되어 얻게된다.


출력이 여러개의 채널을 갖게 하기 위해서는 커널의 개수를 여러개 만드는것으로 해결할 수 있다.

Convolution 연산의 역전파 이해하기

  • Convolution연산은 커널이 모든 입력데이터에 공통으로 적용되기 때문에 역전파를 계산할 때도 convolution연산이 나오게 된다.

    convolution연산에 미분을 해도 똑같이 convolution이 나온다.

  • 커널에는 어떻게 gradient가 전달될까?
    업로드중..

0개의 댓글