stem/AI/Neural Networks/CNN
andy 236a5eac06 vault backup: 2023-05-31 22:51:45
Affected files:
.obsidian/app.json
.obsidian/appearance.json
.obsidian/workspace.json
Money/Markets/Commodity.md
STEM/AI/Neural Networks/CNN/CNN.md
STEM/AI/Neural Networks/CNN/GAN/CycleGAN.md
STEM/AI/Neural Networks/CNN/GAN/DC-GAN.md
STEM/AI/Neural Networks/CNN/GAN/cGAN.md
STEM/AI/Neural Networks/CV/Data Manipulations.md
STEM/AI/Neural Networks/MLP/Back-Propagation.md
STEM/CS/Code Types.md
STEM/CS/Compilers.md
STEM/Quantum/Confinement.md
2023-05-31 22:51:45 +01:00
..
FCN vault backup: 2023-05-31 21:29:04 2023-05-31 21:29:04 +01:00
GAN vault backup: 2023-05-31 22:51:45 2023-05-31 22:51:45 +01:00
CNN.md vault backup: 2023-05-31 22:51:45 2023-05-31 22:51:45 +01:00
Convolutional Layer.md vault backup: 2023-05-26 18:29:17 2023-05-26 18:29:17 +01:00
Examples.md vault backup: 2023-05-27 00:50:46 2023-05-27 00:50:46 +01:00
Inception Layer.md vault backup: 2023-05-26 18:29:17 2023-05-26 18:29:17 +01:00
Interpretation.md vault backup: 2023-05-27 22:17:56 2023-05-27 22:17:56 +01:00
Max Pooling.md vault backup: 2023-05-26 18:29:17 2023-05-26 18:29:17 +01:00
Normalisation.md vault backup: 2023-05-26 18:29:17 2023-05-26 18:29:17 +01:00
README.md vault backup: 2023-05-31 21:29:04 2023-05-31 21:29:04 +01:00
UpConv.md vault backup: 2023-05-27 23:02:51 2023-05-27 23:02:51 +01:00

Before 2010s

  • Data hungry
    • Need lots of training data
  • Processing power
  • Niche
    • No-one cared/knew about CNNs

After

  • ImageNet
    • 16m images, 1000 classes
  • GPUs
    • General processing GPUs
    • CUDA
  • NIPS/ECCV 2012
    • Double digit % gain on ImageNet accuracy

Full Connected

Dense

  • Move from convolutional operations towards vector output
  • Stochastic drop-out
    • Sub-sample channels and only connect some to dense layers

As a Descriptor

  • Most powerful as a deeply learned feature extractor
  • Dense classifier at the end isn't fantastic
    • Use SVM to classify prior to penultimate layer

cnn-descriptor

Finetuning

  • Observations
    • Most CNNs have similar weights in conv1
    • Most useful CNNs have several conv layers
      • Many weights
      • Lots of training data
    • Training data is hard to get
      • Labelling
  • Reuse weights from other network
  • Freeze weights in first 3-5 conv layers
    • Learning rate = 0
    • Randomly initialise remaining layers
    • Continue with existing weights

fine-tuning-freezing

Training

  • Validation & training [loss](../Deep%20Learning.md#Loss Function)
  • Early
    • Under-fitting
    • Training not representative
  • Later
    • Overfitting
  • V.[loss](../Deep%20Learning.md#Loss Function) can help adjust learning rate
    • Or indicate when to stop training

under-over-fitting