################################################################################

Assignment 0 [10 pts]  [ MS dos version]

(Out on Tuesday, September 10; Due on Tuesday, September 24)

 

Section 1: Basic Knowledge (0.25 point each; total 1 points)

 

1.1. What is sulcus and a gyrus?

1.2. What are synapses?

1.3. Where are the Grey matter and Deep nuclei?

1.4. Where does visual processing start in human cortex?

1) front  2) sides   3) top  4) back 5) inside at middle

 

#####################################

Section 2: More In-depth Knowledge (0.5 points each; total 1 points)

2.1. Explain how action potentials function, in terms of ions, Na+ and K+.     (in less than five lines)

2.2. Explain how activities in the brain are detected based on the MRI BOLD effect. (in less than five lines)

 

#####################################

Section 3: McCulloch and Pitts Logic (2 points)

 

Define the McCulloch-Pitts neuron model, and draw a diagram showing all its parameters.

 

Draw diagrams of networks of McCulloch-Pitts neurons that implement the following Boolean functions:

 

1) a 5-input AND circuit;

2) a 2-input XOR (exclusive-OR) circuit;

3) a 4-input, 3-output associative memory, that is, a circuit that will produce a given output if and only if it is presented with a given input pattern; use the following input and output goals (TIP: if you don't know how to start, search Google for 'minterm' and learn about the 'conjunctive normal form' of Boolean functions):

 

INPUT       OUTPUT

 

0 0 0 0     0 0 1

0 0 0 1     1 0 0

0 0 1 0     0 0 0

0 0 1 1     1 0 0

0 1 0 0     1 0 0

0 1 0 1     0 1 0

0 1 1 0     0 0 0

0 1 1 1     0 0 1

1 0 0 0     1 0 0

1 0 1 0     1 0 0

1 0 1 1     0 1 0

1 1 0 0     0 0 1

1 1 0 1     1 0 0

1 1 1 0     0 0 0

1 1 1 1     0 0 0

 

#####################################

Section 4: Implementation (6 points)

 

Implement Rall's Motion Detector Model, using McCulloch-Pitts model neurons implemented using C++ object oriented style.   See TMB2 p. 60 for a figure of the motion detector. Here we will consider a 5x5 visual input space, and salient visual objects consisting of one pixel in this input space, moving around in successive input frames. Our goal is to build a circuit that detects whether the salient pixel is moving up, down, left or right. Guidelines are given below.   You may change the detail such as 6 ticks to 5 ticks to make it work for your version of the implementation.

 

You may come up with your own scheme and explain your implementation detail in documentation.  It must be more involved and complicated than the guideline to be considered for full credit.

 

##############

Guidelines

4.1. Simulation of Selected Concepts

1) Time implementation will be based on discrete time of 6 ticks: t0 to t5

2) Membrane potential, MP, will have 33 discrete values: 0 to 32 (2^5)

3) Firing will have 2 discrete values: 0 or 1 (true or false if you prefer)

4) It is two layer structured:

-  a lower layer of 25 saliency detectors (that is, input pixels)

-  a higher layer of 4 motion detectors: up, down, left, and right.

-  distance between two layers in terms of dendritic length is 1.

5) Field will be discrete 5-by-5 two dimensional plane.

6) There is only one or zero salient point at any time during simulation

7) Only the motion detector has dendrites.

8) Inputs of sequences (sets) of five frames of the 5x5 input plane will be given in a text file. Since there is only one salient point per frame, these input sequences will be coded as five sets of coordinates of the salient point.

 

######

4.2. Objects to be built

4.2.1. Virtual Updator with

1) A virtual update function to be called at every time tick.

 

4.2.2. Neuron, a child of Updator (still virtual)

1) Six MPs to record one current and five future MPs of the neuron.

 -  MP0, MP1, ... MP5

2) A boolean function of fire that returns

-  true if the current MP is equal to or greater than threshold or false otherwise.

-  threshold may be 31.

3) Update function

-  divides the current MP, e.g. MP0, by 4 before adding it to the next MP, e.g. MP1.

-  The next MP, MP1, becomes the current MP

 

4.2.3. S_Detector(saliency detector), a child of Neuron

1) Input function

-  Its parameter is a boolean saying presence of salient object in its field of detection.

2) Update function

-  It should reset MP to 0 for no change or non-detection and to 31 for change into detection.

-  Keeps Neuron's Update functionality.

 

4.2.4. M_detector(Rall's motion detector), a child of Neuron

1) Dendritic connection to all S_Detectors and their order are given in construction

2) The length of dendrites is measured in one dimension x (for left/right detector) or y (for up/down detector) plus 1. (Not sqrt(x^2+y^2))

3) A set of 5 weights(1/32, 1/16, 1/8, 1/4, 1/2) for each set of 5 dendrites sharing the same length.

4) A firing at a dendrite with length x will take x ticks to arrive at soma.

5) Update function

-  Keeps Neuron's Update functionality.

-  Gets firing from all S_Detectors and update potentials.

6) Potentials add up.

 

4.2.5. Stimulator: a child of Updator

1) Inputs sequence of movement from an input file to S_Detectors in terms of (x,y) coordinates

2) Update function

-  Gives input to the appropriate S_Detector

 

4.2.6. Time_Driver

1) Calls Update functions of Stimulator, all S_Detectors, all M_detector in that order.

2) Prints out firings of four M_Detectors in the form of:

[

For sequence of movement: <x0, y0>,<x1, y1>,<x2, y2>,<x3, y3>,<x4, y4>

The direction is:

                      "  u   "

                      "l   r"

                      "  d   "

]

after running simulation for each sequence of movement.

 

##############

4.3. Sample Input and Output

4.3.1 Input (in file)

[

0 2, 1 2, 2 2, 3 2, 4 2

0 0, 1 1, 2 2, 3 3, 4 4

2 0, 2 1, 2 2, 2 3, 2 4

]

4.3.2 Output

For sequence of movement: <0, 2>,<1, 2>,<2, 2>,<3, 2>,<4, 2>

The direction is:

                      "  0   "

                      "0   1"

                      "  0   "

For sequence of movement: <0, 0>,<1, 1>,<2, 2>,<3, 3>,<4, 4>

The direction is:

                      "  0   "

                      "0   1"

                      "  1   "

For sequence of movement: <2, 0>,<2, 1>,<2, 2>,<2, 3>,<2, 4>

The direction is:

                      "  0   "

                      "0    0"

                      "  1   "

 

################################################################################