0% found this document useful (0 votes)
2 views

Medium.com-Deep Learning Series CNN_2

The document provides an overview of Convolutional Neural Networks (CNNs), explaining their structure, purpose, and common use cases such as image classification and object detection. It details the workings of convolutional layers, pooling layers, and activation functions, highlighting their roles in feature extraction and data processing. Additionally, it discusses popular CNN architectures like LeNet, AlexNet, VGG, and ResNet, and introduces the concept of transfer learning for leveraging pre-trained models in new tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Medium.com-Deep Learning Series CNN_2

The document provides an overview of Convolutional Neural Networks (CNNs), explaining their structure, purpose, and common use cases such as image classification and object detection. It details the workings of convolutional layers, pooling layers, and activation functions, highlighting their roles in feature extraction and data processing. Additionally, it discusses popular CNN architectures like LeNet, AlexNet, VGG, and ResNet, and introduces the concept of transfer learning for leveraging pre-trained models in new tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Deep Learning Series : CNN

medium.com

February 13, 2023

--

Introduction to Convolutional Neural Networks (CNNs)


Have you ever wondered how your smartphone’s camera is able to identify a person’s face,
or how social media platforms are able to tag people in photos automatically? The answer to
these seemingly complex questions lies in a branch of Artificial Intelligence (AI) known as
Convolutional Neural Networks (CNNs).

In this article, we will delve into what CNNs are, their purpose, and some of the most
common use cases for this powerful tool.

What are Convolutional Neural Networks (CNNs)?

1/15
A Convolutional Neural Network is a type of Deep Learning network that is primarily used for
image recognition and processing. It is called “convolutional” because it uses mathematical
operations called “convolutions” to analyze and learn from image data.

At its core, a CNN consists of an input layer, hidden layers, and an output layer. The hidden
layers use convolutional and pooling operations to identify and extract features from the
image data. These features are then used to make predictions, such as recognizing an
object or classifying an image.

The Purpose of CNNs


The primary purpose of CNNs is to process and analyze large amounts of image data to
identify patterns and make predictions. Unlike traditional computer vision techniques, CNNs
do not rely on hand-crafted features and can learn to identify important features on their own.
This makes CNNs particularly useful for image classification tasks, where the goal is to
assign an image to a specific class or label.

Common Use Cases for CNNs


There are a variety of use cases for CNNs, including but not limited to:

: As mentioned earlier, image classification is one of the most common uses for CNNs.
This can include tasks such as recognizing objects in an image, classifying an image
based on its content, or even identifying the type of food in a picture.
: Another popular use for CNNs is object detection, which involves locating and
identifying objects in an image. This can be used for tasks such as detecting faces in a
photo, detecting cars in a video, or even identifying pedestrians in a self-driving car’s
camera feed.
: Image segmentation involves dividing an image into multiple segments, each of which
represents a different object or region. CNNs can be used for image segmentation
tasks, such as separating the foreground from the background in an image, or
separating different objects in an image.
: CNNs can also be used for image generation tasks, such as generating new images
based on a set of input images. This can be used for tasks such as creating an
animated character that looks like a specific person, or generating an image of a room
with a specific type of furniture.

These are just a few of the many use cases for CNNs. With their ability to process large
amounts of image data and make predictions based on that data, CNNs are a powerful tool
for solving a wide range of image processing and recognition problems.

2/15
Understanding Convolutional Layers in Convolutional Neural
Networks (CNNs)
Convolutional Neural Networks (CNNs) are a powerful tool for image processing and
recognition tasks. At the heart of this tool lies the convolutional layer, which is responsible for
analyzing and learning from image data.

In this article, we will take a deep dive into the workings of convolutional layers, including
how they work, the concept of filters and feature maps, and the importance of stride and
padding.

How Convolutional Layers Work


A convolutional layer in a CNN is responsible for analyzing image data and learning
important features. This is accomplished using a mathematical operation called a
“convolution”.

A convolution involves sliding a small matrix called a “filter” over the image data, and
performing a dot product between the filter and the image data at each position. This
produces a new matrix called a “feature map”, which contains information about the
important features in the image data.

The process of convolution can be repeated multiple times, using different filters each time,
to extract multiple different features from the image data. These feature maps are then fed
into the next layer of the CNN, which uses them to make predictions or perform additional
processing.

