July 2nd, 2008

Summer is here and Peltarion would like for you to enjoy it as much as we do. Therefore we are currently offering a limited number of Synapse Licenses at half price during July and August! The first licenses each month are automatically sold at half price. There is only a limited number though, so act while there is still time.
Are there discounted licenses left for this month? Visit our web shop and see for yourself!
Posted in General, Synapse | No Comments »
May 30th, 2008
Synapse 1.3 has been released and is available for download. This release is a big one with new features and improvements in over 50 components. Although there are hundreds of improvements in the new version there are three major features that you will notice right away:
- Integrated help system. On all blocks and filters you can now find a “Help” item in the settings browser. Clicking on it will take you to the relevant documentation in our new documentation system.

- Script Filter and Script Format components with an advanced Visual Studio-like code editor that allows you to write your own filters and formats directly from Synapse:

- LSTMs (Long Short-Term Memories) are advanced memory structures for use in dynamic adaptive systems. Unlike standard feedback loops LSTMs can preserve information over indefinite time gaps. With LSTMs previously unsolvable time-series problems can now be handled with ease.

If you have Synapse installed and automatic updates enabled, you’ll get the 1.3 version just by starting up Synapse. Customers can download the full installation package from the customer area. A 30-day evaluation version can be downloaded here.
Posted in General, Synapse, Updates | 1 Comment »
May 29th, 2008

