• toc {:toc}

Introduction

LeNet-5 κ°€ λ§Œλ“€μ–΄μ§€κΈ° μ „κΉŒμ§€ 손글씨에 λŒ€ν•œ νŒ¨ν„΄ 인식에 λŒ€ν•œ 연ꡬ가 κ³„μ†ν•΄μ„œ 이루어지고 μžˆμ—ˆλ‹€. 전톡적인 νŒ¨ν„΄μΈμ‹ μ‹œμŠ€ν…œμ˜ 경우 hand-designed feature extractor, fully-connected multi-layer classifier 2 κ°€μ§€ λͺ¨λ“ˆλ‘œ 이루어져 μžˆλ‹€. 이 μ‹œμŠ€ν…œμ€ μ—¬λŸ¬ λ¬Έμ œκ°€ μžˆλ‹€.
LeNet_traditional_model{: .center}


전톡적인 μ‹œμŠ€ν…œμ˜ 문제점

1. Input κ³Ό κ΄€λ ¨λœ μ •λ³΄λ§Œ μΆ”μΆœν•œλ‹€.

hand-designed feature extractor 의 경우 input 에 μ μ ˆν•œ μ •λ³΄λ§Œ μ„ νƒν•œλ‹€. λΆ€μ μ ˆν•œ μ •λ³΄λŠ” μ œκ±°ν•œλ‹€. λ‹¨μˆœνžˆ 봀을 λ•ŒλŠ” μ™œ λ¬Έμ œκ°€ λ˜λŠ”κ°€ μ‹Άμ§€λ§Œ input 에 μ μ ˆν•œ μ •λ³΄λ§Œ μ„ νƒν•˜λŠ” 것은 κ²°κ΅­ overfitting 을 λ§Œλ“€κ³  μΌλ°˜ν™”λ₯Ό 이루지 λͺ»ν•œλ‹€. λ•Œλ¬Έμ— 각 κ²½μš°μ— λ§žλŠ” 더 λ§Žμ€ input 데이터λ₯Ό ν•„μš”λ‘œ ν•˜κ²Œ λœλ‹€.

feature extractor λŠ” μ„€κ³„ν•œ μ‚¬λžŒμ΄ μΆ”μΆœν•œ μ •λ³΄λ§Œ classifier 둜 μ „λ‹¬λ˜κΈ° λ•Œλ¬Έμ— μ œν•œλœ 정보가 μ „λ‹¬λœλ‹€. κ²°κ΅­ 이상적인 ν•™μŠ΅μ€ feature extractor μžμ²΄μ—μ„œ μ΄λ£¨μ–΄μ§€λŠ” 것이라 λ§ν•œλ‹€.

2. Parameter κ°€ λ„ˆλ¬΄ λ§Žλ‹€.

ν•˜λ‚˜μ˜ μ΄λ―Έμ§€λŠ” λͺ‡ 백개의 pixel 을 κ°€μ§„λ‹€. fully-connected multi layer μ—μ„œ 첫 번째 layer λ§Œμ„ 보더라도 λͺ‡ 만 개의 κ°€μ€‘μΉ˜λ₯Ό ν¬ν•¨ν•œλ‹€. parameter κ°€ λ„ˆλ¬΄ λ§Žμ€ 경우 μ‹œμŠ€ν…œμ˜ capacity λ₯Ό μ¦κ°€μ‹œν‚€κΈ° λ•Œλ¬Έμ— 더 큰 training set 을 μš”κ΅¬ν•œλ‹€. μΆ”κ°€μ μœΌλ‘œ λ§Žμ€ parameter λ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν•˜λ―€λ‘œ λ©”λͺ¨λ¦¬ ν• λ‹ΉλŸ‰λ„ 맀우 μ¦κ°€ν•œλ‹€.

μ†κΈ€μ”¨λŠ” μ—¬λŸ¬ μŠ€νƒ€μΌμ΄ 있기 λ•Œλ¬Έμ— input 에 translation, distortion 이 생긴닀. fully-connected layer λŠ” 이런 input 에 κ΄€λ ¨λœ 결과값을 μƒμ„±ν•˜λ„λ‘ ν•™μŠ΅λœλ‹€. κ³΅ν†΅μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” νŠΉμ§•μ΄λ”λΌλ„ λΉ„μŠ·ν•œ κ°€μ€‘μΉ˜ νŒ¨ν„΄λ“€ κ°€μ§„ λ‹€μˆ˜μ˜ μœ λ‹›μ„ 톡해 결과값을 좜λ ₯ν•œλ‹€. (μ€‘λ³΅μ μœΌλ‘œ μ‚¬μš©ν•˜κ²Œ λœλ‹€) λ•Œλ¬Έμ— λͺ¨λ“  κ°€μ€‘μΉ˜ νŒ¨ν„΄μ„ ν•™μŠ΅ν•˜λŠ” 것은 λ§Žμ€ ν•™μŠ΅ instance λ₯Ό ν•„μš”λ‘œ ν•œλ‹€.

