Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Estadísticas del foro
» Miembros: 96,248
» Último miembro: Noé Alonso
» Temas del foro: 11,567
» Mensajes del foro: 42,166

Estadísticas totales

Usuarios en línea
Actualmente hay 44 usuarios en línea.
» 0 miembro(s) | 44 invitado(s)

Últimos temas
MI ANTENA PARABOLICA 34dB...
Foro: Fabricacion Antenas Wireless
Último mensaje por: pued
4 horas
» Respuestas: 1
» Vistas: 36
Panel HYPERLINK 12dBi, No...
Foro: Antenas Sectoriales/Panel Wireless
Último mensaje por: pued
4 horas
» Respuestas: 20
» Vistas: 20,956
Historico: Hilo Antenas S...
Foro: Antenas Sectoriales/Panel Wireless
Último mensaje por: pued
4 horas
» Respuestas: 2
» Vistas: 22,901
Wifi-Babel, Monitor de re...
Foro: Software Wireless
Último mensaje por: yorvel77
5 horas
» Respuestas: 25
» Vistas: 4,001
Panel Rusa 15dBi
Foro: Antenas Sectoriales/Panel Wireless
Último mensaje por: roly3055
Ayer, 16:45
» Respuestas: 0
» Vistas: 22
Materiales de construccio...
Foro: Comunidad Cuba Wireless
Último mensaje por: roly3055
Ayer, 15:29
» Respuestas: 2
» Vistas: 972

 
Thumbs Up Libros: Redes Neuronales
Enviado por: Zero13 - 28-01-2017, 13:03 - Foro: Redes Neuronales - Sin respuestas

Hace tiempo navegando encontré una buenísima biblioteca de libros de Redes Neuronales, con temas:

   

Aqui teneis el enlace.... Wink

https://onedrive.live.com/?authkey=%21AC...4BF29F1274

Imprimir

Lightbulb Inteligencia Artificial Aumentada
Enviado por: Zero13 - 28-01-2017, 12:55 - Foro: Inteligencia Artificial - Sin respuestas

   



Archivos adjuntos
.pdf   Raul Benitez y otros. Inteligencia Artificial Aumentada.pdf (Tamaño: 2.23 MB / Descargas: 2)
Imprimir

Lightbulb Inteligencia Artificial y Python
Enviado por: Zero13 - 28-01-2017, 12:48 - Foro: Inteligencia Artificial - Sin respuestas

En esta ocasión aporto un libro pdf que encontré muy interesante y básico para empezar a entender la programación en Python (sobre todo..) y en relación con la inteligencia artificial.

   

Contenido del Libro:

En este módulo aprenderemos las bases del lenguaje de programación Python. Este módulo no pretende ser una guía exhaustiva de todas las características que este lenguaje de programación nos ofrece, sino que está enfocado a introducir al estudiante en el entorno Python. El objetivo del texto será ayudar a comprender los ejemplos que se exponen en los módulos de teoría, y proporcionar una base que permita al estudiante elaborar las distintas actividades que el curso requiere.

A nivel de pre-requisitos, no asumiremos ningún conocimiento previo de Python. Sin embargo, es muy importante tener conocimientos de algún lenguaje de programación previo (C, C++, Java, ...), puesto que los conceptos elementales (variable, bucle, función,...) no se tratarán en profundidad en este módulo.


El lenguaje Python fue diseñado a finales de la década de los ochenta por Guido van Rossum. Se trata de un lenguaje de programación de muy alto nivel, con una sintaxis muy clara y una apuesta firme por la legibilidad del código. Sin duda es un lenguaje de programación muy versátil, fuertemente tipado, imperativo y orientado a objetos, aunque contiene también características que lo convierten en un lenguaje de paradigma funcional.



.pdf   Inteligencia-Artificial-Lenguaje-Python.pdf (Tamaño: 271.32 KB / Descargas: 1)

Imprimir

Lightbulb Descubriendo la Inteligencia Artificial por José Luis Iglesias Feria
Enviado por: Zero13 - 28-01-2017, 12:35 - Foro: Inteligencia Artificial - Sin respuestas

Desde hace algún tiempo sigo este Curso de "Descubriendo la Inteligencia Artificial" impartido por Jose Luis Iglesias, empezando por las bases y entrando en detalle en todas las Áreas de la Inteligencia Artificial y que sin duda os recomiendo:

   

Canal Youtube:
https://www.youtube.com/channel/UCrEM9nM...tgDyTXljFQ

Blog de Jose Luis:
http://descubriendolaia.blogspot.com.es/

Os dejo el primer vídeo en el hilo... Smile

Vídeo presentación de mi curso de desarrollo de aplicaciones de Inteligencia Artificial, en el que explico en qué va a consistir, los requisitos para seguirlo y las razones que me han llevado a ello.





