Convolutional Layer 간단한 정리

  • 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의 특징 두 가지:
      1. spatial structure 유지
        • eg. FC: 32*32*3 -> 1*n_neuron
        • eg. Convolutional Layer: 32*32*3에 5*5*3 필터 1개 적용 -> 28*28*1
      1. 부분적 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

  • 기타
    • 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를 통과한 이미지
      • 하기 이미지: cs231n 수업 캡처
< !-- add by yurixu 替换Google的jquery并且添加判断逻辑 -->