- reference: cs231n (링크:http://cs231n.github.io/convolutional-networks/)
- fully connected layer는 앞 layer의 모든 neuron과, 다음 layer의 모든 neuron이 dependent
- neuron은 일종의 feature라고 생각하면, neuron 갯수는 feature 갯수.
- eg. [1, 3 n_feature] * [3, 4 n_neuron] -> previous layer의 neuron은 3개; next layer의 nueron은 4개;
- 계산해보면 output neuron(4개)은 모두 previous layer의 neuron에 dependent
- 이미지에 fully connected layer를 적용하면, weight가 매우 많이 필요
- eg. 이미지 32*32*3일 경우, stretch out하면 1*3071 vector로 변환
- weight vector는 최소 3072 weight 가져야 함
- 이미지 input시 stretch out하는 것은, 일반 데이터 row: data, col: features에 대응하여 생각하면 이해가 쉬움
- 이미지 n개 input시 n * 3071 matrix; 데이터 n개 input시 n * n_feature;
- Convolutional Layer의 특징 두 가지:
- spatial structure 유지
- eg. FC: 32*32*3 -> 1*n_neuron
- eg. Convolutional Layer: 32*32*3에 5*5*3 필터 1개 적용 -> 28*28*1
- spatial structure 유지
- 부분적 neuron과 dependent
- params 적어짐: 궁극적으로 filter(의 element)를 업데이트하는 것
- 제한된 영역에 대해 dot product라고 생각할 수 있음
1
2# 하기 이미지 dot product
[1,1,1,0,1,1,0,0,1] * [1,0,1,0,1,0,1,0,1]^T
- 부분적 neuron과 dependent
- 기타
- receptive field(link): next layer의 neuron의 입장에서 receptive field는, 합성곱에 사용된 previous layer의 neuron.(“The receptive field in a convolutional neural network refers to the part of the image that is visible to one filter at a time.”)
- 상기 그림을 예로 들면, convolved feature에서 4의 receptive field는, 주홍색으로 표시된 영역
- one filter, one activation map: 예시 이미지들에서 activation map은 filter를 통과한 이미지
- receptive field(link): next layer의 neuron의 입장에서 receptive field는, 합성곱에 사용된 previous layer의 neuron.(“The receptive field in a convolutional neural network refers to the part of the image that is visible to one filter at a time.”)