We are currently in the process of upgrading our server hardware, software as well as launching a new version of the home page and a new version of Synapse. This will cause interruptions in our service for the next 24-48 hours. We apologize for the inconvenience but we are sure you will like the improvements.
The new documentation system (http://www.peltarion.com/doc) is online and you can reach it if your ISP’s DNS entries have been updated (if not, they will within the next 24 hours). The forums (http://www.peltarion.com/forums) will remain offline for a short while until the upgrades have settled.
A new version of Synapse that features massive improvements will be released tomorrow as both download and automatic update. More on that tomorrow.
We apologize for any inconveniences during this upgrade and hope you will enjoy the new site and the new Synapse 1.3.
–The Peltarion Team
Posted in General, Synapse, Technical, Updates | No Comments »
May 6th, 2008

First, sorry for the lack of updates on the blog. We’ve been very busy working on a very large update package for Synapse as well as a new documentation system. We are also migrating to new servers, which does take some time. The good news is that we are seeing the light at the end of the tunnel and hope to have everything finished soon and ready for release. You’ll be happy with the new documentation system that is a vast improvement over the existing stuff and it also features a community forum which I’m sure is good news as many have requested it.
Now to the point of this post which is a question that we get relatively often. The question is do systems deployed from Synapse work on mono? (Mono is a .NET framework clone that runs on Linux, Solaris, Mac OS X and a few other platforms.)
The short answer is: No.
The long answer is: Not yet.
The primary problem is a bug in Mono that causes it not to recognize .NET Compact assemblies. Base level components in Synapse are all Compact compatible (so you can use a deployed system on a PocketPC or any Windows Mobile phone and a range of other devices).
We will look into the mono problem and try to come up with a solution. Until then, if you are using Linux (or FreeBSD or OS X etc), you can always use the WINE emulator to run systems. In that case you can probably use Synapse as well. It is of course completely unsupported on our part, but it may be worth a try.
Posted in Synapse, Technical | No Comments »
January 1st, 2008
What better way to start the New Year but with a load of Synapse updates? The updates contain over 100 bug fixes, improvements and new features. Among the changes are:
- Wider file format support for CSV and SQL formats
- Improved Genetic and Swarm optimizer performance and stability
- Added loading of existing samples/manual entry to the probe component
- Improved control of Hebbian learning
- Threaded operation for loading of Synapse as well as large Synapse solutions
- Improved performance for several input formats
..to name just a few things.
If you have Synapse installed and automatic updates enabled, you’ll get the latest version by just starting up Synapse. Customers can as always download the full installation package from the customer area. A 30-day evaluation version can be downloaded here.
Happy New Year! / The Peltarion Team
Posted in Synapse | No Comments »
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.
Read the rest of this entry »
Posted in Practical Examples, Synapse, Technical, Updates | No Comments »
September 6th, 2007
We will have representatives at the 2007 International Conference on Artificial Neural Networks in Porto, Portugal between 9/9 and 14/9.
For more information see: http://www.icann2007.org/
Posted in Synapse | 4 Comments »
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.
Read the rest of this entry »
Posted in Practical Examples, Synapse, Theory | 9 Comments »
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. Read the rest of this entry »
Posted in Practical Examples, Synapse, Theory | 10 Comments »
February 24th, 2007
Synapse 1.2 has been released and is available for download. This release contains a large number of bug fixes in over 40 components making it the largest update yet in terms of number of changes.
There have been some features added as well - mostly minor usability features such as:
- Enhanced copy to clipboard functionality to visualizers
- Cropping by sample and seed support in crop filter
- Per channel equalizing with the equalizer filter
- Improved operator support in the expression filter
- More customization options (scaling, cropping, interpolation..) in image format
- Per sample mixing in the mixer filter
- Row concatenation support for the join format
- Integrated set support for the sink and output formats
- Support for seeds in the unit generation format
- Support for additional data types for the SQL format
Algorithm improvements include:
- NaN/ Infinity detection and prevention for gradient based update rules
- Improved selection algorithms for the GA optimizer
- Additional operators for the expression filter
- Thread securing of optimizable components (for multithreaded execution stability)
The update is about 5 Mb in size when upgrading from 1.1.
If you have Synapse installed and automatic updates enabled, you’ll get the 1.2 version just by starting up Synapse. Customers can download the full installation package from the customer area. A 30-day evaluation version can be downloaded here.
Posted in General, Synapse, Updates | No Comments »
January 10th, 2007
The update server has been taken down today for maintenance. During its offline time no Synapse updates will be possible. The server should be back online at the end of the day (CET).
It has been taken offline due to hardware and software updates. A new version of the update engine for Synapse will be available (downloaded automatically if you have updates enabled) once the server is back up.
Update 17:48 CET: Server is back online and updates are enabled again.
Posted in Updates | No Comments »
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.
Read the rest of this entry »
Posted in Practical Examples | No Comments »
December 22nd, 2006
We are happy to present a Christmas gift from us – a new version of Synapse. Version 1.1 includes over 400 improvements including new features and bug fixes. It would take up too much space to list them all, but here are a few highlights:
- A new visualizer, the SOM View that allows visualization and preprocessing of data using Self-Organizing maps. It can also produce clustering filters. For more details see this.

- A new powerful expression filter that allows you to create new features based on equation evaluation.
- New much requested “housekeeping” filters such as the reorder filter and rename filter.
- Windows Vista now supported
- Greatly improved support for data with a large number of features (such as images), including new ranged normalization and great performance enhancements.
- New binary compressed xml file format (.synx) for solutions (old plain xml still supported)
- The Error Analyzer can now send error (system metrics) data to preprocessing in the form of a full data unit.
…and much, much more. Documentation for the new features will be published shortly.
If you have Synapse installed and automatic updates enabled, you’ll get the 1.1 version just by starting up Synapse. Customers can download the full installation package from the customer area. A 30-day evaluation version can be downloaded here.
Merry Christmas and a Happy New Year from all of us at Peltarion!
Posted in General, Synapse, Updates | No Comments »
October 25th, 2006
If you are interested in a very flexible rule-based system and want it to be easily integrated with for instance adaptive systems, then fuzzy logic provides a good solution.
So what is fuzzy logic?
Take a look at the first sentence in this text. Expressions like “very flexible”, “easily integrated” and “good solution” were used. This type of vague expressions are characteristic of the way we humans communicate through language and as such is an integral part of our thinking process. This contrasts sharply with the traditional Boolean logic of computer programming. Fuzzy logic bridges the gap between them, providing a framework that allows you to numerically encode linguistic expressions and through that gives you a flexible rule-based system.
This is the first part of a two-part tutorial and will cover the basic fuzzy logic theory. The second part will be more practical and deal with fuzzy logic in Synapse and the creation of hybrid fuzzy-adaptive systems.
Read the rest of this entry »
Posted in Synapse, Theory | 15 Comments »
August 3rd, 2006
We have released a few updates to Synapse containing a number of improvements, bug fixes and new features:
- The Synapse core loader has been optimized for faster startup of the program.
- A number of GUI improvements have been made and some GUI related bugs have been fixed.
- The Update Engine has been rebuilt to minimize timeouts and network latency, resulting in a faster startup.
- The Data Source component is now optimizable so that you can use an optimizer to select the optimal input features.
- A new and better fitness-evaluation function has been implemented for the optimizers
- Data flow bugs in the Crop Filter and the Mixer Filter have been fixed
- A memory leak in the Gamma Memory has been fixed.
- A new filter, the Wavelet Filter has been added. It performs a discrete wavelet decomposition of a signal and is a very powerful tool for analyzing time series data and provides very helpful preprocessing for dynamic adaptive systems.
To get the latest updates, make sure that you have automatic updates turned on and that you have a working Internet connection and Synapse will handle the rest. This update contains 18 components and is 3.2 MB in size.
/Thomas @ Peltarion
Posted in Synapse, Updates | No Comments »
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.
Read the rest of this entry »
Posted in Practical Examples, Synapse, Theory | 11 Comments »
June 20th, 2006
Besides novelty filtering that was covered in Part 1, there is another interesting function that a Hebbian Layer can perform and it is called Principal Component Analysis (PCA). This time we are going to take a closer look at PCA and see how it can be used in Synapse in combination with regular neural networks. PCA is a linear transformation that can be used to reduce, compress or simplify a data set. It does this by transforming the data to a coordinate system so that the greatest variance of the data by a projection of the data ends up on the first component (coordinate), the next one in line on the magnitude of variance ends up on the second component and so on. This way one can choose not to use all the components and still capture the most important part of the data.
To understand what this means, we can take a look at a 2D example. Suppose we have some X-Y data that looks something like this:
To see how the data is spread, we encapsulate the data set inside an ellipse and take a look at the major and minor axes that form the vectors P1 and P2
These are the principal component axes - the base vectors that are ordered by the variance of the data. PCA finds these vectors for you and gives you a [X,Y] -> [P1, P2] transformation. While this example was for 2D, PCA works for N-dimensional data, and it is with high dimensionality problems it is generally used.
Let’s take a look at how it can be used in practice, its limitations and how it is done with Hebbian learning:
Read the rest of this entry »
Posted in Synapse, Theory | 3 Comments »
June 14th, 2006
We have released a few updates to Synapse containing the following bug fixes:
- The Function Layer, Weight Layer and Hebbian Layer components can now lock/release the number of features when changed manually in settings browser. See more detailed explanation below.
- Plots now save the number of input features to their XML definition.
- A bug in the Generalized Hebbian Algorithm that caused the principal components to be incorrectly scaled has been fixed.
To get the latest updates, make sure that you have automatic updates turned on and that you have a working Internet connection and Synapse will handle the rest. This update contains 5 components and is 452 kb in size.
Read the rest of this entry »
Posted in Synapse, Updates | No Comments »
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:
Read the rest of this entry »
Posted in Practical Examples, Synapse | 6 Comments »
May 27th, 2006
We have rolled out a new update, (1.0)/3.4 which contains a number of bug fixes and some new features. The update will be automatically downloaded and installed when you start Synapse (provided that you are connected to the internet)
New features:
- The new Updater2 update engine with an improved versioning system, download system and support for a more advanced release structure.

- Improved CSV input format that provides more features for handling string data (enumeration and removal in addition to the existing expansion):

- Generalized Hebbian Algorithm (GHA) update rule. A new Hebbian type update rule that performs PCA. The difference between it and Oja’s rule is that GHA results in sorted principal components.
- Splash screen, minor improvement with verbose loading of plugins
- Start screen, some visual improvements
- Two more plot line styles and marker support added to the Scatter Plot:

- Data embedded in solution is now compressed
Bug fixes:
- Component GUI flicker fixed
- Select Filter inadvertent sort fixed
- Hebbian component GUI refresh in training fixed
- Script Filter, disconnected GUI elements removed
- Unstage (scaling) in the Sink component fixed
- Column resize in GridView enabled
Posted in Synapse, Updates | 5 Comments »