section-engineering-education / engineering-education

“Section's Engineering Education (EngEd) Program is dedicated to offering a unique quality community experience for computer science university students."
Apache License 2.0
363 stars 889 forks source link

[Macine Learning] Implementing data augmentation to handle overfitting in deep neural networks #7493

Closed francis966 closed 2 years ago

francis966 commented 2 years ago

Proposal Submission

Proposed title of the article

Implementing data augmentation to handle overfitting in deep neural networks

Proposed article introduction

Overfitting is a concept in machine learning which occurs when a statistical model fits exactly against its training data. When this happens, the algorithm unfortunately cannot perform accurately against unseen data, defeating its purpose. Generalization of a model to new data is ultimately what allows us to use machine learning algorithms every day to make predictions and classify data.

When machine learning algorithms are constructed, they leverage a sample dataset to train the model. However, when the model trains for too long on sample data or when the model is too complex, it can start to learn the noise, or irrelevant information, within the dataset. When the model memorizes the noise and fits too closely to the training set, the model becomes overfitted, and it is unable to generalize well to new data.

Data augmentation increases the amount of data by adding slightly modified copies of already existing data or newly created synthetic data from existing data. This ensures the model learns from the newly generated copies and therefore reduces model overfitting.

In this tutorial, we will build an image classification using Keras and TensorFlow. It will transform the images by zooming, rotations, changing contrast, and generating new copies.

Key takeaways

  1. What is model overfitting?
  2. How to detect overfit models
  3. Loading and preprocessing the flowers dataset.
  4. Implementing datasets to generate new copies.
  5. Build the convolution neural network (CNN) and train it
  6. Improve the test accuracy using data augmentation.
  7. Training the model using data augmentation and a drop out layer

Article quality

This article is unique because we will build a custom convolution neural network (CNN) for image classification. We implement the CNN using Keras and TensorFlow. We perform all the image preprocessing step by step. After building the CNN model we will implement data augmentation to handle overfitting. Data augmentation will improve the test accuracy of the model and therefore produce a more enhanced layer. We will build the CNN layer by layer so that a reader can easily follow along.

References

Please list links to any published content/research that you intend to use to support/guide this article.

Conclusion

Finally, remove the Pre-Submission advice section and all our blockquote notes as you fill in the form before you submit. We look forward to reviewing your topic suggestion.

Templates to use as guides

github-actions[bot] commented 2 years ago

👋 @francis966 Good afternoon and thank you for submitting your topic suggestion. Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

hectorkambow commented 2 years ago

@francis966 Closing due to inactivity - if you'd like to continue working on the topic. Please let us know.