Archive for the ‘Practical Examples’ Category

The Synapse Spiral

Thursday, December 6th, 2007

Consuming deployed components as Synapse plugins

We have received questions on how to load a deployed component into Synapse as a plugin and use it as a building block for new systems. This was something that was intended from early on, but was cut from the release and until now we have had few questions on the subject.

This post will almost be in the form of a tutorial and it will explain the interfaces needed to produce a plugin and to allow for standard signal flow. First we will create a minimal plugin, then fill it with a deployed component and lastly add some bells and whistles.

(more…)

The Self-Organized Gene (Part 2)

Wednesday, June 13th, 2007

In 2003 the Human Genome Project was completed, mapping the entire human genome. The project was started in 1990 and was estimated to take some 30-40 years to complete. What the initial predictions missed was that DNA sequencing was subject to what Kurzweil refers to as the law of accelerating returns. The power of DNA sequencing has been increasing exponentially while the cost of the sequencing has been falling exponentially. Thus the project was completed much earlier than expected.

The Human Genome Project is however not the only completed full genome mapping. Thanks to the fast and cheap sequencing a wide range of other organisms have had their DNA fully sequenced. In this second part of this tutorial we will look at yeast and how its genes control its metabolic processes. We will use DNA microarray data to look at this problem.

In the first part of the tutorial we introduced competitive algorithms and focused on the Self-Organizing Map (SOM). We showed how it can be used to visualize high-dimensional data in a very intuitive way.

In this part we will move on to meta-clustering: how and why to cluster a SOM using a neural gas. You will also familiarize yourself with the unified distance matrix (U-Matrix). We will then move on to the actual problem involving the microarray data. After we have done our clustering with the SOM Visualizer we will create a standard neural network based classifier based on the results.

If you haven’t gone through the first part, it is strongly recommended that you do so before proceeding.

Although having Synapse is not absolutely necessary for this tutorial, it is recommended as interactivity helps a lot. You can download it here.

(more…)

The Self-Organized Gene (Part 1)

Tuesday, April 10th, 2007

Last year saw the 30th anniversary of Richard Dawkins’ famous book, The Selfish Gene, the book that presented gene-centric evolution to a greater public. Controversial at the time, it is today a widely accepted theory that covers the connection between genetics and evolution through natural selection.

Dawkins’ selfish gene should have the emphasis on gene - not selfish - as the primary point is that the gene is the basic unit that evolution through natural selection operates on. The selfish part is directly related to natural selection – genes that maximize their survival probabilities (which they do among other things through cooperation with other genes) live on in the gene pool while those less fit go extinct.

The title of this tutorial should be read in a different way: The Self-Organized Gene – emphasis on the self organized part. We are not going to be discussing the properties of the gene itself, but how gene functions can be analyzed using an adaptive method called self-organization. Our basic unit of operation won’t be the gene, but the artificial neuron. In a way, there is a connection to the selfish part as well. While our units do not fall victim to natural selection, do not mutate and are not replicated, they do compete and interact which gives rise to the emergent global property of self-organization.

In more practical terms, in the tutorial we are going to explore unsupervised clustering of data. We will apply this to DNA microarrays, an exciting new technology that allows for very rapid expression profiling. We see how using adaptive self-organizing methods we can detect patterns in microarray data that can be used for understanding, detecting and fighting diseases caused by genetic factors.

In the first part of this tutorial we shall familiarize ourselves with the basic concepts of unsupervised learning, competitive learning and self organization. We shall also explore the self-organizing map as a powerful visualization tool and we’ll take a look at a few simple examples to illustrate the principles.

In the second part of the tutorial we will cover meta-clustering before we move on to our target: the analysis of DNA microarray data. Once we have done that we will see how we can change our unsupervised clustering system into a supervised classification system in general and specifically in Synapse. (more…)

Fuzzy Math, Part 2, In Synapse

Monday, January 1st, 2007

In the first part of this fuzzy logic tutorial we covered some of basics of the fuzzy logic theory. Here instead we will look at how you can use the fuzzy logic component in Synapse to create a fuzzy inference system.

Before proceeding, make sure that you have the latest version of Synapse. If you have automatic updates enabled you will get the latest version automatically.

(more…)

Classifier Showdown

Monday, July 10th, 2006

In this article we will take a closer look at three different classifiers and discuss three different types of classifiers: naive bayesian classifiers, support vector machines and modular multilayer perceptron neural networks.

To help us investigate the relative benefits of the system we’re going to use a simple application that uses adaptive systems deployed from Synapse.

(more…)

Hebbian novelty filters for financial analysis

Thursday, June 1st, 2006

I have been asked to post a few words about novelty filtering stock market data. This can also of course be applied to any other system, including, but not limited to forex data and other financial time series.

What anti-Hebbian novelty filters can do for you:

  • Detect previously unseen trading patterns
  • Give a quantitative measure of how much this new pattern differs from old trading patterns

What anti-Hebbian novelty filters can’t do for you:

  • Predict what consequence (if any) the new trading pattern will have on for instance the stock price
  • Give you the direction of or type of change

So why would you want to use novelty filters if they can’t tell you the consequence of the change?

It’s simple: You use neural networks and other technology to try to model the market. You don’t throw a dice or flip a coin.

When the market exhibits behaviour it hasn’t shown earlier and you choose to trade, then you are just picking random actions. All predictive models are based on the assumption that there is an analyzable pattern. You find this pattern by looking at historical data.

If the market is behaving in a way no represented by the historical data, then your model is invalid.

Let’s look at a practical example, and I’ll then show you how to do it in Synapse.

What we have here is the output of an anti-Hebbian filter (top graph) and the closing price of the Microsoft shares. As you can see, around sample 209-210, the novelty filter detected something was up - three days before the stock went down significantly (on April 27). This would have been a very good signal to get out of the market.

Let’s take a closer look on how this is done in Synapse and what it means:

(more…)