Book Image

Hands-On Convolutional Neural Networks with TensorFlow

By : Iffat Zafar, Giounona Tzanidou, Richard Burton, Nimesh Patel, Leonardo Araujo
Book Image

Hands-On Convolutional Neural Networks with TensorFlow

By: Iffat Zafar, Giounona Tzanidou, Richard Burton, Nimesh Patel, Leonardo Araujo

Overview of this book

Convolutional Neural Networks (CNN) are one of the most popular architectures used in computer vision apps. This book is an introduction to CNNs through solving real-world problems in deep learning while teaching you their implementation in popular Python library - TensorFlow. By the end of the book, you will be training CNNs in no time! We start with an overview of popular machine learning and deep learning models, and then get you set up with a TensorFlow development environment. This environment is the basis for implementing and training deep learning models in later chapters. Then, you will use Convolutional Neural Networks to work on problems such as image classification, object detection, and semantic segmentation. After that, you will use transfer learning to see how these models can solve other deep learning problems. You will also get a taste of implementing generative models such as autoencoders and generative adversarial networks. Later on, you will see useful tips on machine learning best practices and troubleshooting. Finally, you will learn how to apply your models on large datasets of millions of images.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Data Imbalance


We have already seen the importance of data representation and distribution in tackling the problem of Bias and Variance. Another related problem we encounter is the unequal distribution of data among various classes in classification tasks. This is called data imbalance. For example if we have a binary classification problem and one of the classes has 50000 images and the other class has only 1000 images, this can lead to huge problems in the performance of the trained algorithm. We have to tackle this problem of imbalanced data by:

 

Collecting more data

Yes it is always better to make the class data distribution equal. Gather as much data as possible and populate the class with fewer samples. For this purpose you can search for databases over the internet which are similar to your problem and include these. Simple web searches can also bring many images uploaded by various sources. Sometimes you will see that the model performance does not improve with more data. This is an...