Shop OBEX P1 Docs P2 Docs Learn Events
Neural Net Engine Abstract — Parallax Forums

Neural Net Engine Abstract

Beau SchwabeBeau Schwabe Posts: 6,568
edited 2010-09-24 04:55 in Propeller 1
As suggested from this thread ... http://forums.parallax.com/showthread.php?t=125627

...there might be a few who wish to explore this concept.

The idea that I have posted is basically a huge 'ring' FIFO shift register with several taps that can either be used as an input or output. When used as an input, external events are allowed to be 'inserted' into the ring creating an 'echo' of the actual events that propagate around the ring. When used as an output, the idea is that you just read the status of the data taps.

To create a flux within the net each bit that is read is stored as the inverse of what was actually read... i.e a '0' is stored as a '1' and a '1' is stored as a '0'. A 'quiet' undisturbed net should have equal number of bits high versus equal number of bits low at any given moment in time. Any external influence on the net should bias the net away from 50/50 and it should remain biased within the ring even after the stimulus has been removed. In this sense the event has been recorded to the 'neural net' cell and new events can use predictive comparisons against previously stored events.
1131 x 777 - 346K
NNEA.JPG 345.5K

Comments

  • jazzedjazzed Posts: 11,803
    edited 2010-09-22 08:27
    Beau, that is rather abstract. Could you provide a more concrete schematic?

    Just don't let this distract you from PropII progress :)
  • Heater.Heater. Posts: 21,230
    edited 2010-09-22 11:42
    Yep, I have no idea what Beau is talking about.
  • Peter KG6LSEPeter KG6LSE Posts: 1,383
    edited 2010-09-22 11:50
    I get it!
    .. for some odd reason ..
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2010-09-22 23:10
    jazzed - ... Abstract ... lol, yes I know that was the label I put on it.

    Heater - lol

    Peter - thanks! .. tough subject to explain


    I have a book that was loaned to me awhile back... "C++ Neural Networks & Fuzzy Logic" (ISBN: 1-55851-552-6) <-- looks like I have conveyed the Fuzzy part pretty well. (Ahem Heater)

    My example that suggests using the Propeller is a basic Hopfield network with feedback. The inputs basically have weights that can override the Q output for the next D input stage. Outputs can also have weight to another Input.

    The "Propeller Model" resembles BAM (Bidirectional Associative Memory) as well as ART (Adaptive Resonance Theory)
  • Heater.Heater. Posts: 21,230
    edited 2010-09-22 23:37
    So, are you going to be training this thing via evolutionary methods, simulated annealing, expectation maximization or some non-parametric method?

    See, now I don't know what I'm talking about.

    Creating a neural net out of a big shift register is going to take some explaining.
  • David BetzDavid Betz Posts: 14,516
    edited 2010-09-23 04:04
    Maybe Beau can train it to do some of the Propeller 2 layout work so we can get the P2 chip sooner! :-)
  • RossHRossH Posts: 5,520
    edited 2010-09-23 05:21
    David Betz wrote: »
    Maybe Beau can train it to do some of the Propeller 2 layout work so we can get the P2 chip sooner! :-)

    A true Kurzweillian singularity!
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2010-09-23 07:15
    RossH,

    Fair enough, but I can assure you that our schedule for an early November tapeout for a test Die looks good and is right on target. The only time I take out of the day to respond to the forum is either before or after my core hours that I put in a day towards Propeller work and sometimes time during my lunch break. What more would you like for me to do? I post in the forum to come up for air and hopefully exercise my mind a little in thought.


    Heater,

    "Creating a neural net out of a big shift register is going to take some explaining." - That's really not too far of a stretch, some of the output nodes are brought back to provide input to the same system and it becomes something more recognizable to what others have written about on this subject. Similarly a pseudo-random generator implying a shift register can also be considered in a similar catagory. Although the output of a pseudo-random generator appears to be, well ... "random", the sequence is always predictable based on the seed value and/or the order in which the bits are modified on each input stage.
  • HumanoidoHumanoido Posts: 5,770
    edited 2010-09-24 02:28
    Heater: Indeed Beau's idea is abstract, but fits the form of many neural net examples. The neural net is a different way of programming ideally suited for massively parallel computing machines. For example, Von Neumann machines are based on the processing/memory abstraction of human information processing while neural networks are based on the parallel architecture of animal brains. There are some simple neural net examples - one will take characters and determine the likelihood of a word. The same neural structure can be used for other things, such as picking out a structure from existing data broadband in the real world. It can also determine weights, i.e. a structure or set weighted in one direction or another (such as bias) or the propensity of randomness as Beau mentioned. The neuron "biological" model is ideal for creating parallel three dimensional neuronic structures and algorithms. It can have simple elements and scalar messaging, and is ideal for AI with the ability to adapt. A neuron can fire a spike, thus affecting other neurons. The neural net is ideal for exploring high speed applications with multiple connected Propeller chips. Another key element is that not only can a neural net be used upon real world input, it can also be used for an application of pure internal thought. As the counters are extremely high speed in the Propeller environment as related to the pins, Beau came up with a spin-off - the idea to use external input.
  • Heater.Heater. Posts: 21,230
    edited 2010-09-24 04:05
    Humanoid,

    I did do a little bit of reading around neural nets many years ago. Well just one book actually. Something about neural nets in C or C++ or some such. I have it around here somewhere so I guess I'll have to take another look.

    My problem is I can't see any "net" here. just a gigantic linear shift register, well FIFO, with some odd rules about it's inputs. And I don't see how it get's "trained".
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2010-09-24 04:35
    Beau,

    I think you took RossH's post the wrong way. I think he was suggesting that by getting the propellers to design the propeller2 it might accelerate development to such an extent that it could not be predicted, the key being accelerate!

    You MUST do other things than just develop the prop2, if anything it will speed development, after all you are not just digging a big hole you are designing a chip.

    Graham
  • SapiehaSapieha Posts: 2,964
    edited 2010-09-24 04:55
    Hi Beau Schwabe.

    If Chip construct correctly "Serializer" with possibility to program Send clock pulses in it from 1 to 32 in synchronous mode then "Serializer" can be directly used to THAT (It was one of side ideas in my construction of it)

    With that it can be programed to work on 1 to 32 bit shift possibility's.



    As suggested from this thread ... http://forums.parallax.com/showthread.php?t=125627

    ...there might be a few who wish to explore this concept.

    The idea that I have posted is basically a huge 'ring' FIFO shift register with several taps that can either be used as an input or output. When used as an input, external events are allowed to be 'inserted' into the ring creating an 'echo' of the actual events that propagate around the ring. When used as an output, the idea is that you just read the status of the data taps.

    To create a flux within the net each bit that is read is stored as the inverse of what was actually read... i.e a '0' is stored as a '1' and a '1' is stored as a '0'. A 'quiet' undisturbed net should have equal number of bits high versus equal number of bits low at any given moment in time. Any external influence on the net should bias the net away from 50/50 and it should remain biased within the ring even after the stimulus has been removed. In this sense the event has been recorded to the 'neural net' cell and new events can use predictive comparisons against previously stored events.
Sign In or Register to comment.