<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://kailashnadh.name/blog/rss/rss20.xsl" type="text/xsl"?>

<!-- generator="boastMachine v3.1" -->
<rss version="2.0">
 <channel>
	<title>Research</title>
	<link>http://kailashnadh.name/blog/research.php</link>
	<description></description>
	<language>en</language>
	<docs>http://backend.userland.com/rss092</docs>
	<pubDate>Sun, 22 Feb 2009 15:06:24 +0000</pubDate>
	<managingEditor>kailash@bnsoft.net</managingEditor>
	<webMaster>kailash@bnsoft.net</webMaster>
    <item>
      <title><![CDATA[Cognitive / spatial mapping prototype #2]]></title>
      <description><![CDATA[Prototype #2 is an extension of the first cognitive mapping experiment. As improvements, it has
<ul>
  <li>Four rooms</li>
  <li>Four coloured doors</li>
  <li>Capable of remembering sequences</li>
</ul>

In the exploration mode, the bot starts off in a room (can be any room) and keeps going from room to room, until it reaches the starting point. Whenever it is in a room that it hasn't been in before, the room is learned (on the fly, creating a cell assembly for that room). When the bot passes through a door and enters the next room, it learns the door, the next room and runs an association routine where by the previous room, the door and the current room are associated in a sequence. So for all the rooms:
<ul>
  <li>room1-door1-room2</li>
  <li>room2-door2-room3</li>
  <li>room3-door3-room4</li>
  <li>room4-door4-room1</li>
</ul>

In the <em>test mode</em>, an external activation is applied on the target room (where you want the bot to go to). From the chain of sequences it has learned, the bot picks up the color of the door of the target room and goes to it!]]></description>
      <link>http://kailashnadh.name/blog/post/research/216/Cognitive--spatial-mapping-prototype-2</link>
      <pubDate>Sun, 22 Feb 2009 15:05:58 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/216/Cognitive--spatial-mapping-prototype-2#cmt</comments>
    </item>
    <item>
      <title><![CDATA[Cognitive / spatial mapping prototype #1]]></title>
      <description><![CDATA[I was able to get the Cognitive Mapping prototype #1 (mentioned in the previous post) working fairly easily. A lot of <em>assumptions</em> were made (such as assuming a perfect vision system was available etc.) in getting the demo working, but the underlying idea of <em>associating</em> landmarks and features to learn and in turn, use that to navigate, worked well (in an oversimplified way, of course).
<br /><br />
<img src="http://kailashnadh.name/blog/files/kailash_cogchart1.png" alt="Cognitive mapping nets" />
<br /><br />
The CONTROL module is complete symbolic where as all other areas are neural nets composed of (<a href="http://www.cs.mdx.ac.uk/staffpages/rvb/publications/rvb-crh-ecai08.pdf">fLIF neurons</a<img src="http://kailashnadh.name/blog/smilies/icon_arrow.gif" alt=">)" />.

<br /><br />

The vision system can be considerd as an example for the height of over simplification. There is the RETINA that is hardwired to recognize doors,walls and rooms, directly interfacing witht the symbolic CONTROL with no Visual Cortex whatsoever.

<br /><br />

The RETINA has connections to a COLOURS network which enables it to identify three colours (red,green,blue), which in the simulation, are the colours of doors.

<br /><br />

The KNOWN OBJECTS network has three pre-known concepts (door, wall, room) which gets excitation directly from the RETINA, when ever it sees one of those objects.

<br /><br />

The NEW INSTANCES network is blank to begin with and that is where rooms and door-colour associations are stored as the bot explores the world and spots new rooms.

<ol>
 <li>There are only two rooms in the simulation, separated by a red door</li>
 <li>The bot starts in room1 in <em>exploration mode</em></li>
 <li>It keeps moving forward until it comes across a door</li>
 <li>When it passes through a door, it knows that (symbolic) it just came from a room, passed an X coloured door and is right now in a different room</li>
 <li>Then it <strong>learns</strong> this as a new instance and stores it in the instance ne ..]]></description>
      <link>http://kailashnadh.name/blog/post/research/215/Cognitive--spatial-mapping-prototype-1</link>
      <pubDate>Thu, 27 Nov 2008 17:01:16 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/215/Cognitive--spatial-mapping-prototype-1#cmt</comments>
    </item>
    <item>
      <title><![CDATA[Cognitive / spatial mapping]]></title>
      <description><![CDATA[The human brain has the ability to construct representations of space and store them. This spatial mapping ability is used in many processes. For instance navigation uses representations of routes, objects, distances, locations and directions. This is called cognitive mapping. The exact principles of cognitive mapping are unknown, such as the absence of an accurate description of distance perception.<br /><br />Right now, I am working on building a simulation of a virtual agent in a 3D environment capable of doing basic cognitive mapping. The aim is to get the agent to learn paths and navigate between rooms.<br /><br /><span style="font-weight: bold;">Building the 3D world</span>
<br />I looked around a lot to find a simple 3D engine which would fit my purpose of building a 3D environment comprising of a few rooms and doors.<br /><br />I tried <a href="http://www.jpct.net/" target="_self">JPCT</a> (java) which looked promising but completely lacked support resources and a good documentation. <a href="http://www.crystalspace3d.org/" target="_self">Crystal Space</a> (C++), I found to be too big and complex for my purpose. Same with <a href="http://www.jmonkeyengine.com/" target="_self">JMonkeyEngine</a>(java). At last, I came across <a href="http://irrlicht.sourceforge.net/" target="_self">Irrlicht</a> (C++) an amazingly compact and immensely powerful 3D engine that has a huge community, plenty of support resources, good documentation and even a java binding called <a href="http://jirr.sourceforge.net/" target="_self">Jirr</a>. I have nothing but words of praise for Irrlicht.<br /><br />After fiddling around a bit with it and modeling my rooms in <a href="http://www.anim8or.com/" target="_self">Anim8or</a>, I finally got the 3D world working, which looks like this:<br />
<img src="http://kailashnadh.name/blog/files/kailash_cogworld.jpg" alt="" /><br /><br />
I am working on the neural side of things, where the the agent has:

<ul>
<li>A simple vision system</li> ..]]></description>
      <link>http://kailashnadh.name/blog/post/research/214/Cognitive--spatial-mapping</link>
      <pubDate>Mon, 17 Nov 2008 16:03:06 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/214/Cognitive--spatial-mapping#cmt</comments>
    </item>
    <item>
      <title><![CDATA[Context sensitive association]]></title>
      <description><![CDATA[Lack of 'labeled arcs' (or definition of the <span style="font-style: italic;">type</span> of relationship between two concepts in memory) in simulated memories is a problem. It is somewhat easy to encode two concepts in CAs and associate them. But what kind of association? How to define the type? Shouldn't a definition somehow be formed implicitly?<br /><br />For instance, imagine a wooden table and a chair in a room. We perceive many kinds of association when looking at them.<br />
<ul>
<li>They are both pieces of furniture.</li>
<li>They are both made out of wood.</li>
<li>They are placed near to each other.</li>
<li>They are both in the same room.<br />and so on..</li></ul>Inspired by the famous <a target="_self" href="http://en.wikipedia.org/wiki/Classical_conditioning#Pavlov.27s_experiment">Pavlov’s dog experiment</a>, I devised an experiment (called the Psuedo-Pavlov experiment) to simulate, dare I say, classical conditioning / association.<br /><br />A neural network was trained with the patterns <span style="font-style: italic;">food, hungry, not hungry, salivate, lie down.</span><br /><br />During the learning phase, <span style="font-style: italic;">hunger </span>was repeatedly presented with <span style="font-style: italic;">food </span>and <span style="font-style: italic;">salivate</span>, invoked (Ofcourse, we don't have to force a dog to salivate when its hungry and sees food, in real life).<br /><br />Again, <span style="font-style: italic;">not hungry</span> was repeatedly presented with <span style="font-style: italic;">food </span>and<span style="font-style: italic;"> lie down</span> invoked (assuming that a dog food lie down inspite of the presence of food, when it's not hungry).<br /><br />In the testing phase, when <span style="font-style: italic;">food </span>was presented in the context <span style="font-style: italic;">hungry</span>, the resultant activation was <span style="font-style: italic;">salivate </span>(obviously) and when th ..]]></description>
      <link>http://kailashnadh.name/blog/post/research/213/Context-sensitive-association</link>
      <pubDate>Sat, 01 Nov 2008 19:47:11 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/213/Context-sensitive-association#cmt</comments>
    </item>
    <item>
      <title><![CDATA[Sharks and Jets]]></title>
      <description><![CDATA[
I finally got around simulating the classic Sharks and Jets experiment using Cell Assemblies (CAs). <br /><br />The Sharks and Jets experiment [McClelland, 1981] was designed to demonstrate how a network could function as a content-addressable memory system. The information to be encoded was two groups (Sharks and Jets), group members<br />and some demographic attributes of theirs. The goal of the experiment was to store, associate and retrieve patterns in a network.<br /><br />My CA implementation of the model learned, grouped and associated members of a group. Associations between different patterns were defined as overlapping neurons in the CA network. The associations were learnt through a series of cycles. The model was tested by presenting a randomly chosen pattern of all the ones learnt. For instance, when a member of a group was presented, activation was observed in that member and the areas of his demographic characteristics. When a parent group was presented, activation was observed in a large scale where many members of that group and their attributes ignited and in many cases, a particular member had the most activation, assumed to be the prototypical representation of that group.<br /><br />While the network in the original experiment was specialised to the goal, the CA implementation was conducted based on the general behaviour of CAs (having distance biased neuron connections). Even though the highly interesting dynamics observed in the original experiment were not recreated in the implementation, the goal of observing associative behaviour in CAs was attained with fair success.<br /><br /><font size="1"><span style="font-weight: bold;">[McClelland, 1981]</span> McClelland, J. L. (1981). Retrieving general and specific information from stored knowledge of specifics. In Proceedings of the Third Annual Conference of the Cognitive Science Society, pages 170–2.</font><br />
]]></description>
      <link>http://kailashnadh.name/blog/post/research/212/Sharks-and-Jets</link>
      <pubDate>Mon, 06 Oct 2008 23:31:52 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/212/Sharks-and-Jets#cmt</comments>
    </item>
    <item>
      <title><![CDATA[CANT model]]></title>
      <description><![CDATA[I am working on various simulations using the CANT (Connection Association and Networking Technology) model) by Christian Huyck, my director of studies.
Overview of CANT - http://www.cwa.mdx.ac.uk/chris/hebb/hebb.html

The Java implementation of the model is available here - http://www.cwa.mdx.ac.uk/CABot/CANT.html

The code has limitations, but it is good enough to do experiments upto a certain complexity.]]></description>
      <link>http://kailashnadh.name/blog/post/research/211/CANT-model</link>
      <pubDate>Thu, 02 Oct 2008 14:15:12 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/211/CANT-model#cmt</comments>
    </item>
    <item>
      <title><![CDATA[Undergraduate theseis - PP attachment ambiguity resolution]]></title>
      <description><![CDATA[My undergraduate thesis (Unpublished). Proposed and developed a method of using partially supervised algorithms to resolve the PP-attachment ambiguity. The training and test data was obtained from the Penn Treebank WSJ corpora and the semantic data from WordNet. The experiment concluded successfully with the model attaining a resolution accuracy of 87.23%.

The implementation was pretty straight forward and I wrote the program in a mix of Perl and Ruby. I feel the paper is slightly amateurish (very verbose) as it is my first academic paper, had to conform to academic verbosity-requirements and was done in a hurry to meet the university deadlines.<br />
<a href="../files/pp-attachment-synsets.pdf"><strong>&raquo; download pdf</strong></a>]]></description>
      <link>http://kailashnadh.name/blog/post/research/210/Undergraduate-theseis--PP-attachment-ambiguity-resolution</link>
      <pubDate>Mon, 28 Apr 2008 19:09:09 +0000</pubDate>
      <category>General</category>
      <comments>http://kailashnadh.name/blog/post/research/210/Undergraduate-theseis--PP-attachment-ambiguity-resolution#cmt</comments>
    </item>
  </channel>
</rss>