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를 쓰기 시작한다.
'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 |
댓글