Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel
Integration:  git
385443e535
update storage script
2 weeks ago
49f7cbeff6
update readme
2 weeks ago
8e51622b67
svhn digit recognition model
2 weeks ago
Storage Buckets

README.md

You have to be logged in to leave a comment. Sign In

svhn-recognition-deep-learning-model

Context:

Machine learning algorithms have proven extremely useful in processing visual information, as seen in various practical applications. One widely recognized example is the Street View House Numbers (SVHN) dataset. Originally used by Google, this dataset helps neural networks to recognize and associate house numbers with specific geographic locations. It serves as an excellent resource for experimenting with and developing models that can accurately detect street numbers, which can then be integrated into a range of projects.

Objective:

For this project, I'll work with a dataset featuring images that focus on a single digit, though many images may include additional elements at the edges. While our sample of data is relatively straightforward, it presents more complexity than the MNIST dataset due to these distractions. My goal is to develop a model capable of accurately identifying house numbers from images.

Download Data File ( SVHN_single_grey1.h5 )

# Ensure to comment out the 'upload file' code prior to executing the script
$ python data/bucket-storage.py

Skills:

  • Data visualisation
  • Data pre-processing
  • Model building
  • Model evaluation
  • Model hyperparameter tuning

Data Preprocessing

  • We utilized the SVHN dataset for our project.
  • After loading the dataset, we examined the structure and dimensions of the data.
  • We displayed the first 10 images in greyscale to understand their initial format.
  • The data underwent several preprocessing steps including reshaping and flattening, implementing one-hot encoding for the labels, and selecting a subset of 2000 images for training.
  • This processed data was then employed to develop and train our model.

Model Performance

  • Our objective was to create a model capable of identifying sequences of house numbers.
  • We opted for a feed-forward deep learning neural network architecture.
  • Initially, we developed a basic model with three hidden layers and 68, 000 trainable parameters, which achieved an accuracy of 0.11.
  • To enhance the model, we adjusted the hyperparameters and applied regularization techniques to increase accuracy and minimize overfitting.
  • After several iterations and improvements, we finalized a model with five hidden layers, boasting 2 million trainable parameters and an accuracy of 0.63.

Recommendations to Further Enhance the Model

  • Data Augmentation : By artificially expanding the dataset through transformations like rotation, scaling, and color adjustment, you can effectively increase the diversity of your training data without needing more real images. This helps the model generalize better.

  • Transfer Learning : Leverage a pre-trained model that has been developed on a large and comprehensive dataset, then fine-tune it on your smaller dataset. This can significantly improve performance, as the model has already learned a lot of useful features from a larger context.

  • Regularization Techniques : Besides basic regularization, consider employing dropout in additional layers or adjusting the dropout rate to prevent overfitting, especially since the model is trained on limited data.

  • Advanced Data Splitting : Implement cross-validation, not just a simple train-test split. This ensures that every data point is used for both training and validation at some point, maximizing the learning from a small dataset.

  • Ensemble Methods : Combine the predictions of multiple models to improve accuracy. This could involve training several models separately and then averaging their predictions or using techniques like boosting.

  • Hyperparameter Optimization : Use automated methods like grid search or Bayesian optimization to systematically explore a wide range of hyperparameters and find the optimal combination for your specific dataset.

  • Increase Model Complexity Gradually : Start with simpler models to establish a baseline, then gradually increase complexity as needed to improve performance, ensuring not to jump to a highly complex model too quickly which might lead to overfitting on a small dataset.

Tip!

Press p or to see the previous file or, n or to see the next file

About

Designing a Deep Learning Model for Automated Recognition of Street View House Numbers.

Collaborators 1

Comments

Loading...