- toc {:toc}
Introduction
LeNet μ ν΅ν΄ convolution(μ΄ν conv) μ΄ λμ¨ μ΄ν, AlexNet μ ν΅ν΄ ConvNets μ΄ large-scale μ΄λ―Έμ§, λΉλμ€ μΈμμ μ’μ μ±κ³Όλ₯Ό κ±°λ μ λ°λΌ ConvNets μ μ±λ₯μ μ¦κ°μν€λ λ°©λ²μ λν μ°κ΅¬λ‘ λ°©ν₯μ΄ μ΄μ΄μ‘λ€.
Related Work - Visualizing and Understanding Convolutional Networks
ν΄λΉ λ Όλ¬Έμ conv μ νΉμ§λ§΅μ μκ°ννκ³ , μ΄λ»κ² μ¬μ©ν΄μΌ conv λ₯Ό λ ν¨κ³Όμ μΌλ‘ μ¬μ©ν μ μλμ§ μ μν λ Όλ¬Έμ΄λ€. λ Όλ¬Έμμλ AlexNet μ λͺ¨λΈλ‘ μ€μ ν΄ μ€νμ μ§ννλ€.
λ Όλ¬Έμμλ Layer 1 μμλ edge, corner μ κ°μ low-level μ νΉμ§μ λ½μλ΄κ³ , μΈ΅μ΄ κ±°λλ μλ‘, μ§κ°μ΄λ ννμ κ°μ high-level μ νΉμ§μ λ½μλΈλ€λ κ²μ μ μνλ€.
Fig2 μ (c) μμλ receptive window size μ stride λ₯Ό λ μκ² λ§λλ κ²½μ° λ λλ ·ν νΉμ§μ λ§λ€κ³ μ£½μ νΉμ§λ€μ΄ λ λ 보μΈλ€κ³ μ μνλ€.
λ€μκ³Ό κ°μ μ°κ΅¬μ μ΄μ΄ VGGNet μμλ 첫 λ²μ§Έ μΈ΅μμ λ μμ receptive window size λ₯Ό μ μ©νκ³ , λ€νΈμν¬μ κΉμ΄λ₯Ό μ¦κ°μν€λ λ°©λ²μ μ μνλ€.
VGGNet
VGGNet μ Layer ꡬ쑰λ λ€μκ³Ό κ°λ€.
- Input : 224x224 RGB μ΄λ―Έμ§
- Pre-processing : Train set μ R, G, B νκ· κ°μ κ° ν½μ μ λΉΌμ€λ€.
- Conv
- Kernel size : 3x3
- Stride : 1
- Padding : same (μΆλ ₯ νΉμ§λ§΅μ ν¬κΈ°κ° μ λ ₯κ³Ό κ°κ² λ§λ λ€. Stride=1 μ΄λ―λ‘ Padding=1)
- 1x1Conv : Configuration C μ μ¬μ©λλ 1x1conv λ κ°μ μ°¨μμΌλ‘μ μ ν λ³ν ν ReLU λ‘ μΈν λΉμ νμ±μ μ¦κ°λ₯Ό μν΄ μ μ©νλ€.
- MaxPooling
- Size : 2x2
- Stride : 2
- Conv μμλ νΉμ§λ§΅ ν¬κΈ°λ₯Ό μ μ§νκ³ MaxPooling μμ ν¬κΈ°λ₯Ό μ€μΈλ€.
- νΉμ§λ§΅μ ν¬κΈ°κ° 1/4 λ‘ μ€μ΄λ€λ©΄ μΆλ ₯ μ±λμ 2 λ°°λ‘ μ¦κ°μν΄μΌλ‘μ¨ νΉμ§μ 보쑴νκ³ κΉμ νΉμ§μ λ½μλ΄λ € νλ€.
- Parameters : 138M (VGGNet-16 μ΄ μ£Όλ‘ λ§μ΄ μ¬μ©λ¨)
VGGNet μ νΉμ§λ§΅ λ³νλ μλ κ·Έλ¦Όκ³Ό κ°λ€.
Discussion
Why use smaller filters? (3x3 conv)
AlexNet κ³Ό Related Work μμ μκ°ν Visualizing and Understanding Convolutional Networks μμλ 11x11conv λ₯Ό stride 4 λ‘, 7x7conv λ₯Ό stride 2 λ‘ μ²« λ²μ§Έ μΈ΅μμ μ¬μ©νλ©΄μ λμ λ²μμ νΉμ§μ λ½μλ΄λ λ°©μμ μ¬μ©νμΌλ, VGGNet μμλ 3x3conv λ₯Ό stride 1 λ‘ μ¬λ¬ λ² μ¬μ©νλ λ°©μμ μ¬μ©νλ€. μ VGGNet μμλ μ΄λ° λ°©μμ μ¬μ©νμμ§ λΆμν΄λ³΄μ.
1. More non-linearity
μ κ·Έλ¦Όμ 10x10 μ λ ₯μ 7x7 conv μ, 3x3 conv λ₯Ό stride 1 λ‘ μ΄λμν€λ©° 4x4 νΉμ§λ§΅μ λ§λλ κ·Έλ¦Όμ΄λ€.
7x7conv μ κ²½μ° 1 λ²μ conv μ°μ°μ ν΅ν΄μ 4x4 νΉμ§λ§΅μ μΆλ ₯νλ€. νμ§λ§ 3x3conv λ 7x7conv κ° 1 λ²μ μ°μ°μ 3 λ²μ μ°μ°μ ν΅ν΄μ μΆλ ₯νλ€. Conv μ°μ° μ΄ν ReLU λ₯Ό ν΅κ³ΌνκΈ° λλ¬Έμ conv μ°μ°μ μ¬λ¬ λ² μνν μλ‘ λ€μν νΉμ§κ³΅κ°μΌλ‘ λ³νμν€κ³ λΉμ νμ±μ μ¦κ°μν€λ ν¨κ³Όλ₯Ό κ°μ Έμ¨λ€. λΉμ νμ±μ μ¦κ°μν€λ©΄ κ²°μ ν¨μκ° λ λλ ·ν κ²°μ μ ν μ μλλ‘ λ§λ λ€.
2. Decrease the number of parameters
7x7conv μ 3x3conv λ₯Ό λΉκ΅ν΄λ΄€μ λ νλΌλ―Έν°μ μλ₯Ό κ³μ°ν΄λ³΄μ.
- νλΌλ―Έν°μ κ³μ°
- μ
λ ₯κ³Ό μΆλ ₯μ μ±λμ΄ λͺ¨λ
μ±λμ΄κ³ bias κ° μλ€κ³ κ°μ νλ€. - 7x7conv μ νλΌλ―Έν°
- 3x3conv μ νλΌλ―Έν°
μ¦, 3x3 μ μ¬λ¬ λ² μ¬μ©νλλΌλ 7x7 μ ν λμ λΉν΄ νλΌλ―Έν°μ μκ° μλ€λ κ²μ μ μ μλ€.
νλΌλ―Έν°μ μκ° ν¬λ€λ κ²μ κ·Έλ§νΌ μ°μ°λμ΄ λ§λ€λ μλ―Έμ΄κ³ , μ΄λ κ³§ κΉκ² μμ μ μλ€λ μλ―Έμ΄λ€. μ΄λ₯Ό VGGNet μμλ 3x3conv λ₯Ό μ¬μ©νμ¬ νλΌλ―Έν°μ μλ₯Ό κ°μμν΄μΌλ‘μ¨ λ κΉμ μΈ΅μ μμ μ μλλ‘ λ§λ€μλ€.
Result
A μμ E λ‘ κ°μλ‘ μΈ΅μ κΉκ² μμ ꡬ쑰μμ μκ°νλ©΄ μΈ΅μ΄ κΉμ΄μ§μλ‘ μ€μ°¨κ° λ μ€μ΄λ€μ΄ μ±λ₯μ΄ μ¦κ°νλ κ²μ νμΈν μ μλ€.
VGGNet μ 3x3conv λ₯Ό μ¬μ©ν¨μΌλ‘μ¨ λΉμ νμ±μ μ¦κ°, νλΌλ―Έν° κ°μμ ν¨κ³Όλ₯Ό ν΅ν΄ ConvNets μ λ μ’μ μ±λ₯μ μ΄λμ΄λλ€.
μ°Έκ³ λ¬Έν
- Fig1, Fig2 - Visualizing and Understanding Convolutional Networks
- Fig3, Fig6 - VGGNet, Very Deep Convolutional Networks for Large-Scale Image Recognition
- Fig4 - https://neurohive.io/en/popular-networks/vgg16/
- Fig5 - https://medium.com/@msmapark2/vgg16-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-very-deep-convolutional-networks-for-large-scale-image-recognition-6f748235242a