To demonstrate Maple 2018’s new Python connectivity, we wanted to integrate a large Python library. The result is the DeepLearning package - this offers an interface to a subset of the Tensorflow framework for machine learning.
I thought I’d share an application that demonstrates how the DeepLearning package can be used to recognize the numbers in images of handwritten digits.
The application employs a very small subset of the MNIST database of handwritten digits. Here’s a sample image for the digit 0.
This image can be represented as a matrix of pixel intensities.
The application generates weights for each digit by training a two-layer neural network using multinomial logistic regression. When visualized, the weights for each digit might look like this.
Let’s say that we’re comparing an image of a handwritten digit to the weights for the digit 0. If a pixel with a high intensity lands in
- an intensely red area, the evidence is high that the number in the image is 0
- an intensely blue area, the evidence is low that the number in the image is 0
While this explanation is technically simplistic, the application offers more detail.
Get the application here