Re: Fourier computing?

From: my_sunshine (sun@faclib-0119.unh.edu)
Date: Thu May 17 2001 - 07:09:04 MDT


This still seems (at least borderline) relevant to sl4...

First, let me say two things, then I'll answer your question...

>neurons and their respective neural codes. I have never heard of
>Fourier computing though. And, I was until now unaware that there was a
>need to "invent the kind of component which the human brain uses." I
>guess I have been in the dark about something -- could you fill me in?

(1) I did not mean to imply, by my message, that a brain-like computing
component was necessary to implement AI, but merely one option.

(2) I am not a neuroscientist and am not up on cutting-edge knowledge about
neural operations, but this is what I meant by "Fourier computing"...

(3) First, take a look at how the semantics of digital logic are mapped to
voltage levels:

        Operands: binary voltages
        # we map voltage intervals to boolean values...
        (0.5 V <= v <= 1.5 V) -> boolean(v,1)
        ~(0.5 V <= v <= 1.5 V) -> boolean(v,0)
        
        Operations: logic gates
        # we map the domain (v0,v1), through a logical function, to a range (o).
        boolean(v0,0) A boolean(v1,0) -> boolean(o,0) # logical OR
        boolean(v0,0) A boolean(v1,1) -> boolean(o,1)
        boolean(v0,1) A boolean(v1,0) -> boolean(o,1)
        boolean(v0,1) A boolean(v1,1) -> boolean(o,1)
        
        But, neurons don't work like this...
        
        Let's take a first-order fourier decomposition of v:
        v(t) = a1 cos w1*t + noise... and disregard the value a1
        
        Remap operands:
        (30/s <= w1 <= 40/s) -> boolean(v,1)
        ~(30/s <= w1 <= 40/s) -> boolean(v,0)
        
        Remap operations:
        
        We can symbolically expand any line (all lines) of the logic table:
        i.e., boolean(v0,0) A boolean(v1,0) -> boolean(o,0) becomes
        ~(0.5 V <= v0 <= 1.5 V) A ~(0.5 V <= v1 <= 1.5 V) ->
                ~(0.5 V <= o <= 1.5 V)
        and so on until the truth table has been expressed as a (complicated)
        piecewise function o = logicalOr(v0,v1).
        
        Likewise can we construct o = logicalOr(v0,v1) using the fourier
        interperetations of v0, v1, and o. It would look something like:
        ~(30/s <= w0 <= 40/s) A ~(30/s <= w1 <= 40/s) ->
                ~(30/s <= o <= 40/s) ....
        The piecewise function o = logicalOr(v0,v1) can thus be constructed
        in which the fundamental frequency of o is a (logical) function of the
        fundamental frequencies of v0 and v1.
        
        This is the important part: Any variable in the fourier decomposition
        of a function f(x) can be used to carry data, i.e.:
        v(t) = a1 cos (w1*t+p1) + a2 cos (w2*t+p2) + ...
        a1, a2, w1, w2, p1, and p2 can all be used to encode inputs and store
        outputs. Note that, in this perspective, frequency, amplitude, and
        phase can all be given significance. What we have done is employed a
        different semantic mapping to v by transforing v(t) into the time
        domain.
        
        This is, in some cases, how the human nervous system puts neurons to
        use. When sensing heat, for example, (using v = a1 cos w1) it is not
        the value of a1, but the value w1, which conveys to the brain the
        intensity of the heat. It is *more rapid*, not *more intense*,
        neuron firing which indicates a sensation of greater heat. Clearly,
        the brain has some way of semantically mapping such frequencies,
        since I can tell hot from luke warm from scalding....
        
        By constructing circuits which implement these mathematical functions
        (ask any EE), electronics which operate in this manner can be used to
        build entire computers. This is what I meant by "Fourier computing".

Dave



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:36 MDT