The conclusion to the project

This project was to build a Generative Adversarial Network to solve the problem of regenerating missing parts/regions of handwritten digits. In the initial chapters, we had applied Deep Learning to enable customers of a restaurant chain to write their phone numbers in a simple iPad application to get a text notification that their party could be seated. The use case of this chapter was to apply deep learning to generate missing parts of the digits of the phone number so that the text notification can be sent to the right person. 

The CNN digit classifier model accuracy hit 98.84% on the MNIST validation data. The data we generated to simulate missing parts of a digit when fed to the CNN digit classifier, the model was only 74.90% accurate.

The same dataset with missing sections of the digit was passed to the generator to recover the missing parts. The resulting digits were then passed to the CNN classifier and the model was 87.82% accurate. See if you can tweak both the CNN classifier and the GAN to generate clearer digits as well as much higher accuracy on these generated images.

Let's follow the same technique we have been following in the previous chapters for evaluating the performance of the models from the restaurant chain point of view.

What are the implications of this accuracy?  Let's calculate the incidence of an error occurring that would result in a customer service issue (i.e. the customer not getting the text that their table is ready and getting upset for an excessively long wait time at the restaurant).

Each customer's phone number is ten digits long.  If our hypothetical restaurant has an average of 30 tables at each location and those tables turn over two times per night during the rush hour when the system is likely to be used, and finally the restaurant chain has 35 locations.  This means that each day of operation there are approximately 21,000 handwritten numbers captured (30 tables x 2 turns/day x 35 locations x 10 digit phone number). 

Obviously, all digits must be correctly classified for the text to get to the proper waiting restaurant patron.  So any single digit misclassification causes a failure. With the simulated data, the model accuracy was 74.90% which means a total of 5271 digits being misclassified. With the recovered data (on the simulated data) from the generator of the trained GAN, the model accuracy was 87.82% which would improperly classify 2,558 digits per day in our example. The worst case for the hypothetical scenario would be if there occurred only one improperly classified digit in each phone number.  Since there are only 2,100 patrons and corresponding phone numbers, this would mean that every phone number had an error in classification (100% failure) and not a single customer would get their text notification that their party could be seated!  The best case in this scenario would be if all ten digits were misclassified in each phone number and that would result in 263 wrong phone numbers out of 2,100 (12.5% failure rate).  Still not a level of performance the restaurant chain would be likely to be happy with, so you can see why we'd need to continue fine-tuning the models to get the maximum performance possible.

 

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.31.165