The Concept of Filters and Feature Maps


As mentioned earlier, filters are small matrices that are used in the convolution operation to
extract features from the image data. A filter is essentially a pattern or feature that the CNN
is looking for in the image data.

The result of the convolution operation is a feature map, which contains information about
the presence of the pattern or feature in the image data. Feature maps can be thought of as
a set of “activated” regions in the image data that correspond to the filter.

Multiple filters can be used in a single convolutional layer, each of which will produce a
separate feature map. These feature maps can then be combined and processed by the next
layer in the CNN to make predictions or perform additional processing.

The Importance of Stride and Padding

3/15
In addition to filters, there are two other important parameters that control the behavior of a
convolutional layer: stride and padding.

Stride determines the step size that the filter takes when it is moved over the image data. A
larger stride will result in a smaller feature map, while a smaller stride will result in a larger
feature map.

Padding is a technique that involves adding extra pixels around the edge of the image data
to preserve the spatial dimensions of the feature map. This is important because it allows the
CNN to maintain information about the spatial relationships between features in the image
data.

Credit :

Pooling Layers in Convolutional Neural Networks (CNNs)


Pooling layers are a critical component in Convolutional Neural Networks (CNNs), and play
an important role in reducing the spatial dimensions of the data and extracting features. In
this article, we will take a deep dive into the workings of pooling layers, including an
explanation of max-pooling and average-pooling, and their role in reducing spatial
dimensions and extracting features.

Max-Pooling
Max-pooling is a common technique used in pooling layers to reduce the spatial dimensions
of the data. It works by dividing the feature map into small regions, and then selecting the
maximum value from each region. The result is a new, smaller feature map that contains only
the most important information.

For example, let’s say you have a 4x4 feature map and a max-pooling layer with a pool size
of 2x2. The max-pooling layer will divide the feature map into four 2x2 regions, and then
select the maximum value from each region. The result will be a 2x2 feature map, which
contains only the most important information from the original feature map.

Max-pooling is a powerful technique for reducing the spatial dimensions of the data, as it
helps to preserve the important information and discard the noise. Additionally, max-pooling
makes the CNN more robust to small changes in the input data, as it only retains the most
important information.

Average-Pooling
Average-pooling is another technique used in pooling layers to reduce the spatial dimensions
of the data. It works by dividing the feature map into small regions, and then computing the
average value of each region. The result is a new, smaller feature map that contains a more

4/15
general representation of the information in the original feature map.

For example, let’s say you have a 4x4 feature map and an average-pooling layer with a pool
size of 2x2. The average-pooling layer will divide the feature map into four 2x2 regions, and
then compute the average value of each region. The result will be a 2x2 feature map, which
contains a more general representation of the information in the original feature map.

Average-pooling is a good technique for reducing the spatial dimensions of the data, as it
helps to preserve the general information and discard the noise. Additionally, average-
pooling makes the CNN more robust to small changes in the input data, as it retains a more
general representation of the information.

The Role of Pooling Layers in Extracting Features


In addition to reducing the spatial dimensions of the data, pooling layers also play an
important role in extracting features. By reducing the spatial dimensions of the data, pooling
layers help to preserve the important information and discard the noise, which makes the
CNN more robust to small changes in the input data.

Furthermore, pooling layers help to extract higher-level features from the data. For example,
a pooling layer may extract the presence of an edge in the image data, which is a higher-
level feature than the individual pixels that make up the edge.

Credit :

Activation Functions in Convolutional Neural Networks (CNNs)


Activation functions are an important component in Convolutional Neural Networks (CNNs),
and play a crucial role in determining the output of a neural network. In this article, we will
take a deep dive into the workings of activation functions, including an explanation of the role
of activation functions, such as ReLU, Sigmoid, and Tanh, in CNNs.

What are Activation Functions?


Activation functions are mathematical functions that are applied to the outputs of each
neuron in a neural network. The purpose of activation functions is to introduce non-linearity
into the output of the neuron, which allows the neural network to learn complex patterns in
the data.

In other words, activation functions allow the neural network to learn more complex
relationships between the inputs and outputs, and to make more accurate predictions about
the data.

ReLU Activation Function