A día de hoy.. ya va por el Capitulo 135, os recomiendo como es lógico empezar por el primero Big Grin

Imprimir

  Acertando quinielas con redes neuronales
Enviado por: Zero13 - 28-01-2017, 12:15 - Foro: Redes Neuronales - Respuestas (2)

Acertando quinielas con redes neuronales

fuente: naukas.com

   

El uso de redes neuronales de distintos tipos está cada vez más extendido en nuevas tecnologías, sobre todo asociado a inteligencia artificial o reconocimiento de formas. Hoy en día se utilizan redes neuronales para reconocimiento y etiquetado de imágenesreconocimiento de voz y traducción instantánea, en predicción del cáncer, y en tareas menos trascendentes como  el nuevo algoritmo de YouTube que elige automáticamente la miniatura más adecuada de un vídeo o un programa que escribe artículos periodísticos.

Reconocer formas, objetos, patrones e incluso realizar predicciones sencillas es algo que nuestro cerebro aprende a hacer desde pequeño, pero cuando intentamos que un ordenador lo emule no resulta nada sencillo. Por ejemplo, seguro que no tendrás problemas en identificar los números que aparecen en la siguiente imagen.

   

Nuestro cerebro empezó a los pocos años de vida a reconocer números y lo hizo mediante un entrenamiento en el cual se nos mostraban imágenes de, por ejemplo, el número 2 y se nos indicaba su significado. Mediante ejemplos de números 2 escritos de distintas formas se establecieron en nuestro cerebro las conexiones neuronales adecuadas que ahora nos permiten reconocer sin problemas este número.

Sin embargo, esta es un tarea que no es fácil para un ordenador. Y es que no resulta sencillo escribir código con instrucciones que reconozcan que un 2 es un dos. O que cuando reciba la imagen de una silla de diseño sepa que es una silla y no otro mueble (bueno, a veces eso es difícil hasta para un humano).

   

Las redes neuronales artificiales –se nombran así para distinguirlas de las redes neuronales biológicas, aunque a partir de ahora hablaremos en general de redes neuronales– tratan de alguna forma de copiar el comportamiento de las neuronas de nuestro cerebro y su forma de aprendizaje. En la siguiente figura podéis ver la estructura básica de una neurona, en la que hay una serie de dendritas que reciben señales de otras neuronas mediante conexiones sinápticas.

   

En el cerebro, las neuronas establecen distintas conexiones entre ellas y cada una de estas células es una unidad independiente que emite una señal de salida a través del axón en función de las señales de entrada que recibe a través de las dendritas. Los varios centenares de billones de conexiones entre los miles de millones de neuronas que existen en nuestro cerebro son los que permiten, entre otras funciones, el reconocimiento de formas. De hecho, distintas partes del cerebro se encargan de procesar diferente información mediante una estructura jerárquica de capas de neuronas que varían en su nivel de abstracción.

La idea detrás de una red neuronal artificial es simular este comportamiento biológico. Para ello se emula con fórmulas matemáticas una neurona a la que van a llegar señales de entrada con distintos pesos, que se sumarán, y se emitirá una señal de salida que dependerá de una determinada función de activación.

   

Una red neuronal artificial estaría formada por un conjunto de neuronas como la anterior conectadas entre sí, y que podríamos someter a un proceso de aprendizaje (igual que con nuestro cerebro) para enseñarle a reconocer formas o hacer predicciones. Al igual que con las neuronas cerebrales, también se puede construir una estructura jerárquica en capas de neuronas que procesan la información básica antes de transmitirla a una capa más especializada.


Voy a intentar con este artículo que tengas una idea muy básica del funcionamiento de las redes neuronales y para ello explicaré de forma sencilla cómo construir una red neuronal que prediga el resultado de un partido de fútbol (o al menos lo intente) y nos permita acertar quinielas (o no).

Empieza el partido

Para simplificar el ejemplo voy a suponer que como resultado de un partido de fútbol sólo puede ganar uno de los dos equipos, excluyendo por tanto el empate. Esta situación tampoco es tan irreal ya que serviría, por ejemplo, para las fases finales de competiciones como el Mundial de fútbol, la Eurocopa o la Liga de Campeones.

Empezaré con una suposición muy básica: tener en cuenta el número de goles marcados por cada equipo en partidos anteriores. Para facilitar los cálculos vamos a introducir una variable normalizada (¡no te asustes!), que será el número de goles del equipo local (gL)  respecto a la suma de goles de ambos equipos (gL+gP), es decir,


.png   6.png (Tamaño: 1.57 KB / Descargas: 27)

Pongamos un ejemplo sencillo. Si el equipo local lleva marcados 20 goles y el visitante 30, el valor de xg sería 0.4; si el número respectivo de goles fuera 30 y 10, sería 0.75. Un valor de xg por encima de 0.5 implica que el equipo local ha marcado más goles, y si es por debajo ha marcado más el visitante (la ecuación inferior es para evitar la división por cero en el caso de 0 goles de ambos equipos). Nuestro primer pronóstico será que xg nos dirá la probabilidad de que gane el equipo local; en los ejemplos anteriores, las probabilidades respectivas serían del 40% y el 75%.

Con esto podemos diseñar nuestra primera red neuronal:

   

Esta red únicamente consta de una neurona que recibe la variable xg y devuelve como resultado la probabilidad de que gane el equipo local. Para ello, esta neurona aplica la siguiente función lineal f(x) (para los quisquillosos, realmente sería f(xg)):


[Imagen: latex.php?latex=f%28x%29+%3D+x_g&bg=ffff...000000&s=0]

Esta función se limita a devolver el valor de la variable de entrada, pero podrían utilizarse funciones más complejas (y más adecuadas) como por ejemplo una función sigmoide.

Si te parece bien vamos a llamar también neuronas a los datos introducidos, aunque son neuronas que no reciben información, sólo la emiten.

   

Ya te puedes imaginar que con esta red, utilizando sólo los goles marcados por cada equipo, vamos a acertar más bien poco. Lo que hace esta red es predecir que es más probable que gane el equipo que haya marcado más goles antes del partido: ¡no hacía falta tanta historia para eso!  Quizás necesitaríamos más información, como el número de goles en contra (xc), los tiros a puerta (xt) o la posesión de balón (xp). Vamos a incorporar estos datos a nuestra red. Ten en cuenta que todos los datos que añadamos estarán normalizados igual que el número de goles (el valor estará entre 0 y 1, siendo 0.5 cuando ambos equipos presentan el mismo valor). Nuestra nueva red ahora podría parecerse a esta:

   

¿Por qué he añadido en las conexiones de las neuronas de entrada con la neurona central valores de 0.25? Básicamente, porque al pasar de una neurona a cuatro –y si quiero que la fórmula de la neurona que me da el resultado siga representando una probabilidad– he de promediar los valores de entrada multiplicando por un peso de ¼ cada uno de ellos. Ahora nuestra función f(x) sería:


[Imagen: latex.php?latex=%5Cdisplaystyle+f%28x%29...000000&s=0]

Pero esto no parece adecuado, porque hay información que parece que será más relevante que otra a la hora de determinar un ganador. Por ejemplo ¿es más importante el número de goles marcados o el número de tiros a puerta? Lo que podemos hacer es dar distintos pesos a estas variables.

   

Ahora nuestra función f(x) (recuerda que nos da la probabilidad de que el equipo local gane el partido) dependería de los pesos de cada variable de entrada según esta expresión matemática:


[Imagen: latex.php?latex=%5Clarge+f%28x%29+%3D+x_...000000&s=0]

Ahora sólo tenemos que dar valores a cada uno de los pesos de la figura anterior y con las estadísticas de cada equipo en la mano podemos empezar a hacer pronósticos de partidos (y a forrarnos invirtiendo sólo 1 euro en una quiniela). Si hacemos esto de forma arbitraria es probable que no acertemos muchos resultados, ya que no sabemos a priori qué combinación de valores w es la más adecuada. ¿Qué hacemos entonces?

Entrenando antes del partido

Para obtener los coeficientes de la red neuronal debemos entrenarla. Este proceso es el equivalente al del aprendizaje que nos permite reconocer números desde que somos pequeños: observar varias formas de números acompañadas de su interpretación correcta para que nuestro cerebro realice la asociación adecuada.

¿Y cómo entrenar nuestra red neuronal para pronosticar partidos? Pues lo podemos hacer dando los resultados de las estadísticas previas al enfrentamiento entre dos equipos junto con el resultado del partido. Así, si nuestra red analiza el partido Levante-Celta, predice que gana el Celta, pero el resultado real es que el Levante es el ganador, podemos ajustar ligeramente los valores de los pesos de las variables de entrada para que la red dé un resultado más semejante al esperado. Este cálculo de las variables durante el entrenamiento se consigue mediante un procedimiento matemático de búsqueda de mínimos de funciones, normalmente con el método conocido como descenso por gradiente. Para que el entrenamiento sea efectivo, debemos aportar a la red neuronal un gran número de ejemplos para que estime de forma correcta y estable los parámetros de la red.


Una vez entrenada con suficientes partidos, nuestra red ya está preparada para pronosticar resultados de encuentros por disputar y, sin duda, acertar los 15 encuentros de nuestra quiniela. ¿O aún no?

Escondiendo neuronas

La red neuronal que hemos diseñado es extremadamente sencilla. Con sólo una neurona activa resulta difícil aprender toda la complejidad que hay detrás de cualquier forma o, como en este caso, la información necesaria para predecir resultados de competiciones deportivas. Lo mismo ocurre en nuestro cerebro: con una sola neurona no podríamos recordar toda la información sobre, por ejemplo, la cara de una persona.

Siguiendo con el ejemplo del cerebro, podemos mejorar nuestra red neuronal futbolística añadiendo más neuronas. ¿Dónde? Una opción sería añadir más información de entrada, como el número de tarjetas amarillas, rojas, número de lesionados, faltas por partido, penaltis, etc. Pero eso no solucionaría el problema: seguiríamos teniendo una sola neurona para procesar toda la información.

Otra cosa que podemos hacer es crear nuevas neuronas que gestionen información relacionada. Por ejemplo, parece natural agrupar el número de goles marcados, el número de tiros a puerta y el número de penaltis. Así, podríamos utilizar una neurona que recibiera la información de entrada de estas tres variables y emitiera una salida para la neurona que calcula el resultado. De la misma forma, podríamos añadir nuevas neuronas intermedias que gestionaran distintos grupos de variables de entrada. A esta nueva capa de neuronas, situada entre las variables de entrada y la neurona que da el resultado final, se la denomina capa oculta.

Imprimir

Lightbulb Que son las Redes Neuronales Artificiales?
Enviado por: Zero13 - 28-01-2017, 11:59 - Foro: Redes Neuronales - Respuestas (1)

Redes Neuronales Artificiales

Según Wikipedia... Enlace Original

   

Las redes neuronales (también conocidos como sistemas conexionistas) son un enfoque computacional, que se basa en una gran colección de unidades neurales (también conocido como neuronas artificiales ), para modelar libremente la forma en que un cerebro biológico resuelve problemas con grandes grupos de neuronas biológicas conectados por los axones. Cada unidad neuronal está conectado con otros, y los enlaces se pueden aplicar en su efecto sobre el estado de activación de unidades neuronales conectadas. Cada individuo de la unidad neuronal puede tener una función de suma, que combina los valores de todas las entradas juntos. Puede haber una función umbral o función de limitación en cada conexión y en la propia unidad: de tal manera que la señal debe superar el límite antes de la propagación a otras neuronas. Estos sistemas son auto-aprendizaje y formación, en lugar de programar de forma explícita, sobresalen en las zonas donde la solución o función de detección es difícil de expresar en un programa de ordenador tradicional.

Las redes neuronales suelen consistir en varias capas o un diseño de cubo, y la ruta de la señal atraviesa de adelante hacia atrás. Propagación hacia atrás es donde se utiliza la estimulación hacia adelante o en el "frente" para restablecer los pesos de las unidades neuronales y esto a veces se realiza en combinación con una formación en la que se conoce el resultado correcto. Las redes modernas son un poco más libres en el sentido de que fluye en términos de estimulación e inhibición con conexiones que interactúan de una manera mucho más caótica y compleja. Redes neuronales dinámicas son lo más avanzadas en que pueden dinámicamente, formar nuevas conexiones e incluso nuevas unidades neuronales.

El objetivo de la red neuronal es resolver los problemas de la misma manera que el cerebro humano, aunque varias redes neuronales son más abstractas. Proyectos de redes neurales modernas suelen trabajar con unos pocos miles a unos pocos millones de unidades neuronales y millones de conexiones, que sigue siendo varios órdenes de magnitud menos complejo que el cerebro humano y más cercano a la potencia de cálculo de un gusano.

Nuevas investigaciones sobre el cerebro a menudo estimulan nuevos patrones en las redes neuronales. Un nuevo enfoque está utilizando conexiones que se extienden mucho más allá y capas de procesamiento de enlace en lugar de estar siempre localizado en las neuronas adyacentes. Otra investigación está estudiando los diferentes tipos de señal en el tiempo que los axones se propagan, como el aprendizaje profundo , interpola una mayor complejidad que un conjunto de variables booleanas que son simplemente encendido o apagado.

Las redes neuronales se basan en los números reales, con el valor del núcleo y del axón siendo típicamente una representación entre 0,0 y 1.

Un aspecto interesante de estos sistemas es que son impredecibles en su éxito con el autoaprendizaje. Después del entrenamiento, algunos se convierten en grandes solucionadores de problemas y otros no funcionan tan bien. Con el fin de capacitar a ellos, varios miles de ciclos de interacción que se producen normalmente.

redes neuronales se han utilizado para resolver una amplia variedad de tareas, como la visión por computador y reconocimiento de voz , que son difíciles de resolver usando ordinaria de programación basado en reglas.

Históricamente, el uso de modelos de redes neuronales marcó un cambio de dirección a finales de los años ochenta de alto nivel, que se caracteriza por sistemas expertos con conocimiento incorporado en si-entonces las reglas, a bajo nivel de aprendizaje automático , caracterizado por el conocimiento incorporado en los parámetros de un modelo cognitivo con algún sistema dinámico .

Imprimir