por fin e logrado comprender el funcionamiento de una NeuronaPués me alegro por ti...
Que pasaria si son 5 o mas entradas como sabria yo, cuantas deberian ser 1 para que mi salida sea 1No estoy seguro de que si lo que dices es lo que me parece entender que preguntas, pero ya me dirás...
si tengo una neurona que recibira 9 entradas:Efectivamente.
Neurona recibe 9 entradas = {1,0,0,1,1,0,0,1,1}
Si e entendido bien, la salida sera 1 porque la cantidad de entradas con el valor de 1 es impar
Pero entonces porque en el mi post anterior (hago referencia al post inicial) se tenian solo dos entradas y ambas tenian el valor de "1", sin ser impar el numero de "1" esta daba como resultado la salida "1"Veamos, que se haga un 'or' o que se haga un 'and' depende de como se diseñe la neurona, depende de como se quiera hacer. Debes tener en mente que no existe una única neurona, sino tantos modelos como se quiera hacer, el modelo que se te haya presentado con toda seguridad habrá sido un modelo para empezar a entender el funcionamiento interno de una neurona, lo cual no implica que deba ser así exactamente.
La funcion AND solo se usa o aplica cuando hay 2 entradas?
-La funcion XOR solo se usa o aplica cuando hay mas de 2 entradas?
-Cuando se usa la funcion OR ?
Ejemplo de los 9 amigos:
Entradas en orden = {1,1,1,1,1,1,1,1,1}
Pesos en orden={1,2,2,2,2,3,3,3,5}
Sumatoria de X*Y =23
indicando así que la neurona puede estar más o menos activada. A que te refieres con esto?
En el caso he aplicado un 'or' porque voy 'sumando' es decir 2d (01 en binario) 'or' 5d (1001 5 en binario) = 6d (1011 6 en binario).
a)1º (1*1) + 2º(2*1) + 3º(2*1) + 4º(2*1) + 5º(2*1) + 6º(3*1) + 7º(3*1) + 8º(3*1) + 9º(5*1)Se uso OR y el operador +
B)1º (*1) + 2º(*2) + 3º(*2) + 4º(*2) + 5º(*2) + 6º(*3) + 7º(*3) + 8º(*3*1) * 9º(*1)
Sobre funciones AND, OR, XORSi.
AND(*): Devolvera "1" solo si todas las entradas son igual a 1, para todos los demas caso retornara "0".
OR(+): Devolvera "1" siempre y cuando haiga un "1" en algunas de las entradas, solo si todas las entradas son "0" devolvera "0".
XOR: Devolvera "1" siempre y cuango ambas entradas sean diferentes. Aqui tengo otra duda, ¿el XOR solo sirve para comparar 2 valores o entradas?La primera parte si, la 2ª no. Ya te expliqué que cuando hay más de 2 valores, el resultado se puede totalizar fácilmente sumando los '1' y si es impar da '1' si es par da '0'. Esto no es así porque sí, sino que es la consecuencia directa. Te lo reexplico otra vez con una perspectiva distinta.
Citar[color] indicando así que la neurona puede estar más o menos activada.[/color]A que te refieres con esto
No entiendo esto por favor te agradeceria si me lo explicas nuevamente. PD: Se que 2 en decimal es "0010" en binario y que "5" en decimal es 0101 en binario y que "6" en decimal es "0110" en binario. ¿Quizas no te refieres a eso?Si, es correcta tu interpretación.CitarEn el caso he aplicado un 'or' porque voy 'sumando' es decir 2d (01 en binario) 'or' 5d (1001 5 en binario) = 6d (1011 6 en binario).
Hay operaciones lógicas y operaciones aritméticas, las operaciones aritméticas son suma y multiplicación hazlo con 1 y 0 en base decimal, el resultado es el mismo en binario. La suma y productos lógicos equivale a la suma y productos matemáticos de signos donde el '+' sería el 1 y el '-' el '0'. Esto es pura lógica matemática.Citara)1º (1*1) + 2º(2*1) + 3º(2*1) + 4º(2*1) + 5º(2*1) + 6º(3*1) + 7º(3*1) + 8º(3*1) + 9º(5*1)
B)1º (*1) + 2º(*2) + 3º(*2) + 4º(*2) + 5º(*2) + 6º(*3) + 7º(*3) + 8º(*3*1) * 9º(*1)
Se uso OR y el operador +
Se uso AND y el operador *
En conclucion para AND se usa el operador "+" y para OR se usa el operador "*". Es correcto ¿?
aun sigo con algunas dudas, con lo que respecta a la funcion umbral o valor umbral, tengo entendido que para que una neurona se active el valor de la suma de las entradas por los pesos debe ser lo mas proximo a ese valor umbral, que de cierto tiene esto¿?.Esto es cierto pero puede ser malinterpretado. No debe confundirse más próximo al umbral con el valor más alto, se comenta esto a continuación: Es decir para explicar y entender la teoría es válido para la práctica no es necesario... un ejemplo: supongamos que obtengo un valor de 12, en teoría sería prácticamente no activada '0', pero que pasa si ahora yo hago una negación, es decir que ese resultado deba pasar por un filtro posterior que niega el resultado, el resultado sería que el valor arrojado debe ser restado del rango máximo, por tanto sería 100-12=88, sin embargo si hemos de negar todas las salidas, entonces es mejor operar con 'lógica inversa' en las salidas, es decir el valor umbral será el mínimo. Esto contradice de entrada la afirmación de valor máximo, sin embargo es acorde con la consecuencia resultante. Entonces sólo interpretando correctamente el significado de 'umbral' como el más próximo y no como el valor más alto, es cuando se interpreta correctamente. Así diremos que si para cierta activación el umbral máximo es valor 0, expresa que el valor más próximo es el idóneo para activarse e inversamente con el caso opuesto. Y saliendo de la lógica discreta, si decimos que el umbral sería 50 (sobre un rango de 0-99), puede chocar de entrada si pensamos en el valor, así 40 está tan distante como 60, para representarlo en un rango de 'menos' a 'más' lo único que hay que hacer es digujar una gráfica por ejemplo traza una gráfica con forma de '^' el ´vertice es 50, el inicio es 0 el final es 99, ahora puedes recalibrar estos valores en base a su altura, y entonces se entiende el valor más próximo al 'umbral' es el valor más alto.
1)En una Neurona tanto los pesos como el BIAS se inicializar aleatoriamente.Es frecuente pero no es indipensable, por lo general es así de entrada. Pero puede de entrada contener cierto valor si se sabe cuales han de ser estos. Por ejemplo una neurona que ya ha aprendido a reconocer caracteres ópticos de imprenta, puede ser activada con esos valores para pasar ahora a reconocer mi grafía, es mejor que nada, que empezar de cero.
2)Es el proceso de ajuste del BIAS y PESOS el cual permite aprender a la Neurona.Exactamente. Lo cual se hace comparando la salida con el valor correcto. Es como el proceso de estudio de un escolar: le hacemos una pregunta, el da una respuesta, luego el profesos revisa la respuesta, lo que significa que lee la respuesta del niño y la compara con la respuesta correcta, si está mál indica porqué está mal, lo que equivale a 'esperar' que el niño tome esos datos para retroalimentar su conocimiento y poderlo usar para futuras cuestiones.
3)Cuando se ajusta un peso, se trata de llevar el valor del mismo al valor del BIAS.Esto es un ajuste fino, si resultara ala primera nuestras neuronas aprenderían muy rápido, pero el diseño de las mismas es muy elemental, pero sí, asi es.
4)Para que la neurona se excite se evalua la salida utilizando una funcionBasicamente es así. Que función se aplique siempre dependeráde ciertos factores... estoy aprendiendo o 'trabajando' y sobretodo el enfoque y dedicación, si una neurona se especializa en una cuestión determinada su función será posibllemente más específica.
En este ejemplo ya no hay una COnstante de aprendizajePara un caso generico no puede proveerse cualquier cosa, si al niño se le pregunta '¿ Es la Luna más grande que la Tierra?', la idoneidad de su respuesta debe valorarse con la respuesta de esa pregunta, no con una respuesta cualquiera de otra pregunta, por ejemplo de '¿3 más 6 son 10?' aunque en el caso casulamente den el mismo valor se hace un aprendizaje 'sucio'. Se acepta el hecho de que si se introduce 'basura' a la neurona sale 'basura' de la neurona. No entiendo exactamente que quieres decir con constante de aprendizaje... creo suponer que quieres 'dar nota final' al niño... esto sólo tiene sentido a efectos estadísticos, del mismo modo que al niño el valor de una nota no le reporta conocimiento sino que solo le califica como más o menos apto, tu puedes mientras compruebas la eficiencia de la neurona que diseñes totalizar las preguntas realizadas y las respuestas acertadas, después de 10, después de 100, después de 1000 depueés de 10.000, etc... en función de la complejidad deja de ser 'tonta' a partir de cierto elevado nº de pasos. Compara luego cada 1000 las respuestas afirmativas para ir describiendo una curva de aprendizaje y ver si vas bien o debes hacer 'ajustes manuales' cual mecánico cuando ensambla un conjunto de piezas, que debe apretar cada cosa y calibrarlo bien para que el conjunto opere de la forma más óptima.
¿Como se que funcionde transferencia usare para determinada neurona?La función de transferencia se elige en base a las situaciones que deba resolver.
¿Se pueden usar mas de una funcion para una neurona o solo se puede usar una?No existe un límite teórico por el que una salida deba ser realizado de un modo fijo.
¿Cuando usare Harlim, o Hardlims..etc..etc...?Por las características de cada uno, tal como se indica en el primer párrafo. Por ejemplo: El limitador fuerte (hardlim) lleva a 2 únicas salidas, '0 ó '1' lo que esto implica es que una neurona con este limitador divide en 2 categorías según las entradas. Por tanto cualquier patrón en el que se desee fijar 2 divisiones es un destino de esta función. En cambio el limitador fuerte simétrico (hardlims) produce resultados con valores entre '1' y '-1' .
Agradeceria si pusieras un ejemplo completo con una o si es posible para ti con mas neuronas. Asi seria mas sencillo para empezar a plantearme problemas e ir poniendo en practica lo que en estos dias e aprendido, Gracias. Y disculpa si es mucho pedirEs mucho pedir, pero sólo por mi escaso tiempo libre. Desafortunadamente estoy desplazado y aquí no tengo ni mis apuntes ni mis libros para siquiera hacer una transcripción rápida. Tengo pensado postear un problema completo y explicado detelladamente, pero reconozco que me llevará más tiempo del que quisiera, tengo bastante trabajo y casi la mitad de mi tiempo libre lo dedico a ojear el foro. Si, como creo tienes prisa por 'meterle mano', te recomiendo que hagas búsquedas intensivas en la red que sin duda debe haber decenas de trabajos compartidos y a un nivel asequible para empezar.
¿Una neurona siempre se ativa?. Es decir, si tuviera una RNA con 1 capa de entrada (3 neuronas), 1 oculta (2 neuronas) y 1 salida. Para que esa neurona de salida bote un resultado es necesario que todas las anteriores (entrada y salida) hallan botado un resultado de 1, es decir si alguna boto resultado de 0 la salida sera 0No, no... esto no es así.