5/15
The ReLU (Rectified Linear Unit) activation function is one of the most commonly used
activation functions in CNNs. It works by thresholding the output of the neuron at zero. If the
output is positive, it is passed through to the next layer unchanged. If the output is negative,
it is set to zero.

ReLU activation functions have several benefits, including fast training times and improved
performance on large datasets. Additionally, ReLU activation functions are easy to
implement, as they are simple to compute and do not require any complex mathematical
operations.

Sigmoid Activation Function


The Sigmoid activation function is another commonly used activation function in neural
networks. It works by transforming the output of the neuron into a value between 0 and 1,
which represents the probability of the output being positive.

Sigmoid activation functions are useful for binary classification problems, where the goal is to
predict whether an input belongs to one of two classes. However, sigmoid activation
functions can be slow to train and may produce less accurate results on large datasets,
compared to other activation functions like ReLU.

Tanh Activation Function


The Tanh (Hyperbolic Tangent) activation function is similar to the Sigmoid activation
function, but instead of transforming the output into a value between 0 and 1, it transforms
the output into a value between -1 and 1.

Tanh activation functions are useful for regression problems, where the goal is to predict a
continuous value. However, like sigmoid activation functions, tanh activation functions can be
slow to train and may produce less accurate results on large datasets, compared to other
activation functions like ReLU.

The Role of Activation Functions in CNNs


Activation functions play a critical role in CNNs, as they introduce non-linearity into the
outputs of the neurons and allow the network to learn complex patterns in the data. The
choice of activation function can have a significant impact on the performance of the CNN,
and it is important to choose the right activation function for your problem.

In general, ReLU activation functions are a good choice for most problems, as they are fast
to train, easy to implement, and perform well on large datasets. However, sigmoid and tanh
activation functions may be appropriate for specific problems, such as binary classification or
regression, respectively.

6/15
Credit :

Convolutional Neural Network Architectures: An Overview


Convolutional Neural Networks (CNNs) are a powerful tool for image and video classification,
object recognition, and other computer vision tasks. However, with the vast array of CNN
architectures available, it can be difficult to know which one is the best choice for your
problem. In this article, we will provide an overview of some of the most popular CNN
architectures, including LeNet, AlexNet, VGG, and ResNet.

LeNet
LeNet is a classic CNN architecture, first introduced by Yann LeCun in 1998. It is a simple
architecture that consists of a series of convolutional and pooling layers, followed by fully
connected layers. LeNet is a relatively small network, with only a few layers, but it was a
major breakthrough in the field of computer vision at the time.

Today, LeNet is considered to be a relatively simple architecture, and it is not commonly used
for modern computer vision tasks. However, it is still a useful architecture to understand, as it
provides a good starting point for learning about CNNs.

AlexNet
AlexNet is a deep CNN architecture that was introduced by Alex Krizhevsky, Ilya Sutskever,
and Geoffrey Hinton in 2012. AlexNet was a major breakthrough in the field of computer
vision, as it was the first architecture to demonstrate that deep learning could be used to
achieve state-of-the-art performance on the ImageNet dataset.

AlexNet consists of several convolutional and pooling layers, followed by several fully
connected layers. The architecture also includes several novel features, such as the use of
ReLU activation functions and dropout regularization, which helped to improve its
performance.

VGG
VGG (Visual Geometry Group) is a deep CNN architecture that was introduced by Karen
Simonyan and Andrew Zisserman in 2014. VGG is known for its use of small, 3x3 filters and
a large number of layers, which make it a very deep and powerful architecture.

VGG is often used as a base architecture for fine-tuning on new datasets, as it has been
trained on a large amount of data and has demonstrated good performance on a variety of
computer vision tasks. Additionally, VGG is relatively simple to implement, which makes it a
good choice for learning about CNN architectures.

7/15
ResNet
ResNet (Residual Network) is a deep CNN architecture that was introduced by Kaiming He,
Xiangyu Zhang, Shaoqing Ren, and Jian Sun in 2015. ResNet is known for its use of residual
connections, which allow the network to learn identity mappings, and its ability to train very
deep networks.

ResNet is often used as a base architecture for fine-tuning on new datasets, as it has
demonstrated state-of-the-art performance on a variety of computer vision tasks. Additionally,
ResNet is relatively simple to implement, which makes it a good choice for learning about
CNN architectures.

Transfer Learning in Convolutional Neural Networks (CNNs)


