{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# SYDE 556/750: Simulating Neurobiological Systems\n", "\n", "Accompanying Readings: Chapter 6" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Transformation\n", "\n", "- The story so far:\n", " - The activity of groups of neurons can represent variables $x$\n", " - $x$ can be an aribitrary-dimension vector\n", " - Each neuron has a preferred vector $e$\n", " - Current going into each neuron is $J = \\alpha e \\cdot x + J^{bias}$\n", " - We can interpret neural activity via $\\hat{x}=\\sum a_i d_i$\n", " - For spiking neurons, we filter the spikes first: $\\hat{x}=\\sum a_i(t)*h(t) d_i$\n", " - To compute $d$, generate some $x$ values and find the optimal $d$ (assuming some amount of noise)\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "- So far we've just talked about neural activity in a single population\n", "- What about connections between neurons?\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Connecting neurons\n", "\n", "- Up till now, we've always had the current going into a neuron be something we computed from $x$\n", " - $J = \\alpha e \\cdot x + J^{bias}$\n", "- This will continue to be how we handle inputs\n", " - Sensory neurons, for example\n", " - Or whatever's coming from the rest of the brain that we're not modelling (yet)\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "- But what about other groups of neurons?\n", " - How do they end up getting the amount of input current that we're injecting with $J = \\alpha e \\cdot x + J^{bias}$ ?\n", " - Where does that current come from?\n", " - Inputs from neurons connected to this one\n", " - Through weighted synaptic connections\n", " - Let's think about neurons in a simple case" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### A communication channel\n", "\n", "- Let's say we have two groups of neurons\n", " - One group represents $x$\n", " - One group represents $y$\n", " - Can we pass the value from one group of neurons to the other? \n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "- Without worrying about biological plausibility to start, we can formulate this in two steps\n", " - Drive the first population $a$ with the input, $x$, then decoded it to give $\\hat{x}$\n", " - Now use $y=\\hat{x}$ to drive the 2nd population $b$, and then decode that\n", "- Let's start by first constructing the two populations\n", " - Stimulate them both directly and decode to compare\n", " \n", "" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "\n", "