" Video que demuestra el funcionamiento del programa "
En esta entrada quiero compartirles un ejemplo de perceptron simple hecho en java el cual puede ser usado para que aprenda las compuertas logicas OR y AND.
Este tipo de red puede resolver solamente problemas cuyas salidas estén clasificadas en dos categorías diferentes y que permitan que su espacio de entrada sea dividido en regiones linealmente separables:
Las compuertas lógicas AND y OR son linealmente separables, por lo tanto pueden implementarse con un perceptrón. La compuerta lógica XOR no presenta esta característica para esta se tiene que utilizar un perceptron multicapa.
En el siguiente vídeo a partir del minuto 2:40 en adelante se explica paso por paso como se da el aprendizaje de la compuerta lógica OR para un perceptron simple y yo explicare lo mismo pero ya desde un programa hecho en java.
Explicare solo lo mas importante para mas detalles pueden descargarse el código, el codigo ha cambiado un poco solo le agrege una interfaz grafica para que escoger la compuerta logica con la que se probara el perceptron ya sea OR o AND:
- http://www.mediafire.com/?e788693rqowepoc
Código Fuente:
" Partes Claves del Código Fuente "
1.- Declaramos las entradas y salidas deseadas:
- Estructura de las entrada:
Entrada 1, Entrada 2, Umbral
{ x1 , x2 , -1 }
2.- Declaramos los pesos con los mismos valores que en el vídeo para seguir el ejemplo igual el factor de aprendizaje:
3.- Llamamos al método "funcionActivacion" que recibe por parámetros las primeras 2 entradas (1,1) y se manda también el (-1) para la entrada del umbral y retorna 1 o -1 como lo define la siguiente regla esto que retorne sera la salida obtenida para dichas entradas :
4.- Después se llama al método "error" al cual se le manda por parámetro la salida deseada y retorna la diferencia de la salida deseada menos la salida obtenida en el método anterior entonces si regresa 0 no hay error en caso contrario si lo hay:
5.- Después si no hay error se sigue con la siguiente entrada(1,-1) y se vuelven a ejecutar los métodos "funcionActivacion" y "error" y si no hay error se sigue con la siguiente entrada (-1,1) ahora si hay error se debe hacer reajuste de pesos llamando al método "calcular pesos" al cual se le manda por parámetros las entradas y la salida deseada:
formula:
Método para Actualizar los Pesos
bUEN APORTE
ResponderEliminarGracias :)
Eliminardisculpa el link para descargar el codigo fuente esta caido. Te agradeceria mucho si pudieras resubirlo.
ResponderEliminarListo!!
ResponderEliminarbusco uno para Perceptron multicapa
ResponderEliminarMuchas Gracias!
ResponderEliminarme aparece el siguiente error
ResponderEliminarclass PerceptronSimple is public, should be declared in a file named PerceptronSimple.java
le cambiaste el nombre al archivo?, eso pasa cuando el nombre de la clase y el nombre del archivo no coinciden, solo asegúrate de que tengan el mismo nombre o si le quieres cambiar el nombre al archivo también cámbiaselo a la clase y al constructor!!
EliminarHe probado el or y siempre me devuelve 1.
ResponderEliminarpregunta:
ResponderEliminarsi quiero entrenar de nuevo la red??
yo ocupé este algoritmo con mis excompañeros rubén y ferrusca para evitar que un robot en una simulación virtual se estrelle o bien se atrofié o bien se descomponga su caminar o bien deje de funcionar ante un obstáculo, de manera que por sensor infrarrojo cálculaba sobre los obstáculos que pudieran impedir el seguir su camino, y ocurria una sumatoria o resta en el código de su camino, creo que es el código más simple para implementar con el algoritmo de red neuronal Wj=Wj+e(ti)*Xj .
ResponderEliminarP.d.
ResponderEliminarYo quiero implementar la fórmula de redes neuronales para ubicar el aprendizaje en un ser humano que creo que se basa en la noción de un aprendizaje de quien te enseña, quien aprende o bien una persona y bien este aprendizaje creo que podría basarse en escuchar de manera telepática a quien enseño o bien lo que lee una persona por telepátia y tal vez llega a desarrollar de una manera muy propia o en base a como aprendió a hablar ahora bien creo que un robot, desarrollaría lo aprendido en base a la programación de su personalidad y escucharía lo que esperamos que aprenda y bien escucharía también la onda emocional o bien las emociones de la persona que enseña para poder saber como contestar XP, o bien como podría desarrollar un robot su propia inteligencia >-<'', o bien como es que nosotros llegamos a concentrarnos y escuchar a la persona que enseñó algo a quien nos enseña, lo cual sigue una regla de tres, o bien
escuchar al profe
escuchar a quien enseñó al profe
darse a entender entre lo que comenta el profe y lo que se tiene que aprender
para tener el "propio entendimiento" o bien un tercer comentario para aprender..
o bueno creo que a veces en la telepatía pasa esto >__<'' o-o''
la telepátia no existe...todo era cuestión de sonidos y no infrasonidos que otra persona puede percibir...
ResponderEliminarAlguien tiene el archivo? lo descargo pero no ese encuentra como el video
ResponderEliminar