II Convolutional Neural Networks for Isolated Character Recognition
다층 신경망은 수많은 예제로부터 복잡하고 고차원의 비선형 매핑을 학습하기 위해 경사하강법을 사용
전통적인 패턴 인식모델은 fully-connected 신경망을 분류기로 사용합니다. 일반적인 fuuly-connected network를 사용하여 문자 인식에 대해 일부 성공적으로 수행될 수 있지만 몇가지 문제점 존재
- 전형적인 2D 이미지는 크기가 크며 수 백개의 픽셀을 가지고 있어 fully-connected로 학습시키면 너무 많은 학습량, 학습시간, 많은 weight를 저장해야 할 hardware적인 요소가 필요
- fully-connected layer에 input을 할 시 3차원 데이터를 1차원으로 변경해야 한다. 이때 '데이터의 형상이 무시'
=> 해당 문제를 Convolutional Neural Networks(CNN)을 사용하여 해결
A. Convolutional Networks
이동,크기,왜곡에 대한 무변성을 보장하기 위해 세 가지 구조적 아이디어를 결합
1) local receptive field
- 각 레이어의 유닛은 이전 레이어에서 지역적으로 이웃한 일부 유닛으로부터 입력을 받음
- local receptive field를 사용하는 뉴런들은 원소들의 가장자리, 끝점, 모서리 등의 시각적 특징을 추출할 수 있음
- 이러한 특징은 후레이어와 결합되어 더 고차원적인 특징을 감지할 수 있음
2) shared weights(or weight replication)
- local recepitve fileds 내에서의 가중치들은 같은 값을 사용
- 학습할 파라미터 수를 줄여줘 Overfitting을 방지
3) spatial or temporal sub-sampling
- Average pooling을 사용
- feature map의 해상도를 줄임으로써 이미지의 노이즈나 왜곡를 고려
B. LeNet-5
- Input
- Convolution Layer(C1,C2,C3)
- Subsampling Layer(S2,S4)
- Fully-connected Layer(F6)
- Output
C1 Layer
- 32x32 사이즈의 이미즈를 6개의 5x5 필터와 Convolution
- 6장의 28x28 feature map를 얻음
훈련해야할 파라미터 개수= (가중치*입력맵개수+bias)*(feature map 개수)
= (5*5*1+1)*6 = 156
S2 Layer
- 6장의 28x28 feature map에 대해 Subsampling(2x2 filter, stride=2)
- 14x14 사이즈 feature map으로 축소
훈련해야할 파라미터 개수= (가중치+bias)*(feature map 개수)
= (1+1)*6 = 12
*Average Pooling에도 파라미터가 필요한 이유
- 평균을 낸 후에 한 개의 trainable weight을 곱해주고 또 한 개의 trainable bias를 더해줌
- 가중치와 bias는 시그모이드의 비활성도를 조절
C3 Layer
- 6장의 14x14 feature map을 5*5*(6+6+3+1) filter와 Convolution 연산 수행
- 결과적으로 16장의 10x10 feature map 산출
훈련해야할 파라미터 개수= (가중치*입력맵개수+바이어스)*특성맵 개수
1번째 그룹 = (5*5*3+1)*6=456
2번째 그룹 = (5*5*4+1)*6=606
3번째 그룹 = (5*5*4+1)*3=303
4번째 그룹 = (5*5*6+1)*1=151
=> 총 1515개
S4 Layer
- 16장의 10x10 feature map을 subsampling
- 16장의 5x5 feature map으로 축소
훈련해야할 파라미터 개수= (가중치+바이어스)*특성맵 개수
=(1+1)*16 =32
C5 Layer
- 16장의 5x5 feature map을 120개의 5x5x16 사이즈의 filter와 Convolution
- 120개의 1x1 feature map 산출
훈련해야할 파라미터 개수= (가중치*입력맵개수+바이어스)*특성맵 개수
=(5*5*16 + 1)*120=48120
F6 Layer
- 86개의 유닛을 가진 피드포워드 신경망
- C5의 결과를 84개 유닛에 연결
훈련해야할 파라미터 개수= 연결개수
= (입력개수 + 바이어스)*출력개수
=(120+1)*84 = 10164
Output
- 10개의 RBF 유닛들로 구성
LeNet-5를 제대로 가동하기 위해 훈련해야할 파라미터는 총 156 + 12 + 1516 + 32 + 48120 + 10164 = 60000개
'논문 리뷰 > CV' 카테고리의 다른 글
[X:AI] InceptionV2/3 논문 리뷰 (0) | 2024.03.14 |
---|---|
[X:AI] SPPNet 논문 리뷰 (0) | 2024.03.10 |
[GoogLeNet] 24.01.23 스터디 (논문) (0) | 2024.01.23 |
[VGG] 24.01.23 스터디 (논문) (0) | 2024.01.21 |
[AlexNet] 24.01.16 스터디 (논문) (1) | 2024.01.15 |