Las redes neuronales artificiales (también conocidas como sistemas conexionistas) son un modelo computacional vagamente inspirado en el comportamiento observado en su homólogo biológico1. Consiste en un conjunto de unidades, llamadas neuronas artificiales, conectadas entre sí para transmitirse señales. La información de entrada atraviesa la red neuronal (donde se somete a diversas operaciones) produciendo unos valores de salida. Cada neurona está conectada con otras a través de unos enlaces. En estos enlaces el valor de salida de la neurona anterior es multiplicado por un valor de peso. Estos pesos en los enlaces pueden incrementar o inhibir el estado de activación de las neuronas adyacentes. Del mismo modo, a la salida de la neurona, puede existir una función limitadora o umbral, que modifica el valor resultado o impone un límite que se debe sobrepasar antes de propagarse a otra neurona. Esta función se conoce como función de activación. Estos sistemas aprenden y se forman a sí mismos, en lugar de ser programados de forma explícita, y sobresalen en áreas donde la detección de soluciones o características es difícil de expresar con la programación convencional. Para realizar este aprendizaje automático, normalmente, se intenta minimizar una función de pérdida que evalúa la red en su total. Los valores de los pesos de las neuronas se van actualizando buscando reducir el valor de la función de pérdida. Este proceso se realiza mediante la propagación hacia atrás. El objetivo de la red neuronal es resolver los problemas de la misma manera que el cerebro humano, aunque las redes neuronales son más abstractas. Las redes neuronales actuales suelen contener desde unos miles a unos pocos millones de unidades neuronales. Nuevas investigaciones sobre el cerebro a menudo estimulan la creación de 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 han utilizado para resolver una amplia variedad de tareas, como la visión por computador y el reconocimiento de voz, que son difíciles de resolver usando la ordinaria 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 sientonces 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. Índice 1Historia o 1.1Aprendizaje de Hebb o 1.2Propagación hacia atrás y el resurgimiento o 1.3Diseños basados en Hardware 2Mejoras desde 2006 3Modelos o 3.1Función de red o 3.2El aprendizaje o 3.3La elección de una función de coste o 3.4Paradigmas de aprendizaje 3.4.1El aprendizaje supervisado 3.4.2Aprendizaje no supervisado 3.4.3Aprendizaje por refuerzo o 3.5Tipo de entrada 4Algoritmos de aprendizaje o 4.1Algoritmo recursivo convergente de aprendizaje o 4.2El empleo de redes neuronales artificiales 5Aplicaciones o 5.1Aplicaciones de la vida real o 5.2Las redes neuronales y la neurociencia 6Potencia del cálculo 7La crítica o 7.1Cuestiones de capacitación o 7.2Cuestiones teóricas 8Las clases y tipos de RNAs 9Ejemplos o 9.1Quake II Neuralbot o 9.2Clasificador No Sesgado de Proteínas 10Galería 11Herramientas de software 12Véase también 13Referencias 14Enlaces externos Historia[editar] Warren McCulloch y Walter Pitts 2 (1943) crearon un modelo informático para redes neuronales, que se llama lógica umbral, que se base en las matemáticas y los algoritmos. Este modelo señaló el camino para que la investigación de redes neuronales se divida en dos enfoques distintos. Un enfoque se centró en los procesos biológicos en el cerebro y el otro se centró en la aplicación de redes neuronales para la inteligencia artificial. Aprendizaje de Hebb[editar] A finales de la década de 1940 el psicólogo Donald Hebb34 creó una hipótesis de aprendizaje basado en el mecanismo de plasticidad neuronal que ahora se conoce como aprendizaje de Hebb. Aprendizaje de Hebb se considera que es un "típico" de aprendizaje no supervisado y sus variantes posteriores fueron los primeros modelos de la potenciación a largo plazo. Los investigadores empezaron a aplicar estas ideas a los modelos computacionales en 1948 con la sugerencia de Turing, que el córtex humano infantil es lo que llamaba "máquina desorganizada" (también conocido como "máqina Turing Tipo B").56 Farley y Wesley A. Clark7 (1954) al principio utilizaron máquinas computacionales, que entonces se llamaban "calculadoras", para simular una red de Hebb en el MIT. Otras simulaciones de redes neuronales por computadora han sido creadas por Rochester, Holanda, Hábito y Duda (1956).8 Frank Rosenblatt9 10 (1958) creó el perceptrón, un algoritmo de reconocimiento de patrones basado en una red de aprendizaje de computadora de dos capas, que utilizaba adición y sustracción simples. Con la notación matemática, Rosenblatt también describe circuitería que no está en el perceptrón básico, tal como el circuito de o-exclusiva, un circuito que no se pudo procesar por redes neuronales antes de la creación del algoritmo de propagación hacia atrás por Paul Werbos (1975).11 En 1959, un modelo biológico propuesto por dos laureados de los Premios Nobel, David H. Hubel y Torsten Wiesel, estaba basado en su descubrimiento de dos tipos de células en la corteza visual primaria: células simples y células complejas.12 El primer reporte sobre redes funcionales multicapas fue publicado en 1965 por Ivakhnenko y Lapa, y se conoce como el método de agrupamiento para el manejo de datos.131415 La investigación de redes neuronales se estancó después de la publicación de la investigación de aprendizaje automático por Marvin Minsky y Seymour Papert (1969)16, que descubrió dos cuestiones fundamentales con las máquinas computacionales que procesan las redes neuronales. La primera fue que los perceptrones básicos eran incapaces de procesar el circuito de o-exclusivo. La segunda cuestión importante era que los ordenadores no tenían suficiente poder de procesamiento para manejar eficazmente el gran tiempo de ejecución requerido por las grandes redes neuronales. Propagación hacia atrás y el resurgimiento[editar] Un avance clave posterior fue el algoritmo de propagación hacia atrás que resuelve eficazmente el problema de o-exclusivo, y en general el problema del entrenamiento rápido de redes neuronales de múltiples capas (Werbos 1975). El proceso de propagación hacia atrás utiliza la diferencia entre el resultado producido y el resultado deseado para cambiar los "pesos" de las conexiones entre las neuronas artificiales.11 A mediados de la década de 1980, el procesamiento distribuido en paralelo se hizo popular con el nombre conexionismo. El libro de David E. Rumelhart y James McClelland (1986) proporcionan una exposición completa de la utilización de conexionismo en los ordenadores para simular procesos neuronales.17 Las redes neuronales, tal como se utilizan en la inteligencia artificial, han sido consideradas tradicionalmente como modelos simplificados de procesamiento neuronal en el cerebro, a pesar de que la relación entre este modelo y la arquitectura biológica del cerebro se debate; no está claro en qué medida las redes neuronales artificiales reflejan el funcionamiento cerebral. Máquinas de soporte vectorial y otros métodos mucho más simples, tales como los clasificadores lineales, alcanzaron gradualmente popularidad en el aprendizaje automático. No obstante, el uso de redes neuronales ha cambiado algunos campos, tales como la predicción de las estructuras de las proteínas.1819 En 1992, max-pooling (una forma de submuestreo, en la que se divide los datos en grupos de tamaños iguales, que no tienen elementos en común, y se transmite solamente el valor máximo de cada grupo) fue introducido para ayudar con el reconocimiento de objetos tri-dimensionales.20 21 22 En 2010, el uso de max-pooling en el entrenamiento por propagación hacia atrás fue acelerado por los GPUs, y se demostró que ofrece mejor rendimiento que otros tipos de agrupamiento.23 El problema del desvanecimiento del gradiente afecta las redes neuronales prealimentadas de múltiples capas, que usan la propagación hacia atrás, y también los redes neuronales recurrentes (RNNs).2425 Aunque los errores se propagan de una capa a otra, disminuyen exponencialmente con el número de capas, y eso impide el ajuste hacia atrás de los pesos de las neuronas basado en esos errores. Las redes profundas se ven particularmente afectadas. Para vencer este problema, Schmidhuber adoptaba una jerarquía multicapa de redes (1992) pre entrenados, una capa a la vez, por aprendizaje no supervisado, y refinado por propagación hacia atrás.26 Behnke (2003) contaba solamente con el signo del gradiente (Rprop)27 tratándose de problemas tales como la reconstrucción de imágenes y la localización de caras. Como retos anteriores en redes neuronales profundas de capacitación se resolvieron con métodos como pre-entrenamiento no supervisado y potencia de cálculo incrementada a través del uso de las GPU y la computación distribuida, las redes neuronales se desplegaron de nuevo a gran escala, sobre todo en problemas de procesamiento de imágenes y de reconocimiento visual. Esto se conoció como "aprendizaje profundo", aunque el aprendizaje profundo no es estrictamente sinónimo de redes neuronales profundas. Diseños basados en Hardware[editar] Se crearon en CMOS dispositivos de cómputo para la simulación biofísica al igual que para la cómputo neuromórfico. Nanodispositivos28 para análisis de componentes principales de escala muy grande y convolución pueden crear una clase nueva de cómputo neuronal, porque son fundamentalmente analógicos en vez de digitales (aunque las primeras implementaciones puedan utilizar dispositivos digitales).29 Ciresan y sus cólegos (2010)30 en el grupo de Schmidhuber mostraron que, a pesar del problema del desvanecimiento del gradiente, los GPUs hacen factible la propagación hacia atrás para las redes neuronales prealimentadas con múltiples capas. Mejoras desde 2006[editar] Se han creado dispositivos computacionales en el CMOS, tanto para la simulación biofísica como para computación neuromórfica. Los esfuerzos más recientes se muestran prometedores para la creación de nanodispositivos31 para análisis de componentes principales de gran escala. Si tiene éxito, se crearía una nueva clase de computación neuronal, ya que depende de aprendizaje automático en lugar de la programación y porque es fundamentalmente analógico en lugar de digital a pesar de que las primeras instancias pueden ser de hecho con los dispositivos digitales CMOS.32 Entre 2009 y 2012, las redes neuronales recurrentes y redes neuronales profundas feedforward desarrollados en el grupo de investigación de Jürgen Schmidhuber en el laboratorio suizo de IA IDSIA han ganado ocho concursos internacionales de reconocimiento de patrones y aprendizaje automático. Por ejemplo, la memoria bidireccional y multidimensional de largo a corto plazo (LSTM) de Alex Graves ha ganado tres competiciones en el reconocimiento de escritura conectada en Conferencia Internacional sobre Análisis de documentos y Reconocimiento (ICDAR) del 2009, sin ningún conocimiento previo acerca de los tres idiomas diferentes que se pueden aprender. Implementaciones de este método basadas en unidades de procesamiento gráfico rápidas, hechos por Dan Ciresan y sus colegas de IDSIA han ganado varios concursos de reconocimiento de patrones, incluyendo la Competición de Reconocimiento de Señales de Tráfico del 2011,33 el desafío de ISBI 2012 de segmentación de estructuras neuronales en series de imágenes de Microscopía Electrónica,34 y otros. Sus redes neuronales también fueron las primeras reconocedoras artificiales de patrones en lograr un rendimiento superior al humano en los puntos de referencia importantes, tales como el reconocimiento de señales de tráfico (IJCNN 2012) o el problema de clasificación de dígitos escritos a mano. Arquitecturas profundas altamente no lineales similares a las del 1980 Neocognitrón por Kunihiko Fukushima y la "arquitectura estándar de la visión", inspirados en las células simples y complejas identificadas por David H. Hubel y Torsten Wiesel en la corteza visual, pueden también ser pre-formados por métodos no supervisados en el laboratorio de la universidad de Toronto. Un equipo de este laboratorio ganó un concurso en 2012 patrocinado por Merck para el diseño de software para ayudar a encontrar moléculas que podrían conducir a nuevos medicamentos. Modelos[editar] Los modelos de redes neuronales en la inteligencia artificial se refieren generalmente a las redes neuronales artificiales (RNA); estos son modelos matemáticos esencialmente simples que definen una función f:X→Y o una distribución más X o ambos X e Y. Pero a veces los modelos también están íntimamente asociadas con un algoritmo de aprendizaje en particular o regla de aprendizaje. Un uso común de la frase "modelo ANN" es en realidad la definición de una clase de tales funciones (donde los miembros de la clase se obtiene variando parámetros, los pesos de conexión, o específicos de la arquitectura, tales como el número de neuronas o su conectividad). Función de red[editar] La palabra red en el término "red neuronal artificial" se refiere a las interconexiones entre las neuronas en las diferentes capas de cada sistema. Un sistema ejemplar tiene tres capas. La primera capa tiene neuronas de entrada que envían datos a través de las sinapsis a la segunda capa de neuronas, y luego a través de más sinapsis a la tercera capa de neuronas de salida. Los sistemas más complejos tendrán más capas, algunos aumentando las de entrada y de salida de neuronas. Las sinapsis almacenan parámetros llamados "pesos" que manipulan los datos en los cálculos. Un RNA se define típicamente por tres tipos de parámetros: 1. El patrón de interconexión entre las diferentes capas de neuronas 2. El proceso de aprendizaje para la actualización de los pesos de las interconexiones 3. La función de activación que convierte las entradas ponderadas de una neurona a su activación a la salida. Matemáticamente, la función de red de una neurona se define como una composición de otras funciones . Este se representa como una estructura de red, con flechas que representan las dependencias entre variables.Un tipo ampliamente utilizado de la composición es la suma ponderada no lineal , donde , dónde k (denominado comúnmente como la función de activación35) es una función predefinida, como la tangente hiperbólica o función sigmoide . La característica importante de la función de activación es que proporciona una transición suave como valores de entrada de cambio, es decir, un pequeño cambio en la entrada produce un pequeño cambio en la producción. Será conveniente para la siguiente para referirse a una colección de funciones simplemente como un vector . Esta cifra representa una descomposición de tales , Con las dependencias entre las variables indicadas por las flechas. Estos pueden ser interpretados de dos maneras. La primera vista es la vista funcional: la entrada dimensiones se transforma en un vector de 3 , Que se transforma a continuación en un vector de 2 dimensiones , Que es finalmente transformado en . Este punto de vista se encuentra más comúnmente en el contexto de la optimización. El segundo punto de vista es la vista probabilístico: la variable aleatoria de la variable aleatoria , Que depende de depende , Que depende de la variable aleatoria . Este punto de vista se encuentra más comúnmente en el contexto de modelos gráficos . Grafo de dependencias ANN Los dos puntos de vista son en gran medida equivalente. En cualquier caso, para esta arquitectura de red en particular, los componentes de las capas individuales son independientes entre sí (por ejemplo, los componentes de sí, dada su aportación ejecución. son independientes entre ). Esto permite, naturalmente, un grado de paralelismo en la Las redes como la anterior se llaman comúnmente alimentación hacia delante , porque su gráfica es un grafo dirigido acíclico . Las redes con ciclos se denominan comúnmente recurrentes . Tales redes se representan comúnmente de la manera mostrada en la parte superior de la figura, donde se muestra como dependiente sobre sí misma. Sin embargo, no se muestra una dependencia temporal implícita.