Convolutional Neural Networks
Deep learning for image processing.
AI that sees images.
What are CNNs?
Neural networks designed for images.
Like how your brain processes visual information!
How CNNs Work
**Layers**: 1. **Convolution**: Detect features (edges, shapes) 2. **Pooling**: Reduce size, keep important info 3. **Dense**: Make final decision
Real Example - Cat vs Dog
1. **Convolution**: Finds edges, fur patterns 2. **Pooling**: Keeps key features 3. **Dense**: Decides "Cat" or "Dog"
Basic CNN in Python
```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten
model = Sequential([ # Convolution layer Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)), # Pooling layer MaxPooling2D(pool_size=(2, 2)), # Another conv + pool Conv2D(64, (3, 3), activation='relu'), MaxPooling2D(pool_size=(2, 2)), # Flatten for dense layers Flatten(), Dense(128, activation='relu'), Dense(1, activation='sigmoid') # Output: cat or dog ])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) ```
Convolution Explained
Slide a small filter over image:
**Filter**: 3x3 grid that detects patterns **Output**: Feature map showing where pattern exists
Pooling Explained
Shrink image while keeping important features:
**Max Pooling**: Take maximum value in each region **Result**: Smaller image, same key info
Famous CNN Architectures
- **LeNet**: Early CNN (1998) - **AlexNet**: Won ImageNet (2012) - **VGG**: Very deep (2014) - **ResNet**: 152 layers! (2015)
Applications
- Face recognition - Self-driving cars - Medical image analysis - Quality control in manufacturing
Transfer Learning
Use pre-trained models:
```python from tensorflow.keras.applications import VGG16
Load pre-trained model base_model = VGG16(weights='imagenet', include_top=False)
Add your own layers # Train only your layers ```
Remember
- CNNs are for images - Convolution finds patterns - Pooling reduces size - Use transfer learning!