본문 바로가기
Ai/Notion

LeNet-5 - A Classic CNN Architecture

by yooom 2023. 10. 5.

 

LeCun et al., 1998

LeNet - 5는 6개의 층으로 이루어져있다. 각 층의 연산법과 파라미터 개수를 알아보자.

 

First Layer  -  C1, convolution layer

32×32×1 의 이미지를 6개(6채널)의 5×5 필터로 컨볼루션 연산을 거쳐 28×28×6 으로 바꾼다

num Feature map = 6

Filter size = 5

Padding = 0

Stride = 1

$$\frac{32-5+2 × 0}{1}+1 = 28$$

파라미터는 5x5 필터가 6채널 있기 때문에 bias도 6개 이다

파라미터 개수는 (가중치 × 입력맵 개수 × +바이어스 ) × 특성맵 개수 이다.

$$param : (5×5+1)×6 = 156$$

∴ param : 156

Connections : 28×28×56 = 122304 가 된다 

 

Second Layer  -  S2, pooling layer - average

28×28×6 형상을 stride=2인 필터로 평균 폴링하여 14×14×6으로 바뀐다. ( 폴링은 서브샘플링이라고도 불린다. )

( 폴링은 파라미터가 너무 많아져서 overfitting이 발생하는 상황을 방지해주는 효과가 있다. )

Filter Channel = 6

Filter size = 2

Padding = 0

Stride = 2

2x2 에서 평균값을 내는 것이므로 형상이 절반으로 줄어든다.

 

Third Layer  -  C3, convolution layer

14×14×6형상을 16채널 5×5 필터로 컨볼루션 하여 10×10×16으로 바꾼다.

Filter Channel = 16

Filter size = 5

Padding = 0

Stride = 1

 

파라미터의 개수를 이해하기 위해 6채널을 16채널로 바꾸는 과정을 좀 더 알아보자.

위 이미지를 보면 세로축은 입력, 가로축은 생성맵이다.

가로축 1~5 : 연속된 3장의 입력으로 convoluton -> 6개 生

가로축 6~11 : 연속된 4장의 입력으로 convoluton -> 6개 生

가로축 12~14 : 불연속된 4장의 입력으로 convoluton -> 3개 生

가로축 15 : 연속된 6장의 입력으로 convoluton -> 1개 生

∴ 총 16개의 feature map이 생성된다.

 

$$\frac{14-5+2 × 0}{1}+1 = 10$$

파라미터 개수는 (가중치 × 입력맵 개수 × +바이어스 ) × 특성맵 개수 이다.

$$param 1 : (5×5×3+1)×6 = 456$$

$$param 2 : (5×5×4+1)×6 = 606$$

$$param 3 : (5×5×4+1)×3 = 303$$

$$param 4 : (5×5×6+1)×1 = 151$$

∴ param : 456+606+303+151 = 1516

Connections : 10×10×1516 = 151600 가 된다 

 

Fourth Layer - S4, pooling layer

10×10×16 형상을 stride=2인 필터로 평균 폴링하여 5×5×16으로 바뀐다.

 

Fifth Layer - C5, fully connected convolutional layer

5×5×16형상을 120장의 5×5×16 필터를 이용하여 1×1 크기, 120개의 feature map을 만든다.

$$param 1 : (5×5×16+1)×120 = 48120$$

∴ param : 48120

 

Sixth Layer - F6, fully connected layer

84개의 유닛을 가진 신경망이다. C5의 결과를 84개의 유닛과 연결한다.

$$param 1 : (120+1)×84 = 48120$$

∴ param : 10164

(LeNet은 Backpropagation을 이용하지 않았다.)

 

Output Layer - 

10개의 유닛들로 구성되어 있다. 각각 84개의 유닛으로부터 입력받는다.

softmax 함수를 통과하여 0에서 9까지의 수에 상응하는 확률을 출력한다.

 

Summary

활성화 함수로 tanh를 쓴 것이 특징적이다. 다음에 포스팅할 구조는 AlexNex 이다. 이때부터 활성화 함수로 Relu를 쓰기 시작한다. 

728x90

'Ai > Notion' 카테고리의 다른 글

Transformer 에서 cos, sin 함수를 사용한 이유(position encoding)  (1) 2023.10.17
VIT (Vision Transformer)  (0) 2023.10.12
Transformer  (0) 2023.10.12
VggNet  (0) 2023.10.12
AlexNet architecture  (1) 2023.10.10

댓글