3. Input 의 topology κ°€ μ™„μ „νžˆ λ¬΄μ‹œλœλ‹€.

이미지λ₯Ό fully-connected layer λ₯Ό 톡해 λ‚˜μ—΄ν•΄ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 2D input 의 μœ„μΉ˜ 정보λ₯Ό μ΄μš©ν•˜μ§€ λͺ»ν•œλ‹€.


LeNet-5

Convolution Network

Convolution Network λŠ” 3 개의 μ•„μ΄λ””μ–΄λ‘œ κ²°ν•©λ˜μ–΄ μžˆλ‹€.

(local receptive fields, shared weights, sub-sampling)

1. Local receptive fields

CNN 은 receptive field λ₯Ό local 둜 μ œν•œν•˜μ—¬ edge, end-point, corner 와 같은 local feature λ₯Ό μΆ”μΆœν•œλ‹€. μΆ”μΆœλœ feature 듀은 λ‹€μŒ layer 의 μž…λ ₯이 λ˜μ–΄ κ³ μ°¨μ›μ˜ νŠΉμ§•μ„ μΆ”μΆœν•œλ‹€.

이λ₯Ό 톡해 input 이 distortion μ΄λ‚˜ shift κ°€μ΄λ°œμƒν•˜λ”λΌλ„ λΉ„μŠ·ν•œ νŠΉμ§•μ„ κ°–λŠ” 배열이 receptive field 에 μΆ”μΆœλ˜λ©΄ ν•΄λ‹Ή νŠΉμ§•μ„ λ°˜μ˜ν•œ feature map 을 λ§Œλ“€ 수 μžˆλ‹€.

ν•΄λ‹Ή local 에 λŒ€ν•œ 계산을 μ§„ν–‰ν•˜κΈ° λ•Œλ¬Έμ— parameter 의 μˆ˜λ„ 쀄일 수 μžˆλ‹€.

2. Shared weight

CNN 은 λ™μΌν•œ weight 와 bias λ₯Ό κ³΅μœ ν•˜μ—¬ μ‚¬μš©ν•œλ‹€. 이λ₯Ό μ΄μš©ν•˜μ—¬ shift 에 λŒ€ν•œ λΆˆλ³€μ„±μ„ μ–»λŠ”λ‹€.

β†’ CNN 은 input 의 μ²˜μŒλΆ€ν„° λκΉŒμ§€ μ΄λ™ν•˜λ©° feature map 을 λ§Œλ“ λ‹€. 이 λ•Œ κ°€μ€‘μΉ˜λŠ” 이동할 λ•Œ λ™μΌν•œ weight 와 bias λ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μœ„μΉ˜κ°€ λ°”λ€Œλ”λΌλ„ λ™μΌν•œ νŠΉμ§•μ„ μΆ”μΆœν•œλ‹€.

μ΄λ ‡κ²Œ shared weight λ₯Ό ν†΅ν•΄μ„œ 계산 capacity λ₯Ό 쀄일 수 있고 ν•™μŠ΅ν•  parameter 의 μˆ˜λ„ 쀄여쀀닀.

λ‹€λ₯Έ λ…Όλ¬Έμ—μ„œ 증λͺ…λœ 이둠에 λ”°λ₯΄λ©΄

의였차율

E_{train}

k

h

\alpha

P

