CNN Basic

bolim·2022년 1월 21일
0

Math

목록 보기
7/9

CNN Basic

Convolution 연산

신호(signal)를 커널을 이용해 국소적으로 증표 또는 감소시켜서 정보를 추출, 필터링하는 것

CNN에서 사용하는 연산은 계속 convolution이라고 불러왔지만 정확히는 cross-correlation이다.

*** 위치(i,j)에 따라 커널이 바뀌지 않는다.

1D-conv : [fg](i)=p=1df(p)g(i+p)[f*g](i) = \sum_{p=1}^{d}f(p)g(i+p)

2D-conv : [fg](i,j)=p,qf(p,q)g(i+p,j+q)[f*g](i,j) = \sum_{p,q}f(p,q)g(i+p,j+q)

각 원소 성분곱으로 위의 결과는 19이다.

결과는 입력 크기 - 커널 크기 + 1 이다.

여러개의 2차원은 3차원으로 보고 Tensor라고 부른다.

채널이 여러 개인 2차원은 convolutions은 채널 개수만큼 커널을 만들고 각각의 2차원 입력에 적용한 후 더하면서 수행한다.

Back propagation

포워딩 반대로 미분을 이용하여 가중치를 업데이트 시켜주는 과정이다.

oi=jwjxi+j1o_i = \sum_{j}w_jx_{i + j-1}
으로 forwarding 된다.

예시로
x1x_1에서 x5x_5까지 있을 때 커널 w1,w2,w3w_1,w_2,w_3, 결과도 o1,o2,o3o_1,o_2,o_3가 있다고 하면

입력 x3x_3w3w_3과 곱해져 o1o_1에 더해졌고 w2w_2과 곱해져 o2o_2에 더해졌고 w1w_1과 곱해져 o3o_3에 더해졌다.

그래서 역전파단계에서는 각 δ1,δ2,δ3\delta_1,\delta_2,\delta_3들은 차례로 w3,w2,w1w_3,w_2,w_1순서로 곱한 후 모두 더해 x3x_3에 그래디언트를 전달한다.

커널에게는 각 δ1,δ2,δ3\delta_1,\delta_2,\delta_3들에게 x3x_3를 곱해서 각 커널에 전달한다.

이를 전체적인 식으로 살펴보면

Lwi=jδjxi+j1\frac{\partial L}{\partial w_i} = \sum_{j}\delta_jx_{i+j-1}

profile
나는야 호기심 많은 느림보🤖

0개의 댓글