## Hot questions for Using Neural networks in neuron simulator

Question:

AND logic and OR logic can be solved by just 1 neuron. However, XOR logic needs a neural network of 3 neurons in 2 layers:

(neuron1)\ \ +----- (neuron3) / (neuron2)/

Consider this form of neural network:

(neuron1) ------- (neuron2)

Is this kind of neural network with just 2 neurons connecting to each other able to solve anything better than just 1 single neuron?

Answer:

2 neurons can be more powerful than 1 neuron.

For example consider two neurons with the standard rectifier nonlinearity max(0,x).

Let the input be x.

The first neuron computes y=max(0,x)

The second neuron computes z=max(0,1-y)

The picture plots y (green),1-y (red),z (blue) against x.

This shows how two neurons both using a simple rectifier can construct a more complicated saturating nonlinearity (represented by the blue line).

There is no way to produce the blue line with a single rectifying neuron operating on a single output (because all such outputs have at most two linear segments, and our z output has three linear segments).

Question:

In NEURON simulator, is there an easier way to list properties of a section other than iterating over each property individually?

Answer:

If you are using the **NEURON gui**, you could also find section properties in the NEURON's control menu:

**Tools-> Model View**

This's will open a ModelView window which has section and segment details such as:

**Type of cells**: real cells/ artificial cells**NetCon**objects**LinearMechanisms**objects**Density Mechanisms****Point Processes**

If you click on each property, a drop-down menu appears showing the details of the property selected

You could also **view the structure of the model** if you click on the cell type (real/artificial cells)

Question:

In what order do the commands in NEURON .MOD/NMODL file sections get executed? Specifically, within these blocks: DERIVATIVE, BREAKPOINT and NET_RECEIVE.

Answer:

For every time-step, the order of execution is as follows:

**NET_RECEIVE**: If there is net_send() an event that targets this mechanism, lines here are executed first. Skipped otherwise.- Lines in
**BREAKPOINT**: The SOLVE ... METHOD line is ignored. All lines after SOLVE are executed. With a`printf()`

statement, you would see two calls. However, one of the calls does not actually set any state variables. It is used to compute the derivatives. - Finally, the
**DERIVATIVE**block: The values for the derivatives (`X' = ...`

) are computed. Keep in mind, to get the value by which the state variable actually changes, multiply by`dt`

.