Perceptrons

Een Perceptron is een kunstmatig neuron

Het is het eenvoudigst mogelijke neurale netwerk

Neurale netwerken zijn de bouwstenen van kunstmatige intelligentie .

Frank Rosenblatt

Frank Rosenblatt (1928 – 1971) was een Amerikaanse psycholoog die bekend stond op het gebied van kunstmatige intelligentie.

In 1957 begon hij iets heel groots.

Wetenschappers hadden ontdekt dat hersencellen ( neuronen ) input van onze zintuigen ontvangen door elektrische signalen.

De neuronen gebruiken dan weer elektrische signalen om informatie op te slaan en om beslissingen te nemen op basis van eerdere input.

Frank had het idee dat kunstmatige neuronen hersenprincipes konden simuleren, met het vermogen om te leren en beslissingen te nemen.

Vanuit deze gedachten heeft hij de Perceptron "uitgevonden" .

De Perceptron werd in 1957 getest op een IBM 704-computer in het Cornell Aeronautical Laboratory.


De Perceptron

De originele Perceptron is ontworpen om een ​​aantal binaire inputs te gebruiken en één binaire output te produceren (0 of 1).

Het idee was om verschillende gewichten te gebruiken om het belang van elke invoer weer te geven , en dat de som van de waarden groter zou moeten zijn dan een drempelwaarde voordat een beslissing als waar of onwaar (0 of 1) wordt genomen.

Perceptron


Perceptron Voorbeeld

Stel je een perceptron voor (in je hersenen).

De perceptron probeert te beslissen of je naar een concert moet gaan.

Is the artist good? Is the weather good?

What weights should these facts have?

CriteriaInputWeight
Artists is Goodx1 = 0 or 1w1 = 0.7
Weather is Goodx2 = 0 or 1w2 = 0.6
Friend Will Comex3 = 0 or 1w3 = 0.5
Food is Servedx4 = 0 or 1w4 = 0.3
Alcohol is Servedx5 = 0 or 1w5 = 0.4

The Perceptron Algorithm

Frank Rosenblatt suggested this algorithm:

  1. Set a threshold value
  2. Multiply all inputs with its weights
  3. Sum all the results
  4. Activate the output

1. Set a threshold value:

  • Threshold = 1.5

2. Multiply all inputs with its weights:

  • x1 * w1 = 1 * 0.7 = 0.7
  • x2 * w2 = 0 * 0.6 = 0
  • x3 * w3 = 1 * 0.5 = 0.5
  • x4 * w4 = 0 * 0.3 = 0
  • x5 * w5 = 1 * 0.4 = 0.4

3. Sum all the results:

  • 0.7 + 0 + 0.5 + 0 + 0.4 = 1.6 (The Weighted Sum)

4. Activate the Output:

  • Return true if the sum > 1.5 ("Yes I will go to the Concert")

If the treshold value is 1.5 for you, it might be different for someone else.

Example

const treshold = 1.5;
const inputs = [1, 0, 1, 0, 1];
const weights = [0.7, 0.6, 0.5, 0.3, 0.4];

let sum = 0;
for (let i = 0; i < inputs.length; i++) {
  sum += inputs[i] * weights[i];
}

const activate = (sum > 1.5);


Perceptron Terminology

  • Perceptron Inputs
  • Node values
  • Node Weights
  • Activation Function

Perceptron Inputs

Perceptron inputs are called nodes.

The nodes have both a value and a weight.


Node Values

In the example above the node values are: 1, 0, 1, 0, 1


Node Weights

Weights shows the strength of each node.

In the example above the node weights are: 0.7, 0.6, 0.5, 0.3, 0.4


The Activation Function

The activation functions maps the result (the weighted sum) into a required value like 0 or 1.

The binary output (0 or 1) can be interpreted as (no or yes) or (false or true).

In the example above, the activation function is simple: (sum > 1.5)

In Neuroscience, there is a debate if single-neuron encoding or distributed encoding is most relevant for understanding how the brain functions.

It is obvious that a decision like the one above, is not made by one neuron alone.

At least there must be other neurons deciding if the artist is good, if the weather is good...

Neural Networks

The Perceptron defines the first step into Neural Networks.

The perceptron is a Single-Layer Neural Network.

The Neural Network is a Multi-Layer Perceptron.