Frobenius inner product

iissaacc·2021년 7월 7일
0

Computer vision

목록 보기
2/11

벡터에만 내적을 하는 줄 알았더니 행렬에도 내적개념이 있었다(!!!). conv layer에서 kernel이 이미지 행렬과 이렇게 연산한다. 강의에서 그냥 'dot product'라고 해서 '행렬을 어떻게 내적하지?'하고 생각하면서 행렬곱을 한 다음에 요소들을 다 더해주는 줄 알았는데 그게 아니라 크기가 같은 두 행렬을 hadamard product하고 나서 요소들을 다 더해준다. 수식으로는 이렇게 쓴다.

A,BF=ijai,jbi,j\langle A,B\rangle_F=\sum_i\sum_j a_{i,j}\cdot b_{i,j}

예를 들어 이미지 행렬 XX와, kernel 행렬 WW가 주어질 때 Conv layer에서 어떻게 연산하는지 살펴보자.

X=[x11x12x13x21x22x23x31x32x33],  W=[w11w12w21w22]X=\begin{bmatrix}x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33}\end{bmatrix}_, \ \ W=\begin{bmatrix}w_{11} & w_{12} \\ w_{21} & w_{22} \end{bmatrix}일 때, XX의 부분행렬은 4가지로 생각할 수 있다.

X11=[x11x12x21x22]X_{11} = \begin{bmatrix}x_{11} & x_{12} \\ x_{21} & x_{22} \end{bmatrix} X12=[x12x13x22x23]X_{12} = \begin{bmatrix}x_{12} & x_{13} \\ x_{22} & x_{23} \end{bmatrix} X21=[x21x22x31x32]X_{21} = \begin{bmatrix}x_{21} & x_{22} \\ x_{31} & x_{32} \end{bmatrix} X22=[x22x23x32x33]X_{22} = \begin{bmatrix}x_{22} & x_{23} \\ x_{32} & x_{33} \end{bmatrix}

W,XF=[W,X11FW,X12FW,X21FW,X22F]\langle W,X\rangle_F=\begin{bmatrix}\langle W,X_{11}\rangle_F & \langle W,X_{12}\rangle_F\\ \langle W,X_{21}\rangle_F & \langle W,X_{22}\rangle_F\end{bmatrix} 이렇게 정리할 수 있다.

0개의 댓글