Convolutional Neural Networks (CNNs) have achieved remarkable results in a variety of
computer vision tasks, such as image classification, object detection, and segmentation.
However, training a CNN from scratch can be a time-consuming and computationally
expensive process, especially when working with large datasets. Transfer learning provides
a solution to this problem by leveraging the knowledge learned from pre-trained CNN models
to solve new tasks.

In this article, we will explore transfer learning in more detail, including how to leverage pre-
trained CNN models for new tasks, fine-tuning and freezing layers, and using pre-trained
models as feature extractors.

What is Transfer Learning?


Transfer learning is a machine learning technique where the knowledge learned from one
task is transferred to another related task. In the context of CNNs, transfer learning involves
using a pre-trained model, which has been trained on a large dataset, as a starting point to
solve a new task.

The idea behind transfer learning is that the low-level features learned by the pre-trained
model, such as edge detection and color blobs, are general and can be useful for a variety of
tasks. By using a pre-trained model as a starting point, transfer learning can significantly
reduce the amount of data and computation required to solve a new task.

Leveraging Pre-trained CNN Models for New Tasks


To use a pre-trained CNN model for a new task, you can either fine-tune the model or use it
as a feature extractor.

8/15
Fine-tuning involves training a pre-trained model on a new task, while keeping
the pre-trained weights fixed for some of the layers and updating the weights for
others. This allows the model to learn new task-specific features while retaining
the general features learned from the pre-training.

To fine-tune a pre-trained model, you typically start by freezing the weights for the lower
layers of the model, which contain the low-level features, and updating the weights for the
higher layers, which are responsible for task-specific features. This allows the model to adapt
to the new task while retaining the general features learned from the pre-training.

Feature Extraction
Feature extraction involves using a pre-trained model as a feature extractor, where the
output of the pre-trained model is used as input to a new model. This allows you to leverage
the general features learned by the pre-trained model, while training a new model to solve
the new task.

Using a pre-trained model as a feature extractor is typically faster and requires less data
than fine-tuning, as you are only training the new model and not the entire pre-trained model.
Additionally, feature extraction can be useful when the pre-trained model has already learned
general features that are relevant to the new task, as it allows you to leverage these features
without having to retrain the entire model.

Fine-tuning vs Feature Extraction


The choice between fine-tuning and feature extraction depends on the size of the new
dataset and the similarity between the new task and the task the pre-trained model was
trained on.

If the new dataset is large and the new task is similar to the task the pre-trained model was
trained on, fine-tuning is often the best choice. Fine-tuning allows the model to learn task-
specific features while retaining the general features learned from the pre-training.

Credit :

Training and Optimization in Convolutional Neural Networks (CNNs)


Once a Convolutional Neural Network (CNN) has been designed and its architecture has
been defined, the next step is to train the network on a large dataset to learn the weights of
the filters and biases in each layer. Training a CNN involves adjusting the weights and biases
to minimize a loss function, which measures the difference between the predicted output and
the actual output.

9/15
In this article, we will explore the training process in more detail, including backpropagation,
gradient descent, and common optimization algorithms such as Stochastic Gradient Descent
(SGD), Adam, and Adagrad.

Backpropagation
Backpropagation is the process of adjusting the weights and biases in a neural network to
minimize the loss function. It works by computing the gradient of the loss with respect to the
weights and biases and using this information to update the weights and biases.

The gradient of the loss function with respect to the weights and biases is computed using
the chain rule of differentiation. The chain rule allows us to calculate the gradient of the loss
with respect to the weights and biases by computing the gradients of the intermediate layers
and then composing these gradients to get the final gradient.

Gradient Descent
Gradient descent is an optimization algorithm that is used to minimize the loss function in a
neural network. It works by iteratively adjusting the weights and biases in the direction of the
negative gradient of the loss function.

The basic idea behind gradient descent is to start with a random set of weights and biases
and then iteratively update the weights and biases in the direction of the negative gradient of
the loss function until the loss is minimized.

Stochastic Gradient Descent (SGD)


Stochastic Gradient Descent (SGD) is a variation of gradient descent that is used to train
neural networks. SGD works by computing the gradient of the loss function with respect to
the weights and biases for each example in the training dataset, rather than computing the
gradient with respect to the entire dataset.

