Model Training Process for Neural Network
Model Training
- Objective: Train the neural network model to recognize features from images.
Overview of the Training Process
- Built model architecture previously, discussed filters and feature maps.
- Each feature map reflects different characteristics of the input image for model learning.
- Moving to training where model will learn to minimize loss based on input data.
- Use
model.fit() to start training.- Parameters:
x: Training dataset.validation_data: Validation dataset to check model performance.epochs: Set to 10 initially.training_history: Variable to store the entire training history for future visualization.
Monitoring Loss
- Track performance by monitoring loss after each epoch.
- E.g., loss in the first epoch was 4.44, but during the second epoch, loss increased indicating an overshooting issue.
Problems Identified
- Overshooting Loss Function: Model fails to minimize loss effectively due to issues like high learning rate leading to oscillation.
- Solution: Decrease Learning Rate.
- Default learning rate for ADAM is 0.001; adjusted to 0.0001 to improve learning stability.
- Potential Underfitting: Model may not adequately capture dataset information.
- Solutions:
- Increase Number of Neurons: Raise neurons in the dense layer from 1024 to 1500.
- Add More Convolutional Layers: Add layers to improve feature extraction and model learning.
Dropout Layers
- Added dropout layers to prevent overfitting by randomly dropping a percentage of neurons during training.
- First dropout layer: Drop 25% of neurons.
- Second dropout layer: Drop 40% of neurons after hidden layers.
Adjusting Convolution Layers
- Implemented padding in the first convolution layer to maintain input feature size and improve learning.
- Padding set to 'same' for the first layer but removed for subsequent layers to increase training speed by reducing parameters.
- Resulting model architecture includes:
- Convolutional layers (with respective filters)
- Dropout layers to manage overfitting
- Flattening operation followed by dense layers and output layer setup with softmax activation.
Training Results
- Trained model showed decreasing loss with:
- Training Accuracy: 96.84%
- Validation Accuracy: 95.52%
- Model training took approximately 30 minutes and confirmed effectiveness of the adjustments made during training setup.
Summary of Key Adjustments
- Learning Rate: Decreased from 0.001 to 0.0001 to address overshooting.
- Increased Neurons: Raised from 1024 to 1500 to mitigate underfitting.
- Additional Convolutional Layer: Improved feature extraction capabilities.
- Implemented Dropout: Enhanced model robustness against overfitting.
- Padding Adjustments: Balanced model speed and accuracy by modifying padding configurations across layers.
Next Steps
- In upcoming videos, we will evaluate model performance and explore how to save the trained model.