You can't use 'macro parameter character #' in math mode κ°€ μ„±λ¦½ν•˜κΈ° λ•Œλ¬Έμ— capacityκ°€ μ€„μ–΄λ“€λ©΄μ„œ 두 set의 μ˜€μ°¨μœ¨λ„ 쀄일 수 μžˆλ‹€. β‡’ Overfitting을 λ°©μ§€ ### 3. Sub-sampling λ…Όλ¬Έμ—μ„œ λ§ν•˜λŠ” sub-sampling은 average poolingκ³Ό κ°™λ‹€. ν•œ 번 local featureκ°€ μΆ”μΆœλ˜λ©΄ μ •ν™•ν•œ μœ„μΉ˜ μ •λ³΄λŠ” 점점 덜 μ€‘μš”ν•΄μ§„λ‹€. 각 μœ„μΉ˜μ— λŒ€ν•œ μ •ν™•ν•œ μœ„μΉ˜λŠ” νŒ¨ν„΄ 인식과 λ¬΄κ΄€ν•˜κ³  μž…λ ₯값에 따라 νŠΉμ§•μ΄ λ‚˜νƒ€λ‚˜λŠ” μœ„μΉ˜κ°€ λ‹€λ₯Ό 수 있기 λ•Œλ¬Έμ— 잠재적으둜 μœ ν•΄ν•˜λ‹€κ³  λ§ν•œλ‹€. μœ„μΉ˜μ— λŒ€ν•œ 정확도λ₯Ό κ°μ†Œμ‹œν‚€λŠ” κ°„λ‹¨ν•œ 방법은 feature map의 해상도λ₯Ό κ°μ†Œμ‹œν‚€λŠ” 것이닀. local averagingκ³Ό sub-sampling을 μˆ˜ν–‰ν•˜λŠ” sub-sampling layerλ₯Ό μ΄μš©ν•˜μ—¬ 해상도λ₯Ό κ°μ†Œμ‹œμΌœ shift와 distortion에 λŒ€ν•œ 결과의 민감도λ₯Ό 쀄인닀. μœ„μΉ˜ 정보λ₯Ό κ°μ†Œμ‹œν‚€λ©° λ°œμƒν•˜λŠ” 손싀은 더 λ§Žμ€ filterλ₯Ό μ‚¬μš©ν•΄ 더 λ‹€μ–‘ν•œ featureλ₯Ό μΆ”μΆœν•˜μ—¬ μƒν˜Έλ³΄μ™„ν•  수 μžˆλ„λ‘ ν•œλ‹€. --- <br> ## LeNet-5의 ꡬ쑰 Input β†’ Conv1 β†’ Subsampling2 β†’ Conv3 β†’ Subsampling3 β†’ Conv5 β†’ FC β†’ FC β†’ Output ![LeNet](https://user-images.githubusercontent.com/64977390/208244452-23dff0a8-687b-44f7-8d9a-807aee74b7a4.png){: .center} <br> ### Input - size : 32x32x1 μ‹€μ œ 문자 μ΄λ―Έμ§€λŠ” 28x28x1의 ν˜•νƒœμ΄κ³  20x20 크기의 μˆ«μžκ°€ 쀑앙에 μžˆλ‹€. 크기λ₯Ό ν‚€μ›€μœΌλ‘œμ¨ receptive field 쀑앙 뢀뢄에 corner, edge같은 νŠΉμ§•λ“€μ΄ λ‚˜νƒ€λ‚˜κΈΈ κΈ°λŒ€ν–ˆλ‹€. ### Conv1 - size : 5x5 - kernel = 6 - stride = 1 - output : 28x28x6 - 156개의 trainable parameters, 122,304 connections ### Subsampling2 - size : 2x2 - kernel = 6 - stride = 2 - output : 14x14x6 - 12개의 trainable parameters, 5,880 connections ### Conv3 - size : 5x5 - kernel = 16 - stride = 1 - output : 10x10x16 - 1,416개의 trainable parameters, 151,600 connections ### Subsampling4 - size : 2x2 - kernel = 16 - stride = 2 - output : 5x5x16 - 32개의 trainable parameters, 2,000 connections ### Conv5 - size : 5x5 - kernel = 120 - stride = 1 - output : 1x1x120 - 10,164개의 trainable parameters ### FC6 - tanhλ₯Ό ν™œμ„±ν™” ν•¨μˆ˜λ‘œ μ‚¬μš©ν•œλ‹€. - input = 120 - output = 84 β‡’ 각각의 λ¬Έμžκ°€ 7x12크기의 λΉ„νŠΈλ§΅μΈ ASCII set을 ν•΄μ„ν•˜κΈ° μ ν•©ν•œ ν˜•νƒœλ‘œ μ‚°μΆœλ  것을 κΈ°λŒ€ν•˜κ³  output을 84둜 μ„ νƒν–ˆλ‹€. ### FC7 - RBF(Euclidean Radia Basis Function unit)을 ν™œμ„±ν™” ν•¨μˆ˜λ‘œ μ‚¬μš©ν•œλ‹€. - input = 84 - output = num_classes = 10 ### Loss function - MSE(Mean Squared Error, 평균 제곱 였차)λ₯Ό μ‚¬μš©ν–ˆλ‹€. <br> <br> --- ### μ°Έκ³  [1] [http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf](http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf) [2] [https://deep-learning-study.tistory.com/368](https://deep-learning-study.tistory.com/368)