SGD has several advantages over traditional gradient descent, including faster convergence
and a reduced risk of getting stuck in local minima. However, SGD can also be more noisy
and may converge more slowly than traditional gradient descent.

Adam
Adam is a popular optimization algorithm that combines the ideas of gradient descent and
SGD. Adam works by using a moving average of the gradient of the loss function to compute
the update to the weights and biases, rather than using the gradient of the loss function
directly.

10/15
Adam has been shown to perform well on a variety of tasks and is often used as the default
optimization algorithm in deep learning libraries.

Adagrad
Adagrad is another optimization algorithm that is used to train neural networks. Adagrad
works by adjusting the learning rate for each weight and bias in the network based on their
historical gradient.

Adagrad has been shown to perform well on problems with sparse gradients, as it allows the
learning rate to be dynamically adjusted based on the gradient of each weight and bias.
However, Adagrad can also be more sensitive to the choice of learning rate and may
converge more slowly than other optimization algorithms.

Hyperparameter Tuning in Convolutional Neural Networks (CNNs)


When building a Convolutional Neural Network (CNN), there are several key parameters that
must be set in order to optimize performance. These parameters are called
hyperparameters, and they play a crucial role in determining the performance of a CNN.

In this article, we will explore the concept of hyperparameters, including learning rate, batch
size, and number of epochs, and discuss techniques for finding the best hyperparameters for
your CNN.

Hyperparameters
Hyperparameters are parameters that are set before training a neural network, as opposed
to parameters that are learned during training. They play a crucial role in determining the
performance of a CNN, and must be set carefully in order to optimize performance.

Examples of hyperparameters in a CNN include:

Learning rate: The learning rate determines the step size at which the weights and
biases are updated during training. A high learning rate may cause the weights and
biases to oscillate and converge slowly, while a low learning rate may cause the
weights and biases to converge too slowly.
Batch size: The batch size determines the number of examples used to compute the
gradient of the loss function with respect to the weights and biases during each
iteration of training. A large batch size may be computationally efficient, but may also
converge more slowly. A small batch size may converge more quickly, but may also be
more computationally expensive.
Number of epochs: The number of epochs determines the number of times the entire
training dataset is used to update the weights and biases. A large number of epochs
may result in overfitting, while a small number of epochs may result in underfitting.

11/15
Techniques for Finding the Best Hyperparameters
Finding the best hyperparameters for a CNN can be a challenging and time-consuming
process. However, there are several techniques that can be used to simplify the process and
improve performance.

One common technique is grid search, which involves defining a set of candidate
hyperparameters and then training a CNN using every combination of hyperparameters. The
performance of each combination is then evaluated and the combination with the best
performance is selected.

Another common technique is random search, which involves randomly sampling


hyperparameters from a predefined distribution. The performance of each set of
hyperparameters is then evaluated, and the set with the best performance is selected.

Another technique is Bayesian optimization, which uses a Bayesian model to predict the
performance of a CNN as a function of its hyperparameters. The model is then used to select
the next set of hyperparameters to try, based on the predicted performance.

Evaluation Metrics in Convolutional Neural Networks (CNNs)


Evaluating the performance of a Convolutional Neural Network (CNN) is a critical component
of building a successful model. There are several common evaluation metrics that can be
used to assess the performance of a CNN, each with its own strengths and weaknesses.

In this article, we will explore common evaluation metrics, such as accuracy, precision, recall,
and F1 score, and discuss how to choose the right metric for a given task.

Accuracy
Accuracy is one of the most commonly used evaluation metrics in CNNs. It measures the
proportion of correct predictions made by the CNN, and is calculated as the number of
correct predictions divided by the total number of predictions.

While accuracy is a simple and intuitive metric, it can be misleading in certain situations. For
example, in a binary classification task, if the positive class is rare, a model that always
predicts the negative class will have a high accuracy, even though it is not making any useful
predictions.

Precision and Recall


Precision and recall are two other common evaluation metrics in CNNs. Precision measures
the proportion of positive predictions that are actually positive, while recall measures the
proportion of positive examples that are correctly predicted as positive.

12/15
Precision and recall are often used together, as they provide complementary information
about the performance of a CNN. For example, a CNN with high precision and low recall
may be making few false positive predictions, but is missing many true positive examples.

