일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 논문분석
- SVM hard margin
- support vector machine 리뷰
- Faster R-CNN
- pytorch project
- Object Detection
- RCNN
- DeepLearning
- libtorch
- pytorch
- CS231n
- SVM 이란
- pytorch c++
- Deep Learning
- svdd
- cnn 역사
- computervision
- 데이터 전처리
- EfficientNet
- CNN
- fast r-cnn
- TCP
- self-supervision
- 서포트벡터머신이란
- Computer Vision
- cs231n lecture5
- darknet
- SVM margin
- yolov3
- yolo
- Today
- Total
아롱이 탐험대
Le Net - 5 본문
Le Net - 5
-Yann LeCun-
1. Introduction
- 본 네트워크의 원 논문 이름은 ‘Gradient-based learning applied to document recognition’이라고 한다. 1998년 CNN을 처음 개발한 Yann Lecum 연구팀이 작성한 논문이고, 이후 CNN 관련 논문 ‘Alex net’, ‘VGG’, ‘Google net’ 등 Computer vision에 있어 큰 motive가 된 네트워크라고 생각한다.
2. Network
우선 해당 네트워크의 구조는 크게 3개의 convolution network (C1, C3, C5), 2개의 Subsampling network (S2, S4), 1개의 Fully layer network (F6)로 구성된다. 해당 네트워크의 input image는 (32*32)이다.
1) 처음으로 살펴볼 C1 layer에서는 6개의 5*5 kernel과 convolution 연산을 해준다.
여기서 Convolution layer의 Activation Map의 크기 계산은 아래를 참고하면 된다.
그 결과 28*28의 Activation map을 얻게 되고, 훈련해야 될 파라미터의 개수 또한 아래를 참고하면 된다.
그 결과 5*5*1+1*6=156 총 156개의 훈련해야 될 파라미터의 개수를 얻을 수 있다.
2) 다음 layer인 S2에서는 6개의 28*28 activation map에 대해 sub sampling을 진행하게 된다. 여기서 사용되는 방법은 average pooling이고 2*2 필터를 stride 2로 설정하여 진행을 하게 된다. 또한 이 방법은 non-overlapping pooling 기법이다. Non-overlapping과 overlapping은 다음 논문 분석 시간에서 설명하겠다.
무튼 S2 layer를 통과하게 되면 14*14 activation map을 얻게 되는데 계산식은 아래를 참고하면 된다.
여기서 발생하는 parameter의 개수는 1+1*6=12이다.
또한 pooling 과정에서 parameter가 발생하는 이유는 평균 풀링 이후 1개의 trainable weight를 곱해주고 또 하나의 trainable bias를 더해주기 위함이라고 한다. 이 값이 sigmoid를 통해 활성화된다고 한다. 또한 weight와 bias는 sigmoid의 비 활성도를 조절해준다고 한다.
3) 다음은 C3 layer이다. 여기서는 14*14 activation map에 convolution 연산을 한 후 총 16장의 10*10 activation map을 얻게 된다. 여기서 16장을 얻는 이류는 아래를 참고하면 된다.
훈련해야 할 파라미터 개수는
Group 1: (5*5*3 + 1)*6 = 456
Group 2: (5*5*4 + 1)*6 = 606
Group 3: (5*5*4 + 1)*3 = 303
Group 4: (5*5*6 + 1)*1 = 151
총 1516개의 parameter가 사용된다.
4) S4 layer에서는 16장의 10*10 activation map에 대해 s2와 같이 subsampling을 진행한다. 그 결과 크기는 5*5로 축소가 되고 파라미터 개수는 (1+1)*16 = 32개가 발생한다.
5) C5 layer 또한 다른 convolution layer와 같이 16장의 5*5 activation map을 120개 5*5*16의 필터와 convolution 해준다. 결과적으로는 120개의 1*1 activation map이 산출된다.
파라미터의 개수는 (5*5*16+1)*120 = 48120개이다.
6) F6 layer는 84개의 unit을 가진 feedforward 신경망이다. 이는 C5의 결과를 84개의 unit에 연결시킨다. 따라서 parameter는 (120+1)*84 = 10164개가 된다.
7) 마지막 layer인 output layer는 총 10개의 RBF unit으로 구성되어 있다. 이는 각각 F6 layer의 84개 unit으로부터 input을 받고 최종적으로 input의 속한 class를 확률적으로 알려준다.
이 network를 작동을 시키려면 총 156+12+1516+32+48120+10164 = 60000개의 parameter들이 필요하다.
3. result
평소 CNN을 접하며 가장 기초적이고 근본적인 논문인 것 같다. Alex net, image net 등 다른 논문을 읽은 경험이 있지만 le-net을 다시 보고 공부하니 확실히 기초가 튼튼해진 것 같다. 하지만 이 논문은 CNN의 기초를 다져줄 뿐 현재 쓰이는 network들과의 성능이나 기능적인 부분에서 차이가 크다. 예를 들어 average pooling이나 activation function, drop out 그리고 마지막 출력 함수까지 현재와 비교하면 매우 다른 network이다. 앞으로 다른 논문들을 review 하면서 점점 CNN에 대해 깊숙이 공부해야 되겠다.
4. reference
Lecun 1998, Gradient-based learning applied to document recognition (논문)
https://laonple.blog.me/220648539191
https://yohanes.gultom.me/2016/12/12/understanding-lenet-lecun-1998/