Sei sulla pagina 1di 2

cenidet

Centro Nacional de Investigacion y Desarrollo Tecnologico.

Ciencias de la computacion. Inteligencia Artificial.


Redes Neuronales.
Christian Hern
andez Becerra
Tarea 6: Algoritmo de Rosenblatt.
Febrero de 2016.

1.

Algoritmo de Rosenblatt

Frank (era mejor conocido como Perceptron), un dispositivo electronico que fue construido de acuerdo con los principios biologicos y mostro una habilidad para aprender. El Perceptron
de Rosenblatt fue simulado inicialmente en una computadora IBM 704 en el laboratorio aeronautico de Cornell en 1957[1].
El algoritmo del perceptron fue inventado en 1957 en el laboratorio aeronautico de Cornell
por Frank Rosenblatt, financiado por la Oficina de Investigacion Naval de los Estados Unidos.
El perceptron se pretenda que fuera una maquina, en lugar de un programa[2].

2.
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta
Vuelta

Results
0, Pesos: [0, 0]. Entrada [0, 0], P. Punto 0.Theta 0, Salida 0.
1, Pesos: [0, 0]. Entrada [0, 1], P. Punto 0.Theta 0, Salida 0.
2, Pesos: [0, 0]. Entrada [1, 0], P. Punto 0.Theta 0, Salida 0.
3, Pesos: [0, 0]. Entrada [1, 1], P. Punto 0.Theta 0, Salida 0.
4, Pesos: [1, 1]. Entrada [0, 0], P. Punto 0.Theta -1, Salida 1.
5, Pesos: [1, 1]. Entrada [0, 1], P. Punto 1.Theta 0, Salida 1.
6, Pesos: [1, 0]. Entrada [1, 0], P. Punto 1.Theta 1, Salida 0.
7, Pesos: [1, 0]. Entrada [1, 1], P. Punto 1.Theta 1, Salida 0.
8, Pesos: [2, 1]. Entrada [0, 0], P. Punto 0.Theta 0, Salida 0.
9, Pesos: [2, 1]. Entrada [0, 1], P. Punto 1.Theta 0, Salida 1.
10, Pesos: [2, 0]. Entrada [1, 0], P. Punto 2.Theta 1, Salida 1.
11, Pesos: [1, 0]. Entrada [1, 1], P. Punto 1.Theta 2, Salida 0.
12, Pesos: [2, 1]. Entrada [0, 0], P. Punto 0.Theta 1, Salida 0.
13, Pesos: [2, 1]. Entrada [0, 1], P. Punto 1.Theta 1, Salida 0.
14, Pesos: [2, 1]. Entrada [1, 0], P. Punto 2.Theta 1, Salida 1.
15, Pesos: [1, 1]. Entrada [1, 1], P. Punto 2.Theta 2, Salida 0.
16, Pesos: [2, 2]. Entrada [0, 0], P. Punto 0.Theta 1, Salida 0.
17, Pesos: [2, 2]. Entrada [0, 1], P. Punto 2.Theta 1, Salida 1.
18, Pesos: [2, 1]. Entrada [1, 0], P. Punto 2.Theta 2, Salida 0.
19, Pesos: [2, 1]. Entrada [1, 1], P. Punto 3.Theta 2, Salida 1.
20, Pesos: [2, 1]. Entrada [0, 0], P. Punto 0.Theta 2, Salida 0.
21, Pesos: [2, 1]. Entrada [0, 1], P. Punto 1.Theta 2, Salida 0.

Pesos: [2, 1], Theta 2. El ajuste tomo

6 Epocas

3.

Code

int main()
{
const int vecDim = 2; // Dimensi
on de entrada
const int population = 4; // total de poblaci
on
int x[vecDim][population] = {{0,0,1,1},{0,1,0,1}}; //Poblaci
on
int z[population] = { 0, 0, 0, 1 }; //Clasificaci
on de la poblaci
on
int epoch = 0; // Numero de epocas
int elements = 0; // Elementos bien clasificacos consecutivamente
int w[vecDim] = { 0,0 }; // Pesos
int theta = 0; // Umbral
int outP, outT; //Salida parcial y total
int i; // Contador
int actual = 0; // Elemento evaluado actualmente
int auxDes; // Auxiliar para hacer el ajuste
while(elements < population) {
outP = 0;
for (i = 0; i < vecDim; i++)
outP += x[i][actual%population] * w[i];
outT = outP > theta ? 1 : 0;
printf("Vuelta %d, Pesos: [%d, %d]. ", actual, w[0], w[1]);
printf("Entrada [%d, %d], P. Punto %d.", x[0][actual%population],...
x[1][actual%population], outP);
printf("Theta %d, Salida %d.\n", theta, outT);
elements++;
if (outT != z[actual%population]) {
elements = 0;
auxDes = outT == 0 ? 1 : -1;
for (i = 0; i < vecDim; i++)
w[i] = x[i][actual%population] == 1 ? w[i] + auxDes : w[i];
theta += (-1)*auxDes;
}
actual++;
}
epoch = (int) (actual / population) +1;
printf("Pesos: [%d, %d], Theta %d. ", w[0], w[1], theta);
printf("El ajuste tomo %d Epocas\n", epoch);
getchar();
return 0;
}

4.

Bibliogarfa

[1] Preceptron (19 February 2016)


https://en.wikipedia.org/wiki/Perceptron
[2] Frank Rosenblat (15 February 2016)
https://en.wikipedia.org/wiki/Frank_Rosenblatt

Potrebbero piacerti anche