Perceptrons
Un Perceptron est un Neurone Artificiel
C'est le réseau de neurones le plus simple possible
Les réseaux de neurones sont les éléments constitutifs de l'intelligence artificielle .
Frank Rosenblatt
Frank Rosenblatt (1928 - 1971) était un psychologue américain remarquable dans le domaine de l'intelligence artificielle.
En 1957 , il a commencé quelque chose de vraiment grand.
Les scientifiques avaient découvert que les cellules cérébrales ( neurones ) reçoivent des informations de nos sens par des signaux électriques.
Les neurones utilisent à nouveau des signaux électriques pour stocker des informations et prendre des décisions en fonction des entrées précédentes.
Frank a eu l'idée que les neurones artificiels pouvaient simuler les principes du cerveau, avec la capacité d'apprendre et de prendre des décisions.
A partir de ces réflexions, il "inventa" le Perceptron .
Le Perceptron a été testé sur un ordinateur IBM 704 au Cornell Aeronautical Laboratory en 1957.
Le Perceptron
Le Perceptron original a été conçu pour prendre un certain nombre d' entrées binaires et produire une sortie binaire (0 ou 1).
L'idée était d'utiliser différents poids pour représenter l'importance de chaque entrée et que la somme des valeurs devait être supérieure à une valeur seuil avant de prendre une décision comme vrai ou faux (0 ou 1).
Exemple de Perceptron
Imaginez un perceptron (dans votre cerveau).
Le perceptron essaie de décider si vous devez aller à un concert.
Is the artist good? Is the weather good?
What weights should these facts have?
Criteria | Input | Weight |
---|---|---|
Artists is Good | x1 = 0 or 1 | w1 = 0.7 |
Weather is Good | x2 = 0 or 1 | w2 = 0.6 |
Friend Will Come | x3 = 0 or 1 | w3 = 0.5 |
Food is Served | x4 = 0 or 1 | w4 = 0.3 |
Alcohol is Served | x5 = 0 or 1 | w5 = 0.4 |
The Perceptron Algorithm
Frank Rosenblatt suggested this algorithm:
- Set a threshold value
- Multiply all inputs with its weights
- Sum all the results
- 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.