Deep Learning/CS231n

CS231n 5강 summary

마크투비 2021. 6. 23. 16:39

1. Neural Network의 역사

1) Perceptron(~1957)

  • Mark1 Percetptron: 최초의 뉴럴 네트워크(하드웨어)
  • binary step function이라 미분 불가능
  • backpropagation 개념이 나오기 전(어차피 미분 불가능이라 있어도 안 됨)
  • 이후 1960~1980 첫번째 신경망 암흑기

2) Adaline/Madaline(~1960)

  • 최초의 multi layer perceptron 네트워크(하드웨어)

3) Neocognitron(1980)

  • sandwich architecture(simplecell-complexcell-simplecell-complexcell-...)

4) First time back-propagation(1986)

  • 최초의 back propogation 도입
  • 하지만 기대만큼 동작하지 않아 성과가 별로
  • 이후 2000년대 중반가지 두번째 암흑기 맞이

5) Reinvigorated research in DeepLearning(2006)

  • back propagation이 제대로 작동

6) Acoustic modeling/Imagenet classification(2010, 2012)

  • 이때부터 딥러닝이 비약적으로 발전
  • ImageNet classfication with Deep Convolutional Neural Networks - "AlexNet"

7) Fast-foward to today: ConvNets are everywhere

생물학적 발견

Hubel & Wiesel(1959~1968)

  • 고양이의 visual cortex 실험(Receptive fields of single neurons in the cat's striate cortex)
  • 특정 뉴런이 특정 방향에 반응하는 것을 발견(Receptive fields, binocular interaction and functional architecture in the cat's visual cortex)
  • Topographical mapping in the cortex: nearby cells in cortex represent nearby regions in the visual field => locality가 보존되는 것을 발견
  • Hierarchical organization(simple cells -> complex cells -> hypercomplex cells)

2. Convolutional Neural Networks

1) Convolution Layer

  • 32x32x3(height x width x depth) 크기의 input 이미지/5x5x3 크기의 filter
  • convolve the filter with the image: "slide over the image spatially, computing dot products"
  • input 이미지의 depth와 filter의 depth 크기는 같음

  • convolution 결과로 새로 생성된 행렬을 activation map이라고 함
  • one filter, one activation map: 하나의 필터는 하나의 activation map을 생성함

  • 만약 6개의 필터를 convolution하면 28x28x6 크기의 새로운 이미지가 생성됨
  • 새로운 이미지의 depth 크기는 필터의 개수

만약 7x7 input 이미지에 대해 3x3 필터를 적용하면,

  • stride를 1로 줬을 때 -> 5x5 크기의 이미지 생성
  • stride를 2로 줬을 때 -> 3x3 크기의 이미지 생성

이를 공식화하면,

  • ouput size: (N-F)/stride + 1

2) Zero padding

 

  • 테두리를 zero pad로 채우는 것
  • zero padding을 하게되면 stride1로 했을 때 기존 이미지의 size를 보존할 수 있음
  • zero padding을 하지 않을 때 activation map에서 volume shrinking이 일어남
  • 더이상 convolution을 진행하는 것이 불가능할 정도로 이미지 size가 작아지는 문제를 해결하기 위해 zero padding이 유용한 것임

convolution layer 요약

3) The brain/neuron view of CONV Layer

  • an activation map is a 28x28 sheet of neuron outputs:
  1. Each is connected to a small region in the input => local connectivity
  2. All of them share parameters => 동일한 depth 내의 뉴런들은 parameter sharing을 함(동일한 weight값을 가짐)

  • 각각의 activation map에서 같은 위치에 있는 뉴런들은 모두 input 이미지의 동일한 곳을 바라봄
  • 위 그림에서 5개의 뉴런들은 각각 다른 activation map에 속하기 때문에 이들은 weight를 공유하지 않음
  • 동일한 위치에 있지만 별개의 뉴런들은 input volume의 같은 곳을 바라봄

4) Pooling layer

  • pooling layer를 통해 size를 조절함
  • conv layer에서 size를 유지하고 pooling layer에서 size를 downsampling해줌
  • 각각의 activation map에 대해 독립적으로 작용함
  • depth 크기는 유지됨

Max pooling

  • pooling하는 방법 중 가장 많이 쓰이는 방법

  • 이미지를 2x2크기의 부분으로 나누고 각 부분에서 가장 큰 값을 취함
  • 이때 ouput size는 (n-f)/s + 1

pooling layer 요약

'Deep Learning > CS231n' 카테고리의 다른 글

CS231n 7강 summary  (0) 2021.06.23
CS231n 6강 summary  (0) 2021.06.23
CS231n 3강 summary  (0) 2021.06.23
CS231n 2강 summary  (0) 2021.06.23
CS231n 1강 summary  (0) 2021.06.23