{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "http://arxiv.org/pdf/1406.2661v1.pdf ...we simultaneously train two models: a generative model $G$\n", "that captures the data distribution, and a discriminative model $D$ that estimates\n", "the probability that a sample came from the training data rather than $G$. The training\n", "procedure for $G$ is to maximize the probability of $D$ making a mistake...\n", "we define a prior on input noise variables $p_z(z)$...\n", "we simultaneously train G to minimize\n", "$\\log(1 − D(G(z)))$..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "original code from https://gist.github.com/Newmu/4ee0a712454480df5ee3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You will need to install Foxhound:\n", "```bash\n", "git clone https://github.com/IndicoDataSolutions/Foxhound.git\n", "cd Foxhound/\n", "python setup.py install\n", "```" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Couldn't import dot_parser, loading of dot files will not be possible.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Using gpu device 0: GeForce GT 650M\n" ] } ], "source": [ "import os\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "from time import time\n", "import theano\n", "import theano.tensor as T\n", " \n", "from scipy.stats import gaussian_kde\n", "from scipy.misc import imsave, imread" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from foxhound import activations\n", "from foxhound import updates\n", "from foxhound import inits\n", "from foxhound.theano_utils import floatX, sharedX" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "leakyrectify = activations.LeakyRectify()\n", "rectify = activations.Rectify()\n", "tanh = activations.Tanh()\n", "sigmoid = activations.Sigmoid()\n", "bce = T.nnet.binary_crossentropy\n", "batch_size = 128\n", "nh = 2048\n", "init_fn = inits.Normal(scale=0.02)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def gaussian_likelihood(X, u=0., s=1.):\n", " return (1./(s*np.sqrt(2*np.pi)))*np.exp(-(((X - u)**2)/(2*s**2)))\n", " \n", "def scale_and_shift(X, g, b, e=1e-8):\n", " X = X*g + b\n", " return X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "build two networks" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def g(X, w, g, b, w2, g2, b2, wo):\n", " h = leakyrectify(scale_and_shift(T.dot(X, w), g, b))\n", " h2 = leakyrectify(scale_and_shift(T.dot(h, w2), g2, b2))\n", " y = T.dot(h2, wo)\n", " return y\n", " \n", "def d(X, w, g, b, w2, g2, b2, wo):\n", " h = rectify(scale_and_shift(T.dot(X, w), g, b))\n", " h2 = tanh(scale_and_shift(T.dot(h, w2), g2, b2))\n", " y = sigmoid(T.dot(h2, wo))\n", " return y" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gw = init_fn((1, nh))\n", "gg = inits.Constant(1.)(nh)\n", "gg = inits.Normal(1., 0.02)(nh)\n", "gb = inits.Normal(0., 0.02)(nh)\n", " \n", "gw2 = init_fn((nh, nh))\n", "gg2 = inits.Normal(1., 0.02)(nh)\n", "gb2 = inits.Normal(0., 0.02)(nh)\n", " \n", "gy = init_fn((nh, 1))\n", "ggy = inits.Constant(1.)(1)\n", "gby = inits.Normal(0., 0.02)(1)\n", " \n", "dw = init_fn((1, nh))\n", "dg = inits.Normal(1., 0.02)(nh)\n", "db = inits.Normal(0., 0.02)(nh)\n", " \n", "dw2 = init_fn((nh, nh))\n", "dg2 = inits.Normal(1., 0.02)(nh)\n", "db2 = inits.Normal(0., 0.02)(nh)\n", " \n", "dy = init_fn((nh, 1))\n", "dgy = inits.Normal(1., 0.02)(1)\n", "dby = inits.Normal(0., 0.02)(1)\n", " \n", "g_params = [gw, gg, gb, gw2, gg2, gb2, gy]\n", "d_params = [dw, dg, db, dw2, dg2, db2, dy]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Z = T.matrix()\n", "X = T.matrix()\n", " \n", "gen = g(Z, *g_params)\n", " \n", "p_real = d(X, *d_params)\n", "p_gen = d(gen, *d_params)\n", " \n", "d_cost_real = bce(p_real, T.ones(p_real.shape)).mean()\n", "d_cost_gen = bce(p_gen, T.zeros(p_gen.shape)).mean()\n", "g_cost_d = bce(p_gen, T.ones(p_gen.shape)).mean()\n", " \n", "d_cost = d_cost_real + d_cost_gen\n", "g_cost = g_cost_d\n", " \n", "cost = [g_cost, d_cost, d_cost_real, d_cost_gen]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lr = 0.001\n", "lrt = sharedX(lr)\n", "d_updater = updates.Adam(lr=lrt)\n", "g_updater = updates.Adam(lr=lrt)\n", " \n", "d_updates = d_updater(d_params, d_cost)\n", "g_updates = g_updater(g_params, g_cost)\n", "updates = d_updates + g_updates\n", " \n", "_train_g = theano.function([X, Z], cost, updates=g_updates)\n", "_train_d = theano.function([X, Z], cost, updates=d_updates)\n", "_train_both = theano.function([X, Z], cost, updates=updates)\n", "_gen = theano.function([Z], gen)\n", "_score = theano.function([X], p_real)\n", "_cost = theano.function([X, Z], cost)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from IPython import display\n", "\n", "def vis(i):\n", " s = 1.\n", " u = 0.\n", " zs = np.linspace(-1, 1, 500).astype('float32')\n", " xs = np.linspace(-5, 5, 500).astype('float32')\n", " ps = gaussian_likelihood(xs, 1.)\n", " \n", " gs = _gen(zs.reshape(-1, 1)).flatten()\n", " preal = _score(xs.reshape(-1, 1)).flatten()\n", " kde = gaussian_kde(gs)\n", " \n", " plt.clf()\n", " plt.plot(xs, ps, '--', lw=2)\n", " plt.plot(xs, kde(xs), lw=2)\n", " plt.plot(xs, preal, lw=2)\n", " plt.xlim([-5., 5.])\n", " plt.ylim([0., 1.])\n", " plt.ylabel('Prob')\n", " plt.xlabel('x')\n", " plt.legend(['P(data)', 'G(z)', 'D(x)'])\n", " plt.title('GAN learning guassian %d'%i)\n", " \n", " display.clear_output(wait=True)\n", " display.display(plt.gcf())" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nWAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nWAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(1000):\n", " # the prior over the input noise\n", " zmb = np.random.uniform(-1, 1, size=(batch_size, 1)).astype('float32')\n", " xmb = np.random.normal(1., 1, size=(batch_size, 1)).astype('float32')\n", " if i % 10 == 0:\n", " # you dont really use xmb in training G\n", " _train_g(xmb, zmb)\n", " else:\n", " _train_d(xmb, zmb)\n", " if i % 10 == 0:\n", " vis(i)\n", " lrt.set_value(floatX(lrt.get_value()*0.9999))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }