Sei sulla pagina 1di 2

UNIVERSIDAD NACIONAL DEL ALTIPLANO

PRACTICA DE RED NEURONAL PERCEPTRON

Objetivos:

 Conocer la estructura básica de una red neuronal artificial


 Conocer el funcionamiento de una red neuronal perceptron
 Aplicar la red neuronal a la solución de AND y OR

Una red neuronal artificial está compuesta por los siguientes componentes:

Una neurona artificial se implementa de la siguiente manera: las entradas (x) se introducen en las dendritas. Cada una
posee un peso (wij, neurona j – entrada i). Dentro del cuerpo se aplican diferentes funciones de procesamiento
(propagación, activación, salida) hasta llegar al axón (salida y).

Código de implementación de un perceptron


package perceptron;

/** *
* @author Boris Sosa Maydana
*/
public class Perceptron {

/**
*/
public static double RecalcularPesos(double pesoj, double ti, double xi){
double wj=pesoj+0.5*ti*xi;
return(wj);
}
public static void main(String[] args) {
// Función principal
double [] pesos = {0.0,0.0,0.0} ;
//creacion de pesos aleatorios
for (int j=0; j<pesos.length; j++){
pesos[j] = Math.random();
System.out.println("peso "+j+" = "+pesos[j]);
} //fin for

System.out.println("*****************************************");

double [] salidas = {1,1,1,-1};


double [] [] entradas = {{1,1,-1},{1,-1,-1},{-1,1,-1},{-1,-1,-1}};

double yi=0;
int i=0;

while(i<entradas.length){
yi=pesos[0]*entradas[i][0]+pesos[1]*entradas[i][1]+pesos[2]*entradas[i][2];
if (yi>=0) {yi=1;}
else {yi=-1;} //fin else

if (yi==salidas[i]){
System.out.println("Entradas ("+entradas[i][0]+"),("+entradas[i][1]+") salida ("+salidas[i]+")(Si cumple)");
}else{
System.out.println("Entradas ("+entradas[i][0]+"),("+entradas[i][1]+") salida ("+yi+") se esperaba ("+salidas[i]+")(No cumple)");
System.out.println("********CORRECCION DE PESOS**********");
for (int k=0;k<pesos.length;k++){
pesos[k]=RecalcularPesos(pesos[k],salidas[i],entradas[i][k]);
System.out.println(pesos[k]);

} //fin for
System.out.println("*************************************************");
i=-1; // para q empiece el proceso
} //fin else
i++;
}//fin de while
}
}

A DESARROLLAR:
1. Implemente el código fuente mostrado anteriormente utilizando lenguaje Java
2. Interprete como funciona la red neuronal, tomando en consideración número de capas, funciones de transferencia, y pesos
óptimos calculados.
3. Modifique o amplíe el código para resolver el problema de or-exclusivo (XOR)

Potrebbero piacerti anche