Archivo de la etiqueta: Inteligencia Artificial

Redes Neuronales Artificiales

Historia de las Redes Neuronales

De los intentos realizados en este sentido se han llegado a definir las líneas fundamentales para la obtención de máquinas inteligentes: En un principio los esfuerzos estuvieron dirigidos a la obtención de autómatas, en el sentido de máquinas que realizaran, con más o menos éxito, alguna función típica de los seres humanos. 
En 1936 Alan Turing estudio el cerebro como una forma de ver el mundo de la computación. Sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch un neurofisiólogo y Walter Pitts un matemático quienes en 1943 lanzaron una teoría acerca de la forma de trabajar de las neuronas. Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 
Años más tarde en 1949 Donald Hebb escribió un importante libro en el que explicaba los procesos del aprendizaje desde un punto de vista psicológico, desarrollando una regla de como el aprendizaje ocurría. Su idea fue que el aprendizaje ocurría cuando ciertos cambios en una neurona eran activados. Los trabajos de Hebb formaron las bases de la Teoría de las Redes Neuronales.
Luego en 1957 Frank Rosenblatt desarrolla el Perceptrón, Esta es la red neuronal más antigua utilizándose hoy en día para aplicación como reconocedor de patrones. Este modelo era capaz de generalizar, es decir, después de haber aprendido una serie de patrones podía reconocer otros similares, aunque no se le hubiesen presentado anteriormente. Sin embargo, tenía una serie de limitaciones, por ejemplo, su incapacidad para resolver el problema de la función OR-exclusiva y, en general, era incapaz de clasificar clases no separables linealmente. 
Diez años más tarde Stephen Grossberg realizó una red llamada Avalancha, que consistía en elementos discretos con actividad que varía en el tiempo que satisface ecuaciones diferenciales continuas, para resolver actividades como reconocimiento continúo de habla y aprendizaje de los brazos de un robot. 
En 1969 Marvin Minsky y Seymour Papert probaron (matemáticamente) que el Perceptrón no era capaz de resolver problemas relativamente fáciles, tales como el aprendizaje de una función no-lineal. Esto demostró que el Perceptrón era muy débil, dado que las funciones no-lineales son extensamente empleadas en computación y en los problemas del mundo real. 
Después de varios avances en 1980 Kunihiko Fukushima desarrolló un modelo neuronal para el reconocimiento de patrones visuales.
Al instante en 1986 – David Rumelhart y G. Hinton redescubrieron el algoritmo de aprendizaje de propagación hacia atrás backpropagation. 
En la actualidad, las redes neuronales se componen de numerosas capas de procesamiento, en las cuales se emplean métodos para obtener modelos de representación de los datos de entrada, a través de módulos simples no lineales de representación, que se encargan de extraer las características y patrones de los datos en bruto y transferirlas a capas posteriores más abstractas. Esta forma de trabajar, dota a la red la capacidad de deducir por sí misma, la mejor manera de representar los datos, sin necesidad de haber sido programada explícitamente para ello. 
La forma más frecuente de aprendizaje automático, es el aprendizaje supervisado, en el cual el algoritmo requiere de una función objetivo, para ajustar los pesos de modo tal que las salidas del algoritmo se acerquen a la meta. De tal forma, las redes neuronales de aprendizaje supervisado, necesitan de una función objetivo, la cual es comparada con las salidas de la red, para calcular el valor de la función de costos, y así poder ajustar los pesos de las capas anteriores, de modo tal que en cada iteración se disminuya el error. 
Debido a que una red neuronal profunda puede tener millones de neuronas, y centenares de millones de conexiones (incluso miles de millones), resulta impráctico ajustar uno a uno los pesos, incluso se puede intentar calcular el error mediante un procedimiento analítico empleando derivadas, pero dado el elevado número de variables de la red el proceso sería extremadamente complicado. Es por eso que, el efecto de aprendizaje (reducción del error) se consigue empleando el método de gradiente descendente.
Función de Activación 
Las funciones de activación son una idea tomada de la Biología y que trata de generalizar el hecho de que las neuronas biológicas no son sumadores y transmisores de impulsos, sino que tienen un mecanismo que decide si se activan o no, en función de la entrada que reciben. Es al activarse cuando envían una señal a través de su axón a otras neuronas que la siguen en la cadena de procesamiento.
Que problemas solucionan las redes neuronales
Optimización

  • Determinar una solución que sea óptima
  • Muy utilizado en la gestión empresarial (niveles adecuados de tesorería, de existencias, de producción)

Reconocimiento 

  • Se entrena una Red Neuronal Artificial con entradas como sonidos, números, letras y se procede al test presentando esos mismos patrones con ruido.

Generalización

  • La Red Neuronal Artificial se entrena con unas entradas y el test se realiza con otros casos diferentes.
  • Clasificación

                  Asignar a cada caso su clase correspondiente (préstamos) 

  •         Predicción

                  Lo que más interés despierta (ratio)

Ejemplos 

  •          Conversión de texto escrito a lenguaje hablado.
  •          Compresión de imágenes
  •         Reconocimiento de escritura manual (japonesa)
  •          Visión artificial en robots industriales (inspección de etiquetas, clasificación de                            componentes)

