- deep learning
- image classification
- Convolution 종류
- Optimizer
- LeNet 구현
- overfeat
- SPP-Net
- object detection
- 딥러닝
- Weight initialization
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
I'm Lim
[논문 요약] LeNet 본문
1. Paper
LeCun, Yann, et al. "Gradient-based learning applied to document recognition." Proceedings of the IEEE 86.11 (1998): 2278-2324.
2. 전통적인 패턴 인식
1 ) feature extract를 위해서는 사전지식과 업무를 구체적으로 알아야합니다.
극단적인 예시로 모든 개는 수염이 없고 고양이는 수염이 있다고 가정한다면, 수염의 여부로 개와 고양이를 100퍼센트 분류해낼 수 있습니다. 이는 적절한 인식 시스템이 만들어졌다고 볼 수 있습니다. 이 예시는 개와 고양이를 분류하는 업무라는 것을 구체적으로 파악하는 것과 개와 고양이를 분류하는 특징은 수염이라는 것을 파악해야 올바른 인식 시스템을 만들 수 있음을 보여줍니다.
2 ) 전통적인 패턴 인식 기법으로는 정확한 인식 시스템을 만드는 것이 불가능합니다.
개와 고양이를 분류하는 업무가 아니라 개와 고양이와 호랑이를 분류하는 업무라면, 호랑이를 분류하기 위해 또 다른 하나 혹은 여러개의 특징들이 추가적으로 요구됩니다. 즉, 업무가 복잡해질수록 거기에 요구되는 특징은 더욱 많아지게 되고, 결국 사실상 모든 특징을 추출하는 것은 불가능해집니다.
3. Learning from data
$P$ : 학습 데이터 개수 | $h$ : 모델의 복잡도 | $\alpha$, $k$ : 상수
- 학습 데이터 개수($P$)가 많아질수록 $E_{test} - E_{train}$는 감소합니다 ( 데이터가 많으면 많을수록 학습에 유리합니다 ).
- 일반적으로 모델의 복잡도($h$)가 커지면, $E_{train}$은 감소합니다. 이 경우, $E_{test} - E_{train}$이 줄어드는 것은 아니므로 Overfitting이 발생합니다. 이를 방지하기 위해 Weight Regularization 기법이 사용됩니다.
따라서, Overfitting을 방지하기 위해서는 많은 데이터를 학습시키거나, 모델의 복잡도를 감소시켜야 합니다.
4. Convolutional Neural Network
1 ) Multi Layer Perceptron 사용시 단점
- MLP는 엄청나게 많은 파라미터 수를 요구합니다. 예를 들어, 입력 이미지 크기가 100 x 100 x 1이라고 가정하고, 100개의 노드를 가진 레이어가 연결된다면, 이 레이어에만 연결된 파라미터 수는 무려 1,000,000개가 됩니다. 이는 엄청난 메모리 사용량을 차지하고, 연산 시간을 증가시키게 됩니다. 뿐만 아니라, 모델 복잡도도 커지게 됩니다.
- MLP는 입력 이미지를 1D (2차원 이미지가 아닌 1차원 벡터로 바꾸어서 입력으로 들어가는 것을 의미)로 처리하기 때문에 이미지의 이동(transiation), 왜곡(distortion)에 매우 취약할 수밖에 없습니다. 뿐만 아니라, 이미지는 그 특성상 인근 픽셀값과 높은 상관관계를 갖는데 MLP는 이를 모두 무시해버립니다 ( 이 상관관계는 edge나 corner 등 이미지의 중요한 특징들을 추출하는데 중요하다고 합니다 ).
2 ) Convolutional Neural Network
- Local Receptive Field : CNN은 MLP와 달리 공간적인 정보를 추출해냅니다.
현재는 filter라는 용어로 더욱 친숙한 local receptive field는 입력 feature map의 일부분만을 가지고 연산을 합니다. 이를 통해 2차원 이미지의 끝점, 코너 등의 기본적인 시각 정보들을 추출할 수 있습니다.
- Shared weights : CNN 구조는 사물의 이동과 왜곡에 강건합니다 (robust).
CNN 구조는 가중치를 공유하기 때문에 MLP보다 훨씬 더 작은 양의 parameter 수를 요구합니다. MLP에서 사용했던 예시에서 local receptive field를 3 x 3으로 가정하고, 출력 channel의 개수를 100개로 가정하면 여기에 사용되는 파라미터 수는 900개가 됩니다. 또한, 이러한 가중치를 공유한다는 특성 덕분에 입력 이미지가 이동하면 출력값들도 동일하게 이동할 뿐, 그 값은 동일합니다.
※ 가중치를 공유한다는 것에 대한 의미 : CNN은 입력 feature map을 여러가지 커널을 통해 연산합니다 ("여러가지"라는 의미는 channel의 수와 동일한 의미입니다). 하나의 커널은 kernel_size x kernel_size의 파라미터 수를 가지게 됩니다 (bias는 생략). 이 파라미터는 입력 feature map을 이동하면서 연산을 진행합니다. feature map을 이동하면서 연산을 진행할 때, 파라미터의 값은 변하지 않으므로 가중치를 공유한다고 표현합니다.
- Sub-sampling ( Pooling ) : Pooling을 사용함으로써 이동과 왜곡에 대한 민감도를 낮춥니다.
사람은 이미지 패턴 인식을 할 때, 사물의 특징을 살핍니다. 다시 말해, 어느 위치에 그 사물이 존재하는지는 중요하지 않습니다. 따라서, CNN모델은 위치에 편향되지 않아야하고, 이를 위한 간단한 방법은 feature map의 크기를 줄이는 것입니다. 이 feature map의 크기를 줄이는 것을 sub sampling을 통해 진행하게 됩니다. 이 방식은 현재의 Pooling과 동일한 개념입니다.
5. MNIST Dataset
논문에서는 MNIST 데이터 셋을 학습에 이용하였습니다. 원래 MNIST은 28 x 28 크기를 가지고 있는데, Padding을 적용하여 32 x 32를 입력 이미지 크기로 사용하였습니다. 또한, 입력이미지에 Normalization을 적용하였습니다.
6. LeNet-5 구조
kenel_size | stride | padding | in_channel | out_channel | input_shape | |
conv | 5 | 1 | 0 | 1 (gray) | 6 | (1, 32, 32) |
pool | 2 | 2 | 0 | (6, 28, 28) | ||
conv | 5 | 1 | 0 | 6 | 16 | (6, 14, 14) |
pool | 2 | 2 | 0 | (16, 10, 10) | ||
conv | 5 | 1 | 0 | 16 | 120 | (16, 5, 5) |
linear | 120 | 84 | (120, ) | |||
linear | 84 | 10 | (84, ) |
'Classification > Paper' 카테고리의 다른 글
[논문 요약] ZFNet (0) | 2022.11.06 |
---|---|
[논문 요약] AlexNet (0) | 2022.10.31 |