perceptrones
Un perceptrón es una neurona artificial
Es la Red Neuronal más simple posible
Las redes neuronales son los componentes básicos de la inteligencia artificial .
Frank Rosenblatt
Frank Rosenblatt (1928 - 1971) fue un psicólogo estadounidense destacado en el campo de la Inteligencia Artificial.
En 1957 comenzó algo realmente grande.
Los científicos habían descubierto que las células cerebrales ( neuronas ) reciben información de nuestros sentidos mediante señales eléctricas.
Las neuronas, luego, nuevamente usan señales eléctricas para almacenar información y tomar decisiones basadas en entradas anteriores.
Frank tuvo la idea de que las Neuronas Artificiales podían simular los principios del cerebro, con la capacidad de aprender y tomar decisiones.
A partir de estos pensamientos, "inventó" el Perceptrón .
El Perceptron se probó en una computadora IBM 704 en el Laboratorio Aeronáutico de Cornell en 1957.
el perceptrón
El Perceptron original fue diseñado para tomar varias entradas binarias y producir una salida binaria (0 o 1).
La idea era usar diferentes pesos para representar la importancia de cada entrada , y que la suma de los valores debería ser mayor que un valor umbral antes de tomar una decisión como verdadero o falso (0 o 1).
Ejemplo de perceptrón
Imagina un perceptrón (en tu cerebro).
El perceptrón intenta decidir si debes ir a un concierto.
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.