Skip to content

Instantly share code, notes, and snippets.

@henrywang1
Forked from awjuliani/softmax.ipynb
Created August 16, 2018 05:38
Show Gist options
  • Save henrywang1/9ccafe47c83b315723c0713d27afb7ac to your computer and use it in GitHub Desktop.
Save henrywang1/9ccafe47c83b315723c0713d27afb7ac to your computer and use it in GitHub Desktop.
A simple ipython notebook that walks through the creation of a softmax regression model using MNIST dataset.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Softmax Tutorial\n",
"\n",
"First we import the needed libraries:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import scipy.sparse"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we import the MNIST data files we are going to be classifying. This database contains images of thousands of handwritten digits, and their proper labels. For convenience I am using a script from Google, which can be download [here](https://github.com/tensorflow/tensorflow/blob/r0.7/tensorflow/examples/tutorials/mnist/input_data.py). Just add it to your working directory, and it will download the MNIST database for you. We are going to use 500 training examples, and 100 test examples."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting MNIST_data/train-images-idx3-ubyte.gz\n",
"Extracting MNIST_data/train-labels-idx1-ubyte.gz\n",
"Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n",
"Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n"
]
}
],
"source": [
"import input_data\n",
"mnist = input_data.read_data_sets(\"MNIST_data/\", one_hot=False)\n",
"batch = mnist.train.next_batch(500)\n",
"tb = mnist.train.next_batch(100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take a look at one of the images in the set. Looks like a 4!"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1110ddf10>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAD8CAYAAABXXhlaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvT2MZEm23/eLjxv3I7Oyu2tn6u1rPcxbTx4h6zky9AAJ\nggwC9AhJgCBBAD16MijJIZ4nyaBD+4EQAQkSZBCSRVAylgAtUT4pytCjRO7j9u5WV2Xm/YqvQyNu\nVmXVVO/Mm67p6Z26P+Ag4uZkZ97KyX+eExEnTigRYWVl5WWhf+gbWFlZ+fSswl9ZeYGswl9ZeYGs\nwl9ZeYGswl9ZeYGswl9ZeYF8lPCVUv+BUuqfKqX+mVLqbzzXTa2srHy/qO+6jq+U0sA/A/5d4BfA\nPwb+QxH5p4+etyYKrKz8QIiIeupx+xGv+UfA/yMi/xxAKfU/AX8F+Kdff+rfPOv/HPjjj3jb75uf\ns97fx/BzPt/7+zmf773B89/fn3zwv3xMqP9vAP//2fW/WB5bWVn5zFkn91ZWXiAfE+r/S+Crs+s/\nWB57gp+f9ZuPeMtPwc9+6Bv4Bn72Q9/AN/CzH/oGfgs/+6Fv4Bv42Uf++z9b7Jv5mMk9A/zflMm9\nPwf+T+A/EpF/8uh58nCMv7Ky8mn4k+ef3BORpJT668A/oAwZ/vSx6FdWVj5PPibUR0T+PvBvPtO9\nrKysfCLWyb2VlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyV\nlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfI\nKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyVlRfIKvyV\nlRfIKvyVlRfIKvyVlRfIKvyVlReI/Zh/rJT6M+AWyEAQkT96jptaWVn5fvko4VME/8ci8v45bmZl\nZeXT8LGhvnqG11hZWfnEfKxoBfjflVL/WCn1157jhlZWVr5/PjbU/7dF5M+VUl9SfgD+iYj8o68/\n7edn/Z8ttvLtUWd9QasPGwgifM049f8C7/ZUKygEjaDJd626uz4968O28v3xZ4t9Mx8lfBH586X9\nlVLq7wF/BDwh/D/+mLd5oSgeSq70jRIqE3Em42zEmYgz6a5VZFLiznLkwbUs2vuQBE/vpBd73BcM\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11030ef50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"exampleNumber = 2 #Pick the example we want to visualize\n",
"example = batch[0][exampleNumber,:] #Then we load that example.\n",
"plt.imshow(np.reshape(example,[28,28])) #Next we reshape it to 28x28 and display it."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we set the loaded data as our x and y variables for both the train and test sets."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"y = batch[1]\n",
"x = batch[0]\n",
"testY = tb[1]\n",
"testX = tb[0]"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"### Before we can get to training our model using the data, we will have to define a few functions that the training and testing process can use."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we define the loss function for softmax regression."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"def getLoss(w,x,y,lam):\n",
" m = x.shape[0] #First we get the number of training examples\n",
" y_mat = oneHotIt(y) #Next we convert the integer class coding into a one-hot representation\n",
" scores = np.dot(x,w) #Then we compute raw class scores given our input and current weights\n",
" prob = softmax(scores) #Next we perform a softmax on these scores to get their probabilities\n",
" loss = (-1 / m) * np.sum(y_mat * np.log(prob)) + (lam/2)*np.sum(w*w) #We then find the loss of the probabilities\n",
" grad = (-1 / m) * np.dot(x.T,(y_mat - prob)) + lam*w #And compute the gradient for that loss\n",
" return loss,grad"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"The below function converts integer class coding, where there is a unidimensional array of labels into a one-hot varient, where the array is size m (examples) x n (classes)."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def oneHotIt(Y):\n",
" m = Y.shape[0]\n",
" #Y = Y[:,0]\n",
" OHX = scipy.sparse.csr_matrix((np.ones(m), (Y, np.array(range(m)))))\n",
" OHX = np.array(OHX.todense()).T\n",
" return OHX"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we perform the softmax transformation:\n",
"This allows us to get probabilities for each class score that sum to 100%.\n",
"\n",
"\n",
"<img src=\"https://upload.wikimedia.org/math/0/9/9/0991837b7d5a522ebc156f51dadbed0e.png\">"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def softmax(z):\n",
" z -= np.max(z)\n",
" sm = (np.exp(z).T / np.sum(np.exp(z),axis=1)).T\n",
" return sm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we determine the probabilities and predictions for each class when given a set of input data:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def getProbsAndPreds(someX):\n",
" probs = softmax(np.dot(someX,w))\n",
" preds = np.argmax(probs,axis=1)\n",
" return probs,preds"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### This is the main loop of the softmax regression. \n",
"Here we initialize our weights, regularization factor, number of iterations, and learning rate. We then loop over a computation of the loss and gradient, and application of gradient."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"323.250245594\n"
]
}
],
"source": [
"w = np.zeros([x.shape[1],len(np.unique(y))])\n",
"lam = 1\n",
"iterations = 1000\n",
"learningRate = 1e-5\n",
"losses = []\n",
"for i in range(0,iterations):\n",
" loss,grad = getLoss(w,x,y,lam)\n",
" losses.append(loss)\n",
" w = w - (learningRate * grad)\n",
"print loss"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can look at how the loss (hopefully) decreases over time."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10fbe8150>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nHvLFO/d3pAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c6599d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(losses)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Now that we have trained our model, we can see how well it is able to perform on both the training and test sets:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def getAccuracy(someX,someY):\n",
" prob,prede = getProbsAndPreds(someX)\n",
" accuracy = sum(prede == someY)/(float(len(someY)))\n",
" return accuracy"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training Accuracy: 0.902\n",
"Test Accuracy: 0.85\n"
]
}
],
"source": [
"print 'Training Accuracy: ', getAccuracy(x,y)\n",
"print 'Test Accuracy: ', getAccuracy(testX,testY)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"### One of the benefits of a simple model like softmax is that we can visualize the weights for each of the classes, and see what it prefers. Here we look at the weights for the '3' class."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1115f6250>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nQA/0DtL/DwJhkqJ4nrPrAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11151d6d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"classWeightsToVisualize = 3\n",
"plt.imshow(scipy.reshape(w[:,classWeightsToVisualize],[28,28]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment