Perzeptronen
Ein Perzeptron ist ein künstliches Neuron
Es ist das einfachste mögliche neuronale Netzwerk
Neuronale Netze sind die Bausteine der Künstlichen Intelligenz .
Frank Rosenblatt
Frank Rosenblatt (1928 – 1971) war ein amerikanischer Psychologe, der sich auf dem Gebiet der künstlichen Intelligenz einen Namen gemacht hat.
1957 startete er etwas ganz Großes.
Wissenschaftler hatten entdeckt, dass Gehirnzellen ( Neuronen ) Input von unseren Sinnen durch elektrische Signale erhalten.
Die Neuronen verwenden dann wieder elektrische Signale, um Informationen zu speichern und Entscheidungen basierend auf früheren Eingaben zu treffen.
Frank hatte die Idee, dass künstliche Neuronen Gehirnprinzipien simulieren könnten, mit der Fähigkeit zu lernen und Entscheidungen zu treffen.
Aus diesen Gedanken „erfand“ er das Perzeptron .
Das Perceptron wurde 1957 auf einem IBM 704-Computer im Cornell Aeronautical Laboratory getestet.
Das Perzeptron
Das ursprüngliche Perceptron wurde entwickelt, um eine Reihe von binären Eingängen zu empfangen und einen binären Ausgang (0 oder 1) zu erzeugen.
Die Idee war, unterschiedliche Gewichtungen zu verwenden, um die Wichtigkeit jeder Eingabe darzustellen , und dass die Summe der Werte größer als ein Schwellenwert sein sollte , bevor eine Entscheidung wie wahr oder falsch (0 oder 1) getroffen wird.
Perzeptron-Beispiel
Stellen Sie sich ein Perzeptron (in Ihrem Gehirn) vor.
Das Perzeptron versucht zu entscheiden, ob Sie in ein Konzert gehen sollten.
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.