- 1. LeNet
- 2. AlexNet
- 3. flattening은 왜 하는가?
- convolution layer를 통과하고 linear layer에 연결시키려면 특별한 작업이 필요하다
- convolution layer를 통과하고 나오면 output값은 tensor형태로 나오는데
- fully connected linear layer에서 연산할려면 matrix형태로 들어가야한다
- 4. Local Response Normalization
- 5. receptive field
- receptive field가 무엇이냐? 하나의 element를 출력시키는 input space에서의 field
- 그런데 layer를 깊게 쌓으면
- 두번째 예시처럼 작은 filter로도 recpetive field를 크게 가져갈 수 있다는 사실이 알려지면서
- 더 이상 filter을 11*11처럼 크게 하지 않는다
1. LeNet
1998년 Yann LeCun이 간단한 CNN구조를 소개했다
convolution layer 2번과 fully connected layer 2번을 반복했다
한글자 단위 특히 우편물 번호 인식에 크게 성공하여 우편 운송의 혁신에 기여했다고 함

2. AlexNet
LeNet의 기본 구조에서 아이디어를 가져왔다
그런데 hidden layer를 7층으로 쌓고 6000만 parameter를 사용
학습데이터도 ImageNet에서 어마어마하게 큰 120만 dataset을 사용했다
ReLU와 dropout이라는 지금도 사용하는 강력한 기법을 사용했다

재미있는 점은 첫번째로 두개의 pass로 나눴다는 것인데 당시 GPU가 부족해서 2개의 forward pass로 나눠서 올렸다
중간에 activation이 cross하는 부분이 보이는데
모든 부분에서 cross하게 만들고 싶었지만 그러면 너무 느려져서 일부분만 cross하게 만들었다
3. flattening은 왜 하는가?
위 그림에서 마지막 max pooling 후 3개의 fully connected layer로 가는 부분을 보면 사실 바로 갈 수 없다는것이 하나의 포인트이다.
convolution layer를 통과하고 linear layer에 연결시키려면 특별한 작업이 필요하다
convolution layer를 통과하고 나오면 output값은 tensor형태로 나오는데
fully connected linear layer에서 연산할려면 matrix형태로 들어가야한다
그래서 flattening 작업을 하여 쫙 펴주고 넣는것이 이 이유였다

adaptive average pooling을 하든지 flatten을 하든지 둘중하나를 해야하는데
AlexNet에서는 flatten을 사용했다고함
바로 위 그림에서 dense layer가 차원이 4096인데 두개의 pass로 나눴으니까 2048, 2048로 나눈거임(위에 위에 그림)
----------------------------------------------------------------------------------------------------------------------------
4. Local Response Normalization
지금은 안쓰는 기술인데 image map에서 명암을 normalization하는 기술이었다고?
찾아보니까 측면 억제(lateral inhibition)를 위해 사용했다고 한다
feature map에서 특정 pixel의 값이 매우 크면 그 주변의 pixel에 큰 영향을 주므로
이것을 방지하기위해 이러한 pixel들을 정규화시킨다고 생각하면 될 것 같다
요즘은 batch normalization이라는 기술로 대체되었다.

LRN의 결과는 아닌데 LRN이 이런 그림같은거라고??? 그럴거면 왜 이걸 보여준거야
5. receptive field
LeNet에 비해 input image size가 커지면서 filter size도 11*11로 커졌다
이유는 image의 receptive field를 손쉽게 크게 가져갈려고
receptive field가 무엇이냐? 하나의 element를 출력시키는 input space에서의 field

A의 경우 i+1에서의 한 원소를 출력시키기 위한 input space i에서 영역 크기는 3*3
B의 경우 I+2의 한 원소를 출력시키기 위한 input space인 i의 영역은 6*6
filter size가 커지면 receptive field는 비례해서 커질 것이다.
그런데 layer를 깊게 쌓으면
두번째 예시처럼 작은 filter로도 recpetive field를 크게 가져갈 수 있다는 사실이 알려지면서
더 이상 filter을 11*11처럼 크게 하지 않는다
'딥러닝 > Computer Vision' 카테고리의 다른 글
GoogleNet의 핵심 아이디어 inception module, auxiliary classifier, 1*1 convolution 알아보기 (0) | 2022.02.08 |
---|---|
VGGNet는 왜 3*3 convolution을 사용했을까? (0) | 2022.02.07 |
CNN(Convolutional Neural Network)은 왜 등장했을까? (0) | 2022.01.31 |
image classification 문제 이해하기 (0) | 2022.01.27 |
Computer Vision을 어떻게 구현할까? (0) | 2022.01.23 |