DANN:Hyperassociative Map

From Syncleus Wiki

Jump to: navigation, search

A Hyperassociative Map is a new type of algorithm that organizes an arbitrary graph of interconnected nodes according to its associations to other nodes. Once a new Hyperassociative Map has been associated and aligned nodes that are most closely associated will be closest to each other. This can be used to determine how similarly associated two nodes are to each other. Since the algorithm doesn't depend on the immediate neighbors of a node, similarity will still be matched even when such similarity exists several degrees of separation from the nodes.

Contents

Practical Example

dANN Information
DescriptionAn Artificial Intelligence Library written in Java.
Last ActivityToday
LicenseOSCL Type C
IRC Room#dANN on irc.freenode.org
HomepagedANN
DistributionsBinary ZIP w/JavaDoc
Binary Tarball w/JavaDoc
Source ZIP
Source Tarball
DocumentationJavadoc repository
Javadoc for GIT master
Javadoc for stable release
Developmentgit://git.syncleus.com/dANN.git
TRAC Bug Tracking
Hudson Continuous Integration
Mailing ListsdANN Announcements
dANN Development
Syncleus Announcements


In case you are still not following, we will provide a few examples of how you might want to use a Hyperassociative Map. One possible dataset would be the various topics (pages) represented in wikipedia. One could represent Wikipedia as a Hyperassociative Map where each topic/page is a node in the map and each link from one topic to another would be an association between their respective nodes in the map. Once this is entered into a Hyperassociative Map and then aligned it would be possible to calculate the similarity between two topics as well as see how well covered a particular category of topics is covered. For example the topic regarding dolphins and whales would be relatively close on the Hyperassociative Map; the nodes for dolphins and spiders would be slightly farther away; the nodes for dolphins and helicopters would be on opposite sides of the map. Similarly all the nodes on wildlife would be clustered in the same general region of the map and all the nodes on aircraft would also be clustered in its own region of the map. In this way one can quantify the similarity of the various nodes as well as how well covered the various topic categories are.

Underlying Algorithm

At this point you should have a good understanding of what a Hyperassociative Map is and the kind of problems it can be used for. We want to explain now exactly how it works, specifically, how the map aligns itself.

The algorithm is based on the idea of repulsive and attractive forces between nodes. These forces are designed that over time the various nodes reach an equilibrium till they settle into their final positions. The forces between nodes are different depending on if the two nodes are associated or non-associated.

Unlike other force-based algorithms like the spring algorithm no kinetic energy is retained between steps. The forces are applied for each step, new positions of each node is calculated but the kinetic force isn't retained between steps. This means the nodes have no apparent momentum and allows them to settle to their equilibrium point without oscillation.

Unassociated Nodes

Unassociated nodes always exert a repulsive force against each other as an inverse square of their distance; the farther two nodes are from each other the weaker the repulsive force will be on an exponential scale. The formula for calculating the repulsive force between two unassociated nodes is as follows:

f(x)=\frac{-1}{x^2}
where:
x = Distance between nodes

Associated Nodes

Associated nodes exert a combination of repulsive and attractive forces amongst one another depending on whether they are farther or closer than the equilibrium distance. This is done such that the nodes always want to try to reach their equilibrium distance.

If two nodes are closer together than the equilibrium distance then they exhibit a repulsive force against each other according to the arc hyperbolic tangent. Another words the repulsive force approaches infinity as the distance between nodes approaches 0 and the repulsive force approaches 0 as the distance approaches the equilibrium distance.

If two nodes are farther apart than the equilibrium distance than they exert an attractive force on each other which is the square of their distance past the equilibrium distance. Another words the attraction gets stronger the farther away two nodes are on an exponential scale.

The function representing the force between two associated nodes can be represented by the following equation: 
f(x) = 
\begin{cases} 
  -1*atanh(\frac{E - |x|}{E}),  & \mbox{if }x\mbox{ is less than }E\\
  (|x| - E)^2, & \mbox{else }
\end{cases}
Where:
E = Equilibrium distance
x = Distance between nodes

Screenshots

Here are some screenshots of the Hyperassociative Map after it has finished aligning for various problem sets:

Image:DANN-HyperassociativeMap.jpg

Image:DANN-NCI-map.jpg