F1 Score
The F1 score is a metric that combines precision and recall into a single score. It is
calculated as the harmonic mean of precision and recall, and is a useful metric when the
positive class is rare or when the cost of false positive and false negative predictions is not
equal.

Choosing the Right Metric


Choosing the right evaluation metric for a given task depends on the specific requirements of
the task and the cost of false positive and false negative predictions.

For example, in a binary classification task where the positive class is rare and the cost of
false positive predictions is high, a high recall may be more important than a high precision.
In this case, the F1 score may be a more appropriate metric than accuracy.

In general, it is important to consider the specific requirements of a task and the cost of false
positive and false negative predictions when choosing an evaluation metric.

Applications of Convolutional Neural Networks (CNNs)


Convolutional Neural Networks (CNNs) are a type of deep learning algorithm that have
achieved state-of-the-art results on a wide range of tasks. They are particularly well suited
for image-based tasks and are widely used in computer vision and image processing.

In this article, we will overview the use cases for CNNs, including image classification, object
detection, semantic segmentation, and facial recognition.

Image Classification
Image classification is a task where the goal is to assign a label to an input image. This can
be a simple binary classification task, where the goal is to classify an image as either positive
or negative, or a multi-class classification task, where the goal is to classify an image into
one of several classes.

CNNs are well suited for image classification tasks, as they can automatically learn
hierarchical representations of image data, which are useful for recognizing patterns and
objects in images.

Object Detection

13/15
Object detection is a task where the goal is to locate and classify objects in an image. This
can be a challenging task, as objects can appear at different scales and locations in an
image, and can be partially occluded.

CNNs have been widely used for object detection, as they can learn to detect objects in
images by detecting distinctive features and patterns. Popular object detection algorithms,
such as Faster R-CNN and YOLO, are based on CNNs.

Semantic Segmentation
Semantic segmentation is a task where the goal is to assign a label to each pixel in an
image. This can be useful for a variety of applications, such as image editing and analysis,
where it is necessary to distinguish different objects and regions in an image.

CNNs have been used for semantic segmentation, as they can learn to segment images by
learning to identify distinctive features and patterns in the data.

Facial Recognition
Facial recognition is a task where the goal is to identify individuals in images or videos based
on their faces. This can be a challenging task, as faces can appear at different scales,
orientations, and lighting conditions.

CNNs have been widely used for facial recognition, as they can learn to recognize faces by
learning distinctive features and patterns in the data. Facial recognition algorithms, such as
FaceNet and OpenFace, are based on CNNs.

Conclusion: Key Concepts and Best Practices for Designing and


Training CNNs
Convolutional Neural Networks (CNNs) are a powerful and versatile type of deep learning
algorithm that have been widely used for image-based tasks, such as image classification,
object detection, semantic segmentation, and facial recognition. In this article, we discussed
the key concepts and best practices for designing and training CNNs.

Key Concepts
1. : Convolutional layers are the building blocks of CNNs, where the input data is
convolved with a set of filters to produce feature maps.
2. Pooling layers are used to reduce the spatial dimensions of the data and extract
features, using either max-pooling or average-pooling.

14/15
3. : Activation functions, such as ReLU, sigmoid, and tanh, are used to introduce non-
linearity into the network and enable it to learn more complex representations of the
data.
4. : There are a number of popular CNN architectures, such as LeNet, AlexNet, VGG, and
ResNet, that have been widely used for image-based tasks.
5. : Transfer learning is a technique where pre-trained CNN models can be leveraged for
new tasks, either by fine-tuning or freezing layers, or by using pre-trained models as
feature extractors.

Best Practices
1. : Proper data pre-processing is essential for training effective CNNs, including
normalization, data augmentation, and data balancing.
2. : Choosing the right model architecture and hyperparameters is important for training
effective CNNs, and requires careful experimentation and tuning.
3. : Optimizing the parameters of the CNN requires a good understanding of
backpropagation, gradient descent, and optimization algorithms, such as SGD, Adam,
and Adagrad.
4. : Hyperparameters, such as learning rate, batch size, and number of epochs, can have
a big impact on the performance of the CNN, and require careful tuning.
5. : Choosing the right evaluation metric for a given task is important, as different metrics,
such as accuracy, precision, recall, and F1 score, may be more appropriate for different
types of problems.

15/15

You might also like