Clasificación respecto a la TopologíaLa topología o arquitectura de una red consiste en la organización y disposición de las neuronas en la red. Las neuronas se agrupan formando capas, que pueden tener muy distintas características. Además las capas se organizan para formar la estructura de la red. Se puede observar en la siguiente figura.
La jerarquía de las redes neuronales :

Donde podemos ver que las neuronas se agrupan para formar capas y las capas se unen entre ellas formando redes neuronales. Para clasificar por la topología usaremos el número de capas en Redes Monocapas o Redes Multicapas.
Redes Monocapas

Las redes monocapa son redes con una sola capa, para unirse las neuronas crean conexiones laterales para conectar con otras neuronas de su capa. Las redes más representativas son la red de Hopfield, la red BRAIN-STATE-IN-A-BOX o memoria asociativa y las maquinas estocásticas de Botzmann y Cauchy.

Entre las redes neuronales monocapa, existen algunas que permiten que las neuronas tengan conexiones a si mismas y se denominan autorecurrentes.

Las redes monocapa han sido ampliamente utilizada en circuitos eléctricos ya que 
debido a su topología, son adecuadas para ser implementadas mediante hardware, usando matrices de diodos que representan las conexiones de las neuronas.
Redes Multicapas
Las redes multicapa están formadas por varias capas de neuronas (2,3…). Estas redes se pueden a su vez clasificar atendiendo a la manera en que se conexionan sus capas.

Usualmente, las capas están ordenadas por el orden en que reciben la señal desde la entrada hasta la salida y están unidas en ese orden. Ese tipo de conexiones se denominan conexiones feedforward o hacia delante.

Por el contrario existen algunas redes en que las capas aparte del orden normal algunas capas están también unidas desde la salida hasta la entrada en el orden inverso en que viajan las señales de información. Las conexiones de este tipo se llaman conexiones hacia atrás, feedback o retroalimentadas.

Redes con conexiones hacia adelante:

Como decíamos antes, Este tipo de redes contienen solo conexiones entre capas hacia delante. Esto implica que una capa no puede tener conexiones a una que reciba la señal antes que ella en la dinámica de la computación.
Ejemplos de estas redes son Perceptron, Adaline, Madaline, Backpropagation y los modelos LQV y TMP de Kohonen.
Redes con conexiones hacia atrás:

Este tipo de redes se diferencia en las anteriores en que si pueden existir conexiones de capas hacia atrás y por tanto la información puede regresar a capas anteriores en la dinámica de la red. Este Tipo de redes suelen ser bicapas.
Ejemplos de estas redes son las redes ART, Bidirectional Associative Memory (BAM) y Cognitron.

Nodos de IA

Ámbito económico.

La aplicación de IA en los procesos de las actividades productivas y de servicios representará un salto cualitativo en el crecimiento de las economías nacionales y supranacionales. En este sentido, debe diseñarse de qué manera las instituciones pueden ayudar a las empresas, grandes y pequeñas, a utilizar estas herramientas y competir en un mundo global, facilitando la investigación, la innovación y la explotación de la IA.

Ámbito educativo.

Es necesario abordar nuevas fórmulas educativas para el conjunto de la sociedad, especialmente para las nuevas generaciones. La ciudadanía debe entender el funcionamiento de los procesos algorítmicos para poder comprender su interrelación diaria con la IA y poder tomar decisiones informadas. Además, es importante considerar aproximaciones educativas a la IA no meramente desde el campo técnico, sino también desde las ciencias sociales, políticas o económicas, las humanidades, las artes, etc.

Ámbito laboral

Uno de los grandes interrogantes de este proceso es el grado de automatización de los procesos productivos. La robotización creciente no sólo afecta al sector industrial, también al de los servicios. Deben asegurarse herramientas para garantizar una transición en el mercado de trabajo que pueda cubrir la demanda de fuerza laboral procedente de sectores automatizados.

Ámbito legal

La proliferación de sistemas autónomos o semiautónomos, dirigidos por algoritmos de IA, como es el caso de los coches autónomos, provoca dudas sobre la determinación de la responsabilidad en caso de que los resultados sean dañinos o infrinjan las normas. Cuestiones como quién es responsable de efectos indeseados en una operación algorítmica (el diseñador, el propietario del algorítmico o la empresa que lo aplica a su negocio) deben determinarse para asegurar la seguridad de la apuesta por la IA.

Ámbito político y democrático

Las plataformas digitales se convirtieron en infraestructuras públicas donde la ciudadanía se informa, opina y decide respecto a debates públicos e institucionales. Las técnicas de IA demostraron ser una herramienta poderosa para modificar el curso de acontecimientos políticos como, por ejemplo, referéndums o elecciones. Las sociedades deben prestar especial atención al efecto público de contenidos automatizados que pueden ser, cada vez más, modificados o incluso creados por algoritmos.

Ámbito social

Parte del desarrollo acelerado de la IA en los últimos años es debido a la proliferación de servicios digitales utilizados por miles de millones de personas. La ciudadanía, a través de su actividad, es generadora de grandes cantidades de datos sobre su actividad, sus gustos, patrones de vida, sus relaciones, opiniones y sentimientos. Con todo, existe un desconocimiento profundo por parte de esta ciudadanía sobre cómo funcionan estos sistemas y de la utilización que se hace de sus datos, convirtiéndolos a menudo en consumidores y generadores de esta tecnología sin pleno conocimiento