807 lines
151 KiB
Plaintext
807 lines
151 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Dropout and maxout\n",
|
|
"In this lab we will explore the methods of [dropout](https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf), a regularisation method which stochastically drops out activations from the model during training, and [maxout](http://www.jmlr.org/proceedings/papers/v28/goodfellow13.pdf), another non-linear transformation that can be used in multiple layer models. This is based on material covered in the [fifth lecture slides](http://www.inf.ed.ac.uk/teaching/courses/mlp/2016/mlp05-hid.pdf)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 1: Implementing a dropout layer\n",
|
|
"\n",
|
|
"During training the forward propagation through a dropout layer produces outputs where a subset of the input dimensions are set to zero ('dropped out'). The dimensions to be dropped out are randomly sampled for each new batch, with each dimension having a probability $p$ of being included and the inclusion (or not) of each dimension independent of all the others. If the inputs to a dropout layer are $D$ dimensional vectors then we can represent the dropout operation by an elementwise multiplication by a $D$ dimensional *binary mask* vector $\\boldsymbol{m} = \\left[m_1 ~ m_2 ~\\dots~ m_D\\right]^{\\rm T}$ where $m_d \\sim \\text{Bernoulli}(p) ~~\\forall d \\in \\lbrace 1 \\dots D\\rbrace$. \n",
|
|
"\n",
|
|
"As a first step implement a `random_binary_mask` function in the cell below to generate a binary mask array of a specified shape, where each value in the outputted array is either a one with probablity `prob_1` or zero with probability `1 - prob_1` and all values are sampled independently."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def random_binary_mask(prob_1, shape, rng):\n",
|
|
" \"\"\"Generates a random binary mask array of a given shape.\n",
|
|
" \n",
|
|
" Each value in the outputted array should be an indepedently sampled\n",
|
|
" binary value i.e in {0, 1} with the probability of each value\n",
|
|
" being 1 being equal to `prob_1`.\n",
|
|
" \n",
|
|
" Args:\n",
|
|
" prob_1: Scalar value in [0, 1] specifying probability each\n",
|
|
" entry in output array is equal to one.\n",
|
|
" shape: Shape of returned mask array.\n",
|
|
" rng (RandomState): Seeded random number generator object.\n",
|
|
" \n",
|
|
" Returns:\n",
|
|
" Random binary mask array of specified shape.\n",
|
|
" \"\"\"\n",
|
|
" return rng.uniform(size=shape) < prob_1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Test your `random_binary_mask` function using the cell below (if your implementation is incorrect you will get an `AssertionError` - look at what the assert statement is checking for a clue as to what is wrong)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"test_shapes = [(1, 1000), (10, 10, 10)]\n",
|
|
"test_probs = [0.1, 0.5, 0.7]\n",
|
|
"for i in range(10):\n",
|
|
" for shape in test_shapes:\n",
|
|
" for prob in test_probs:\n",
|
|
" output = random_binary_mask(prob, shape, np.random)\n",
|
|
" # Check generating correct shape output\n",
|
|
" assert output.shape == shape\n",
|
|
" # Check all outputs are binary values\n",
|
|
" assert np.all((output == 1.) | (output == 0.))\n",
|
|
" # Check proportion equal to one plausible\n",
|
|
" # This will be noisy so there is a chance this will error\n",
|
|
" # even for a correct implementation\n",
|
|
" assert np.abs(output.mean() - prob) < 0.1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Given a randomly sampled binary mask $\\boldsymbol{m}$, the outputs $\\lbrace \\boldsymbol{y}^{(b)} \\rbrace_{b=1}^B$ of the stochastic forward propagation through a dropout layer given a batch of inputs $\\lbrace \\boldsymbol{x}^{(b)} \\rbrace_{b=1}^B$ can be calculated by simply performing an elementwise multiplication of the inputs with the mask\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" y^{(b)}_d = m_k x^{(b)}_d \\qquad \\forall d \\in \\lbrace 1 \\dots D \\rbrace\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"The corresponding partial derivatives required for implementing back-propagation through a dropout layer are\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\frac{\\partial y^{(b)}_k}{\\partial x^{(b)}_d} = \n",
|
|
" \\begin{cases}\n",
|
|
" m_k & \\quad k = d \\\\\n",
|
|
" 0 & \\quad k \\neq d\n",
|
|
" \\end{cases}\n",
|
|
" \\qquad \\forall k,\\,d \\in \\lbrace 1 \\dots D \\rbrace\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"As discussed in the lecture slides, when using a model trained with dropout at test time dimensions are no longer stochastically dropped out and instead all activations are deterministically fed forward through the model. So that the expected (mean) outputs of each layer are the same at test and training we scale the forward propagated inputs during testing by $p$ the probability of each dimension being included in the output. If we denote the deterministically forward-propagated batch of outputs of a dropout layer at test time as $\\lbrace \\boldsymbol{z}^{(b)} \\rbrace_{b=1}^B$ then we have\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" z^{(b)}_d =\n",
|
|
" \\mathbb{E}\\left[ y^{(b)}_d \\right] = \n",
|
|
" \\sum_{m_d \\in \\lbrace 0,1 \\rbrace} \\left( \\mathbb{P}\\left[\\mathrm{m}_d = m_d\\right] m_d x^{(b)}_d \\right) =\n",
|
|
" (p) (1) x^{(b)}_d + (1-p) (0) x^{(b)}_d =\n",
|
|
" p x^{(b)}_d \\qquad \\forall d \\in \\lbrace 1 \\dots D \\rbrace\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"To allow switching between this stochastic training time behaviour and deterministic test time behaviour, a new abstract `StochasticLayer` class has been defined in the `mlp.layers` module. This acts similarly to the layer objects we have already encountered other than adding an extra boolean argument `stochastic` to the `fprop` method interface. When `stochastic = True` (the default) a stochastic forward propagation should be caculated, for dropout this corresponding to $\\boldsymbol{x}^{(b)} \\to \\boldsymbol{y}^{(b)}$ above. When `stochastic = False` a deterministic forward-propagation corresponding to the expected output of the stochastic forward-propagation should be calculated, for dropout this corresponding to $\\boldsymbol{x}^{(b)} \\to \\boldsymbol{z}^{(b)}$ above.\n",
|
|
"\n",
|
|
"Using the skeleton `DropoutLayer` class definition below, implement the `fprop` and `bprop` methods. You may wish to store the binary mask used in the forward propagation as an attribute of the class for use in back-propagation - it is fine to assume that the `fprop` and `bprop` will always be called in sync."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from mlp.layers import StochasticLayer\n",
|
|
"\n",
|
|
"class DropoutLayer(StochasticLayer):\n",
|
|
" \"\"\"Layer which stochastically drops input dimensions in its output.\"\"\"\n",
|
|
" \n",
|
|
" def __init__(self, rng=None, incl_prob=0.5, share_across_batch=True):\n",
|
|
" \"\"\"Construct a new dropout layer.\n",
|
|
" \n",
|
|
" Args:\n",
|
|
" rng (RandomState): Seeded random number generator.\n",
|
|
" incl_prob: Scalar value in (0, 1] specifying the probability of\n",
|
|
" each input dimension being included in the output.\n",
|
|
" share_across_batch: Whether to use same dropout mask across\n",
|
|
" all inputs in a batch or use per input masks.\n",
|
|
" \"\"\"\n",
|
|
" super(DropoutLayer, self).__init__(rng)\n",
|
|
" assert incl_prob > 0. and incl_prob <= 1.\n",
|
|
" self.incl_prob = incl_prob\n",
|
|
" self.share_across_batch = share_across_batch\n",
|
|
" \n",
|
|
" def fprop(self, inputs, stochastic=True):\n",
|
|
" \"\"\"Forward propagates activations through the layer transformation.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: Array of layer inputs of shape (batch_size, input_dim).\n",
|
|
" stochastic: Flag allowing different deterministic\n",
|
|
" forward-propagation mode in addition to default stochastic\n",
|
|
" forward-propagation e.g. for use at test time. If False\n",
|
|
" a deterministic forward-propagation transformation\n",
|
|
" corresponding to the expected output of the stochastic\n",
|
|
" forward-propagation is applied.\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" outputs: Array of layer outputs of shape (batch_size, output_dim).\n",
|
|
" \"\"\"\n",
|
|
" if stochastic:\n",
|
|
" mask_shape = (1,) + inputs.shape[1:] if self.share_across_batch else inputs.shape\n",
|
|
" self._mask = (rng.uniform(size=mask_shape) < self.incl_prob)\n",
|
|
" return inputs * self._mask\n",
|
|
" else:\n",
|
|
" return inputs * self.incl_prob\n",
|
|
" \n",
|
|
" def bprop(self, inputs, outputs, grads_wrt_outputs):\n",
|
|
" \"\"\"Back propagates gradients through a layer.\n",
|
|
"\n",
|
|
" Given gradients with respect to the outputs of the layer calculates the\n",
|
|
" gradients with respect to the layer inputs. This should correspond to\n",
|
|
" default stochastic forward-propagation.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: Array of layer inputs of shape (batch_size, input_dim).\n",
|
|
" outputs: Array of layer outputs calculated in forward pass of\n",
|
|
" shape (batch_size, output_dim).\n",
|
|
" grads_wrt_outputs: Array of gradients with respect to the layer\n",
|
|
" outputs of shape (batch_size, output_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" Array of gradients with respect to the layer inputs of shape\n",
|
|
" (batch_size, input_dim).\n",
|
|
" \"\"\"\n",
|
|
" return grads_wrt_outputs * self._mask \n",
|
|
"\n",
|
|
" def __repr__(self):\n",
|
|
" return 'DropoutLayer(incl_prob={0:.1f})'.format(self.incl_prob)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Test your implementation by running the cell below (if your implementation is incorrect you will get an `AssertionError` - look at what the assert statement is checking for a clue as to what is wrong)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"seed = 31102016 \n",
|
|
"rng = np.random.RandomState(seed)\n",
|
|
"test_incl_probs = [0.1, 0.5, 0.7]\n",
|
|
"input_shape = (5, 10)\n",
|
|
"for incl_prob in test_incl_probs:\n",
|
|
" layer = DropoutLayer(rng, incl_prob)\n",
|
|
" inputs = rng.normal(size=input_shape)\n",
|
|
" grads_wrt_outputs = rng.normal(size=input_shape)\n",
|
|
" for t in range(100):\n",
|
|
" outputs = layer.fprop(inputs, stochastic=True)\n",
|
|
" # Check outputted array correct shape\n",
|
|
" assert outputs.shape == inputs.shape\n",
|
|
" # Check all outputs are either equal to inputs or zero\n",
|
|
" assert np.all((outputs == inputs) | (outputs == 0))\n",
|
|
" grads_wrt_inputs = layer.bprop(inputs, outputs, grads_wrt_outputs)\n",
|
|
" # Check back-propagated gradients only non-zero for non-zero outputs\n",
|
|
" assert np.all((outputs != 0) == (grads_wrt_inputs != 0))\n",
|
|
" assert np.all(grads_wrt_outputs[outputs != 0] == grads_wrt_inputs[outputs != 0])\n",
|
|
" det_outputs = layer.fprop(inputs, stochastic=False)\n",
|
|
" # Check deterministic fprop outputs are correct shape\n",
|
|
" assert det_outputs.shape == inputs.shape\n",
|
|
" # Check deterministic fprop outputs scaled correctly\n",
|
|
" assert np.allclose(det_outputs, incl_prob * inputs)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Optional extension\n",
|
|
"\n",
|
|
"Above we assumed the same dropout mask was applied to each input in a batch, as specified in the lecture slides. In practice sometimes a different mask is sampled for each input. As an extension you could try implementing this per-input form of dropout either by defining a new layer or adding an extra argument to the constructor of the above layer which allows you to switch between the two forms."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 2: Training with dropout"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Experiment with training models with dropout layers to classify MNIST digits. Code has been provided below as a starting point for setting up the model objects though feel free to use any additional adaptive learning rules or learning rule schedulers you wrote during the coursework instead. You may also wish to change the model architecture to use a larger model with more parameters in which the regularisation provided by dropout is likely to have a more pronounced effect. You will probably also find that models with dropout generally need to be trained over more epochs than those without (can you suggest why this might be?).\n",
|
|
"\n",
|
|
"You should training with a few different `incl_prob` settings for the dropout layers and try to establish how the values chosen affect the training performance. You may wish to experiment with using a different dropout probability at the input than for the intermediate layers (why?).\n",
|
|
"\n",
|
|
"You may wish to start reading through and implementing exercise 3 while waiting for training runs to complete."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import logging\n",
|
|
"from mlp.data_providers import MNISTDataProvider\n",
|
|
"from mlp.models import MultipleLayerModel\n",
|
|
"from mlp.layers import ReluLayer, AffineLayer\n",
|
|
"from mlp.errors import CrossEntropySoftmaxError\n",
|
|
"from mlp.initialisers import GlorotUniformInit, ConstantInit\n",
|
|
"from mlp.learning_rules import MomentumLearningRule\n",
|
|
"from mlp.optimisers import Optimiser\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"%matplotlib inline\n",
|
|
"\n",
|
|
"# Seed a random number generator\n",
|
|
"seed = 31102016 \n",
|
|
"rng = np.random.RandomState(seed)\n",
|
|
"\n",
|
|
"# Set up a logger object to print info about the training run to stdout\n",
|
|
"logger = logging.getLogger()\n",
|
|
"logger.setLevel(logging.INFO)\n",
|
|
"logger.handlers = [logging.StreamHandler()]\n",
|
|
"\n",
|
|
"# Create data provider objects for the MNIST data set\n",
|
|
"train_data = MNISTDataProvider('train', batch_size=50, rng=rng)\n",
|
|
"valid_data = MNISTDataProvider('valid', batch_size=50, rng=rng)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 0:\n",
|
|
" error(train)=2.29e+00, acc(train)=1.06e-01, error(valid)=2.29e+00, acc(valid)=1.03e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 5: 2.49s to complete\n",
|
|
" error(train)=2.03e-01, acc(train)=9.41e-01, error(valid)=1.83e-01, acc(valid)=9.48e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 10: 2.53s to complete\n",
|
|
" error(train)=1.48e-01, acc(train)=9.56e-01, error(valid)=1.37e-01, acc(valid)=9.60e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 15: 2.00s to complete\n",
|
|
" error(train)=1.31e-01, acc(train)=9.61e-01, error(valid)=1.27e-01, acc(valid)=9.64e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 20: 1.95s to complete\n",
|
|
" error(train)=1.22e-01, acc(train)=9.65e-01, error(valid)=1.17e-01, acc(valid)=9.67e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 25: 2.16s to complete\n",
|
|
" error(train)=1.07e-01, acc(train)=9.68e-01, error(valid)=1.08e-01, acc(valid)=9.68e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 30: 2.29s to complete\n",
|
|
" error(train)=1.04e-01, acc(train)=9.68e-01, error(valid)=1.09e-01, acc(valid)=9.69e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 35: 2.28s to complete\n",
|
|
" error(train)=9.97e-02, acc(train)=9.70e-01, error(valid)=1.05e-01, acc(valid)=9.70e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 40: 2.08s to complete\n",
|
|
" error(train)=9.57e-02, acc(train)=9.71e-01, error(valid)=1.01e-01, acc(valid)=9.69e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 45: 2.06s to complete\n",
|
|
" error(train)=8.93e-02, acc(train)=9.73e-01, error(valid)=9.83e-02, acc(valid)=9.72e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 50: 2.07s to complete\n",
|
|
" error(train)=9.09e-02, acc(train)=9.73e-01, error(valid)=1.00e-01, acc(valid)=9.72e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 55: 2.03s to complete\n",
|
|
" error(train)=8.55e-02, acc(train)=9.74e-01, error(valid)=9.60e-02, acc(valid)=9.74e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 60: 2.19s to complete\n",
|
|
" error(train)=8.60e-02, acc(train)=9.74e-01, error(valid)=9.55e-02, acc(valid)=9.73e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 65: 2.07s to complete\n",
|
|
" error(train)=8.44e-02, acc(train)=9.74e-01, error(valid)=9.48e-02, acc(valid)=9.72e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 70: 2.16s to complete\n",
|
|
" error(train)=8.29e-02, acc(train)=9.75e-01, error(valid)=9.31e-02, acc(valid)=9.73e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 75: 2.52s to complete\n",
|
|
" error(train)=8.34e-02, acc(train)=9.75e-01, error(valid)=9.35e-02, acc(valid)=9.72e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 80: 2.07s to complete\n",
|
|
" error(train)=8.23e-02, acc(train)=9.76e-01, error(valid)=9.34e-02, acc(valid)=9.73e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 85: 2.24s to complete\n",
|
|
" error(train)=7.82e-02, acc(train)=9.76e-01, error(valid)=8.97e-02, acc(valid)=9.74e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 90: 2.01s to complete\n",
|
|
" error(train)=8.05e-02, acc(train)=9.76e-01, error(valid)=9.40e-02, acc(valid)=9.73e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 95: 2.02s to complete\n",
|
|
" error(train)=7.68e-02, acc(train)=9.77e-01, error(valid)=9.14e-02, acc(valid)=9.74e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 100: 2.00s to complete\n",
|
|
" error(train)=7.65e-02, acc(train)=9.77e-01, error(valid)=9.08e-02, acc(valid)=9.73e-01, params_penalty=0.00e+00\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.text.Text at 0x7f3da8e7e410>"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nERGRyFGIFREREZHIUYgVERERkchRiBURERGRyFGIFREREZHIUYgVERERkchRiBURERGRyFGIFRER\nEZHIUYgVERERkchRiBURERGRyFGIFREREZHIUYgVERERkchRiBURERGRyFGIFREREZHIUYgVERER\nkcg5pRBrZp8zsy1mVmFmy83s4hbqTzezNWZWaWYbzOzmJHX6mNnDZrY7qPeWmb3vVNon6Wnu3Lmp\nboJ0IvV396L+7l7U39Ie2hxizexG4EfAPcCFwDpgnpkNaKL+COBvwAJgAvAg8LiZvTdUJxuYDwwH\nPgKMAW4BdrW1fZK+9I9e96L+7l7U392L+lvaQ9YpXHMn8Evn3FMAZjYHuBr4NPCDJPVvBzY75+4K\njt82s2nB+zwflH0G6AtMds7VBWXbT6FtIiIiItINtGkkNhgxnYgfVQXAOefwo6iXNHHZ5OB82LyE\n+h8AlgGPmNkeM1tvZnebmebsioiIiMhJ2hoSBwCZwN6E8r1AURPXFDVRv7eZ5QbHo4Drg/a8H7gX\n+E/gG21sn4iIiIh0A6cynaAjZOCD7a3ByO4rZnYG8BXgviauyQMoKSnpnBZKyh05coS1a9emuhnS\nSdTf3Yv6u3tRf3cfoZyW197v3dYQux+oAwYnlA8G9jRxzZ4m6h91zlUFx6VAdRBgY0qAIjPLcs7V\nJnnfEQAf//jHW996ibyJEyemugnSidTf3Yv6u3tRf3c7I4Cl7fmGbQqxzrkaM1sDzAKeAzAzC44f\nauKyZfgpAmH/FpTHLAFmJ9QZC5Q2EWDBz6v9GLAVqGzllyAiIiIinScPH2DntfcbW+PBz1ZcYHYD\n8CQwB1iJX2XgOmCcc67MzL4PFDvnbg7qjwDWA48Av8YH3geAq5xz84M6ZwCvA08BP8UvsfUr4AHn\n3P2n9RWKiIiISNpp85xY59zTwZqw9+KnBbwKXOmcKwuqFAHDQvW3mtnVwE+ALwI7gc/EAmxQZ6eZ\nXRnUWYdfH/YnJF+yS0RERES6uTaPxIqIiIiIpJrWYRURERGRyFGIFREREZHIiWSINbPPmdkWM6sw\ns+VmdnGq2ySnL3hK20ozO2pme83sz2Y2Jkm9e81st5mdMLPnzWx0Ktor7cfMvmZm9Wb244Ry9XUa\nMbNiM/utme0P+nSdmV2UUEd9ngbMLMPM7jOzzUFfbjSzbyapp/6OIDO71MyeM7Ndwb/dH0xSp9m+\nNbNcM3s4+PfgmJk9a2aD2tKOyIVYM7sR+BFwD3Ah/kawecHNZhJtl+JXp3gPcAWQDfyPmeXHKpjZ\nV4HPA7cC7wbK8f2f0/nNlfYQ/BB6K/7vcrhcfZ1GzKwvfjnFKuBKYDz+yYyHQnXU5+nja8BtwB3A\nOOAu4C4z+3ysgvo70grwN/bfAZx0c1Ur+/YB4GrgWuAyoBj4v21qhXMuUhuwHHgwdGz4FQ/uSnXb\ntLV7Xw8A6oFpobLdwJ2h495ABXBDqtur7ZT6uCfwNjATeAH4sfo6PTfgfuDFFuqoz9NkA/4KPJZQ\n9izwlPo7vbbg/+kPJpQ127fBcRVwTajO2OC93t3az47USKyZZQMTgQWxMue/8vnAJalql3SYvvif\n8A4CmNlI/BJu4f4/CqxA/R9VDwN/dc4tDBeqr9PSB4DVZvZ0MF1orZl9NnZSfZ52lgKzzOwsADOb\nAEwF/hEcq7/TVCv7dhJ+mddwnbeB7bSh/9u8TmyKDQAygb0J5XvxCV7SRPAkuAeAl51zbwbFRfhQ\nm6z/izqxedIOzOyjwAX4f8wSqa/Tzyjgdvx0sO/hf8X4kJlVOed+i/o83dyPH217y8zq8NMXv+Gc\n+0NwXv2dvlrTt4OB6iDcNlWnRVELsdJ9PAKcjf/JXdJM8JS+B4ArnHM1qW6PdIoMYKVz7lvB8Toz\nOxf/9Mffpq5Z0kFuBG4CPgq8if+B9UEz2x380CJy2iI1nQDYD9ThE3zYYGBP5zdHOoKZ/Qy4Cpju\nnCsNndqDnwOt/o++icBAYK2Z1ZhZDXA58CUzq8b/NK6+Ti+lQElCWQkwPHitv9/p5QfA/c65Z5xz\nbzjnfod/EufdwXn1d/pqTd/uAXLMrHczdVoUqRAbjNisAWbFyoJfO8/Cz7+RiAsC7IeAGc657eFz\nzrkt+D/c4f7vjV/NQP0fLfOB8/CjMxOCbTXwf4AJzrnNqK/TzRJOnvY1FtgG+vudhnrgB53C6gly\nh/o7fbWyb9cAtQl1xuJ/qF3W2s+K4nSCHwNPmtkaYCVwJ/4vy5OpbJScPjN7BJgNfBAoN7PYT3FH\nnHOVwesHgG+a2UZgK3AffnWKv3Ryc+U0OOfK8b9ibGBm5cAB51xstE59nV5+Aiwxs7uBp/H/oX0W\nuCVUR32ePv6K78udwBvARfj/rx8P1VF/R5SZFQCj8SOuAKOCm/cOOud20ELfOueOmtmvgB+b2SHg\nGPAQsMQ5t7K17YhciHXOPR2sCXsvftj5VeBK51xZalsm7WAOfjL4ooTyfweeAnDO/cDMegC/xK9e\n8BLwfudcdSe2UzpGo7UG1dfpxTm32syuwd/w8y1gC/Cl0I0+6vP08nl8cHkYGIRfcunnQRmg/o64\nSfhlEV2w/Sgo/w3w6Vb27Z340fpngVzgX8Dn2tIIC9bmEhERERGJjEjNiRURERERAYVYEREREYkg\nhVgRERERiRyFWBERERGJHIVYEREREYkchVgRERERiRyFWBERERGJHIVYEREREYkchVgRERERiRyF\nWBGRdmRm9Wb2wVS3o7XMbIuZfTHV7RARaSuFWBFJC2b2RBAg64J97PU/Ut02ERFpf1mpboCISDv6\nJ/ApwEJlValpSvdlZtnOuZpUt0NE0ptGYkUknVQ558qcc/tC25HYyWB0do6Z/cPMTpjZJjO7NvwG\nZnaumS0Izu83s1+aWUFCnU+b2etmVmlmu8zsoYR2DDSzP5lZuZltMLMPNNfo4Ff6d5vZr8zsqJlt\nM7NbQucvD9reO1Q2ISgbHhzfbGaHzOxqM3sr+OynzSw/OLfFzA6a2YNmZglN6G1mvzez42a208zu\nSGhfHzN73Mz2mdkRM5tvZueHzt9jZq+Y2WfMbDNQ0dzXKyLSHhRiRaS7uRd4Bjgf+B3wBzMbC2Bm\nPYB5wAFgInAdcAXw09jFZnY78DPgF8A5wNXAhoTP+DbwB+A84B/A78ysbwvt+g9gFXAB8AjwczM7\nK3TeJbkmsawH8AXgBuBKYAbwZ+B9wPuBjwO3BV9X2FeAV4LPvh940Mxmhc4/CxQG73kRsBaYn/A1\njQY+AlwTvI+ISMdyzmnTpk1b5DfgCaAGOBbajgJfC9WpB36WcN2yWBlwC7AfyAudfz9QCwwMjncC\n322mHfXAd0LHPYKyf2vmmi3Akwlle4Bbg9eXA3VA79D5CUHZ8OD45uB4RKjOz4PvQ36o7J/AIwmf\n/feEz54L/C14PQ04BGQn1HkH+Gzw+h6gEuif6j8H2rRp6z6b5sSKSDpZCMyh8ZzYgwl1liccL8MH\nQoBxwDrnXGXo/BL8b63GBr+FLw4+pznrYy+ccyfM7CgwqLXXBPa04ppEJ5xzW0PHe4GtzrmKhLLE\n912W5PhLwevzgV7AwYRZCHnAu0LH25xzid9rEZEOoxArIumk3Dm3pQPfv7VzPRNvanK0PH2ruWvq\ng304RWa38j1OpS1hPYHd+NHgxLm0h0Ovy9vwniIip01zYkWku5mc5LgkeF0CTDCz/ND5afhf07/l\nnDsObAVm0bnK8AFySKjswnZ8/+a+J2uBIqDOObc5YdPIq4ikjEKsiKSTXDMbnLAVJtS53sz+3czO\nMrPvAhfjb9QCf6NXJfAbMzvHzGYADwFPOef2B3W+A/ynmX3BzEab2UVm9vkO/ro2AjuA7wSfeTX+\nRrD2MtXMvhJ8Tz6Hv/HrAQDn3Hz89IL/Z2bvNbMzzWyKmf23mV3Ujm0QEWkThVgRSSfvw//qO7y9\nlFDnHuCjwDr83fofdc69BRDMHb0S6A+sBJ4Gnsff8U9Q5yngy8DtwOvAc/g78xuqJGlXsrKWzjeU\nOedqgzaPC9r9X8A3WnjP1nLAj4BJ+BUKvg7cGYTXmKuAxcCvgbeB3wPD8fNrRURSwpxr6d9WEZH0\nYGb1wIedc8+lui0iInJ6NBIrIiIiIpGjECsi3Yl+9SQikiY0nUBEREREIkcjsSIiIiISOQqxIiIi\nIhI5CrEiIiIiEjkKsSIiIiISOQqxIiIiIhI5CrEiIiIiEjkKsSIiIiISOQqxIiIiIhI5/x/wbjHO\nIyUWDgAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f3da9167c90>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f3da8e66cd0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Probability of input being included in output in dropout layer\n",
|
|
"incl_prob = 0.5\n",
|
|
"\n",
|
|
"input_dim, output_dim, hidden_dim = 784, 10, 125\n",
|
|
"\n",
|
|
"# Use Glorot initialisation scheme for weights and zero biases\n",
|
|
"weights_init = GlorotUniformInit(rng=rng, gain=2.**0.5)\n",
|
|
"biases_init = ConstantInit(0.)\n",
|
|
"\n",
|
|
"# Create three affine layer model with rectified linear non-linearities\n",
|
|
"# and dropout layers before every affine layer\n",
|
|
"model = MultipleLayerModel([\n",
|
|
" DropoutLayer(rng, incl_prob),\n",
|
|
" AffineLayer(input_dim, hidden_dim, weights_init, biases_init), \n",
|
|
" ReluLayer(),\n",
|
|
" DropoutLayer(rng, incl_prob),\n",
|
|
" AffineLayer(hidden_dim, hidden_dim, weights_init, biases_init), \n",
|
|
" ReluLayer(),\n",
|
|
" DropoutLayer(rng, incl_prob),\n",
|
|
" AffineLayer(hidden_dim, output_dim, weights_init, biases_init)\n",
|
|
"])\n",
|
|
"\n",
|
|
"# Multiclass classification therefore use cross-entropy + softmax error\n",
|
|
"error = CrossEntropySoftmaxError()\n",
|
|
"\n",
|
|
"# Use a momentum learning rule - you could use an adaptive learning rule\n",
|
|
"# implemented for the coursework here instead\n",
|
|
"learning_rule = MomentumLearningRule(0.02, 0.9)\n",
|
|
"\n",
|
|
"# Monitor classification accuracy during training\n",
|
|
"data_monitors={'acc': lambda y, t: (y.argmax(-1) == t.argmax(-1)).mean()}\n",
|
|
"\n",
|
|
"optimiser = Optimiser(\n",
|
|
" model, error, learning_rule, train_data, valid_data, data_monitors)\n",
|
|
"\n",
|
|
"num_epochs = 100\n",
|
|
"stats_interval = 5\n",
|
|
"\n",
|
|
"stats, keys, run_time = optimiser.train(num_epochs=num_epochs, stats_interval=stats_interval)\n",
|
|
"\n",
|
|
"# Plot the change in the validation and training set error over training.\n",
|
|
"fig_1 = plt.figure(figsize=(8, 4))\n",
|
|
"ax_1 = fig_1.add_subplot(111)\n",
|
|
"for k in ['error(train)', 'error(valid)']:\n",
|
|
" ax_1.plot(np.arange(1, stats.shape[0]) * stats_interval, \n",
|
|
" stats[1:, keys[k]], label=k)\n",
|
|
"ax_1.legend(loc=0)\n",
|
|
"ax_1.set_xlabel('Epoch number')\n",
|
|
"\n",
|
|
"# Plot the change in the validation and training set accuracy over training.\n",
|
|
"fig_2 = plt.figure(figsize=(8, 4))\n",
|
|
"ax_2 = fig_2.add_subplot(111)\n",
|
|
"for k in ['acc(train)', 'acc(valid)']:\n",
|
|
" ax_2.plot(np.arange(1, stats.shape[0]) * stats_interval, \n",
|
|
" stats[1:, keys[k]], label=k)\n",
|
|
"ax_2.legend(loc=0)\n",
|
|
"ax_2.set_xlabel('Epoch number')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 3: Implementing maxout\n",
|
|
"\n",
|
|
"[Maxout](http://www.jmlr.org/proceedings/papers/v28/goodfellow13.pdf) can be considered a generalisation of the rectified linear transformation implemented in the previous lab. \n",
|
|
"\n",
|
|
"For a rectified linear (`Relu`) layer the forward propagation corresponds to\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" y^{(b)}_k = \n",
|
|
" \\max\\left\\lbrace 0,\\,x^{(b)}_k \\right\\rbrace\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"i.e. each output corresponds to an pairwise maximum of a constant (0) and the input.\n",
|
|
"\n",
|
|
"Instead of taking the maximum of the input and a constant, we could instead consider taking the maximum over sets of inputs of a fixed size $s$.\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" y^{(b)}_k = \n",
|
|
" \\max\\left\\lbrace x^{(b)}_{(k-1)s + 1},\\, x^{(b)}_{(k-1)s + 2},\\, \\dots ,\\, x^{(b)}_{ks} \\right\\rbrace\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"If these inputs $x^{(b)}_d$ are themselves the outputs of an affine layer, then this corresponds to taking the maximum of a series of affine functions of the previous layer outputs. Like a rectified linear layer this leads to piecewise linear input-output relationships (which have well-behaved gradients which do not suffer from the saturation problems of logistic sigmoid / hyperbolic tangent transformations) but unlike the rectified linear case we do not end force a portion of the outputs to be zero. \n",
|
|
"\n",
|
|
"Experimentally this form of transformation has been found to give good performance, with the name *maxout* chosen because the *out*put is the *max*imum of a set of inputs. Maxout is also commonly used with dropout layers however note they are not directly related - maxout defines a deterministic non-linear transformation which can help improve the representational capacity and trainability of models; dropout defines a stochastic transformation which is mainly aimed at regularising a model to reduce overfitting.\n",
|
|
"\n",
|
|
"Using layers which take the maximum of fixed sized sets of inputs is also a common technique in models with convolutional layers which we will cover later in the course, with here the layer commonly being termed a *max-pooling* layer (with there being natural generalisation to other choices of reduction functions over pools such as the mean). We will adopt this terminology here for a layer implementing the transformation described above and we will be able to reuse our code implementing this maximum operation when experimenting with convolutional models.\n",
|
|
"\n",
|
|
"The partial derivatives of this max-pooling transformation are sparse (lots of values are zero), with only the partial derivative of the output of a pool with respect to the maximum input in the pool non-zero. This can be expressed as\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\frac{\\partial y^{(b)}_k}{\\partial x^{(b)}_d} = \n",
|
|
" \\begin{cases} \n",
|
|
" 1 & \\quad (k-1)s + 1 \\leq d \\leq ks \\quad\\textrm{and} &x^{(b)}_d = \\max\\left\\lbrace x^{(b)}_{(k-1)s + 1},\\, x^{(b)}_{(k-1)s + 2},\\, \\dots ,\\, x^{(b)}_{ks} \\right\\rbrace \\\\\n",
|
|
" 0 & \\quad \\textrm{otherwise}\n",
|
|
" \\end{cases}.\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"Using these definitions implement the `fprop` and `bprop` methods of the skeleton `MaxPoolingLayer` class below.\n",
|
|
"\n",
|
|
"Some hints\n",
|
|
"\n",
|
|
" * One way of organising the inputs into non-overlapping pools is using the `numpy.reshape` function.\n",
|
|
" * The `numpy.max` function has an `axis` argument which allows you specify the axis (dimension) of the input array to take the maximum over.\n",
|
|
" * It may help to construct a binary mask corresponding to the definitions of the partial derivatives above to allow you to implement the `bprop` method. \n",
|
|
" * As with the `DropoutLayer` it is fine to temporarily store values calculated in the `fprop` method as attributes of the object (e.g. `self.val = val`) to use in the `bprop` method (although you don't necessarily need to do this)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from mlp.layers import Layer\n",
|
|
"\n",
|
|
"class MaxPoolingLayer(Layer):\n",
|
|
" \n",
|
|
" def __init__(self, pool_size=2):\n",
|
|
" \"\"\"Construct a new max-pooling layer.\n",
|
|
" \n",
|
|
" Args:\n",
|
|
" pool_size: Positive integer specifying size of pools over\n",
|
|
" which to take maximum value. The outputs of the layer\n",
|
|
" feeding in to this layer must have a dimension which\n",
|
|
" is a multiple of this pool size such that the outputs\n",
|
|
" can be split in to pools with no dimensions left over.\n",
|
|
" \"\"\"\n",
|
|
" self.pool_size = pool_size\n",
|
|
" \n",
|
|
" def fprop(self, inputs):\n",
|
|
" \"\"\"Forward propagates activations through the layer transformation.\n",
|
|
" \n",
|
|
" This corresponds to taking the maximum over non-overlapping pools of\n",
|
|
" inputs of a fixed size `pool_size`.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: Array of layer inputs of shape (batch_size, input_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" outputs: Array of layer outputs of shape (batch_size, output_dim).\n",
|
|
" \"\"\"\n",
|
|
" assert inputs.shape[-1] % self.pool_size == 0, (\n",
|
|
" 'Last dimension of inputs must be multiple of pool size')\n",
|
|
" pooled_inputs = inputs.reshape(\n",
|
|
" inputs.shape[:-1] + \n",
|
|
" (inputs.shape[-1] // self.pool_size, self.pool_size))\n",
|
|
" pool_maxes = pooled_inputs.max(-1)\n",
|
|
" self._mask = pooled_inputs == pool_maxes[..., None]\n",
|
|
" return pool_maxes\n",
|
|
"\n",
|
|
" def bprop(self, inputs, outputs, grads_wrt_outputs):\n",
|
|
" \"\"\"Back propagates gradients through a layer.\n",
|
|
"\n",
|
|
" Given gradients with respect to the outputs of the layer calculates the\n",
|
|
" gradients with respect to the layer inputs.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: Array of layer inputs of shape (batch_size, input_dim).\n",
|
|
" outputs: Array of layer outputs calculated in forward pass of\n",
|
|
" shape (batch_size, output_dim).\n",
|
|
" grads_wrt_outputs: Array of gradients with respect to the layer\n",
|
|
" outputs of shape (batch_size, output_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" Array of gradients with respect to the layer inputs of shape\n",
|
|
" (batch_size, input_dim).\n",
|
|
" \"\"\"\n",
|
|
" return (self._mask * grads_wrt_outputs[..., None]).reshape(inputs.shape)\n",
|
|
"\n",
|
|
" def __repr__(self):\n",
|
|
" return 'MaxPoolingLayer(pool_size={0})'.format(self.pool_size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Test your implementation by running the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"test_inputs = np.array([[-3, -4, 5, 8], [0, -2, 3, -8], [1, 5, 3, 2]])\n",
|
|
"test_outputs_1 = np.array([[8], [3], [5]])\n",
|
|
"test_grads_wrt_outputs_1 = np.array([[10], [5], [-3]])\n",
|
|
"test_grads_wrt_inputs_1 = np.array([[0, 0, 0, 10], [0, 0, 5, 0], [0, -3, 0, 0]])\n",
|
|
"test_outputs_2 = np.array([[-3, 8], [0, 3], [5, 3]])\n",
|
|
"test_grads_wrt_outputs_2 = np.array([[3, -1], [2, 5], [5, 3]])\n",
|
|
"test_grads_wrt_inputs_2 = np.array([[3, 0, 0, -1], [2, 0, 5, 0], [0, 5, 3, 0]])\n",
|
|
"layer_1 = MaxPoolingLayer(4)\n",
|
|
"layer_2 = MaxPoolingLayer(2)\n",
|
|
"# Check fprop with pool_size = 4\n",
|
|
"assert np.allclose(layer_1.fprop(test_inputs), test_outputs_1)\n",
|
|
"# Check bprop with pool_size = 4\n",
|
|
"assert np.allclose(\n",
|
|
" layer_1.bprop(test_inputs, test_outputs_1, test_grads_wrt_outputs_1),\n",
|
|
" test_grads_wrt_inputs_1\n",
|
|
")\n",
|
|
"# Check fprop with pool_size = 2\n",
|
|
"assert np.allclose(layer_2.fprop(test_inputs), test_outputs_2)\n",
|
|
"# Check bprop with pool_size = 2\n",
|
|
"assert np.allclose(\n",
|
|
" layer_2.bprop(test_inputs, test_outputs_2, test_grads_wrt_outputs_2),\n",
|
|
" test_grads_wrt_inputs_2\n",
|
|
")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 4: Training with maxout\n",
|
|
"\n",
|
|
"Use your `MaxPoolingLayer` implementation in a multiple layer models to experiment with how well maxout networks are able to classify MNIST digits. As with the dropout training exercise, code has been provided below as a starting point for setting up the model objects, but again feel free to substitute any components.\n",
|
|
"\n",
|
|
"If you have time you may wish to experiment with training a model using a combination of maxout and dropout or another regularisation method covered in the last lab notebook."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import logging\n",
|
|
"from mlp.data_providers import MNISTDataProvider\n",
|
|
"from mlp.models import MultipleLayerModel\n",
|
|
"from mlp.layers import AffineLayer\n",
|
|
"from mlp.errors import CrossEntropySoftmaxError\n",
|
|
"from mlp.initialisers import GlorotUniformInit, ConstantInit\n",
|
|
"from mlp.learning_rules import MomentumLearningRule\n",
|
|
"from mlp.optimisers import Optimiser\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"%matplotlib inline\n",
|
|
"\n",
|
|
"# Seed a random number generator\n",
|
|
"seed = 31102016 \n",
|
|
"rng = np.random.RandomState(seed)\n",
|
|
"\n",
|
|
"# Set up a logger object to print info about the training run to stdout\n",
|
|
"logger = logging.getLogger()\n",
|
|
"logger.setLevel(logging.INFO)\n",
|
|
"logger.handlers = [logging.StreamHandler()]\n",
|
|
"\n",
|
|
"# Create data provider objects for the MNIST data set\n",
|
|
"train_data = MNISTDataProvider('train', batch_size=50, rng=rng)\n",
|
|
"valid_data = MNISTDataProvider('valid', batch_size=50, rng=rng)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 0:\n",
|
|
" error(train)=2.45e+00, acc(train)=7.73e-02, error(valid)=2.44e+00, acc(valid)=8.09e-02, params_penalty=0.00e+00\n",
|
|
"Epoch 5: 2.64s to complete\n",
|
|
" error(train)=2.67e-02, acc(train)=9.92e-01, error(valid)=8.87e-02, acc(valid)=9.76e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 10: 2.89s to complete\n",
|
|
" error(train)=8.57e-03, acc(train)=9.97e-01, error(valid)=9.43e-02, acc(valid)=9.79e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 15: 2.55s to complete\n",
|
|
" error(train)=4.83e-04, acc(train)=1.00e+00, error(valid)=8.21e-02, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 20: 2.57s to complete\n",
|
|
" error(train)=2.45e-04, acc(train)=1.00e+00, error(valid)=8.54e-02, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 25: 2.58s to complete\n",
|
|
" error(train)=1.80e-04, acc(train)=1.00e+00, error(valid)=8.81e-02, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 30: 2.63s to complete\n",
|
|
" error(train)=1.43e-04, acc(train)=1.00e+00, error(valid)=8.99e-02, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 35: 2.52s to complete\n",
|
|
" error(train)=1.19e-04, acc(train)=1.00e+00, error(valid)=9.17e-02, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 40: 2.52s to complete\n",
|
|
" error(train)=1.01e-04, acc(train)=1.00e+00, error(valid)=9.31e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 45: 2.95s to complete\n",
|
|
" error(train)=8.91e-05, acc(train)=1.00e+00, error(valid)=9.48e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 50: 2.77s to complete\n",
|
|
" error(train)=7.84e-05, acc(train)=1.00e+00, error(valid)=9.58e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 55: 2.51s to complete\n",
|
|
" error(train)=7.03e-05, acc(train)=1.00e+00, error(valid)=9.69e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 60: 2.54s to complete\n",
|
|
" error(train)=6.38e-05, acc(train)=1.00e+00, error(valid)=9.78e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 65: 2.54s to complete\n",
|
|
" error(train)=5.82e-05, acc(train)=1.00e+00, error(valid)=9.87e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 70: 2.56s to complete\n",
|
|
" error(train)=5.35e-05, acc(train)=1.00e+00, error(valid)=9.94e-02, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 75: 2.68s to complete\n",
|
|
" error(train)=4.95e-05, acc(train)=1.00e+00, error(valid)=1.00e-01, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 80: 2.55s to complete\n",
|
|
" error(train)=4.60e-05, acc(train)=1.00e+00, error(valid)=1.01e-01, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 85: 2.61s to complete\n",
|
|
" error(train)=4.30e-05, acc(train)=1.00e+00, error(valid)=1.02e-01, acc(valid)=9.82e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 90: 2.62s to complete\n",
|
|
" error(train)=4.02e-05, acc(train)=1.00e+00, error(valid)=1.02e-01, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 95: 2.57s to complete\n",
|
|
" error(train)=3.79e-05, acc(train)=1.00e+00, error(valid)=1.03e-01, acc(valid)=9.83e-01, params_penalty=0.00e+00\n",
|
|
"Epoch 100: 2.64s to complete\n",
|
|
" error(train)=3.57e-05, acc(train)=1.00e+00, error(valid)=1.04e-01, acc(valid)=9.83e-01, params_penalty=0.00e+00\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.text.Text at 0x7fae759214d0>"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n7WOLiIhI9dFMrEe1atWKjz76iMmTJ/Pyyy9z9dVX8+CDD7J79+4yQfNwM5XBtvXs2ZN//etf9O7d\nm9mzZzNr1iw6derEihUrOOWUU45qDIDJkyfz+uuvk5+fX6b9scce42c/+xnXXHMN48aNY/HixYcd\nLyoqijfeeIN+/foxe/ZsZs6cSbdu3XjqqaeO6nMFu3dsZe0vvPACHTp0YPDgwUE/l4iIiISfhfoY\n0NrCzFKAzMzMzDI31C+RlZVFamoqwbZLzdu7dy/JycnMmTOHSZMmhbucIyooKKBjx47cdNNN/O53\nvzuqffT3TEREJLiS/04Cqc65rCP1D4VmYqXGNGvWjOuvv55777033KUclSeeeILo6OgyD4oQERGR\n2kkhVmrUjBkz+Oqrr8JdxlG58sor2bhxIw0aNAh3KSIiInIECrEiIiIi4jkKsSIiIiLiOQqxIiIi\nIuI5CrEiIiIi4jkKsSIiIiLiOQqxIiIiIuI5CrEiIiIi4jkKsSIiIiLiOQqxIiIiIuI5UeEuQOq2\nOXPmsHDhwhp9aldERAS33347f/zjHwFYuHAhkydPZuPGjbRv3/6w+3bs2JEhQ4bw+OOPA7BkyRJG\njx7Nxo0bSUhIqLGaRUREaqNiV8z+gv3kFuSyr2Af+wr2kZtf6nd/e6Vtleyzd+PeGqtVIVZqTG5u\nLnPmzGHu3LnH9bhmhpkddd/Shg8fTpcuXbj77ru57777aqI8ERGRanWo6BB78/eyN38ve/L3+H4e\n3FPmfUmoLBM0Kwmk+w/tP+LxGjdoTJPoJjSNaUqT6Ca+36ObEt8wnvbN2v/UFtOUXUm7mPPXOTXy\nuRVipcY89thjFBUVcfHFFx/X41522WWkp6cTHR1dpf2vvPJKrr/+eu644w4aN25czdWJiIj4FLti\n32xlJaGzwvtg7Qf3cKDwQNBjREVE0SymGc1impUJnE2im5AYmxj4vXwgDdbWOLoxEXb0q1GzYrOY\ng0KsVIP8/Hyio6MrnanMy8sjNjb2mMYvPcbChQsZOXJklcNkVZnZMR3zoosu4uqrr+aFF15g4sSJ\n1VeYiIh4XmFxYWD2Mrcgt8wM52HbCnIrhNDc/FwcLuixSsJnXEyc72fDOBJiE+gc37lCe7D3DaMa\nHvW3k16jEOthP/74I7fccgv//Oc/2b17N126dOHaa69l0qRJALz33nucffbZZGRk8MUXX7Bw4UK2\nbt1KTk4OL730EpMnT2bFihX8/e9/Z/HixRQWFrJz504APvnkE2666SZWr15NcXExAwYM4K677mLA\ngAGB4z/55JNMmjSp0jE2bNjA559/zrXXXhvoX1hYSOvWrbngggt47LHHynyW3NxcWrVqxdVXX82c\nOXM4dOgQs2bN4p///CffffcdhYWFpKSkMHPmTAYPHnzYP5dga2LvvPNOFixYQE5ODqeeeirz58+v\ndP+WLVvSp08fXn31VYVYEZE6IL8wn10Hd7HrwC725u896tBZPqzmFuRysPDgYY8VFRFF0+imgVnM\nkt+bRjeldePWlQbNykJok+gmIc141kdVCrFm9lvgOiAJ+Ay42jn3cZC+ScD9wClAF+AB59w1lfT7\nFTAT6Ah8A9zgnHuzKvXVB9u3b2fAgAFERkYybdo0EhMTefPNN7n88svJzc1l2rRpgb6zZs0iJiaG\n66+/vsJM7NSpU2nVqhW33XYb+/f71sF8+eWXnHnmmcTFxXHDDTcQFRXFggULGDx4MCtXrqR///5l\naqlsjNWrV2NmpKSkBPpFRUUxatQoXn75ZRYsWEBU1E9//V5++WUKCgpIT08HYO/evTz++OOkp6dz\nxRVXkJuby2OPPcbPf/5zPvroI/r06RP0z6ayNbG33nord911FyNGjODcc88lKyuLtLQ0Dh06VOkY\nqampvPrqq0c8DyIicnwUFBWw68CuQBgt+ZlzIKds20F/W6k+R/q6PVjobNW4FU0aNAm8L/lZ8lV7\nZW0xkTF1duaztgk5xJrZWHyh9ArgI2A6sMTMujrnsivZJQbYDszy961szNOA54D/B/wDuAR4xcz6\nOedq7rJ2D7vppptwzvHpp5/SvHlzAK644grGjRvH7bffzpVXXhnom5+fT1ZWVqVfsScmJvL222+X\n+QfulltuobCwkFWrVtGhQwcALr30Urp168aMGTN49913jzjG119/DUCnTp3K9B07diyPP/44S5cu\n5bzzzgu0L1q0iM6dO9OvXz8AWrRowcaNG8sE3SlTptCtWzfmz5/P3/72t6P+s8rOzubee+/lF7/4\nRZlgesstt/CnP/2p0n06d+5MdnY22dnZJCYmHvWxREQkuPzCfPbm761SEA12wVF0ZDQtGrUgvmE8\n8Y3iiW8YT8fmHemX1K9Ce3yj+MDa0JIAqtDpXVWZiZ0OLHDOPQVgZlcB5wOToeLKXefc9/59MLPL\n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\nwBIz6+qcy66kf0fgDeAhYBwwDHjUzH50zi3z9xkH3A1MBN4HugILgWJ8YVnC7IrUKxjdczRxMXHH\nfLcCERERkWNVlZnY6cAC59xTAGZ2FXA+MBmYU0n/3wDrnXMz/O+/NrPT/eMs87cNBP7tnFvkf7/J\nzP4O/E8V6pMa0qJRi3CXICIiIgJASFfdmFkDIBV4u6TNOeeA5fiCaGVO9W8vbUm5/quBVDPr7z9O\nZ+A84B+h1CciIiIi9UOoM7GJQCSwrVz7NqBbkH2SgvRvZmYxzrl851yGmSUC/zbf5e+RwMPOuXtC\nrE9ERERE6oFacf8j/4VfN+G7sKsfcCEwwsxuCWddIiIiIlI7hToTmw0UAa3LtbcGtgbZZ2uQ/ntL\n3XlgJvC0c+4J//svzawJsAC483AFTZ8+nbi4uDJt6enppKenH243EREREalGGRkZZGRklGnbs2dP\njR0vpBDrnDtkZpnAUOA1AP/X/0OBB4Ps9j5wbrm2NH97iVigsFyf4pLx/etuKzVv3jxSUlKO+jOI\niIiISPWrbBIxKyuL1NTUGjleVe5OMBdY6A+zJbfYisV3SyzM7G6gjXNugr//w8Bvzewe4HF8gXc0\nvgu3SrwOTDezz4APgRPxzc6+drgAKyIiIiL1U8gh1jn3vP8irJn4lgV8Cgx3zu3wd0kC2pXqv9HM\nzgfmAdOALcDlzrnSdyyYhW/mdRbwM2AHvplerYkVERERkQqq9MQu59xD+B5eUNm2SZW0rcR3a65g\n45UE2FlVqUdERERE6pdacXcCEREREZFQKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOco\nxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjE\nioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSK\niIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqI\niIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiI\niIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiI\niOdUKcSa2W/NbIOZHTCzD8ys/xH6DzazTDM7aGbfmNmESvrEmdlfzOxHf7+1ZvbzqtQnIiIiInVb\nyCHWzMYC9wO3Af2Az4AlZpYYpH9H4A3gbaAv8ADwqJmdU6pPA2A50B64EOgKTAF+CLU+EREREan7\noqqwz3RggXPuKQAzuwo4H5gMzKmk/2+A9c65Gf73X5vZ6f5xlvnbLgeaA6c654r8bZuqUJuIiIiI\n1AMhzcT6Z0xT8c2qAuCcc/hmUQcG2e1U//bSlpTr/wvgfeAhM9tqZl+Y2Y1mpjW7IiIiIlJBqCEx\nEYgEtpVr3wYkBdknKUj/ZmYW43/fGfiVv55zgZnAtcDNIdYnIiIiIvVAVZYT1IQIfMH2Cv/M7idm\n1ha4DpgV1spEREREpNYJNcRmA0VA63LtrYGtQfbZGqT/Xudcvv/9f4ECf4AtsQZIMrMo51xhsIKm\nT59OXFxcmbb09HTS09MP+0FEREREpPpkZGSQkZFRpm3Pnj01dryQQqxz7pCZZQJDgdcAzMz87x8M\nstv7+JYIlJbmby+xCiifOrsB/z1cgAWYN28eKSkpR/cBRERERKRGVDaJmJWVRWpqao0cryoXTs0F\nppjZZWbWHXgYiAUWApjZ3Wb2ZKn+DwOdzeweM+tmZlOB0f5xSvwVaGFmD5rZiWZ2PnAj8L9VqE9E\nRERE6riQ18Q655733xN2Jr5lAZ8Cw51zO/xdkoB2pfpv9IfSecA0YAtwuXNueak+W8xsuL/PZ/ju\nDzuPym/ZJSIiIiL1XJUu7HLOPQQ8FGTbpEraVuK7NdfhxvwQOK0q9YiIiIhI/aL7sIqIiIiI5yjE\nioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSK\niIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqI\niIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiI\niIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiI\niOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI\n5yjEioiIiIjnKMSKiIiIiOcoxIqIiIiI5yjEioiIiIjnVCnEmtlvzWyDmR0wsw/MrP8R+g82s0wz\nO2hm35jZhMP0vdjMis3sparUJiIiIiJ1X8gh1szGAvcDtwH9gM+AJWaWGKR/R+AN4G2gL/AA8KiZ\nnROk773AylDrEhEREZH6oyozsdOBBc65p5xza4GrgDxgcpD+vwHWO+dmOOe+ds79BXjRP06AmUUA\nzwB/BDZUoS4RERERqSdCCrFm1gBIxTerCoBzzgHLgYFBdjvVv720JZX0vw3Y5px7IpSaRERERKT+\niQqxfyIQCWwr174N6BZkn6Qg/ZuZWYxzLt/MTgcm4VtuICIiIiJyWKGG2GpnZk2Ap4Apzrldoe4/\nffp04uLiyrSlp6eTnp5eTRWKiIiIyJFkZGSQkZFRpm3Pnj01drxQQ2w2UAS0LtfeGtgaZJ+tQfrv\n9c/Cdgc6AK+bmfm3RwCYWQHQzTkXdI3svHnzSElJCe1TiIiIiEi1qmwSMSsri9TU1Bo5XkhrYp1z\nh4BMYGhJmz94DgVWB9nt/dL9/dL87QBrgd7AyfiWE/QFXgPe8f++OZQaRURERKTuq8pygrnAQjPL\nBD7Cd5eBWGAhgJndDbRxzpXcC/Zh4Ldmdg/wOL5AOxo4D8A5lw98VfoAZrbbt8mtqUJ9IiIiIlLH\nhRxinXPP++8JOxPfsoBPgeHOuR3+LklAu1L9N5rZ+cA8YBqwBbjcOVf+jgUiIiIiIkelShd2Oece\nAh4Ksm1SJW0r8d2a62jHrzCGiIiIiEiJKj12VkREREQknBRiRURERMRzFGJFRERExHMUYkVERETE\ncxRiRURERMRzFGJFRERExHMUYkVERETEcxRiRURERMRzFGJFRERExHMUYkVERETEcxRiRURERMRz\nFGJFRERExHMUYkVERETEcxRiRURERMRzFGJFRERExHMUYkVERETEcxRiRURERMRzFGJFRERExHMU\nYkVERETEcxRiRURERMRzFGJFRERExHMUYkVERETEcxRiRURERMRzFGJFRERExHMUYkVERETEcxRi\nRURERMRzFGJFRERExHMUYqvg66/DXYGIiIhI/aYQG6LPPoMePeDFF8NdiYiIiEj9pRAboj59YNQo\nmDoVsrPDXY2IiIhI/aQQGyIzeOghKCqCq68OdzUiIiIi9ZNCbBW0bg3z58Pf/w4vvxzuakRERETq\n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\nNhyZ9JjzteYAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fae788f96d0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nCrVXNUd36NChbLXVVnz44Yccd9xxbLXVVmy77bZcdtllVYboww8/nMcee6zu/9iNyDujtXBPPw2n\nnw5nnAHXXpvraiRJyo1XX32Vl19+mSFDhrDTTjvxzjvvMHr0aL7xjW8we/Zs2rdvD8CKFSs45JBD\neOuttzjjjDPYZ599WLRoEZMnT+b999+nW7dulJaWctRRR/Hcc88xZMgQLr74Yj7//HOeeeYZZs2a\nRa9evVi3bh2vvvoq5513XoU6rrzySpYuXcoHH3zAyJEjSSnRqVMn4N9za6+77jratWvHZZddxurV\nq2nbti1vvvkmkydP5oQTTqBXr1588skn3HXXXRx22GHMnj2b7bffvtrnHhGUlpbSv39/DjzwQH75\ny18ydepUbrnlFnbddVfOPvvsCv2LiooYOXIks2fPZs8996zPy1D/Ukp5+QX0A1JxcXFS1YqLU+rU\nKaUjj0xp7dpcVyNJauqKi4tTvv5sLSkp2ajtlVdeSRGRxo0bt6Ht6quvTgUFBWnSpEnVHuuee+5J\nEZFuu+22avvMmzcvRUS64447Nto2YMCA1KtXr43an3/++RQRadddd02rV6+usG3NmjUb9X/33XdT\n+/bt0/XXX7+h7Z133kkRke69994NbUOHDk0FBQXphhtuqLB/v3790n777bfRcadPn54iIj344IPV\nPr8ym/ueKdsO9EsNkAcd0W2h3n47c0OIPfeEiRMza+ZKklSfVq6EuXMb9hy77w7lfvNfZ+3atdvw\n93Xr1rFs2TJ69+7N1ltvzcyZM/n+978PwCOPPMLee+/NMZv4QMsjjzxCjx49uOCCC6rts3jxYgC6\ndu1a61qHDh1K20p3cmrTps2Gv5eWlvLZZ59RWFhI3759mTlzZo2OW3nk9tBDD2XcuHEb9SuredGi\nRbUtvdEZb1qghQszN4To3DmzjFjHjrmuSJKUj+bOhaKihj1HcTH067flxykpKeG///u/GTNmDB98\n8MGGuakRwdKlSzf0mzdvHt/73vc2eax58+bRt29fCgo2/1GosvPUxi677FLlcUaOHMmvf/1r5s+f\nz/r164FM/d27d9/sMdu3b88222xToa1r164sWbKk2prr+oG2xmTQbWFWrIABA2DpUpg+HXr0yHVF\nkqR8tfvumSDa0OeoDxdccAH33nsvw4cP58ADD6RLly5EBIMHD6a0tLR+TlJOWaisKkhuTocOHTZq\nu+GGG7j66qs588wzuf766+nWrRsFBQVcdNFFNaq/VatWNT5/Wc01CdC5ZtBtQdatg8GD4c034S9/\ngeyHOCVJahCFhfUz2toYHn74YYYOHcpNN920oW316tV89tlnFfr16dOHWbNmbfJYffr0YcaMGaxf\nv77aALnzzjvToUOHCqswlKnLSOnDDz/M//t//4+77767Qvtnn31Gj3oe1Zo/fz4RwR577FGvx20I\nLi/WQqQE55yTua3vww83/K+SJElqTlq1arXRyOeoUaM2TAEoM3DgQF5//XUmTZpU7bEGDhzIwoUL\nuf3226vt07p1a/bdd19ee+21jbZ17NixwnSJmtZfeRrEgw8+yAcffFCr49REcXExXbp0aforLuCI\nbovxs5/B734H994L/fvnuhpJkpqWAQMGcN9999G5c2f23HNPpk+fzrPPPrvRr+cvu+wyHnroIU44\n4QSGDRtGUVERixcv5rHHHuOuu+5ir7324tRTT2Xs2LFccsklvPLKKxx66KEsX76cZ599lvPPP5+j\njz4agGOPPZYrr7yS5cuXb1hCDDLLd02cOJFLL72U/fbbj06dOm32phIDBgzguuuu4/TTT+fggw/m\njTfe4A9/+AN9+vSp93+rZ555ZsNzaOoMui3A3Xdngu6NN8Kpp+a6GkmSmp5Ro0bRunVrxo8fT0lJ\nCYcccghTp06lf//+FaYSdOzYkWnTpnHNNdfw6KOPMnbsWLbddlu+9a1vsdNOOwFQUFDAk08+yQ03\n3MD48eN55JFH2GabbTj00EPZa6+9NhzrlFNO4fLLL2fy5MmcdNJJG9rPO+88Xn/9dcaMGcPIkSP5\n4he/uCHoVjet4b/+679YuXIl48ePZ+LEiRQVFfGnP/2Jyy+/fKN9qjpGdcet3D537lxmzZrFqFGj\nNvXP2WREXT7t1xxERD+guLi4mH7NZYJQA5g8Gb77XTj3XPjVr6AZfEBSktREzZw5k6KiIlr6z9b6\ndOaZZ/KPf/yDF154Idel1MjFF1/MtGnTqpxyUZXNfc+UbQeKUko1WwetFpyjm8emT4cTT4TjjoPb\nbjPkSpLU1FxzzTW89tprTJ8+PdelbNann37KPffcww033JDrUmrMqQt56q234OijMx86GzcOarFq\niCRJaiQ9e/Zk5cqVuS6jRrp168ayZctyXUatOKKbhz76KHNDiO22y0xdqGK5PUmSpLxn0M0zy5fD\nkUfC2rXw5JNQhzsLSpIk5QWnLuSZO+/M3BCiuBh23jnX1UiSJOWOI7p5ZN26zMoKQ4ZAudVLJEmS\nWiSDbh559FFYsAAuvjjXlUiSJOWeQTePjBwJX/867LNPriuRJEnKPefo5okZM+CllzKjupIkSXJE\nN2+MHAm9e2fWzpUkSZJBNy+8/z48+CBceKE3hpAkSSpj0M0Do0dnbgoxbFiuK5EkSbXx3nvv0aFD\nhwa9BfDQoUPp1atXhbaCggJGjBix2X2vvfZaCgr+HRfXrVvHzjvvzJ133lnvdTYEg24zt3Il3HUX\nnHEGdO6c62okSVJtjBgxggMPPJCDDjqowc4REUTEZttqsm/r1q255JJLuP7661mzZk2911rfDLrN\n3H33wZIl8MMf5roSSZJUG4sWLWLs2LGce+65jX7uVatWccUVV9Rp32HDhrFo0SLGjx9fz1XVP4Nu\nM1ZamvkQ2nHHZT6IJkmSmo/77ruPNm3aMGDAgEY/d9u2bStMSaiNLl268O1vf5sxY8bUb1ENwKDb\njD3zDMyd6w0iJEnaUgsWLOC8885j9913p7CwkO7duzNo0CDefffdjfouXbqU4cOH06tXL9q3b0/P\nnj057bTT+PTTTzf0Wb16Nddeey19+/alQ4cO7LDDDgwcOJD58+dv6DNp0iQOOOAACgsLN7T98Ic/\nZKuttqKkpGSj8w4ZMoQddtiBlBIAkydPZsCAAey44460b9+eXXfdleuvv57S0tLNPt+q5uhOmzaN\n/fbbjw4dOrDbbrtx9913V7v/4YcfzrRp0/jss882e65cch3dZuzWWzM3hzj00FxXIklS8/bqq6/y\n8ssvM2TIEHbaaSfeeecdRo8ezTe+8Q1mz55N+/btAVixYgWHHHIIb731FmeccQb77LMPixYtYvLk\nybz//vt069aN0tJSjjrqKJ577jmGDBnCxRdfzOeff84zzzzDrFmz6NWrF+vWrePVV1/lvPPOq1DH\n4MGDGT16NE888QQDBw7c0L5q1Soef/xxTj/99A1zZseMGcNWW23FpZdeSqdOnfjzn//M1Vdfzeef\nf84vfvGLWj3/WbNm0b9/f7bddltGjBjB2rVrufbaa9l2222r7F9UVERpaSkvvfQSRx55ZK3O1ahS\nSnn5BfQDUnFxccpHb76ZEqQ0dmyuK5EktRTFxcUpX3+2lpSUbNT2yiuvpIhI48aN29B29dVXp4KC\ngjRp0qRqj3XPPfekiEi33XZbtX3mzZuXIiLdcccdG23baaed0gknnFChbeLEiamgoCD99a9/3WTN\n55xzTurUqVNas2bNhrahQ4emXr16VegXEelnP/vZhsfHHXdcKiwsTO+///6Gtrlz56bWrVungoKC\njc7z0UcfpYhIN998c7XPMaXNf8+UbQf6pQbIg47oNlOjRsH228OgQbmuRJKkqq1cu5K5i+Y26Dl2\n7747hW0KN99xM9q1a7fh7+vWrWPZsmX07t2brbfempkzZ/L9738fgEceeYS9996bY445ptpjPfLI\nI/To0YMLLrig2j6LFy8GoGvXrhttO+GEE7j77rtZuXLlhmkNDzzwADvuuCMHH3xwlTUvX76c1atX\nc8ghh3D33Xczd+5c9tprrxo999LSUp5++mm++93vsuOOO25o79u3L/379+fJJ5/caJ+yuhctWlSj\nc+SKQbcZWrwYxo6Fn/4Uyn2PS5LUpMxdNJeiu4sa9BzFZxXT7wv9tvg4JSUl/Pd//zdjxozhgw8+\n2DAPNiJYunTphn7z5s3je9/73iaPNW/ePPr27VujD3uVnae8wYMHM3LkSCZPnsyJJ57IihUrePLJ\nJzdanWH27NlcccUVPPfccyxbtmxDe+WaN2fhwoWsWrWKXXfddaNtffv2rTLolv/3acoMus3Q3Xdn\nVlw4++xcVyJJUvV27747xWcVN/g56sMFF1zAvffey/DhwznwwAPp0qULEcHgwYNr9OGu2tpmm20A\nWLJkyUbbDjjgAHbZZRcmTpzIiSeeyOTJkykpKWFQuV/jLl26lP/8z/9k66235vrrr6d37960b9+e\n4uJiLr/88gapubyyurt3796g59lSBt1mZu1auP12OPlkqGZ+uCRJTUJhm8J6GW1tDA8//DBDhw7l\npptu2tC2evXqjVYV6NOnD7Nmzdrksfr06cOMGTNYv349rVq1qrLPzjvvTIcOHSqswlDeoEGDGDVq\nFMuXL+eBBx5gl112Yf/999+w/fnnn2fJkiVMmjSJr33taxva582bt9nnWlmPHj3o0KED//znPzfa\nNndu1VNPyureY489an2+xuTyYs3MQw/Bhx/CRRfluhJJkvJHq1atNhoFHTVqFOvXr6/QNnDgQF5/\n/XUmTZpU7bEGDhzIwoULuf3226vt07p1a/bdd19ee+21KrcPHjyY1atXM2bMGKZMmcLgwYM3qjel\n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\nvbnnXJPvjS193lJNGXQlNTlVhb/yAXDhioUsXb2Udq3bUdi6hqGrij4N8cN2Xek6Pl31aY1Ca9m2\nknUlGx2nU9tO9CjsQffC7vTo2IM+3fpw4E4HsnX7rWkVreq15poqTaWsWreqymC0aOWiaoNUTQRB\nhzYdqg1N7Vq12+jc5cPbqnWranyeTYWxTm07sW3HbSu0tW3VlpJ1Jf8+77p/n3vhioXVBsfa1FPd\n92tTe94r1qxg+Zrl/GvFv6oNy3V53pXr6tS2E9t02KbC/4Huhd0rPG7fun2NztVUpJRYuXZlhdex\nLXldK7+9Pt881VbZm62avqGqvP29t95r0PoMupIa3PrS9SxetbjaF/fahL+yH3Zd2ndhzfo1WxSu\ngJqNSlX6odOmoA2frvq04vPI/rlk1RISFUdcW0Urtims+EO7T9c+Vf7w7l7Yne6F3ZvdD/HqpJQ2\n/BDc3A+8KrdnQ2XJuhK2arsV23fansLWNR8xrby9Xat2jRICUkqbDKibHXnNo+ddq+CTDdNLS5by\n9pK3WbhiIQtXLqzy9aBjm44b/x+q4v9SWVvXDl0piPqbsVmb17WybY3xulbVm6dNfa+U/b1d63as\nWlv1G9nNtdW0rrI6yp9//fL1tfp3r63I1a/AGlpE9AOKi4uL6devX67LUQMp/w552epldG3ftVm+\n06+t8iOeVQWrxrKudB2LVy6ufoRiE+GvIAo2/sHUoXu1oze1CX9bEq5qss/q9avp1qHbRrVXV/fW\n7beu1x+wUkuzYs2KjYNkFa81Zds+XfVpla8523TYZrPhuHO7zixZtWSzb8hr+qZ2U68N9fW6Vh+v\nbSXrSjb5W5WyN/21fZNVtr1tq7ZVvtmaOXMmRUVFAEUppZl1/R6pjiO6alKqeodc1YtZ+Rebmr7T\nr+pFpqHe6ddWfY145lL5UYnuhd3p060PB+x4QE7CX0Tm1+Ad2nRgG7ZpkHNIajwd23akY9uOfHHr\nL9ao//rS9Rv/1qWKcDz/s/mbHDUuP4XI17XmyaCrBlOT+Uh1fYfce+veG73QdG7XmSUlS6o81/zP\n5vPqh69u8Tv9mswPq6/nXTbiWSE8du2zUT1bt9+aVgW5mbNZdm226bANHdp0yEkNklRZq4JW9OjY\ngx4de7AHe9Ron5VrV7JwRfa3gx265tUUopbMoKt689ait7jsmct4f9n7m52PVNWHbKr7tU59v0Ou\n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\nTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fae759161d0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Size of pools to take maximum over\n",
|
|
"pool_size = 2\n",
|
|
"\n",
|
|
"input_dim, output_dim, hidden_dim = 784, 10, 100\n",
|
|
"\n",
|
|
"# Use Glorot initialisation scheme for weights and zero biases\n",
|
|
"weights_init = GlorotUniformInit(rng=rng)\n",
|
|
"biases_init = ConstantInit(0.)\n",
|
|
"\n",
|
|
"# Create three affine layer model interleaved with max-pooling layers\n",
|
|
"model = MultipleLayerModel([\n",
|
|
" AffineLayer(input_dim, hidden_dim * pool_size, weights_init, biases_init), \n",
|
|
" MaxPoolingLayer(pool_size),\n",
|
|
" AffineLayer(hidden_dim, hidden_dim * pool_size, weights_init, biases_init), \n",
|
|
" MaxPoolingLayer(pool_size),\n",
|
|
" AffineLayer(hidden_dim, output_dim, weights_init, biases_init)\n",
|
|
"])\n",
|
|
"\n",
|
|
"# Multiclass classification therefore use cross-entropy + softmax error\n",
|
|
"error = CrossEntropySoftmaxError()\n",
|
|
"\n",
|
|
"# Use a momentum learning rule - you could use an adaptive learning rule\n",
|
|
"# implemented for the coursework here instead\n",
|
|
"learning_rule = MomentumLearningRule(0.02, 0.9)\n",
|
|
"\n",
|
|
"# Monitor classification accuracy during training\n",
|
|
"data_monitors={'acc': lambda y, t: (y.argmax(-1) == t.argmax(-1)).mean()}\n",
|
|
"\n",
|
|
"optimiser = Optimiser(\n",
|
|
" model, error, learning_rule, train_data, valid_data, data_monitors)\n",
|
|
"\n",
|
|
"num_epochs = 100\n",
|
|
"stats_interval = 5\n",
|
|
"\n",
|
|
"stats, keys, run_time = optimiser.train(num_epochs=num_epochs, stats_interval=stats_interval)\n",
|
|
"\n",
|
|
"# Plot the change in the validation and training set error over training.\n",
|
|
"fig_1 = plt.figure(figsize=(8, 4))\n",
|
|
"ax_1 = fig_1.add_subplot(111)\n",
|
|
"for k in ['error(train)', 'error(valid)']:\n",
|
|
" ax_1.plot(np.arange(1, stats.shape[0]) * stats_interval, \n",
|
|
" stats[1:, keys[k]], label=k)\n",
|
|
"ax_1.legend(loc=0)\n",
|
|
"ax_1.set_xlabel('Epoch number')\n",
|
|
"\n",
|
|
"# Plot the change in the validation and training set accuracy over training.\n",
|
|
"fig_2 = plt.figure(figsize=(8, 4))\n",
|
|
"ax_2 = fig_2.add_subplot(111)\n",
|
|
"for k in ['acc(train)', 'acc(valid)']:\n",
|
|
" ax_2.plot(np.arange(1, stats.shape[0]) * stats_interval, \n",
|
|
" stats[1:, keys[k]], label=k)\n",
|
|
"ax_2.legend(loc=0)\n",
|
|
"ax_2.set_xlabel('Epoch number')"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"anaconda-cloud": {},
|
|
"kernelspec": {
|
|
"display_name": "Python [conda env:mlp]",
|
|
"language": "python",
|
|
"name": "conda-env-mlp-py"
|
|
},
|
|
"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.12"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 1
|
|
}
|