Skip to content

Instantly share code, notes, and snippets.

@spitis
Created February 8, 2017 23:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spitis/4d600aa019a5689953b1b61a8ddb074d to your computer and use it in GitHub Desktop.
Save spitis/4d600aa019a5689953b1b61a8ddb074d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Beyond Binary: Ternary and One-hot Neurons"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"While playing with some applications of binary neurons, I found myself wanting to use explicit activations that go beyond a simple yes/no decision. For example, we might want our neural network to make a choice between several categories (in the form of a one-hot vector) or we might want it to make a choice between ordered categories (e.g., a scale of 1 to 10). It's rather easy to extend the straight-through estimator to work well on both of these cases, and I thought I would share my work in this post. I share code for implementing ternary and one-hot neurons in Tensorflow, and show that they can learn to solve MNIST. \n",
"\n",
"This is a follow-up post to [Binary Stochastic Neurons in Tensorflow](http://r2rt.com/binary-stochastic-neurons-in-tensorflow.html), and assumes familiarity with binary neurons and the straight-through estimator discussed therein. \n",
"\n",
"**Note Feb. 8, 2017**: I haven't had a chance to read either of these two papers that I came across after writing this post (they look like they are related to the straight-through softmax activation (I think the first offers up an even better estimator... to be decided)):\n",
"- [Categorical Reparameterization with Gumbel-Softmax](https://arxiv.org/abs/1611.01144)\n",
"- [The Concrete Distribution: A Continuous Relaxation of Discrete Random Variables](https://arxiv.org/abs/1611.00712)\n",
"\n",
"I plan to update this post once I get around to reading them."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## General n-ary neurons\n",
"\n",
"Whereas the binary neuron outputs 0 or 1, a ternary neuron might output -1, 0, or 1 (or alternatively, 0, 1 or 2). Similarly, we could create an arbitrary n-ary neuron that outputs ordered categories, such as a scale from 1 to 10. Actually, but for the activation function, the code for all of these neurons is the same as the code for the binary neuron: we either round the real output of the activation function to the nearest integer (deterministic), or use its decimal portion to sample either the integer below or the integer above from a bernoulli distribution (stochastic). Note that this stochastic choices are made only between two adjacent categories, and never across all categories. On the backward pass, we use the straight-through estimator, which means that we replace the gradient of rounding (deterministic) or sampling (stochastic) with the identity. If our activation function is threshholded to [0, 1], this results in a binary neuron, but if it is threshholded to [-1,1], we can output three ordered values. \n",
"\n",
"We might be tempted to use tanh, which is threshholded to [-1, 1], to create ternary neurons. Picking the right activation, however, is a bit trickier than finding a function that has the correct range. The standard tanh is not very good here because its slope near 0 is close to 1, so that a neuron outputting 0 will tend to get pushed away from 0. Instead, we want something that looks like a soft set of stairs (where each step is a sigmoid), so that the neuron can learn to consistently output intermediate values.\n",
"\n",
"With such an activation, a neuron outputting 0 will have a small slope on the backward pass, so that many mistakes (in the same direction) will be required to move it towards 1 or -1. \n",
"\n",
"For the ternary case, the following function works well: \n",
"\n",
"$$f(x) = 1.5\\tanh(x) + 0.5\\tanh(-3x).$$\n",
"\n",
"Here is its plot drawn by Wolfram Alpha:\n",
"\n",
"[Image](https://www.wolframalpha.com/input/?i=plot+(1.5*tanh(x)+%2B+0.5(tanh(-3*x))),+x%3D+-2+to+2)\n",
"\n",
"This activation function works well because its slope goes to 0 as it approaches each of the integers in the output range (note that the binary neuron has this property too). Here's the plot of the derivative for reference:\n",
"\n",
"[Image](https://www.wolframalpha.com/input/?i=plot+(1.5*tanh(x)+%2B+0.5(tanh(-3*x)))%27,+x%3D+-2+to+2)\n",
"\n",
"The above ternary function is implemented below. I've been more interested in the one-hot activations, so I haven't figured out how to make slope annealing work for this ternary neuron, or a general formula for n-ary neurons. If the mathematically-inclined reader would like to leave some ideas in the comments, that would be much appreciated. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## One-hot neurons\n",
"\n",
"N-ary neurons are cool, but restrictive. Binary neurons are restricted to yes/no decisions, and ternary+ neurons express the prior that the output categories are linearly ordered. As an example to illustrate this \"ordering\" point, consider the categories \"dislike\", \"neutral\" and \"like\". There is a natural order between these categories (\"like\" is closer to \"neutral\" than to \"dislike\"). Most categories, however, do not have a natural ordering. For example, there is no natural order between Boston, New York and Toronto. To create a neuron that can decided between unordered categories, we would like it to output a one-hot vector like [1, 0, 0] (Boston) or [0, 0, 1] (Toronto). Luckily, the straight through estimator extends nicely to this scenario. \n",
"\n",
"We define a d-dimensional one-hot neuron, $N_d: \\mathbb{R}^n \\to \\mathbb{R}^d$ as follows. Given an input, $x \\in \\mathbb{R}^n$, we perform the following steps:\n",
"\n",
"1. Compute a d-dimensional vector of logits, $z = Wx + b$, where $W \\in \\mathbb{R}^{n \\times d}$ and $b \\in \\mathbb{R}^d$. \n",
"\n",
"2. Compute softmax activations, $\\hat{y} = \\text{softmax}_\\tau(z)$, whose $i$-th component is \n",
"\n",
" $$\\hat{y}_i = \\frac{\\exp(z_i /\\tau)}{\\sum_{k=1}^d \\exp(z_k / \\tau)}$$\n",
"\n",
" where $z_i$ is the $i$-th component of $z$, and $\\tau \\in (0, \\infty)$ is the temperature (used for annealing).\n",
" \n",
"3. Next, we either sample a one-hot vector according to the distribution defined by $\\hat{y}$ (stochastic), or simply use the maximum value of $\\hat{y}$ to determine the one-hot output (deterministic). The result is the output of our neuron, $y$. A formal definition of both of these operations is a bit too ugly for this blog post, but this should be fairly straightforward.\n",
"\n",
"4. Neither sampling from nor using the maximum of $\\hat{y}$ have useful (non-zero) gradients. But we can use the straight-through estimator and replace their gradient on the backward pass with the identity. As in the binary case, this leads to a learnable softmax activation. \n",
"\n",
"This definition of one-hot neurons allows for temperature-annealing to be used (note that whereas slope is increased during annealing, temperature is decreased during annealing), and we will see in our experiments below that it can have a comparable effect to slope-annealing (better outcomes). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Implementation in Tensorflow"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Imports and helper functions"
]
},
{
"cell_type": "code",
"execution_count": 1,
"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 numpy as np, tensorflow as tf, matplotlib.pyplot as plt, seaborn as sns\n",
"from tensorflow.examples.tutorials.mnist import input_data\n",
"%matplotlib inline\n",
"sns.set(color_codes=True)\n",
"mnist = input_data.read_data_sets('MNIST_data', one_hot=True)\n",
"from tensorflow.python.framework import ops\n",
"from collections import Counter"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def reset_graph():\n",
" if 'sess' in globals() and sess:\n",
" sess.close()\n",
" tf.reset_default_graph()\n",
"\n",
"def layer_linear(inputs, shape, scope='linear_layer'):\n",
" with tf.variable_scope(scope):\n",
" w = tf.get_variable('w',shape)\n",
" b = tf.get_variable('b',shape[-1:])\n",
" return tf.matmul(inputs,w) + b\n",
"\n",
"def layer_softmax(inputs, shape, scope='softmax_layer'):\n",
" with tf.variable_scope(scope):\n",
" w = tf.get_variable('w',shape)\n",
" b = tf.get_variable('b',shape[-1:])\n",
" return tf.nn.softmax(tf.matmul(inputs,w) + b)\n",
"\n",
"def compute_accuracy(y, pred):\n",
" correct = tf.equal(tf.argmax(y,1), tf.argmax(pred,1))\n",
" return tf.reduce_mean(tf.cast(correct, tf.float32))\n",
"\n",
"def plot_n(data_and_labels, lower_y = 0., title=\"Learning Curves\"):\n",
" fig, ax = plt.subplots()\n",
" for data, label in data_and_labels:\n",
" ax.plot(range(0,len(data)*100,100),data, label=label)\n",
" ax.set_xlabel('Training steps')\n",
" ax.set_ylabel('Accuracy')\n",
" ax.set_ylim([lower_y,1])\n",
" ax.set_title(title)\n",
" ax.legend(loc=4)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Functions for ternary and n-ary neurons"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def st_round(x):\n",
" \"\"\"Rounds a tensor using the straight through estimator for the gradient.\"\"\"\n",
" g = tf.get_default_graph()\n",
" \n",
" with ops.name_scope(\"StRound\") as name:\n",
" with g.gradient_override_map({\"Round\": \"Identity\"}):\n",
" return tf.round(x, name=name) "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def sample_closest_ints(x):\n",
" \"\"\"If x is a float, then samples floor(x) with probability x - floor(x), and ceil(x) with \n",
" probability ceil(x) - x, using the straight through estimator for the gradient.\n",
"\n",
" E.g.,:\n",
" if x is 0.6, sample_closest_ints(x) will be 1 with probability 0.6, and 0 otherwise,\n",
" and the gradient will be pass-through (identity).\n",
" \"\"\"\n",
" with ops.name_scope(\"SampleClosestInts\") as name:\n",
" with tf.get_default_graph().gradient_override_map({\"Ceil\": \"Identity\",\"Sub\": \"SampleClosestInts\"}):\n",
" return tf.ceil(x - tf.random_uniform(tf.shape(x)), name=name)\n",
"\n",
"@ops.RegisterGradient(\"SampleClosestInts\")\n",
"def sample_closest_ints_grad(op, grad):\n",
" return [grad, tf.zeros(tf.shape(op.inputs[1]))]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def binary_activation(x, slope_tensor):\n",
" return tf.cond(tf.equal(1., slope_tensor),\n",
" lambda: tf.sigmoid(x),\n",
" lambda: tf.sigmoid(slope_tensor * x))\n",
"\n",
"def ternary_activation(x, slope_tensor = None, alpha = 1):\n",
" \"\"\"\n",
" Does not support slope annealing (slope_tensor is ignored)\n",
" Wolfram Alpha plot: \n",
" https://www.wolframalpha.com/input/?i=plot+(1.5*tanh(x)+%2B+0.5(tanh(-(3-1e-2)*x))),+x%3D+-2+to+2\n",
" \"\"\"\n",
" return 1.5*tf.tanh(alpha*x) + 0.5*(tf.tanh(-(3/alpha)*x))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def n_ary_activation(x, activation=binary_activation, slope_tensor=None, stochastic_tensor=None):\n",
" \"\"\"\n",
" n-ary activation for creating binary and ternary neurons (and n-ary neurons, if you can \n",
" create the right activation function). Given a tensor and an activation, it applies the \n",
" activation to the tensor, and then either samples the results (if stochastic tensor is \n",
" true), or rounds the results (if stochastic_tensor is false) to the closest integer \n",
" values. The default activation is a sigmoid (when slope_tensor = 1), which results in a \n",
" binary neuron, as in http://r2rt.com/binary-stochastic-neurons-in-tensorflow.html. \n",
" Uses the straight through estimator during backprop. See https://arxiv.org/abs/1308.3432.\n",
"\n",
" Arguments:\n",
" * x: the pre-activation / logit tensor\n",
" * activation: sigmoid, hard sigmoid, or n-ary activation\n",
" * slope_tensor: slope adjusts the slope of the activation function, for purposes of the\n",
" Slope Annealing Trick (see http://arxiv.org/abs/1609.01704)\n",
" * stochastic_tensor: whether to sample the closest integer, or round to it.\n",
" \"\"\"\n",
" if slope_tensor is None:\n",
" slope_tensor = tf.constant(1.0)\n",
" if stochastic_tensor is None:\n",
" stochastic_tensor = tf.constant(True)\n",
"\n",
" p = activation(x, slope_tensor)\n",
"\n",
" return tf.cond(stochastic_tensor,\n",
" lambda: sample_closest_ints(p),\n",
" lambda: st_round(p))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Functions to make a layer of one-hot neurons"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def st_sampled_softmax(logits):\n",
" \"\"\"Takes logits and samples a one-hot vector according to them, using the straight\n",
" through estimator on the backward pass.\"\"\"\n",
" with ops.name_scope(\"STSampledSoftmax\") as name:\n",
" probs = tf.nn.softmax(logits)\n",
" onehot_dims = logits.get_shape().as_list()[1]\n",
" res = tf.one_hot(tf.squeeze(tf.multinomial(logits, 1), 1), onehot_dims, 1.0, 0.0)\n",
" with tf.get_default_graph().gradient_override_map({'Ceil': 'Identity', 'Mul': 'STMul'}):\n",
" return tf.ceil(res*probs)\n",
" \n",
"def st_hardmax_softmax(logits):\n",
" \"\"\"Takes logits and creates a one-hot vector with a 1 in the position of the maximum\n",
" logit, using the straight through estimator on the backward pass.\"\"\"\n",
" with ops.name_scope(\"STHardmaxSoftmax\") as name:\n",
" probs = tf.nn.softmax(logits)\n",
" onehot_dims = logits.get_shape().as_list()[1]\n",
" res = tf.one_hot(tf.argmax(probs, 1), onehot_dims, 1.0, 0.0)\n",
" with tf.get_default_graph().gradient_override_map({'Ceil': 'Identity', 'Mul': 'STMul'}):\n",
" return tf.ceil(res*probs)\n",
" \n",
"@ops.RegisterGradient(\"STMul\")\n",
"def st_mul(op, grad):\n",
" \"\"\"Straight-through replacement for Mul gradient (does not support broadcasting).\"\"\"\n",
" return [grad, grad]\n",
"\n",
"def layer_hard_softmax(x, shape, onehot_dims, temperature_tensor=None, stochastic_tensor=None, \n",
" scope='hard_softmax_layer'):\n",
" \"\"\"\n",
" Creates a layer of one-hot neurons. Note that the neurons are flattened before returning,\n",
" so that the shape of the layer needs to be a multiple of the dimension of the one-hot outputs.\n",
" \n",
" Arguments:\n",
" * x: the layer inputs / previous layer\n",
" * shape: the tuple of [size_previous, layer_size]. Layer_size must be a multiple of onehot_dims,\n",
" since each neuron's output is flattened (i.e., the number of neurons will only be \n",
" layer_size / onehot_dims)\n",
" * onehot_dims: the size of each neuron's output\n",
" * temperature_tensor: the temperature for the softmax\n",
" * stochastic_tensor: whether the one hot outputs are sampled from the softmax distribution (stochastic -\n",
" recommended for training), or chosen according to its maximal element (deterministic -\n",
" recommended for inference)\n",
" \"\"\"\n",
" assert(len(shape) == 2)\n",
" assert(shape[1] % onehot_dims == 0)\n",
" if temperature_tensor is None:\n",
" temperature_tensor = tf.constant(1.)\n",
" if stochastic_tensor is None:\n",
" stochastic_tensor = tf.constant(True)\n",
" \n",
" with tf.variable_scope(scope):\n",
" w = tf.get_variable('w',shape)\n",
" b = tf.get_variable('b',shape[-1:])\n",
" logits = tf.reshape((tf.matmul(x, w) + b) / temperature_tensor, \n",
" [-1, onehot_dims])\n",
" \n",
" return tf.cond(stochastic_tensor,\n",
" lambda: tf.reshape(st_sampled_softmax(logits), [-1, shape[1]]),\n",
" lambda: tf.reshape(st_hardmax_softmax(logits), [-1, shape[1]]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Function to build graph for MNIST classifier"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def build_classifier(hidden_dims=[100],\n",
" lr = 0.5,\n",
" activation=binary_activation,\n",
" onehot_dims = 0):\n",
" reset_graph()\n",
"\n",
" \"\"\"Placeholders\"\"\"\n",
" x = tf.placeholder(tf.float32, [None, 784], name='x_placeholder')\n",
" y = tf.placeholder(tf.float32, [None, 10], name='y_placeholder')\n",
" stochastic_tensor = tf.constant(True)\n",
" slope_tensor = tf.constant(1.0)\n",
" temperature_tensor = 1 / slope_tensor\n",
" \n",
" layers = {0: x}\n",
" num_hidden_layers = len(hidden_dims)\n",
" dims = [784] + hidden_dims\n",
"\n",
" for i in range(1, num_hidden_layers+1):\n",
" with tf.variable_scope(\"layer_\" + str(i)):\n",
" if onehot_dims:\n",
" layers[i] = layer_hard_softmax(layers[i-1], \n",
" dims[i-1:i+1], \n",
" onehot_dims, \n",
" temperature_tensor, \n",
" stochastic_tensor)\n",
" else:\n",
" pre_activations = layer_linear(layers[i-1], dims[i-1:i+1], scope='layer_' + str(i))\n",
" if activation is tf.tanh or activation is tf.sigmoid:\n",
" layers[i] = activation(pre_activations)\n",
" else:\n",
" layers[i] = n_ary_activation(pre_activations, \n",
" activation, \n",
" slope_tensor, \n",
" stochastic_tensor)\n",
"\n",
" final_hidden_layer = layers[num_hidden_layers] \n",
" preds = layer_softmax(final_hidden_layer, [dims[-1], 10])\n",
" loss = -tf.reduce_mean(y * tf.log(preds), reduction_indices=1)\n",
" ts = tf.train.GradientDescentOptimizer(lr).minimize(loss)\n",
"\n",
" accuracy = compute_accuracy(y, preds)\n",
"\n",
" return dict(\n",
" x=x,\n",
" y=y,\n",
" stochastic=stochastic_tensor,\n",
" slope=slope_tensor,\n",
" final_hidden_layer = final_hidden_layer,\n",
" loss=loss,\n",
" ts=ts,\n",
" accuracy=accuracy,\n",
" init_op=tf.global_variables_initializer()\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Function to train the classifier"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def train_classifier(\\\n",
" hidden_dims=[100,100],\n",
" activation=binary_activation,\n",
" onehot_dims = 0,\n",
" stochastic_train=True,\n",
" stochastic_eval=True,\n",
" slope_annealing_rate=None,\n",
" epochs=20,\n",
" lr=0.5,\n",
" verbose=True,\n",
" label=None):\n",
" g = build_classifier(hidden_dims=hidden_dims, lr=lr, activation=activation, onehot_dims=onehot_dims)\n",
" \n",
" with tf.Session() as sess:\n",
" sess.run(g['init_op'])\n",
" slope = 1\n",
" res_tr, res_val, sample_layers = [], [], []\n",
" for epoch in range(epochs):\n",
" feed_dict={g['x']: mnist.validation.images,\n",
" g['y']: mnist.validation.labels,\n",
" g['stochastic']: stochastic_eval,\n",
" g['slope']: slope}\n",
" acc, final_hidden = sess.run([g['accuracy'], g['final_hidden_layer']], feed_dict=feed_dict)\n",
" sample_layers.append(final_hidden)\n",
" if verbose:\n",
" print(\"Epoch\", epoch, acc)\n",
" else:\n",
" print('.', end='')\n",
"\n",
" accuracy = 0\n",
" for i in range(1,1001):\n",
" x, y = mnist.train.next_batch(50)\n",
" feed_dict={g['x']: x, g['y']: y, g['stochastic']: stochastic_train}\n",
" acc, _ = sess.run([g['accuracy'],g['ts']], feed_dict=feed_dict)\n",
" accuracy += acc\n",
" if i % 100 == 0 and i > 0:\n",
" res_tr.append(accuracy/100)\n",
" accuracy = 0\n",
" feed_dict={g['x']: mnist.validation.images,\n",
" g['y']: mnist.validation.labels,\n",
" g['stochastic']: stochastic_eval,\n",
" g['slope']: slope}\n",
" res_val.append(sess.run(g['accuracy'], feed_dict=feed_dict))\n",
"\n",
" if slope_annealing_rate is not None:\n",
" slope = slope*slope_annealing_rate\n",
" if verbose:\n",
" print(\"Annealed slope:\", slope, \"| Annealed temperature:\", 1/ slope)\n",
"\n",
" feed_dict={g['x']: mnist.validation.images, g['y']: mnist.validation.labels,\n",
" g['stochastic']: stochastic_eval, g['slope']: slope}\n",
" print(\"\\nFinal epoch, epoch\", epoch+1, \":\", sess.run(g['accuracy'], feed_dict=feed_dict))\n",
" \n",
" if label is not None:\n",
" return (res_tr, label + \" - Training\"), (res_val, label + \" - Validation\")\n",
" else:\n",
" return [(res_tr, \"Training\"), (res_val, \"Validation\")], sample_layers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Experiments\n",
"\n",
"Let us now demonstrate that the above neurons train on MNIST, and can achieve reasonably good results. I'm not hunting for hyperparameters here, so the below may not be optimal. All training is done over 20 epochs with a learning rate of 0.1."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Tanh baseline (real-valued activations)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.9772\n"
]
},
{
"data": {
"image/png": "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\nDMOQxWLRY489pqeffrrGf/fqbCAAAADnT53tMgAAAOcPgQAAABAIAAAAgQAAAIhAAAAARCAAbLkh\nCwAABOVJREFUAAAiEAB1zsyZMzVw4ED169dPnTp1UnJyspKTk7V06dJKX+PFF1/UypUrz3lM2SIp\nofDSSy9pw4YNIbs+gKpjHQKgjjp48KBuv/12ffHFF+EuSpX98Y9/1IQJE9S9e/dwFwXAKfZwFwDA\n+TNv3jxt2rRJv/zyi2677Ta1bdtWc+fOVVFRkXJycjRlyhTdcMMNmjp1qq6++mp1795d48ePV1JS\nknbu3KnGjRvrhRdeUFxcnNq3b6/09HTNmzdPR44c0b59+3T48GENGTJEKSkpKikp0bRp07Rx40Y1\nadJEFotF9913X7mH/JEjRzR58mQVFhbKarXqscce008//aRt27bp8ccf17x58xQZGanp06fr5MmT\nio6O1hNPPKH27dtr6tSpslgs2r17t/Ly8nTvvffqlltu0dq1azVnzhxZrVY1aNBAzz33nOLj48P4\nUwfMgUAAmIzb7daKFSskSRMnTtSsWbPUpk0bfffdd0pNTdUNN9xQ7vj09HTNnj1b7du314QJE/Th\nhx/qtttuk8Vi8R+ze/duvfPOO8rOzlafPn00atQoLV26VEVFRUpLS9OhQ4f8m1md7r333tN1112n\nMWPGaP369dq4caPuvPNOLVmyRBMnTlRSUpJGjBihadOmqX379tq7d6/uu+8+ffLJJ5J8geLdd99V\nZmamBg8erJ49e+qVV17RzJkz1alTJ7311lvasWOHevToEcKfKFA/EAgAk+nSpYv/9Zw5c7Ry5Uql\npaVp8+bNKigoOOP4Ro0aqX379pKkpKQknTx58oxjrr76atlsNiUkJCg+Pl65ublas2aNbr31VknS\nRRddpGuuueaM83r06KEJEyZo+/bt6t27t2677Tb/Z4ZhqKCgQFu3btXUqVP9W74WFRUpOztbkjR4\n8GBZrVY1bdpUXbt21caNG3X99dfrvvvuU58+fXT99dcTBoDzhEGFgMlERkb6X48YMUJbt25Vp06d\nlJKSorMNGTr9eIvFctZjHA7HGcfYbDZ5vV7/+2c7r2vXrvroo4/Uq1cvffzxx0pJSSn3udfrVVRU\nlJYuXaply5Zp2bJlWrx4sRo0aCBJstls/mNLS0tls9l0xx136K233lKrVq00Z84cvfbaa5X5sQAI\ngEAA1GHnGhOcnZ2tAwcOaMKECbr22mv17bfflnuAB7pGoPd79Oihjz76SJKvaX/9+vXluhkkXwvF\nsmXLNHDgQD3xxBPasWOHJMlut6ukpEROp1OtWrXS8uXLJUmrV6/WqFGj/OenpaVJ8g2g3LJli666\n6ioNGzZMeXl5uv3223XHHXdo+/btFf4MAFQeXQZAHfbbB/DpGjRooCFDhqhfv35yuVy64oorVFRU\npKKiokpdI9D7w4YNU3p6um6++WY1adJEzZo1K9faIPlmEzz00ENaunSpbDabZsyYIUnq1auXpk+f\nrr/85S/661//qieffFJ///vf5XA49Pzzz/vPLyoq0qBBg+TxePT000+rQYMGevDBB/Xoo4/KZrMp\nOjraf00A1cO0QwBB+frrr2UYhnr37q28vDwlJydryZIliouLOy/XL5sJMXDgwPNyPQDnRgsBgKBc\ncsklevjhh/X888/LYrFo4sSJ5y0MAKh5tBAAAAAGFQIAAAIBAAAQgQAAAIhAAAAARCAAAAAiEAAA\nAEn/H8lP2VEgbixXAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e1c79b278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"res, _ = train_classifier(hidden_dims=[100], activation=tf.tanh, epochs=20, lr=0.1, verbose=False)\n",
"plot_n(res, lower_y=0.8, title=\"Tanh Baseline\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Binary neurons with slope annealing baseline\n",
"\n",
"More results on binary neurons available in my prior [post](http://r2rt.com/binary-stochastic-neurons-in-tensorflow.html). "
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.9732\n"
]
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e2c42ab00>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"res, _ = train_classifier(hidden_dims=[100], activation=binary_activation, epochs=20, lr=0.1, \n",
" slope_annealing_rate=1.1, stochastic_eval=False, verbose=False)\n",
"plot_n(res, lower_y=0.8, title=\"Binary Stochastic w/ Slope Annealing Baseline\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Ternary neurons"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As noted above, I didn't spend the time to figure out a good way to slope-anneal the ternary activation, so the below is not slope-annealed.\n",
"\n",
"The interesting thing to note is that these neurons are more expressive than the binary neurons, and so they not only get closer to the tanh baseline, but they also offer less regularization / overfit more quickly. "
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.9764\n"
]
},
{
"data": {
"image/png": "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\n4Ycf5oknnmjzf3sdNhCIiIjI2dNhhwxERETk7FEgEBEREQUCERERUSAQERERFAhEREQEBQIRERFB\ngUCkw3n88ceZNm0aU6ZMYfDgwUyfPp3p06fz7rvvNvk9nn32WdauXdvgOTWLpLSG5557ji1btrTa\n+4vImdM6BCIdVFpaGjfeeCNffPFFezfljP3yl7/kzjvvZNSoUe3dFBGpZm3vBojI2fP888+zbds2\njh07xvXXX0/fvn15+umnKSsro6CggPvuu4/LLruMhx56iNGjRzNq1Chuv/124uPj2bt3LxERETzz\nzDMEBQXRv39/EhMTef7558nMzCQ5OZmMjAxmzpzJ/PnzqaysZOHChWzdupWoqChMJhO33XZbrZt8\nZmYm9957L6WlpZjNZh5++GEOHz7Mrl27eOSRR3j++efx9fVl0aJF5OXlYbfb+cMf/kD//v156KGH\nMJlM7Nu3j6KiIm699VauuuoqNmzYwLJlyzCbzQQHB/PUU08REhLSjn91Ee+gQCDiZSoqKli9ejUA\nd911F4sXL6ZXr1589913LFmyhMsuu6zW+YmJiSxdupT+/ftz55138sEHH3D99ddjMpk85+zbt483\n33yT/Px8Jk6cyA033MC7775LWVkZa9asIT093bOZ1anefvttLr74YubOncumTZvYunUrv/rVr1i5\nciV33XUX8fHxXHvttSxcuJD+/ftz8OBBbrvtNj7++GPAHSjeeustsrKyuPrqqxk3bhwvvfQSjz/+\nOIMHD+aNN95gz549jB07thX/oiKdgwKBiJcZNmyY5/GyZctYu3Yta9asYfv27ZSUlJx2fnh4OP37\n9wcgPj6evLy8084ZPXo0FouFsLAwQkJCKCwsZP369fziF78AoFu3bowZM+a0140dO5Y777yT3bt3\nM2HCBK6//nrPMcMwKCkpYefOnTz00EOeLV/LysrIz88H4Oqrr8ZsNhMdHc2IESPYunUrl156Kbfd\ndhsTJ07k0ksvVRgQOUtUVCjiZXx9fT2Pr732Wnbu3MngwYOZP38+dZUMnXq+yWSq8xybzXbaORaL\nBZfL5Xm+rteNGDGCDz/8kPHjx/PRRx8xf/78WsddLhd+fn68++67rFq1ilWrVrFixQqCg4MBsFgs\nnnOrqqqwWCzcdNNNvPHGG/Ts2ZNly5bxt7/9rSl/FhFphAKBSAfWUE1wfn4+KSkp3HnnnVx00UV8\n++23tW7gjb1HY8+PHTuWDz/8EHB37W/atKnWMAO4eyhWrVrFtGnT+MMf/sCePXsAsFqtVFZW4nA4\n6NmzJ++//z4A69at44YbbvC8fs2aNYC7gHLHjh2MHDmSa665hqKiIm688UZuuukmdu/eXe/fQESa\nTkMGIh3Yj2/ApwoODmbmzJlMmTKFwMBAhg8fTllZGWVlZU16j8aev+aaa0hMTOTKK68kKiqK7t27\n1+ptAPdsgnvuuYd3330Xi8XCY489BsD48eNZtGgRf/7zn/nLX/7Co48+yj//+U9sNht//etfPa8v\nKytjxowZOJ1OnnjiCYKDg7n77rt58MEHsVgs2O12z3uKSMto2qGINMvXX3+NYRhMmDCBoqIipk+f\nzsqVKwkKCjor718zE2LatGln5f1EpGHqIRCRZunTpw/3338/f/3rXzGZTNx1111nLQyISNtTD4GI\niIioqFBEREQUCERERAQFAhEREUGBQERERFAgEBERERQIREREBPj/KSsXDZ+xG8kAAAAASUVORK5C\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e1c6babe0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"res, sample_layers = train_classifier(hidden_dims=[100], activation=ternary_activation, epochs=20, lr=0.1, \n",
" stochastic_eval=False, verbose=False)\n",
"plot_n(res, lower_y=0.8, title=\"Ternary Stochastic\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you're curious as to the distribution of outputs, it's shown below. "
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f9e2c7fb748>"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAFeCAYAAACck4Y8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X1YlWWCx/EfcCCFA0qzOLkXBqWo6YAaZI4o40y66aaZ\nmikk5WCaXhdmoYXmG75bSZaizuzlbrujrakl9jLNjJkrJmUmjZIaUzuaiTGOL7hyDggHufcPL8+I\nIihqyO338xfnOfd5uJ9zjs/3vDw8+hhjjAAAQKPn29ATAAAA1wdRBwDAEkQdAABLEHUAACxB1AEA\nsARRBwDAEkQdN5UjR46oQ4cOGjRokAYNGqSHH35YQ4YM0caNG71jlixZonfffbfW9Sxbtkxbtmyp\n8boLb9++fXudOnXqqub41VdfaebMmZKkvXv3asKECVd1+/qoqqrSuHHj1LdvX7355puXnY9NCgsL\n9cwzz1zTOnJycrRkyZLrNKMrs3PnTrVv316TJ0++5Lrk5GTde++9kqTPP/9c99xzjz777LNqY+bM\nmaOsrCxJUnZ2tsaOHeu9bsOGDRo8eLAeeeQRDRgwQNOnT5fL5ZIkDR8+XIMGDdJDDz1U7d/Q888/\nf6M2FTchR0NPALhYkyZNlJ2d7b38ww8/aOTIkQoKClKfPn2uaEe/Y8cORUVF1Xjdhbf38fG56vl9\n++23Onr0qCTpZz/7mV5//fWrXsfV+tvf/qZPP/1Uu3fvvmTOF87HJkeOHNHBgwevaR1fffWVTp8+\nfZ1mdOXCwsL0P//zPyovL9dtt90m6dzz+LvvvvOO8fHxkcPhUHp6ut577z01b9681nXm5+dr+fLl\nys7OVnBwsIwxysjIUEZGhhYtWqS33npL0rn7bcCAAdX+DeHWQdRx0/vnf/5nPfPMM/r3f/939enT\nR1OmTFHbtm3161//WkuWLNHHH38sf39/NW/eXAsWLNCmTZu0d+9evfzyy/L19dXHH3+sU6dOqbCw\nUL169dLx48e9tzfG6NVXX9XevXtljNGECRPUq1cvZWdn609/+pN+85vfSJL3ckZGhpYuXSqXy6UX\nX3xRjzzyiObMmaP3339fLpdLs2bNUkFBgXx8fNSzZ09NnDhRvr6+iomJ0ZgxY5Sbm6tjx44pOTlZ\nTz755CXbumvXLr3yyis6c+aM/P39NWHCBN17770aPXq0KisrNXjwYC1ZskStWrWSdC72F85n/vz5\n2rJli37zm9+osrJSTZo0UXp6ujp16qSsrCz9+c9/1vHjx9WuXTvdeeedOnLkiP7+97/rhx9+0E9+\n8hMtXrzYG6Tf/va3qqys1MmTJzVw4EBNmDBBO3fu1Lx589S0aVOdOXNG99xzj1q0aKHnnntOkvT+\n++9r06ZNWrp0abXt+vbbbzVnzhydOnVKvr6+GjlypB555BHt3LnTe/9J8l5+7733NH36dP3973/X\nU089pVmzZik5OVldu3ZVQUGBJGn69OmKjY1VVlaWTp06pWnTpkmS9/LDDz+st956S1VVVXI6nRox\nYoTS09NVXFwsSfrFL35R46csNT0GPXv2VHZ2tj766CP5+vrq0KFD8vf318svv6w2bdpcso7mzZvr\nzjvv1ObNm/XQQw9JkjZu3KgBAwZ44ytJkZGR6tSpkyZPnux9rl3O8ePHZYxRaWmpgoOD5ePjowkT\nJuh///d/a70dbjEGuIkUFhaaLl26XLL822+/NZ07dzbGGDN58mTzH//xH6aoqMjExsaaiooKY4wx\nb7zxhtm8ebMxxpgRI0aYTZs2ecf/+te/9q7r/O2NMaZdu3Zm5cqVxhhjvvnmG9O1a1dz8uRJs2HD\nBvP00097b3Ph5Qt//vzzz03//v2NMca88MILZt68ecYYYyoqKkxKSor5t3/7N+/vefPNN40xxuzd\nu9dER0eb8vLyattYXFxsunfvbvLz873bfP/995vCwsLL3i8Xz+e7774z/fv3N6dOnfKuIz4+3pSV\nlZmlS5eafv36maqqKmOMMUuXLjV9+vQxbrfbGGPM2LFjzdKlS40xxjzxxBPm0KFDxhhjjh49ajp0\n6GCKi4vN559/bjp06GCKioqMMcZ8/fXXpkePHubs2bPGGGMef/xxk5ubW21+lZWVpnfv3uajjz7y\nri8hIcHs3r272v138f154c+FhYWmXbt25ve//70xxpicnBzTo0cPU1lZaZYuXWrmzJnjXceFly/8\nedmyZWbmzJnGGGNKS0tNWlqaKSkpueLHYMOGDea+++4zR48eNcYYM2fOHDN58uRLHo/z8960aZN5\n6qmnvMv79+9v9u/f730cz48rKyszDz74oFm9erUxxpjZs2d7H4cLH1uPx2MmTpxoOnToYAYNGmRm\nz55ttm7desnvr+25AvvxnToaBR8fHzVt2rTasp/+9Ke65557NGjQIL300ktq166dHnjgAe/15oIz\nIJ//HrMmw4cPlyRFRUUpKipKu3fvrtccP/nkE40YMUKS5O/vr8TERG3bts17/fm5dezYUR6PR2Vl\nZdVuv2fPHkVERCg6OlqS1KZNG917773auXPnFc8hNzdXx48f974TnjRpkhwOhw4dOiRJ6tSpU7WP\n77t27arAwEBJUocOHbzHF6xYsUJ79+5VVlaWFi5cKEne+d5xxx264447JJ07JqFVq1baunWr/vrX\nv+rYsWPq3r17tTl99913qqioUO/evSVJLVq00L/8y7/ok08+ueLtkqRmzZrpX//1XyVJCQkJcjgc\n+stf/nLFt+/Zs6c2bdqkMWPGaO3atZo4caKcTme1MTU9BrGxsd7HoGPHjmrRooWk6vdXTXr16qV9\n+/bp5MmT+vLLL3X33XcrJCTkknFNmjRRZmamXnvtNX377beXXZ/D4dCiRYu0detWpaSkyOPxaPLk\nyd5PSQCJA+XQSOTn56tt27bVlvn4+GjVqlVauHChQkNDtWDBAs2fP7/G2wcFBV123b6+//hnUFVV\nJYfDccn31h6Pp845VlVVXXK5srLSe/n8d6vnmYv+24WLL9e0jiuZw89//nNlZ2dr48aN2rhxo956\n6y3v8QUX3w9NmjTx/nx+m8vKyvTII49o//79+tnPfqYXXnhBfn5+3vmdfxFwXlJSkt5++2298847\neuyxx2qc08WMMfJ4PFd1Pzsc1b8tPHv2rPexu/C+u9w6oqOj9fHHH2vYsGE6cuSIHn300UtewNX0\nGJw9e9b7GFz4GPr4+NQ4/jx/f389+OCD+uCDD7Rx40YNHjz4smM7duyocePGKS0tTeXl5TWOeeed\nd7RlyxaFhYWpf//+mj17tjZs2KA//vGPV32wJ+xF1HHTuXhHefDgQa1YsUIpKSnVlhcUFKh///5q\n3bq1xowZo5EjR3q/b3U4HFccww0bNkiS9u3bp++//16dOnVSaGiovvnmG1VUVKiysrLakfR+fn41\nrrtHjx7eI9MrKiq0du1axcfHX9E2SufeRR88eFBfffWVpHPfQ+fl5en++++/7G0unk+3bt2Um5ur\nAwcOSDp39PfAgQNVUVFxRfeFJB06dEilpaV69tln1atXL33++efyeDw6e/ZsjeMffPBBff311/ro\no480ZMiQS66/66675O/vr82bN0uSjh49qj/96U/q0aOHbr/9dv3www86efKkjDHeMRdvlySdOHFC\n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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e2c6be978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"c = Counter(np.reshape(sample_layers[-1], [-1]))\n",
"g = sns.barplot(x = list(c.keys()), y = list(c.values()))\n",
"sns.plt.title('Distribution of ternary outputs on MNIST')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### One-hot neurons\n",
"\n",
"First, let's take a look at what the layer activations look like, in case my description above wasn't super clear. We'll pull out the last layer of a network that uses 100 5-dimensional one-hot neurons, and then \"unflatten\" it into shape [100, 5]. "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.9794\n"
]
}
],
"source": [
"res, sample_layers = train_classifier(hidden_dims=[500], onehot_dims=5, epochs=20, lr=0.1, \n",
" stochastic_eval=False, verbose=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is what the activations of the first 10 neurons of the first sample in the validation set look like. As discussed, each neuron outputs a 5D one-hot vector:"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0., 0., 0., 0., 1.],\n",
" [ 0., 1., 0., 0., 0.],\n",
" [ 0., 0., 0., 1., 0.],\n",
" [ 0., 0., 1., 0., 0.],\n",
" [ 1., 0., 0., 0., 0.],\n",
" [ 0., 0., 1., 0., 0.],\n",
" [ 0., 0., 1., 0., 0.],\n",
" [ 0., 1., 0., 0., 0.],\n",
" [ 0., 0., 0., 1., 0.],\n",
" [ 0., 1., 0., 0., 0.]], dtype=float32)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.reshape(sample_layers[0][0], [100, 5])[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### One-hot neurons: temperature annealing\n",
"\n",
"Now, let's test some 5D neurons to see if temperature annealing does anything. Looks like not really:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.981\n",
"....................\n",
"Final epoch, epoch 20 : 0.9796\n",
"....................\n",
"Final epoch, epoch 20 : 0.9798\n"
]
},
{
"data": {
"image/png": "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\ndOLj48PXX3/NggULWLBgAfPmzSMoKAgAi8Xiem9BQQEWi4WHHnqITz/9lKioKKZNm8acOXNKclhE\npBgKBCIV2IXuCU5NTeXgwYMMHTqUm266iVWrVp1xAi9uG8W93rZtWxYvXgwUdu3//vvvZ1xmgMIe\nigULFtC9e3fGjRvHtm3bALBareTn52O324mKiuKbb74BYPXq1dx///2u9ZcsWQIU3kC5adMmWrdu\nzV133UVGRgYPPvggDz30EFu3bi3yGIhIyemSgUgFdvYJ+HRBQUHceeeddOnShYCAAFq2bElOTg45\nOTkl2kZxr991113ExsZy++23ExERQY0aNc7obYDCpwlGjhzJ119/jcVi4fnnnwegXbt2TJgwgZde\neonp06fz3HPP8d5772Gz2Xj99ddd6+fk5NCzZ08cDgeTJk0iKCiIESNGMGbMGCwWC76+vq5tikjZ\n6LFDESmVX375BcMwaN++PRkZGfTo0YP58+cTGBh4SbZ/6kmI7t27X5LticiFqYdAREqlXr16PPnk\nk7z++uuYTCaGDRt2ycKAiFx+6iEQERER3VQoIiIiCgQiIiKCAoGIiIigQCAiIiIoEIiIiAgKBCIi\nIgL8f58gFmGrDBhrAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e2c888dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"_, res1 = train_classifier(hidden_dims=[500], onehot_dims=5, epochs=20, lr=0.1, \n",
" slope_annealing_rate=1.2, stochastic_eval=False, \n",
" label= \"No temperature annealing\", verbose=False)\n",
"_, res2 = train_classifier(hidden_dims=[500], onehot_dims=5, epochs=20, lr=0.1, \n",
" slope_annealing_rate=1.2, stochastic_eval=False, \n",
" label= \"Annealing rate 1.2\", verbose=False)\n",
"_, res3 = train_classifier(hidden_dims=[500], onehot_dims=5, epochs=20, lr=0.1, \n",
" slope_annealing_rate=1.5, stochastic_eval=False, \n",
" label= \"Annealing rate 1.5\", verbose=False)\n",
"plot_n([res1] + [res2] + [res3], lower_y=0.8, title=\"5D one-hot neurons, temperature annealing (validation)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### One-hot neurons: number of dimensions\n",
"\n",
"We can also easily change with the number of dimensions of each neuron. I keep the layer size constant in terms of the number of neurons, but make them progressively more expressive and see what happens (because layers are flattened, it appears that the layer size is growing, but the number of neurons stays the same). Looks like not much happens, but maybe this has to do with the simplicity of the dataset. Query whether more expressive one-hot neurons would make a difference on a harder dataset. Note: I plotted the training curves locally, and they show the same result (I would have thought higher dimensional neurons would fit the training data better, but apparently not -- perhaps due to stochasticity). "
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"....................\n",
"Final epoch, epoch 20 : 0.9772\n",
"....................\n",
"Final epoch, epoch 20 : 0.98\n",
"....................\n",
"Final epoch, epoch 20 : 0.981\n",
"....................\n",
"Final epoch, epoch 20 : 0.9754\n"
]
},
{
"data": {
"image/png": "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\nSElJ4YEHHqjVRv0a/qAfazB8e6TDCGKJi6tiDxEREakyEHz22Wf4/X7sdjt+vx+/33/MCxOdaIFg\niIAZ+Ln0sct+2AmRIiIicrAqp+/PmzePIUOGAJCTk8NFF13E/Pnza71hNVFS7gdLMHLbYUy8q45b\nJCIi0jBUGQieffZZXnzxRQBat27N22+/zdNPP13rDauJojIvGCEcvvAIgSuhfo5kiIiI1DdVBgK/\n309a5Wp/AKmpqZimWauNqqmiUh+GJfhzIEjS/bUiIiLHoso5BL169eK2227jkksuAeDDDz/klFNO\nqfWG1URxmQ8sIWwBB9aQH0eybjkUERE5FlUGgkmTJjFr1ixef/11bDYbvXv35qqrrjoRbau2ospA\nYAnadcuhiIhINVQZCPx+PzExMTz//PPk5uYye/ZsgsHgiWhbtRWXhS8ZGCE79lAJVi1KJCIickyq\nnENw++23s2fPHgDi4uIIhULcddddtd6wmigq84FhYrJ/hECBQERE5FhUGQh27drFxIkTgXCxookT\nJ7J9+/Zab1hNFJf5sIbC6w7YQ15siQoEIiIix6LKQGAYBuvWrYv8vmnTJmy2Kq801InCMi+2kBUA\nuxnAUk8XUBIREalvqjyz33333YwYMYKmTZsCUFBQwGOPPVbrDauJ4nIPrmDlKoUOQ6sUioiIHKMq\nA0GfPn1YsGABa9euZdGiRXzxxRfcdNNN/PjjjyeifcfMHwhS4fcR768MBM76OYohIiJSH1V51szO\nzub111/n7bffpri4mDFjxvDcc8+diLZVy/5bDmM84UNyuux13CIREZGG44hzCD755BNGjhzJsGHD\nKCoq4rHHHqNJkyaMHTuWlJSUE9nGY1Jc5scwgsRWVNYxcMfUcYtEREQajiOOEIwbN44LL7yQ119/\nnTZt2gDU62vyRWVesIRweisDgeoYiIiIHLMjBoL333+fd955h6uvvpqWLVty8cUX19sFieDnZYt/\nrmPgruMWiYiINBxHvGTQsWNH7r77bhYtWsSoUaP47rvv2Lt3L6NGjeLzzz8/kW08JkWVqxTa/OGM\nE5ucWMctEhERaTiqXIfAarVywQUX8Mwzz7Bo0SLOPPNMHn/88RPRtmopLvOBEcJaedthbLrqGIiI\niByrKgPBgVJSUrjhhht4//33a6s9NRa+yyCIJegA0yS2eXpdN0lERKTBqFYgqM+KynwY1hCYdmym\n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\nCERERAR4A7f5dqNRPna+AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9e2cdfb7b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"_, res1 = train_classifier(hidden_dims=[300], onehot_dims=3, epochs=20, lr=0.1, stochastic_eval=False, \n",
" label= \"3 dimensions\", verbose=False)\n",
"_, res2 = train_classifier(hidden_dims=[500], onehot_dims=5, epochs=20, lr=0.1, stochastic_eval=False, \n",
" label= \"5 dimensions\", verbose=False)\n",
"_, res3 = train_classifier(hidden_dims=[700], onehot_dims=7, epochs=20, lr=0.1, stochastic_eval=False, \n",
" label= \"7 dimensions\", verbose=False)\n",
"_, res4 = train_classifier(hidden_dims=[1000], onehot_dims=10, epochs=20, lr=0.1, stochastic_eval=False, \n",
" label= \"10 dimensions\", verbose=False)\n",
"plot_n([res1] + [res2] + [res3] + [res4], lower_y=0.8, title=\"N-dimensional one-hot neurons\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"\n",
"That's it for now! In this post we saw how we can use the straight-through estimator to create expressive trainable explicit neurons. In particular, we coded up neurons that can represent more than 2 ordered categories (the ternary, or general n-ary neuron), and also neurons that can represent 3 or more unordered categories (the one-hot neuron). Moreover, we showed that they are all competitive with a real-valued tanh baseline on MNIST, and that they provide strong built-in regularization. \n",
"\n",
"I didn't focus very much on the applications in this post, but I'm hoping to show you something really cool in my next one that uses the one-hot neurons."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment