Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROFESOR:
TONY JIMENEZ
ALUMNOS:
JOSÉ LUIS ÁLVAREZ CAMPO
MATERIA:
INTELIGENCIA ARTIFICIAL
Esta vista muestras las clases, que serían nuestro ejercicios (1,2,3…)
Ejercicio 1.
Nota: Para que nuestra red aprenda tenemos que entrenarla primero.
En esta parte vemos una rata de aprendizaje de 0.6 y también el entrenamiento de la red
con una iteración de 1000 entre mayor sea la iteración mas aprende nuestra red
Aquí se prueba la red con todo el parámetro y configuraciones ya establecido
Ejercicio 2.
Nota: La sentencia java.util.Random es una librería de java que sirve para generar números
aleatorios la utilizamos para este ejercicio para que nuestra red vaya haciendo cálculos con
numero aleatorios.
En el ejercicios 2 nos establecen un red con aprendizaje backpropagation con una funcion
F(x,y,z) = sen(x)+ cos(y)+z
En la sentencia int[] capas =new int[] {3,10,10,1}; ---> Establecemos la topología de la red
con 3 entradas, 2 capas ocultas de 10 neuronas y 1s salida.
Yo establecí una entrada [10] [3] y salida [10][1], para calcular la operación sen y cos en java
encontramos una librería Math que tiene incorporado propiedades y métodos para constantes
y funciones matemáticas en este caso utilizaremos Math.sin que devuelve el seno de un
número y Math.cos que devuelve el coseno de un número.
Ejercicio 3
En este ejercicio vamos a simular una compuerta AND, se dice que una compuerta and
cuando sus entradas son ambas verdaderas su salida es verdadera, en este caso entramos
una red para que nos simule esta compuerta como dice ejercicio
int[] capas =new int[] {2,2,1}; ----> aquí estamos declarando la topología de la red
con 2 entradas, una capa oculta de 2 neuronas y 1 salida.
double[][] entradas = new double[][] { { 1, 1 }, { 1, 0 }, { 0, 0 }, { 0, 1 } }; ----> aquí
estamos declarando la entrada de la red.
double[][] salidas = new double[][] { { 1 }, { 0 }, { 0 }, { 0 } }; ----> aquí declaramos la
salida de red.
PérceptronMulticapa pm = new PérceptronMulticapa(capas, 0.1, new
TransferenciaHiperbólica()); ----> aquí declaramos la rata de Aprendizaje.
for (int k = 0; k < 1000; k++) aquí declaramos el número de iteraciones que es 1000.
double[] _entradas = { 1, 0 }; ----> aquí declaramos la entrada que queremos que
nuestra red entrene y aprenda, ejemplo en la siguiente imagen:
Nota: y así sucesivamente vamos con las demás compuertas OR y XOR su estructura es lo
mismo, solo que cambia su resultado en la compuerta OR cuando sus entradas son falsa su
salida es falsa(0) y en la XOR si sus entrada no son iguales su salida es verdaderas.
OR
XOR
int[] capas = new int[] { 2, 2, 1 }; -----> aquí declaramos la topoligia de la red, con 2
entradas, una capa oculta de 2 neurona y 1 salida.
double[][] entradas = new double[][] { { 1, 1 }, { 1, 0 }, { 0, 0 }, { 0, 1 } }; -----> aquí
declaramos la entrada de la red.
double[][] salidas = new double[][] { { 0 }, { 1 }, { 0 }, { 1 } }; -----> aquí declaramos
la salida de la red.
PérceptronMulticapa pm = new PérceptronMulticapa(capas, 0.1, new
TransferenciaHiperbólica()); -----> aquí de inicializa la perceptron, con una rata de
aprendizaje 0.1
//prueba
double[][] __entradas = new double[][] { { 1, 1 }, { 1, 0 }, { 0, 0 }, { 0, 1 } }; ---> aquí
esta haciendo prueba en todos los patrones de entrada
Aquí mostramos el entrenamiento y el aprendizaje de nuestra red, con su respectivo
resultado.
Ejercicio 4.
int[] capas = new int[] { 2, 3, 2 }; ----> aquí estamos declarando la topología de la
red con 2 entradas, una capa oculta de 3 neuronas y 2 salida.
double[][] entradas = new double[][] { { -1, -1 }, { -1, 1 }, { 1, -1 }, { 1, 1 } }; ----> aquí
declaramos la entrada de la red.
double[][] salidas = new double[][] { { -1, -1 }, { 1, -1 }, { 1, -1 }, { -1, 1 } }; ----> aquí
declaramos la salida de la red.
PérceptronMulticapa pm = new PérceptronMulticapa(capas, 0.6, new
TransferenciaHiperbólica()); ----> aquí declaramos una rata de Aprendizaje que es
de 0.6
for (int k = 0; k < 50000; k++) ----> aquí declaramos el número de iteraciones que es
50000.
Ejercicio 6.
Aquí como vemos en la imagen ya nuestra red entrenó y aprendió, en la entrada de pruebas
encontramos el patrón de la letra E y en su salida no muestra su patrón asociado a esa letra,
y así sucesivamente con las demás letras del abecedario.