{ "cells": [ { "cell_type": "markdown", "id": "1e15b673", "metadata": {}, "source": [ "# _(Si Wu, 2008)_: Continuous-attractor Neural Network 2D\n", "\n", "[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/brainpy/examples/blob/main/attractors/Wu_2008_CANN_2D.ipynb)\n", "[![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/brainpy/examples/blob/main/attractors/Wu_2008_CANN_2D.ipynb)" ] }, { "cell_type": "markdown", "id": "b830b3d0", "metadata": {}, "source": [ "Implementation of the paper:\n", "- Si Wu, Kosuke Hamaguchi, and Shun-ichi Amari. \"Dynamics and computation\n", " of continuous attractors.\" Neural computation 20.4 (2008): 994-1025." ] }, { "cell_type": "markdown", "id": "7e25e944", "metadata": {}, "source": [ "The mathematical equation of the Continuous-Attractor Neural Network (CANN) is given by:\n", "\n", "$$\\tau \\frac{du(x,t)}{dt} = -u(x,t) + \\rho \\int dx' J(x,x') r(x',t)+I_{ext}$$\n", "\n", "$$r(x,t) = \\frac{u(x,t)^2}{1 + k \\rho \\int dx' u(x',t)^2}$$\n", "\n", "$$J(x,x') = \\frac{1}{\\sqrt{2\\pi}a}\\exp(-\\frac{|x-x'|^2}{2a^2})$$\n", "\n", "$$I_{ext} = A\\exp\\left[-\\frac{|x-z(t)|^2}{4a^2}\\right]$$" ] }, { "cell_type": "markdown", "id": "d1c00903", "metadata": {}, "source": [ "The model solving is usig Fast Fourier transform. It can run on CPU, GPU, TPU devices." ] }, { "cell_type": "code", "execution_count": 1, "id": "534aa471", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T04:08:53.382192900Z", "start_time": "2023-07-22T04:08:52.893570Z" } }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import jax" ] }, { "cell_type": "code", "execution_count": 2, "id": "56fbab32", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T04:08:53.778820800Z", "start_time": "2023-07-22T04:08:53.386192600Z" } }, "outputs": [], "source": [ "import brainpy as bp\n", "import brainpy.math as bm" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2023-07-22T04:08:53.794940300Z", "start_time": "2023-07-22T04:08:53.778820800Z" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2.4.3'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bp.__version__" ] }, { "cell_type": "code", "execution_count": 3, "id": "a832de00", "metadata": {}, "outputs": [], "source": [ "class CANN2D(bp.dyn.NeuDyn):\n", " def __init__(self, length, tau=1., k=8.1, a=0.5, A=10., J0=4.,\n", " z_min=-bm.pi, z_max=bm.pi, name=None):\n", " super(CANN2D, self).__init__(size=(length, length), name=name)\n", "\n", " # parameters\n", " self.length = length\n", " self.tau = tau # The synaptic time constant\n", " self.k = k # Degree of the rescaled inhibition\n", " self.a = a # Half-width of the range of excitatory connections\n", " self.A = A # Magnitude of the external input\n", " self.J0 = J0 # maximum connection value\n", "\n", " # feature space\n", " self.z_min = z_min\n", " self.z_max = z_max\n", " self.z_range = z_max - z_min\n", " self.x = bm.linspace(z_min, z_max, length) # The encoded feature values\n", " self.rho = length / self.z_range # The neural density\n", " self.dx = self.z_range / length # The stimulus density\n", "\n", " # The connections\n", " self.conn_mat = self.make_conn()\n", "\n", " # variables\n", " self.r = bm.Variable(bm.zeros((length, length)))\n", " self.u = bm.Variable(bm.zeros((length, length)))\n", " self.input = bm.Variable(bm.zeros((length, length)))\n", "\n", " def show_conn(self):\n", " plt.imshow(bm.as_numpy(self.conn_mat))\n", " plt.colorbar()\n", " plt.show()\n", "\n", " def dist(self, d):\n", " v_size = bm.asarray([self.z_range, self.z_range])\n", " return bm.where(d > v_size / 2, v_size - d, d)\n", "\n", " def make_conn(self):\n", " x1, x2 = bm.meshgrid(self.x, self.x)\n", " value = bm.stack([x1.flatten(), x2.flatten()]).T\n", "\n", " @jax.vmap\n", " def get_J(v):\n", " d = self.dist(bm.abs(v - value))\n", " d = bm.linalg.norm(d, axis=1)\n", " # d = d.reshape((self.length, self.length))\n", " Jxx = self.J0 * bm.exp(-0.5 * bm.square(d / self.a)) / (bm.sqrt(2 * bm.pi) * self.a)\n", " return Jxx\n", "\n", " return get_J(value)\n", "\n", " def get_stimulus_by_pos(self, pos):\n", " assert bm.size(pos) == 2\n", " x1, x2 = bm.meshgrid(self.x, self.x)\n", " value = bm.stack([x1.flatten(), x2.flatten()]).T\n", " d = self.dist(bm.abs(bm.asarray(pos) - value))\n", " d = bm.linalg.norm(d, axis=1)\n", " d = d.reshape((self.length, self.length))\n", " return self.A * bm.exp(-0.25 * bm.square(d / self.a))\n", "\n", " def update(self):\n", " r1 = bm.square(self.u)\n", " r2 = 1.0 + self.k * bm.sum(r1)\n", " self.r.value = r1 / r2\n", " interaction = (self.r.flatten() @ self.conn_mat).reshape((self.length, self.length))\n", " self.u.value = self.u + (-self.u + self.input + interaction) / self.tau * bp.share['dt']\n", " self.input[:] = 0." ] }, { "cell_type": "code", "execution_count": 4, "id": "9691603e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" ] } ], "source": [ "cann = CANN2D(length=100, k=0.1)" ] }, { "cell_type": "code", "execution_count": 5, "id": "ce244e9f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cann.show_conn()" ] }, { "cell_type": "code", "execution_count": 6, "id": "bad680fd", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3898ffedc75c4d5987bbaef9dd7d522d", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/300 [00:00