<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Toni Westbrook dot Com &#187; TFNN</title>
	<atom:link href="http://www.toniwestbrook.com/archives/category/development-logs/tfnn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.toniwestbrook.com</link>
	<description>Sharing Software Development Knowledge With You</description>
	<lastBuildDate>Mon, 12 Sep 2011 03:35:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Hodgkin-Huxley Model</title>
		<link>http://www.toniwestbrook.com/archives/499</link>
		<comments>http://www.toniwestbrook.com/archives/499#comments</comments>
		<pubDate>Mon, 12 Sep 2011 03:32:22 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=499</guid>
		<description><![CDATA[Continuing on posting some past work to get the blog up to date, here are some graphs showing completion of the Hodgkin Huxley method of processing voltage gated ion channels. At this point, the neural network supports adding ion channels to the plasma membrane with different gating types, including voltage gates as well as voltage [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing on posting some past work to get the blog up to date, here are some graphs showing completion of the Hodgkin Huxley method of processing voltage gated ion channels.  At this point, the neural network supports adding ion channels to the plasma membrane with different gating types, including voltage gates as well as voltage gates with inactivation gates (as well as ion pumps, though these are not processed by HH).  </p>
<p>Akin to how protein subunit types give rise of the type of channel and gates of a physical ion channel, attributes associated with a SynthNet ion channel control what kind of channel and gates it possesses.  Additional properties such as membrane threshold potential, permeability, and refractory period control the behavior of the voltage gated ion channels.</p>
<p>Below are some graphs with a two connected neural processes, the latter containing voltage gated sodium channels (with inactivation gates) and voltage gated potassium channels, constructed to behave as normal neural structures do during the action potential process.  The first structure (membrane potential shown in blue) was clamped  at -30mV for different periods of time in each graph.  Shown is red is the membrane potential of the second structure.  The left graphs show regular firing with different refractory periods, while the right graphs show burst and oscillating potentials (caused by the rate and magnitude of repolarization remaining higher than the threshold potential, coupled with a very short refractory period).</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/09/adjacentpotentials5.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/09/adjacentpotentials5.jpg" style="width:100%" /></a></p>
<p>In the next post, I&#8217;ll be showing the interaction of action potential (via HH) and electrotonic potential (via cable and capacitance calculations) over a more complex morphology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/499/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electrotonic Potential</title>
		<link>http://www.toniwestbrook.com/archives/494</link>
		<comments>http://www.toniwestbrook.com/archives/494#comments</comments>
		<pubDate>Thu, 08 Sep 2011 03:42:46 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=494</guid>
		<description><![CDATA[Though I haven&#8217;t updated the blog in a while, I&#8217;ve really been going full-steam on the neural emulator. I&#8217;ve been taking screenshots as I go, so over the next day or so I&#8217;m going to try to make a few posts with those shots to get everything up to speed on the blog. Also, thanks [...]]]></description>
			<content:encoded><![CDATA[<p>Though I haven&#8217;t updated the blog in a while, I&#8217;ve really been going full-steam on the neural emulator.  I&#8217;ve been taking screenshots as I go, so over the next day or so I&#8217;m going to try to make a few posts with those shots to get everything up to speed on the blog.  Also, thanks for all the comments on other posts! I&#8217;ll be getting back to them soon (this weekend).  </p>
<p>The first big update concerns processing electrotonic potential across the cell and the plasma membrane.  In my previous post, I talked a bit about using the cable equation for distribution of current.  As of now, I still make use of the cable equation for distributing potential across the cell.  This takes into account the length and circumference of the segment in question, in addition to internal resistance, and resistance across the plasma membrane.  Also, in order to appropriately address membrane moieties, calculations will also take into account the capacitance of the membrane.  This allows not only a more realistic build-up of potential to occur to allow things like temporal summation to work properly, but also allow us to emulate myelination, in which electrotonic potential is subjected to a change in attenuation due to higher resistance and lower capacitance of the plasma membrane.  </p>
<p>Below is a membrane potential graph generated from a simple structure consisting of 3 segments. The first segment is clamped with oscillating voltage, with structure 2 connected to 1, and 3 to 2.  We can see the subsequent structures increase and decrease according to their distance from structure 1.  The curve is controlled by the capacitance and resistance of the plasma membrane:</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/09/electrotonic1.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/09/electrotonic1.jpg" style="width:100%" /></a></p>
<p>Note that membrane resistance is calculated via ionic permeability.  This is a simple graph and the following posts will show some more interesting graphs with the effects of spatial summation and changes in resistance illustrated, but this one is very clear at showing the expected curve associated with a capacitor.  </p>
<p>Next post illustrates the completion of Hodgekin-Huxley calculations for voltage-gated ion channels.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/494/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cable Equation and Hodgkin-Huxley</title>
		<link>http://www.toniwestbrook.com/archives/487</link>
		<comments>http://www.toniwestbrook.com/archives/487#comments</comments>
		<pubDate>Sun, 08 May 2011 22:03:58 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=487</guid>
		<description><![CDATA[Progress marches forward on the Neural Emulator front. I&#8217;ve currently fleshed out the functionality as described by the cable equation, that describes how voltage/current flows down neural structures. This will allow adjacent sections of the cellular membrane to propagate changes in potential, thereby properly emulating the action potential. Before I can advance at all, I [...]]]></description>
			<content:encoded><![CDATA[<p>Progress marches forward on the Neural Emulator front.  I&#8217;ve currently fleshed out the functionality as described by the cable equation, that describes how voltage/current flows down neural structures.  This will allow adjacent sections of the cellular membrane to propagate changes in potential, thereby properly emulating the action potential.  Before I can advance at all, I need to ensure that the action potential sequence models properly, since this is such core functionality.  </p>
<p><b> Voltage Propagation </b></p>
<p>In the following graph, I&#8217;ve setup a neuron consisting of 4 structures.  For the purposes of this test, it doesn&#8217;t really matter what the structures themselves are, but you could think of it as 4 sections of a fiber in a dendritic arbor.  They all start out with the same intra and extracellular ionic concentrations, membrane permeability, and size.  They are arranged linearly, where structure 0 is connected to 1, which is connected to 2, which is connected to 3.  In this experiment, I increased in the extracellular concentration of Sodium surrounding structure 0.  The graph shows both the local potential (potential for the cell membrane when isolated from adjacent membranes), as well as the total potential (when accounting for adjacent membranes).</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/05/adjacentpotentials.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/05/adjacentpotentials.jpg" style="width:100%" /></a></p>
<p>As can be seen, as we increase the extracellular Sodium concentration, the cell membrane of structure 0 depolarizes as the local potential goes positive.  Though the Sodium concentration surrounding the adjacent structures has (mostly) not changed, as can be seen by their local potentials, their total potential increases accordingly due to their proximity to structure 0.  The closer they are (structure 1 is the closest), the more their membrane potential is affected.  The effects of such are calculated by voltage difference, connecting membrane area, and distance between them.  So this test came out successful.</p>
<p><b> Hodgekin-Huxley </b></p>
<p>In addition, I&#8217;m about half way finished with integrating the Hodgekin-Huxley model and associated equations in with calculating the permeability of gated ion channels, specifically for voltage and inactivation gates.  This will ensure that the ion permeability adjusts correctly depending on the membrane potential.  However, before I was able to move forward on HH, I needed to ensure membrane potentials were propagating properly, which is why the work above was important.  More on this soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/487/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Verification of SynthNet&#8217;s Ion Handling</title>
		<link>http://www.toniwestbrook.com/archives/468</link>
		<comments>http://www.toniwestbrook.com/archives/468#comments</comments>
		<pubDate>Mon, 11 Apr 2011 03:51:56 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=468</guid>
		<description><![CDATA[The following graphs demonstrate SynthNet&#8217;s substance and electrochemical engine. For each graph, we have a setup a virtual soma with typical ion concentrations for a Mammalian neuron. Specifically: Intra/Extra Na: 18mM/145mM Intra/Extra K: 140mM/3mM Intra/Extra Cl: 7mM/120mM Intra/Extra Ca: 100nM/1.2mM First, we verify that GHK is properly reducing to the Nernst equation and equilibrium potential [...]]]></description>
			<content:encoded><![CDATA[<p>The following graphs demonstrate SynthNet&#8217;s substance and electrochemical engine.  </p>
<p>For each graph, we have a setup a virtual soma with typical ion concentrations for a Mammalian neuron.  Specifically:</p>
<p>Intra/Extra Na: 18mM/145mM<br />
Intra/Extra K: 140mM/3mM<br />
Intra/Extra Cl: 7mM/120mM<br />
Intra/Extra Ca: 100nM/1.2mM</p>
<p>First, we verify that GHK is properly reducing to the Nernst equation and equilibrium potential is correctly being calculated.  For this test, we isolate the ion in the question by removing permeability of all other ions across the cellular membrane.  We then record membrane potential and ensure it matches equilibrium potential for that ion&#8217;s electrochemical gradient.</p>
<p>I forgot to change the scale over, so potential is shown in volts &#8211; so remember the factor of 1000 for mV.</p>
<p>For Sodium, we should get +56mV (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-sodium.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-sodium.jpg" alt="" title="voltage-sodium" style="width:100%" /></a></p>
<p>For Potassium, we should get -102mV (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-potassium.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-potassium.jpg" alt="" title="voltage-potassium" style="width:100%" /></a></p>
<p>For Chloride, we should get -76mV (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-chloride.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-chloride.jpg" alt="" title="voltage-chloride" style="width:100%" /></a></p>
<p>For Calcium, we should get +125mV (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-calcium.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-calcium.jpg" alt="" title="voltage-calcium" style="width:100%" /></a></p>
<p>So at this point, we verify that GHK is correctly reducing to Nernst for single ions.  Now we need to test that GHK correctly works with multiple ions.  So at this point, we setup typical permeability ratios for our neuron.  Specifically, Pk:PNa:PCl:PCa = 1.00:0.04:0.45:0.000001.</p>
<p>For these ratios, we should see around -70mV, which is typical for many neurons, including the dorsal lateral geniculate nucleus, thalmus, and close for many others.  (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-all-short.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-all-short.jpg" alt="" title="voltage-all" style="width:100%" /></a></p>
<p>Now, switching over to verifying functionality of GHK flux, we setup an experiment where we again isolate a single ion type, but this time mimic voltage clamping experiments by turning off GHK voltage calculation on our membrane and setting it to a static voltage.  We then initiate calculations with the incorrect intracellular and extracellular ion concentrations.  If GHK flux is working properly, the ionic concentrations to achieve their respective homeostatic values for the specified membrane potential.</p>
<p>For Potassium, we clamp the voltage at -102mV &#8211; we should see concentrations even out at Intra/Extra K: 140mM/3mM (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/flux-potassium.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/flux-potassium.jpg" alt="" title="flux-potassium" style="width:100%" /></a></p>
<p>For Calcium, we clamp the voltage at +125mV &#8211; we should see concentrations even out at Intra/Extra Ca: 100nM/1.2mM (Verified!)</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/flux-calcium.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/flux-calcium.jpg" alt="" title="flux-calcium" style="width:100%" /></a></p>
<p>So ionic flux calculations look spot on too!  With both potential and flux working properly, the engine provides enough functionality for the purposes of our emulator (currently, anyway).  </p>
<p>I&#8217;ll leave off with a fun graph of running substance calculations over time with no ionic pumps in place to maintain homeostasis.  I had to use LiveGraph for this one as Excel doesn&#8217;t allow this many graph points, and I don&#8217;t know how to turn on the legend &#8211; Green/Pink:K, Purple/Yellow:Na, Blue/Cyan: Cl, Ca not really visible, bottom is voltage.  Next time I&#8217;ll have graphs of action potentials, fun stuff.</p>
<p><a href="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-all-long.jpg"><img src="http://www.toniwestbrook.com/wp-content/uploads/2011/04/voltage-all-long.jpg" alt="" title="voltage-all" style="width:100%" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/468/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SynthNet, the Start of a Neural Emulator</title>
		<link>http://www.toniwestbrook.com/archives/462</link>
		<comments>http://www.toniwestbrook.com/archives/462#comments</comments>
		<pubDate>Mon, 11 Apr 2011 03:07:43 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/?p=462</guid>
		<description><![CDATA[If you&#8217;re anything like me, or many of the programmers and hardware hackers out there, you have a deep urge to constantly be creating something. While this presents the opportunity to try new and fun stuff, it can also be a curse in the fact that sometimes it&#8217;s hard to complete projects before jumping into [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re anything like me, or many of the programmers and hardware hackers out there, you have a deep urge to constantly be creating something.  While this presents the opportunity to try new and fun stuff, it can also be a curse in the fact that sometimes it&#8217;s hard to complete projects before jumping into a new one.  I constantly have this issue, and in general I&#8217;ve tried to be good about not staring a new project before completing my existing one.  And if you&#8217;ve known me for any period of time, you know there is one project that is the big one for me &#8211; the one that I&#8217;ve been working on for years, and the one that really drives me as a computer scientist &#8211; that is my quest to fully emulate the biological neural network (easy, right?).  Well, after years of constantly putting it aside while working on other projects, the last 4 months I&#8217;ve been very good about focusing on it.  </p>
<p><b> Goodbye TFNN, Hello SynthNet </b></p>
<p>The problem with emulating the biological brain is &#8211; it is extremely complicated to say the least, and there is still a library of information we don&#8217;t understand about neuroscience.  However &#8211; there is also a huge amount of information we DO understand.  I&#8217;ve had the disadvantage that I do not have a formal education in the biological sciences, let alone the specifics of neurophysiology.  Because of that, the process for me of emulating it has been difficult.  I have had to do a lot of catchup research to equal what the average graduate would have.  This is very apparent looking at the work I&#8217;ve done now as compared to earlier versions of the emulator (TFNN) &#8211; you can see as much going back to older blog entries on this site. I am by no means an expert now, but I was less so of one back then.  In the last year or two, I&#8217;ve really hit the books and tried to learn everything I can.  And in doing so, I&#8217;ve learned that I got so much wrong before, that it was easier to start over again than try to repair what I had.  And with that, comes the newest revision of the emulator, SynthNet.</p>
<p><b> What SynthNet Does So Far </b></p>
<p>At this point, SynthNet does the following:</p>
<ol>
<li>Emulates virtual major cellular structures, such as neuron soma, dendrites and denritic arbors, axons, terminals/boutons, synapses, etc &#8211; each with the full functionality (when applicable) of the following:</li>
<li>Physical properties such as position, surface area, and cellular membranes.</li>
<li>The ability to contain substances, including ions such as Sodium, Potassium, Chloride, and Calcium, as well as neurotransmitters and modulators, such as Glutamate, Serotonin, Norepinephrine, etc, both intracellular and extracellular.</li>
<li>For all substances, current concentration is stored (with resolution to nanomoles), homeostatic concentrations, and valance of any ion substances</li>
<li>Cellular membranes contain channels, both to the extracellular space, as well as gap junctions to the intracellular space of other cellular structures.</li>
<li>Each channel stores permeability, what substance it is permeable, and tag information for synaptic tagging or other secondary messenger processes.</li>
<li>Both leak channels and active pumps are supported</li>
<li>Channels can also have gates, including voltage gates, inactivation gates, and ligand gates.  Voltage gates activate at specified membrane potential, inactivation gates close either voltage or ligand gates after a certain amount of time, and ligand gates open in response to a specific concentration of a specific substance</li>
<li>Membrane voltage is calculated using the <a href="http://en.wikipedia.org/wiki/Goldman_equation">Goldman-Hodgkin-Katz Voltage Equation</a> modified for the inclusion of divalent ions (this may need a little tweaking though, converting this over to make use of Spangler&#8217;s equation from Ala J Med Sci, 9:218-223, 1972)</li>
<li>Ion flux across the membrane is calculated using the <a href="http://en.wikipedia.org/wiki/GHK_flux_equation">Goldman-Hodgkin-Katz Flux Equation</a>, with a membrane surface area coefficient.</li>
<li>All substance flux is virtually processed in an N+1 parallel fashion across all neurons simultaneously</li>
<li>The emulation of myelin sheaths via the elimination of channels/permeability in specific axonal segments, and an increase in intracellular trans-segment permeability across axonal segments.
<li>CSV export functionality for analysis within Excel, LiveGraph, or other tools</li>
</ol>
<p>So at this point, it handles ions and substances as a whole pretty well, calculating flux across a substance&#8217;s electrochemical gradient fairly accurately (for our purposes).  At this point, we can setup typical ion concentrations for a mammalian neuron, setup leak, pump, and voltage channels, and trigger action potientials with the expected results (still tweaking some of the values).  </p>
<p><b> To Do: </b></p>
<p>What we don&#8217;t have yet, but will have:</p>
<ol>
<li>The regulation of extracellular substances via astroglia.  This is the next thing I&#8217;m working on</li>
<li>Any kind of protein synthesis or activation, such as kinase phosphorylation.  After I get some of the glial cell work done, this will be the next big addition to the emulator.  This is critical for the mediation of Hebbian plasticity and other types of learning.  The genetic engine of the emulator will allow any sequence of instructions to be run under the specified protein activation &#8211; so this will cover everything from the addition of AMPA receptors due to NMDA receptor activation, to neurite growth due to nitric oxide as a retrograde messenger, and the entire neurogenesis process as a whole.  Very excited to get started on this.</li>
<li>Visualization engine, as a kind of virtual fMRI, for the purposes of graphical analysis</li>
<li>A separate engine to mutate genetic code across generations for the purposes of natural selection (more on this later, a whole different phase of the project)</li>
<li>A lot of other details, those are the biggies for now</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/462/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TFNN &#8211; Virtual DNA</title>
		<link>http://www.toniwestbrook.com/archives/100</link>
		<comments>http://www.toniwestbrook.com/archives/100#comments</comments>
		<pubDate>Wed, 10 Dec 2008 03:22:42 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/archives/100</guid>
		<description><![CDATA[You may be wondering what TFNN is &#8211; it stands for Temporal Frame Neural Network, an artificial intelligence project of mine to accurately simulate the biological brain. Sadly, I haven&#8217;t worked on it in a few years for a number of reasons &#8211; reasons that were good at the time (and I wouldn&#8217;t change, the [...]]]></description>
			<content:encoded><![CDATA[<p>You may be wondering what TFNN is &#8211; it stands for <a href="http://www.toniwestbrook.com/tfnn">Temporal Frame Neural Network</a>, an artificial intelligence project of mine to accurately simulate the biological brain.  Sadly, I haven&#8217;t worked on it in a few years for a number of reasons &#8211; reasons that were good at the time (and I wouldn&#8217;t change, the whole learning experience thing), but ones that aren&#8217;t so important now.</p>
<p><b> What the Heck Happened? </b></p>
<p>Jumping off topic a bit, but relevant to why I&#8217;m starting back up again, I realized a few weeks ago that I&#8217;m not really happy with the way my life is going.  I mean, don&#8217;t get me wrong, overall things are great and I&#8217;m doing okay, but there is definitely something off. There are a few reasons, but one of the biggies was I was always doing things I felt obligated to do and never did things for fun anymore.  I was always taking on a project to advance somehow, and never did it for the art or to enjoy it.  I was always working hard, but honestly not <i>really</i> wanting the outcome, so it would never really go anywhere.  I&#8217;m not a business man &#8211; I don&#8217;t like or want to play the game (There&#8217;s another article in here about not always turning your hobbies into something you get paid for, but that&#8217;s for another day).  There&#8217;s nothing wrong with being a business man mind you &#8211; I&#8217;m just not one.</p>
<p>So I made the decision to just stop worrying about &#8220;succeeding&#8221; in these classic ways that are good for some people, but not for me.  I learned something big from Shredz64 &#8211; I will never make any money off the project, but I had an incredible amount of fun doing it, and I have made so many connections with people because of it &#8211; it&#8217;s just amazing.  I want to keep doing that all the time &#8211; I want to make things &#8211; not worry about marketing or selling them &#8211; I just want to create and share.  I&#8217;ll save the rest of my thoughts for another post, but the bottom line is, I&#8217;ve already started working a ton more on my projects and I&#8217;ve been much happier because of it.</p>
<p><b> Back to Virtual DNA </b></p>
<p>SO, that being said, I recently made a 10 hour drive to and from Toronto, and it gave me a lot of time to think.  Some of that thought was dedicated to the TFNN project.  While the &#8220;neurophysiology&#8221; of the TFNN works great on a neuron and connection level, the overall issue remains in how those synaptic connections are made.  Their configuration.  Biology has a great thing going for it with DNA that controls neural development &#8211; during the neurulation phase when the neuroectoderm forms a lot of things happen, but at the end of the day through migration, axon paths and some other tricks, neurons are placed into their proper locations and form appropriate connections.  Regardless of the nature vs nurture argument, there is definitely prewiring that is done.  It&#8217;s the reason why a cat will never develop the ability to speak Romanian and why rabbits breathe without being trained to do so &#8211; it&#8217;s millions and millions of years of neurological evolution packed into a double helix.  </p>
<p>Therein lies the problem &#8211; I have the materials with TFNN, but no blueprint I can use to construct something.  I can make very small and specific networks, or very large, random ones, but neither of those will accomplish the goal of creating animal intelligence.  So a blueprint is needed.  Life has DNA, but what does TFNN have?  </p>
<p><b> Use Real DNA? </b></p>
<p>My first idea to conquer this issue (as outlined on the project page) was to use some of the sequence databases that are available online &#8211; there are a couple species that have a very full nucleotide sequence documentation available.  I won&#8217;t even bother mentioning all the reasons why this was never going to work, because the biggest reason is, I&#8217;m not a molecular geneticist, and while I have a good understanding of how DNA works, I don&#8217;t come close to having enough understanding to use DNA sequencing information to form a TFNN.  It&#8217;s another project that I would love to start one day to build my understanding of the process, but not right now.  </p>
<p><b> Let the Turing Machine Do What it Does Best </b></p>
<p>What I decided on the car ride was instead of using real DNA, it would be more realistic (relatively speaking) to create a virtual (accelerated) environment where evolution could take place and form virtual DNA.  The TFNN already has rudimentary functionality for building neural networks from a list of instructions, so this is doable.  Here&#8217;s the very lofty plan:</p>
<ol>
<li>Flesh out the matrix class inside of TFNN to construct neural networks as defined by encoded, segmented bit sequences.  This will be some work but I have a good idea of how to accomplish it.  There are already class members that control size, synaptic density, geography, and even connection specific formation within the neural matrix &#8211; the bit sequence needs to drive these member functions.  The purpose of something encoded like a bit sequence as opposed to human readable scripts is to allow for easy engineering of mutation capabilities necessary for evolution</li>
<li>Find a lightweight, open source graphics/physics engine.  There are a few of them out there for games &#8211; it doesn&#8217;t need to look good or even come close to being the most advanced one available, it just needs to support a number of attributes common to our world such as mass, gravity, displacement, etc.  The key is lightweight as possible, we don&#8217;t want to eat up CPU maintaining the world, we need all the cycles we can get for TFNN processing</li>
<li>Engineer a method of recharging a lego NXT robot (Bit, my little LEGO robot will be the subject in these experiments) that can be initiated and completed by the robot itself.  There are a number of ways to accomplish this, something tactile is preferred to force movement.  Something like a magnetic connector with DC current.  It would also need to produce a distinct stimulus to indicate it was a source of &#8220;nourishment&#8221; so to speak, such as producing an audible tone at a specific frequency .</li>
<li>Create a VDNA (virtual DNA, easier to type) sequence to form a neural network that dictates motor control to guide robot to its &#8220;feeding station&#8221;.  It doesn&#8217;t need to have any logic outside of a straight path for the source.  I&#8217;ve created simple neural networks like these before and it is doable.</li>
<li>Within the physics engine, model an environment that very simply and basically models a real world environment.  The goal is by no means to have every possible physical scenario that could exist in the real world, its to offer enough obstacles and stimulus that evolution can take place, while using obstacles that are common to the environment the robot will operate in.  Also include feeding stations</li>
<li>Build an engine to generate instances of TFNNs using VDNA sequences and process them.  Connect them to virtual robots modeled after the NXT lego robot and place them in the virtual world.  Also include functionality to take the VDNA of a specific instance and spawn a new instance of the virtual robot.  We could do this asexually or start with a neural configuration that drives two robots to touch in a manner that shares VDNA for virtual reproduction &#8211; I haven&#8217;t decided on this one yet.  Regardless, new VDNA is subject to random mutation or corruption in the bit sequence</li>
<li>Build in parameters that cause death in the virtual robots as well as prevent premature reproduction &#8211; most importantly that reproduction doesn&#8217;t take place if nourishment isn&#8217;t obtained.</li>
<li>Run this simulation until results are obtained</li>
<li>Take VDNA from successful virtual robot, generate instance of TFNN, connect to Bit and watch the fun</li>
</ol>
<p>I can&#8217;t complain about being bored, that&#8217;s for sure &#8211; I will post here as I go.  It may lead nowhere, but I&#8217;m extremely interested to see the results &#8211; even if it completely fails, it will still be fun science.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/100/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TFNN &#8211; Major changes</title>
		<link>http://www.toniwestbrook.com/archives/42</link>
		<comments>http://www.toniwestbrook.com/archives/42#comments</comments>
		<pubDate>Tue, 14 Jun 2005 17:49:00 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/archives/42</guid>
		<description><![CDATA[I thought I&#8217;d sit down and update &#8211; it&#8217;s not that I haven&#8217;t been working a lot on TFNN, I just haven&#8217;t had a chance to sit down and actually write about it! Firstly, I implemented crude, neuron-global neuromodulator code a week ago or so. It worked under my very specific test cases, but it [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d sit down and update &#8211; it&#8217;s not that I haven&#8217;t been working a lot on TFNN, I just haven&#8217;t had a chance to sit down and actually write about it!</p>
<p>Firstly, I implemented crude, neuron-global neuromodulator code a week ago or so.  It worked under my very specific test cases, but it didn&#8217;t really accurately model how dopamine, serotonin, or norepinephrine function on the whole.  I realized there was a lot of neuron-global code that really should have been axon-terminal/synaptic cleft/postsynaptic receptor specific.  Can&#8217;t write too much about it, but yesterday I rewrote a lot of code dealing with neuromodulators and synapse processing so it more closely dealt with activity on the receptor level and not on the neuron level.  I ran test cases with both an inhibitory and excitatory neuromodulator, both were success.</p>
<p>Right now however, neuromodulators will blindly increase or decrease the effect of a neurotransmitter.  I would like to include code that discerns between a glutamate excitatory reaction and a GABA inhibitory reaction, and selectively affects only one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/42/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TFNN &#8211; Neuromodulators</title>
		<link>http://www.toniwestbrook.com/archives/43</link>
		<comments>http://www.toniwestbrook.com/archives/43#comments</comments>
		<pubDate>Wed, 01 Jun 2005 05:52:00 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/archives/43</guid>
		<description><![CDATA[A quick update while I&#8217;m thinking about &#8211; next time I sit down with the code I want to add a section to emulate the functionality of dopamine cells like those found within the ventral tegmental, and other neuromodulators. This is actually a major enhancement and something to give careful thought to before proceeding. At [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update while I&#8217;m thinking about &#8211; next time I sit down with the code I want to add a section to emulate the functionality of dopamine cells like those found within the ventral tegmental, and other neuromodulators.  This is actually a major enhancement and something to give careful thought to before proceeding.  At first I intended TFNN matrices to operate without global or semiglobalized synaptic modulation &#8211; IE the tfnn matrix would operate purely on the &#8220;mechanical nature&#8221; of electro-chemical reactions in axodendritic, axosomatic, and axoaxonic connections &#8211; no globalized chemical reactions within the system.</p>
<p>The more I study though, the more I realize how important dopamine and other neuromodulators are in the prefrontal cortex regions.  Via message controlled signals, these modulators can facilitate GABA reactions, and hence temporarily &#8220;quiet&#8221; certain systems, allowing for concentration.  I have a feeling that without dopamine emulation matrices would fall prey to a ubiquitous ADD of sorts, and perhaps fail to mold meaningful neural configurations in deeper matrices due to an overload of traffic on neural bridges coming from sensory thalami and cortices.</p>
<p>At first when I was kicking it around I was thinking of just modifying axoaxonic connection code to introduce a negative change to synaptic weights and have that emulate dopamine secretion.  This isn&#8217;t accurate though, as dopamine is a modulator, not a permanent change to the synaptic weights.</p>
<p>I think this may call for another variable to be introduced into the neuron, one that keeps track of current affecting modulators.  More space &#8211; but I also realize I have an unused integer currently in the neuron that I used during debug sessions, I&#8217;ll remap that for dopamine / other modulator use.  I may use it or another variable in connection to track glutamate supply to emulate habituation effects as well.  It will add very little additional calculation time.</p>
<p>It&#8217;s amazing how large the TFNN neuron has grown in complexity from when I first completed the code until now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/43/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFNN &#8211; Another step down</title>
		<link>http://www.toniwestbrook.com/archives/44</link>
		<comments>http://www.toniwestbrook.com/archives/44#comments</comments>
		<pubDate>Mon, 23 May 2005 16:08:00 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/archives/44</guid>
		<description><![CDATA[Another quick update &#8211; I fixed some synapse timing issues in the Temporal Frame engine and finished up the axoaxonic code this weekend. I had a succesful test of sensitization as well, demonstrating the non-Hebbian learning capabilities of a neural matrix. Due to axoaxonic connections, a presynaptic neuron can now cause a direct increase in [...]]]></description>
			<content:encoded><![CDATA[<p>Another quick update &#8211; I fixed some synapse timing issues in the Temporal Frame engine and finished up the axoaxonic code this weekend.  I had a succesful test of sensitization as well, demonstrating the non-Hebbian learning capabilities of a neural matrix.   Due to axoaxonic connections, a presynaptic neuron can now cause a direct increase in the synaptic weight of the postsynaptic neuron&#8217;s axon terminal (This postsynaptic neuron itself being a presynaptic neuron in another relationship).</p>
<p>The test was performed by generating a 3 neuron matrix.  Milo&#8217;s left touch sensor was sent as input into neuron 1, while Milo&#8217;s right touch sensor was sent as input into neuron 2.  Neuron 1 was connected via an axoaxonic connection to neuron 2&#8242;s axon terminal &#8211; the axon terminal creating the synapse between neuron 2 and neuron 3 in a standard axodendritic configuration.  Neuron 3&#8242;s output was sent to Milo&#8217;s speaker.</p>
<p>The treshold rate of Neuron 3 was set higher than the synaptic weight between neuron 2 and 3, hence if Milo&#8217;s right antenna was pressed he would not beep.  However, upon touching Milo&#8217;s left antenna a few times, via the phenomenon of sensization the synaptic weight between Neuron 2 and 3 was increased, and subsequent pressings of Milo&#8217;s right antenna was enough alone to cause Milo to beep, now the synaptic weight had grown strong enough to pass Neuron 3&#8242;s threshold.</p>
<p>Cool stuff!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/44/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFNN &#8211; Axoaxonic Issue</title>
		<link>http://www.toniwestbrook.com/archives/45</link>
		<comments>http://www.toniwestbrook.com/archives/45#comments</comments>
		<pubDate>Sat, 21 May 2005 23:45:00 +0000</pubDate>
		<dc:creator>Toni</dc:creator>
				<category><![CDATA[TFNN]]></category>

		<guid isPermaLink="false">http://www.toniwestbrook.com/archives/45</guid>
		<description><![CDATA[I realized something today when I started fleshing out axoaxonic connections a bit &#8211; something about a flaw in the temporal frame engine itself. I can&#8217;t go too much into it, but I don&#8217;t think I would have realized it unless I had realized about axoaxonic connections, so I&#8217;m glad things worked out the way [...]]]></description>
			<content:encoded><![CDATA[<p>I realized something today when I started fleshing out axoaxonic connections a bit &#8211; something about a flaw in the temporal frame engine itself.  I can&#8217;t go too much into it, but I don&#8217;t think I would have realized it unless I had realized about axoaxonic connections, so I&#8217;m glad things worked out the way they did.  It&#8217;s a fairly easy fix, so that&#8217;s good.</p>
<p>Also, I read a few papers on QBT (Quantum Brain Theory), and it seems like most reputable neurophysiologists don&#8217;t really buy it, and from what I&#8217;ve read I don&#8217;t really buy it either.  The size and effect of the electrochemical reactions just don&#8217;t seem to leave any room for the very microscopic-natured effects of quantum mechanics, even if microtubules are a place where the magic could happen.</p>
<p>So, first things first, mend the engine, then I can go ahead and add habituation and sensitization effects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.toniwestbrook.com/archives/45/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

