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:
- Each is connected to a small region in the input => local connectivity
- 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 |