Introduction to Convolutional Neural Networks and Feature Visualization
=====================================

Convolutional Neural Networks (CNNs) are a class of deep learning models widely used for image analysis and computer vision tasks.
The CNNs, considered cutting-edge in computer vision, operate by applying filter slices to an input image, creating feature maps that capture hierarchical patterns and representations essential for image analysis.

For a short introduction to CNNs and feature visualization, click below:

.. vimeo:: 745320494?h=0b8be077b3

    Short video lecture on CNNs and feature visualization.


In summary, CNNs work by employing a series of convolutional and pooling layers to extract hierarchical features from input images.
In the early layers, they capture simple patterns like edges and textures, while deeper layers learn complex features such as shapes, objects, and context.
This progressive feature extraction makes CNNs adept at understanding visual data at various levels of complexity, enabling them to excel in tasks like image recognition and object detection.

References
------------

- **ResNet50 Model:** He, K., Zhang, X., Ren, S., & Sun, J. `Deep residual learning for image recognition. <https://doi.org/10.1109/CVPR.2016.90>`_ CVPR. 2016
- **Tutorial on CNN Feature Visualization:** `Visualizing Filters and Feature Maps in Convolutional Neural Networks using PyTorch <https://debuggercafe.com/visualizing-filters-and-feature-maps-in-convolutional-neural-networks-using-pytorch/>`_
- **XAI Book:** Molnar, C. `Interpretable Machine Learning: A Guide for Making Black Box Models Explainable. <https://christophm.github.io/interpretable-ml-book/>`_ Lulu.com. 2022.

