Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

lunes, 10 de febrero de 2014

Neurona artificial (IV). Perceptrón Multicapa.

A diferencia del Perceptrón Simple, el Perceptrón Multicapa esta formada por múltiples capas de neuronas. Eliminando la principal limitación del Perceptrón Simple de que no puede resolver problemas que no son linealmente separables como por ejemplo las puertas lógicas XOR.
























Codigo:

//Perceptron multicapa
package perceptronMultiCapa;

import java.util.Random;
import java.util.Scanner;

public class PerceptronMultiCapa {

    public static void main(String[] args) {
        //Introduccion manual de las entradas x1, x2.
        System.out.println("Introduce Entrada 1 (X1): ");
        Scanner leerX1 = new Scanner(System.in);
        double x1 = Double.parseDouble(leerX1.next());
        System.out.println("Introduce Entrada 2 (X2): ");
        Scanner leerX2 = new Scanner(System.in);
        double x2 = Double.parseDouble(leerX2.next());
        //Inicializar pesos con valores aleatorios.
        double w1 = new Random().nextDouble();
        double w2 = new Random().nextDouble();
        double w3 = new Random().nextDouble();
        double w4 = new Random().nextDouble();
        double w5 = new Random().nextDouble();
        double w6 = new Random().nextDouble();
        //Pesos de la constante θ (ayuda en la precisión).
        double θ1 = new Random().nextDouble();
        double θ2 = new Random().nextDouble();
        double θ3 = new Random().nextDouble();
        //Salidas primera capa y ultima (y3)
        double y1 = Math.tanh((x1 * w1) + (x2 * w3) - θ1);
        double y2 = Math.tanh((x1 * w2) + (x2 * w4) - θ2);
        double y3 = Math.tanh((y1 * w5) + (y2 * w6) - θ3);
        //Mostrar resultados
        System.out.println("Salida (y3) = " + y3);
    }
   
}



Resultado:

run:
Introduce Entrada 1 (X1):
-2.3
Introduce Entrada 2 (X2):
1.9
Salida (y3) = -0.5309976823624457
BUILD SUCCESSFUL (total time: 20 seconds)




1 comentario:

Con la tecnología de Blogger.