{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving for $d$\n", "\n", "- Minimize the average error over all $x$, i.e.,\n", "\n", "$ E = \\frac{1}{2}\\int_{-1}^1 (x-\\hat{x})^2 \\; dx $\n", "\n", "- Substitute for $\\hat{x}$:\n", "\n", "$ \n", "\\begin{align}\n", "E = \\frac{1}{2}\\int_{-1}^1 \\left(x-\\sum_i^N a_i d_i \\right)^2 \\; dx \n", "\\end{align}\n", "$\n", "\n", "- Take the derivative with respect to $d_i$:\n", "\n", "$\n", "\\begin{align}\n", "{{\\partial E} \\over {\\partial d_i}} &= {1 \\over 2} \\int_{-1}^1 2 \\left[ x-\\sum_j a_j d_j \\right] (-a_i) \\; dx \\\\\n", "{{\\partial E} \\over {\\partial d_i}} &= - \\int_{-1}^1 a_i x \\; dx + \\int_{-1}^1 \\sum_j a_j d_j a_i \\; dx \n", "\\end{align}\n", "$\n", "\n", "- At the minimum (i.e. smallest error), $ {{\\partial E} \\over {\\partial d_i}} = 0$\n", "\n", "$\n", "\\begin{align}\n", "\\int_{-1}^1 a_i x \\; dx &= \\int_{-1}^1 \\sum_j(a_j d_j a_i) \\; dx \\\\\n", "\\int_{-1}^1 a_i x \\; dx &= \\sum_j \\left(\\int_{-1}^1 a_i a_j \\; dx\\right)d_j \n", "\\end{align}\n", "$\n", "\n", "- That's a system of $N$ equations and $N$ unknowns\n", "- In fact, we can rewrite this in matrix form\n", " \n", "$ \\Upsilon = \\Gamma d $\n", "\n", "where" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n", "\r", "Simulation finished in 0:00:01. \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['piecewise']\n", "`%matplotlib` prevents importing * from pylab and numpy\n" ] }, { "data": { "image/png": [ "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\n", "h6uPr34AAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "__author__ = 'Chow'\n", "%pylab inline\n", "import nengo\n", "from nengo.utils.functions import piecewise\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "model = nengo.Network()\n", "\n", "with model:\n", " #stim = nengo.Node(lambda t: 5*np.sin(5*t))\n", " stim = nengo.Node(piecewise({0.04:1, 1:0}))\n", " ensA = nengo.Ensemble(200, dimensions=1)\n", "\n", " def feedback(x):\n", " return x\n", "\n", " def input_func(u):\n", " return 0.05 * u\n", "\n", " nengo.Connection(stim, ensA, function=input_func, synapse=0.005)\n", " nengo.Connection(ensA, ensA, function=feedback, synapse=0.05)\n", "\n", " stim_p = nengo.Probe(stim)\n", " ensA_p = nengo.Probe(ensA, synapse=.01)\n", "\n", "# model.config[nengo.Ensemble].neuron_type = nengo.LIFRate()\n", "\n", "sim = nengo.Simulator(model)\n", "sim.run(1.5)\n", "\n", "plt.plot(sim.trange(), sim.data[ensA_p], label=\"$\\hat{x}$\")\n", "plt.plot(sim.trange(), sim.data[stim_p], label=\"$x$\")\n", "plt.legend()\n", "# plt.ylim(-.2,1.5);\n", "\n", "\n", "plt.show()\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "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.5" } }, "nbformat": 4, "nbformat_minor": 0 }