Está en la página 1de 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:

artificial está compuesta por los siguientes componentes: Una neurona artificial se implementa de la siguiente manera:

Una neurona artificial se implementa de la siguiente manera: las entradas (x) se introducen en las dendritas. Cada una posee un peso (w ij , 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)