[comp.ai.neural-nets] Alternative input/transfer functions for a neuron

kirkaas@oahu.cs.ucla.edu (paul kirkaas) (11/29/90)

I am looking for some different types of input/transfer functions on
neural inputs.

Take a single neuron with a one dimensional input field.
I want to it classify two types of very simple input
patterns --- those with two peaks, and those with one.
It has plenty of inputs; starting with X1 at the left of the input field
proceeding to XN at the far right.  Each input is either 1 or 0 depending
on whether the signal is high or low.

I'm not concerned with learning; I will worry about that later.

 Examples:


Two Peaks
         ________________        __________________
________|                |______|                  |__

One Peak

         __________________________________________
________|                                          |__


Two Peaks
            __   __
___________|  |_|  |__________________________________


One Peak

            _______
___________|       |__________________________________
         

Two Peaks
                                         __   __
________________________________________|  |_|  |______

....


Now, it seems clear that the standard input function, the
linear weighted sum of inputs, SUM( X * W), will be unable to
divide the two input categories of 1 or 2 peaks.  What I am interested
in is some other smiple manipulation of input values that could make
that distinction --- in other words, some way to do scale and translation
invarience in a simple neuron with a simple input pattern.

Any suggestions or references?

Thanks.

Paul

-- 
Paul Kirkaas
kirkaas@cs.ucla.edu

landman@hanami.Eng.Sun.COM (Howard A. Landman) (12/07/90)

In article <1990Nov29.023654.9491@cs.ucla.edu> kirkaas@oahu.cs.ucla.edu (paul kirkaas) writes:
>Take a single neuron with a one dimensional input field.
>I want to it classify two types of very simple input
>patterns --- those with two peaks, and those with one.

Easy.  First preprocess the field by XORing adjacent bits, so you get a
spike for each transition:

>Two Peaks
>         ________________        __________________
>________|                |______|                  |__

Becomes:

 ________||_______________||_____||_________________||_

Then just use the neuron to count spikes and compare against
a threshold.  Two peaks becomes four spikes, one peak becomes
2 spikes, so a threshold of 3 should give excellent separation.
You could also choose to only count rising (or falling) edges.

>Any suggestions or references?

A very similar problem has often been used as an example in logic
synthesis, and is discussed in my paper "Logic Synthesis at Sun" in
CompCon Spring 89, p.469-472.  Other references are R. Spicklemier (ed.),
Oct Tools Distribution 2.1, synthesis examples section, Electronics
Research Laboratory, U.C. Berkeley, March 25, 1988; and Synopsys, Inc.,
Design Compiler Examples, June 28, 1988.

--
	Howard A. Landman
	landman@eng.sun.com -or- sun!landman