8-1 Component of Convolutional Neural Network
1. CNN Structure
- CNN(Convolutional Neural Network, ν©μ±κ³± μ κ²½λ§)μ μΌλ°μ μΌλ‘ λ€μκ³Ό κ°μ κ³μΈ΅μΌλ‘ ꡬμ±λ Neural Networkμ μΌμ’ μ΄λ€.
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
1-1. Convolutions
- Input Imageμ Feature Extaction(νΉμ± μΆμΆ)
- Filter (Kernel) μ¬μ©
- μ λ ₯ κ°μ μ€μΊνλ©° ν©μ±κ³±(Convolution) μ°μ°μ μν
- Filterμ Hyperparameterλ ν¬κΈ° Fμ μ€νΈλΌμ΄λ(Strides) Sλ₯Ό ν¬ν¨
- Filter μ€μΊ ν Activate Functionμ ν΅ν΄ Feature Extraction
- Convolution Layerμ Outputμ Feature Map λλ Activate Mapμ΄λΌ νλ€.
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
1-2. Pooling
- Convolution Layerμμ μΆμΆλ Feature Mapμ Downsampling(μ°¨μμ μΆμνλ) μμ
- Feature Mapμ ν¬κΈ°λ₯Ό μ€μ΄λ©°, κ°μλ μ€μ΄μ§ μλλ€. (Feature Mapμ κ°μ : Filter κ°μ)
- Filterμ κ°μ κ°μ€μΉκ° μκ³ , λμ μ μ΅λκ°μ΄λ νκ· κ°μ κ³μ°νλ μν μ μν
- μ΅λ νλ§(Max Pooling)
- νκ· νλ§(Average Pooling)
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
1-3. Fully Connected
- Pooling Layerμ μν΄ Downsamplingλ Feature Mapμ νλμ μ΄ λ²‘ν°λ‘ λ³ννμ¬ InputμΌλ‘ μ¬μ©
- FC Layerμ μΌλ°μ μΌλ‘ CNN ꡬ쑰 λ λΆλΆμμ λ°κ²¬λλ©°, ν΄λμ€ μ μμ κ°μ λͺ©νλ₯Ό μ΅μ ν
- μ΄λ, Overfittingμ λ§κΈ° μν΄ Drop-Out κΈ°λ² μ¬μ©
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
2. HyperParameter Tuning
- Convolutions κ³μΈ΅μ Filterμ Hyperparameterμ μλ―Έλ₯Ό μλ κ²μ΄ μ€μνλ€.
- Filter Size
- Stride : Windowκ° μ΄λνλ ν½μ μ
- Zero-Padding : Input Imagedμ κ° κ²½κ³λ©΄μ Pκ°μ Zeroλ₯Ό λνλ κ³Όμ
- Convolution Layerμ Parameter νΈνμ±
3. Activate Functions
- μ£Όλ‘ μ¬μ©λλ Activate Function
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
4. λ°μ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ γγγγγγγγγγ
μμ½
- ν©μ±κ³±(Convolutions)μ λ°μ§μΈ΅(Dense Layer)κ³Ό λΉμ·νκ² μ
λ ₯κ³Ό κ°μ€μΉλ₯Ό κ³±νκ³ μ νΈμ λνλ μ ν κ³μ°μ΄λ€.
- νμ§λ§ λ°μ§μΈ΅κ³Ό λ¬λ¦¬ κ° Convolutionsλ μ λ ₯ μ μ²΄κ° μλλΌ μΌλΆλ§ μ¬μ©νμ¬ μ ν κ³μ°μ μννλ€.
- Convolutions Layerμ Filterλ λ°μ§μΈ΅μ Neuronμ ν΄λΉνλ€.
- Filterμ κ°μ€μΉμ μ νΈμ μ’ μ’ μ»€λμ΄λΌκ³ λΆλ₯Έλ€.
- μμ£Ό μ¬μ©λλ 컀λμ ν¬κΈ°λ (3,3) λλ (5,5)μ΄λ€.
- 컀λμ κΉμ΄λ μ λ ₯μ κΉμ΄μ κ°λ€.
- Feature Mapμ ν©μ±κ³± μΈ΅μ΄λ νλ§ μΈ΅μ μΆλ ₯ λ°°μ΄μ μλ―Ένλ€.
- νν° νλκ° νλμ νΉμ± 맡μ λ§λ λ€.
- ν©μ±κ³± μΈ΅μμ 5κ°μ νν°λ₯Ό μ¬μ©νλ©΄ 5κ°μ Feature Mapμ΄ λ§λ€μ΄ μ§λ€.
- Paddingμ ν©μ±κ³± μΈ΅μ μ
λ ₯ μ£Όμμ μΆκ°ν 0μΌλ‘ μ±μμ§ ν½μ
μ΄λ€.
- ν¨λ©μ μ¬μ©νμ§ μλ κ²μ Valid Paddingμ΄λΌκ³ νκ³ ν©μ±κ³± μΈ΅μ μΆλ ₯ ν¬κΈ°λ₯Ό μ λ ₯κ³Ό λμΌνκ² λ§λ€κΈ° μν κ²μ Same Paddingμ΄λΌκ³ νλ€.
- Strideλ ν©μ±κ³± μΈ΅μμ νν°κ° μ λ ₯ μλ₯Ό μ΄λνλ ν¬κΈ°μ΄λ€.
- νλ§μ κ°μ€μΉκ° μκ³ νΉμ± 맡μ κ°λ‘ μΈλ‘ ν¬κΈ°λ₯Ό μ€μ΄λ μν μ μννλ€.
- λνμ μΌλ‘ μ΅λ νλ§κ³Ό νκ· νλ§μ΄ μμΌλ©° (2,2) νλ§μΌλ‘ μ λ ₯μ μ λ°μΌλ‘ μ€μΈλ€.
- μΆμ² : https://stanford.edu/~shervine/l/ko/teaching/cs-230/cheatsheet-convolutional-neural-networks