행이 batch 열이 channel
각각의 픽셀이 R,G,B 값을 가지는 3차원 벡터이다.
3차원까지는 행렬합, 열합, 행합으로 생각할 수 있다.
하지만 이것을 외우는 것 보다는 3차원은 벡터의 원소가 행렬이 되는 방식으로, 4차원은 행렬의 원소가 행렬이 되는 방식으로 차원을 그리면 계산이 편해진다.
또한 axis합은 그 아래 차원으로 내려가게 된다. 시그마 변수가 하나 날라가는 것이므로 i,j,k라면 이 중에서 하나가 사라진다고 생각하면 편하다.
고차원은 축의 순서를 섞는 방식으로 transpose를 이해해야한다.
데이터 픽셀을 1열로 나열을 해버리면 이미지의 작은 변화도 규칙이 없는 엄청난 변화로 만들어진다. 따라서 특정 부분만 연결partially interacted은 하는 것이 유리할 수 있다.
시각 적인 이해에 있어서 공간적인 역할 분담이 되어 있다.
W : width
P : padding
FW : filter width
S : stride
OW : output width
결국에 묻는 것은 들어가는 가로에 들어가는 필터가 몇개인가라는 것이다.
가로에 들어가는 카드의 개수는 전체 카드의 길이인 W + 2P에서 마지막 카드의 길이 FW를 제외하고 그것을 S로 나누어준 개수가 된다. 마지막에 제외한 마지막 카드 1을 더해주면 된다.
element-wise product이기 때문에 행의 값이 달라지는 지점을 포착한다.
하지만 수직방향의 변화는 포착하지를 못한다.
잘 알아둬야 할 것은 인풋의 채널과(ex. RGB 3채널) 필터의 채널의 크기는 반드시 동일해야 한다는 것이다. 이것은 도장의 깊이가 동일해야한다는 것으로 추상화하면 좋을 듯 하다. 또한 3차원 텐서로 나오는 아웃풋의 깊이는 필터의 개수와 동일하다는 것도 알아두면 좋다.
element-wise 내적을 하고 bias를 더해준다.
사람이 직접 만든 필터보다 훨씬 feature를 잘 잡아낸다.