Red neuronal artificial

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Una red neuronal artificial es un grupo interconectado de nodos similar a la vasta red de neuronas en un cerebro biológico. Cada nodo circular representa una neurona artificial y cada flecha representa una conexión desde la salida de una neurona a la entrada de otra.

Las redes neuronales (también conocidas como sistemas conexionistas) son un modelo computacional basado en un gran conjunto de unidades neuronales simples (neuronas artificiales), de forma aproximadamente análoga, el comportamiento observado en los axones de las neuronas en los cerebros biológicos. Cada unidad neuronal está conectada con muchas otras y los enlaces entre ellas pueden incrementar o inhibir el estado de activación de las neuronas adyacentes. Cada unidad neuronal, de forma individual, opera empleando funciones de suma. Puede existir una función limitadora o umbral en cada conexión y en la propia unidad, de tal modo que la señal debe sobrepasar un límite antes de propagarse a otra neurona. 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.

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. Las redes neuronales dinámicas son lo más avanzadas en que se 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. Los 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 auto-aprendizaje. Después del entrenamiento, algunos se convierten en grandes solucionadores de problemas y otros no funcionan tan bien. Con el fin de capacitarlos, se necesitan varios miles de ciclos de iteración.

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 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 .

Historia[editar]

Warren McCulloch y Walter Pitts (1943) crearon un modelo informático para redes neuronales basados en las matemáticas y algoritmos denominados lógica de umbral . Este modelo señaló el camino para que la investigación de redes neuronales se divida en dos enfoques distintos. Un enfoque centrado 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 Hebb 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 regla 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 máquinas de tipo B de Turing .

Farley y Wesley A. Clark (1954) las primeras máquinas computacionales utilizadas, son las "calculadoras", para simular una red de Hebb en el MIT. Otras máquinas de cálculo de redes neuronales han sido creadas por Rochester, Holanda, Hábito, y Duda (1956).

Frank Rosenblat (1958) creó el perceptrón , un algoritmo de reconocimiento de patrones basado en una red de aprendizaje de computadora de dos capas usando una simple suma y la resta. Con la notación matemática, Rosenblatt también describe circuitería no en el perceptrón básico, tal como él o-exclusiva de circuito, un circuito que no se pudo procesar por redes neuronales hasta después de la backpropagation algoritmo fue creado por Paul Werbos (1975).

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), 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 la exclusiva-o circuito. La segunda cuestión importante era que los ordenadores no tenían suficiente poder de procesamiento para manejar eficazmente el tiempo de ejecución largo requerido por las grandes redes neuronales.

Propagación hacia atrás y el resurgimiento[editar]

Un avance clave que vino después fue el algoritmo de propagación hacia atrás que resuelve eficazmente el problema, y en general el problema de la formación de redes neuronales rápida de múltiples capas (Werbos 1975).

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.

Las redes neuronales, tal como se utiliza en la inteligencia artificial, que tradicionalmente han sido considerados como modelos simplificados de procesamiento neural 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 la función cerebral.

Máquinas de soporte vectorial y otros métodos mucho más simples, tales como los clasificadores lineales, alcanzaron gradualmente las redes neuronales en popularidad en aprendizaje automático. Como retos anteriores en redes neuronales profundas de capacitación se abordaron con éxito con métodos como no supervisada previa a la capacitación y la potencia de cálculo incrementado 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 la imagen y problemas de reconocimiento visual. Esto se conoció como " aprendizaje profundo ", aunque el aprendizaje profundo no es estrictamente sinónimo de redes neuronales profundas.

Mejoras desde 2006[editar]

Dispositivos computacionales se han creado en el CMOS , tanto para la simulación biofísica y computación neuromorphic . Los esfuerzos más recientes se muestran prometedores para la creación de nanodispositivos de una gran escala de componentes .Si tiene éxito, se crearía una nueva clase de computación neuronal , ya que depende de aprendizaje en lugar de la programación y porque es fundamentalmente analógico en lugar de digitales a pesar de que las primeras instancias pueden ser de hecho con los dispositivos digitales CMOS.

Entre 2009 y 2012, las redes neuronales recurrentes y redes neuronales feedforward profundos desarrollados en el grupo de investigación de Jürgen Schmidhuber en el suizo laboratorio de IA IDSIA han ganado ocho concursos internacionales de reconocimiento de patrones y aprendizaje automático . Por ejemplo, el bi-direccional y multidimensional de memoria de largo a corto plazo (LSTM) de Alex Graves ha ganado tres competiciones en el reconocimiento de escritura conectado en el 2009 Conferencia Internacional sobre Análisis de documentos y Reconocimiento (ICDAR), sin ningún conocimiento previo acerca de los tres idiomas diferentes que se pueden aprender.

Fast GPU -basado puestas en práctica de este enfoque por Dan Ciresan y sus colegas de IDSIA han ganado varios concursos de reconocimiento de patrones, incluyendo el IJCNN 2011 Señales de Tráfico Reconocimiento de Competencia, la segmentación ISBI 2012 de estructuras neuronales en el desafío de Microscopía Electrónica de Pilas, y otros. Sus redes neurales también fueron los primeros reconocedores de patrones artificiales para lograr un rendimiento aún sobrehumana competitivo o en los puntos de referencia importantes, tales como el reconocimiento de señales de tráfico (IJCNN 2012), o la MNIST manuscrita problema dígitos de Yann LeCun en la Universidad de Nueva York .

Arquitecturas profundos, altamente no lineales neuronales similares a los 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 las primarias de la corteza visual , puede también ser pre-formados por métodos no supervisados de Geoff Hinton laboratorio en la Universidad de Toronto .Un equipo de este laboratorio ganaron un concurso de 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]

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 y 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 de 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 de ejemplo 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 de neuronas, algunos habiendo aumentado capas de neuronas de entrada y de salida de las neuronas. Las sinapsis almacenan parámetros llamados "pesos" que manipulan los datos en los cálculos.

Un ANN 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 la entrada ponderada de una neurona a su activación de 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ón ) 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 se transforma en un vector de 3 dimensiones , 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 depende de la variable aleatoria , Que depende de , 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 son independientes entre sí, dada su aportación ).Esto permite, naturalmente, un grado de paralelismo en la ejecución.

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.

El aprendizaje

Lo que ha atraído el mayor interés en las redes neuronales es la posibilidad de aprendizaje. Dada una determinada tarea de resolver, y una clase de funciones , El aprendizaje que consiste en utilizar un conjunto de observaciones para encontrar que resuelve la tarea de alguna óptima sentido.

Esto implica la definición de una función de coste tal que, para la solución óptima - Es decir, no hay solución tiene un costo menor que el costo de la solución óptima.

La función de coste {\ Displaystyle \ estilo de texto C}C es un concepto importante en el aprendizaje, ya que es una medida de la distancia a una solución particular es de una solución óptima al problema resolver. Algoritmos de aprendizaje buscar a través del espacio de soluciones para encontrar una función que tiene el menor costo posible.

Dos representaciones separadas del recurrente gráfico de dependencias ANN

Para aplicaciones en las que la solución es dependiente de algunos datos, el costo debe ser necesariamente una función de las observaciones, de lo contrario no estaríamos modelando todo lo relacionado con los datos. Con frecuencia se define como una estadística a la que se pueden realizar sólo aproximaciones. Como un simple ejemplo, considere el problema de encontrar el modelo , Lo que reduce al mínimo , Para pares de datos extraída de alguna distribución . En situaciones prácticas sólo tendríamos muestras de y, por tanto, para el ejemplo anterior, tendríamos solamente minimizar . Por lo tanto, el coste se reduce al mínimo a través de una muestra de los datos en lugar de toda la distribución de la generación de los datos.

Cuando alguna forma de aprendizaje automático en línea debe ser utilizada, donde el costo se reduce al mínimo parcialmente como se ve cada nuevo ejemplo. Mientras que la máquina de aprendizaje en línea se utiliza a menudo cuando se fija, es más útil en el caso en el que la distribución cambia lentamente con el tiempo. En los métodos de redes neuronales, alguna forma de aprendizaje en línea de la máquina se utiliza con frecuencia para conjuntos de datos finitos.

La elección de una función de coste[editar]

Si bien es posible definir alguna función de coste, con frecuencia un coste particular, se utilizará, ya sea porque tiene propiedades deseables (tales como convexidad ) o porque surge de forma natural a partir de una formulación particular del problema (por ejemplo, en un probabilístico formulación la probabilidad posterior del modelo puede ser utilizado como un costo inversa). En última instancia, la función de coste dependerá de la tarea deseada.

Paradigmas de aprendizaje[editar]

Hay tres grandes paradigmas de aprendizaje, cada uno correspondiente a una tarea de aprendizaje abstracto en particular. Estos son el aprendizaje supervisado ,el aprendizaje no supervisado y el aprendizaje por refuerzo.

El aprendizaje supervisado

En el aprendizaje supervisado , se nos da una serie de ejemplos de pares y el objetivo es encontrar una función en la clase permitido de funciones que corresponden con los ejemplos. En otras palabras, deseamos inferir el mapeo derivan de los datos; la función de coste está relacionado con la falta de coincidencia entre nuestra cartografía y los datos y contiene implícitamente el conocimiento previo sobre el dominio del problema.

Un coste de uso común es el error cuadrático medio , que trata de minimizar el error cuadrático medio entre la salida de la red(x), Y el valor objetivo”y” sobre todos los pares de ejemplo. Cuando uno trata de minimizar este coste utilizando descenso de gradiente para la clase de las redes neuronales llamadas perceptrones multicapa (MLP), se obtiene el común y bien conocido algoritmo de propagación hacia atrás para la formación de redes neuronales.

Tareas que caen dentro del paradigma de aprendizaje supervisado son el reconocimiento de patrones (también conocido como clasificación) y regresión (también conocido como aproximación de función). El paradigma de aprendizaje supervisado es aplicable a los datos secuenciales (por ejemplo, para el habla y el reconocimiento de gestos) también. Esto puede ser pensado como el aprendizaje con un "maestro", en la forma de una función que proporciona información continua sobre la calidad de las soluciones obtenidas hasta el momento.

Aprendizaje no supervisado

En el aprendizaje no supervisado , algunos datos se da y la función de coste que se reduce al mínimo, que puede ser cualquier función de los datos y la salida de la red, .

La función de coste depende de la tarea (lo que estamos tratando de modelar) y nuestros a priori suposiciones implícitas (las propiedades de nuestro modelo, sus parámetros y las variables observadas).

Como un ejemplo trivial, considere el modelo donde es una constante y el costo . Minimizar este coste nos dará un valor de{\ Displaystyle \ estilo de texto a} a que es igual a la media de los datos. La función de coste puede ser mucho más complicado. Su forma depende de la aplicación: por ejemplo, en la compresión de que podría estar relacionado con la información mutua entre y , Mientras que en la modelización estadística, que podría estar relacionado con la probabilidad posterior del modelo dados los datos (tenga en cuenta que en estos dos ejemplos esas cantidades se maximizaría en lugar de reducirse al mínimo).

Tareas que caen dentro del paradigma de aprendizaje no supervisado están en generales de estimación de problemas; las aplicaciones incluyen el agrupamiento , la estimación de distribuciones estadísticas , la compresión y el filtrado .

Aprendizaje por refuerzo

En el aprendizaje por refuerzo , los datos por lo general no se dan, pero generada por la interacción de un agente con el medio ambiente. En cada punto en el tiempo , El agente realiza una acción y el medio ambiente genera una observación y un costo instantáneo , De acuerdo con algunas dinámicas (por lo general desconocidos). El objetivo es descubrir una política para la selección de las acciones que minimiza una cierta medida de un costo a largo plazo, por ejemplo, el coste acumulativo esperado. La dinámica del medio ambiente y el coste a largo plazo para cada política general son desconocidos, pero pueden ser estimados.

Más formalmente el medio ambiente se modela como un proceso de decisión de Markov (MDP) con los estados y acciones con las siguientes distribuciones de probabilidad: la distribución de costos instantánea ,La distribución de observación y la transición Mientras que una política se define como la distribución condicional sobre las acciones dadas las observaciones. Tomados en conjunto, los dos entonces definir una cadena de Markov (MC). El objetivo es descubrir la política (es decir, el MC) que minimice el costo.

RNAs se utilizan con frecuencia en el aprendizaje de refuerzo como parte del algoritmo general. La programación dinámica se ha unido a las RNA (dando la programación neurodinámica) por Bertsekas y Tsitsiklis y se aplicó problemas no lineales a la multi-dimensionales, tales como los implicados en rutas para vehículos , gestión de los recursos naturales o la medicina debido a la capacidad de RNAs para mitigar las pérdidas de precisión incluso cuando la reducción de la densidad de la red de discretización para aproximar numéricamente la solución de los problemas de control originales.

Tareas que caen dentro del paradigma de aprendizaje por refuerzo son problemas de control, juegos y otras secuenciales tareas.

Tipo de entrada[editar]

Finalmente también se pueden clasificar las RNAs según sean capaces de procesar información de distinto tipo en:

  • Redes analógicas: procesan datos de entrada con valores continuos y, habitualmente, acotados. Ejemplos de este tipo de redes son: Hopfield, Kohonen y las redes de aprendizaje competitivo.
  • Redes discretas: procesan datos de entrada de naturaleza discreta; habitualmente valores lógicos booleanos. Ejemplos de este segundo tipo de redes son: las máquinas de Boltzmann y Cauchy, y la red discreta de Hopfield.

Algoritmos de aprendizaje[editar]

El entrenamiento de un modelo de red neuronal en esencia significa seleccionar un modelo de la serie de modelos animales (o, en un bayesiano marco, la determinación de una distribución en el conjunto de modelos permitidos) que minimiza el criterio de costo. Hay numerosos algoritmos disponibles para los modelos de redes neuronales de formación; la mayoría de ellos puede ser vista como una aplicación directa de la optimización de la teoría y la estimación estadística .

La mayoría de los algoritmos utilizados en las redes neuronales artificiales de formación emplean alguna forma de descenso de gradiente , utilizando propagación hacia atrás para calcular los gradientes reales. Esto se hace simplemente tomando la derivada de la función de coste con respecto a los parámetros de la red y a continuación, cambiar los parámetros en una relacionada gradiente- dirección. Los algoritmos de entrenamiento de propagación hacia atrás generalmente se clasifican en tres categorías:

1. descenso más agudo (con tasa variable de aprendizaje y el impulso, retropropagación elástica );

2. cuasi-Newton ( Broyden- Fletcher-Goldfarb-Shannon , una secante paso );

3. Levenberg-Marquardt y gradiente conjugado (actualización Fletcher-Reeves, actualizar Polak-Ribiere, Powell-Beale reinicio, escalados gradiente conjugado).

Métodos evolutivos , de programación de la expresión génica , de recocido simulado , expectativa de maximización , los métodos no paramétricos y optimización de enjambre de partículas son algunos otros métodos para la formación de redes neuronales.

El empleo de redes neuronales artificiales[editar]

Tal vez la mayor ventaja de las RNA es su capacidad de ser utilizado como un mecanismo de función de aproximación arbitraria que "aprende" a partir de datos observados. Sin embargo, su uso no es tan sencillo, y una relativamente buena comprensión de la teoría subyacente es esencial.

  • Elección de modelo: Esto dependerá de la representación de datos y la aplicación. Excesivamente complejos modelos tienden a conducir a problemas en el aprendizaje.
  • Algoritmo de aprendizaje: Existen numerosas soluciones de compromiso entre los algoritmos de aprendizaje. Casi cualquier algoritmo va a funcionar bien con las correctas hiper- para la formación de un conjunto de datos fija en particular. Sin embargo, la selección y el ajuste de un algoritmo para la formación en los datos invisibles requieren una cantidad significativa de la experimentación.
  • Robustez: Si se seleccionan el modelo, la función de costo y algoritmo de aprendizaje adecuado, la RNA resultante puede ser extremadamente robusto.

Con la aplicación correcta, las RNA pueden ser utilizadas de forma natural en el aprendizaje en línea y aplicaciones de grandes conjuntos de datos. Su aplicación sencilla y la existencia de dependencias locales en su mayoría expuestos en la estructura permiten implementaciones rápidas y paralelas en el hardware.

Aplicaciones[editar]

RNA las hacen bastante apropiadas para aplicaciones en las que no se dispone a priori de un modelo identificable que pueda ser programado, pero se dispone de un conjunto básico de ejemplos de entrada (previamente clasificados o no). Asimismo, son altamente robustas tanto al ruido como a la disfunción de elementos concretos y son fácilmente paralelizables.

Esto incluye problemas de clasificación y reconocimiento de patrones de voz, imágenes, señales, etc. Asimismo se han utilizado para encontrar patrones de fraude económico, hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosférico, etc.

También se pueden utilizar cuando no existen modelos matemáticos precisos o algoritmos con complejidad razonable, por ejemplo la red de Kohonen ha sido aplicada con un éxito más que razonable al clásico problema del viajante (un problema para el que no se conoce solución algorítmica de complejidad polinómica).

Otro tipo especial de redes neuronales artificiales se ha aplicado en conjunción con los algoritmos genéticos (AG) para crear controladores para robots. La disciplina que trata la evolución de redes neuronales mediante algoritmos genéticos se denomina Robótica Evolutiva. En este tipo de aplicación el genoma del AG lo constituyen los parámetros de la red (topología, algoritmo de aprendizaje, funciones de activación, etc.) y la adecuación de la red viene dada por la adecuación del comportamiento exhibido por el robot controlado (normalmente una simulación de dicho comportamiento).

Aplicaciones de la vida real[editar]

Las tareas se aplican a las redes neuronales artificiales tienden a caer dentro de las siguientes categorías generales:

Las áreas de aplicación incluyen la identificación del sistema y el control (control del vehículo, predicción de la trayectoria, el control de procesos , recursos naturales gestión), la química cuántica , juego de papeles y la toma de decisiones (backgammon, ajedrez, póquer ), el reconocimiento de patrones (radar sistemas, identificación de la cara , reconocimiento de objetos y más), de reconocimiento de secuencia (gesto, voz, reconocimiento de texto escrito a mano), diagnóstico médico , aplicaciones financieras (por ejemplo, sistemas automatizados de comercio ), minería de datos (o descubrimiento de conocimiento en bases de datos, "KDD"), la visualización y el spam de correo electrónico filtrado.

Las redes neuronales artificiales se han utilizado también para el diagnóstico de varios tipos de cáncer. Un sistema de detección de cáncer de pulmón híbrido basado ANN llamado HLND mejora la precisión del diagnóstico y la velocidad de la radiología cáncer de pulmón. Estas redes también se han utilizado para diagnosticar el cáncer de próstata. Los diagnósticos se pueden utilizar para hacer modelos específicos tomados de un gran grupo de pacientes en comparación con la información de un paciente dado. Los modelos no dependen de suposiciones acerca de las correlaciones de diferentes variables. El cáncer color rectal también se ha previsto el uso de las redes neuronales. Las redes neuronales podrían predecir el resultado de un paciente con cáncer color rectal con más precisión que los métodos clínicos actuales. Después del entrenamiento, las redes podrían predecir múltiples resultados de los pacientes de instituciones relacionadas.

Las redes neuronales y la neurociencia

Teórico y neurociencia computacional es el ámbito en cuestión con el análisis teórico y el modelado computacional de sistemas neuronales biológicos. Dado que los sistemas neurales están íntimamente relacionados con los procesos cognitivos y de comportamiento, el campo está muy relacionada con el modelado cognitivo y conductual.

El objetivo del campo es la creación de modelos de sistemas neuronales biológicas con el fin de comprender cómo funcionan los sistemas biológicos. Para ganar este entendimiento, los neurólogos se esfuerzan por hacer un vínculo entre los procesos biológicos observados (datos), biológicamente plausibles mecanismos para el procesamiento neuronal y aprendizaje ( redes neuronales biológicas modelos) y la teoría (teoría del aprendizaje estadístico y teoría de la información ).

Tipos de modelos

Muchos modelos se utilizan en el campo, que se define en diferentes niveles de abstracción y el modelado de diferentes aspectos de los sistemas neurales. Se extienden a partir de modelos de comportamiento a corto plazo de las neuronas individuales , los modelos de cómo surgen de la dinámica de los circuitos neuronales de la interacción entre las neuronas individuales y, finalmente, a los modelos de cómo puede surgir el comportamiento de los módulos neuronales abstractos que representan completa subsistemas. Estos incluyen modelos de largo plazo y corto plazo plasticidad, de los sistemas neuronales y sus relaciones con el aprendizaje y la memoria de la neurona individual a nivel del sistema.

Las redes con memoria

La integración de los componentes de memoria externa con redes neuronales artificiales tiene una larga historia que se remonta a las primeras investigaciones en las representaciones distribuidas y mapas de auto-organización . Por ejemplo, en memoria distribuida dispersa los patrones codificados por las redes neuronales se utilizan como direcciones de memoria para la memoria de contenido direccionable, con "neuronas" que sirven esencialmente como dirección codificadores y decodificadores .

Más recientemente aprendizaje profundo ha demostrado ser útil enhashing semántica , donde un profundo modelo gráfico de los vectores de palabra de recuento de se obtiene a partir de un gran conjunto de documentos. Los documentos se asignan a las direcciones de memoria de tal manera que los documentos semánticamente similares se encuentran en direcciones cercanas. Documentos similares a un documento de consulta a continuación, se pueden encontrar simplemente accediendo a todas las direcciones que difieren por sólo unos pocos bits de la dirección del documento de consulta.

Redes de memoria es otra extensión de las redes neuronales que incorporan la memoria a largo plazo que fue desarrollado por Facebook investigación. La memoria a largo plazo puede ser leído y escrito para, con el objetivo de utilizarlo para la predicción. Estos modelos se han aplicado en el contexto de la búsqueda de respuestas (QA), donde la memoria a largo plazo que de hecho actúa como un (dinámico) base de conocimientos, y la salida es una respuesta textual.

Máquinas de Turing neuronales desarrollados por Google DeepMindampliar las capacidades de las redes neuronales profundas mediante el acoplamiento a los recursos de memoria externos, que pueden interactuar con los procesos atencionales. El sistema combinado es análogo a una máquina de Turing pero es diferenciable de extremo a extremo, lo que le permite ser entrenado de manera eficiente con descenso de gradiente .Los resultados preliminares demuestran que las máquinas de Turing neuronales puede deducir algoritmos simples, tales como copiar, clasificar, y recuerdo asociativo a partir de ejemplos de entrada y salida.

Ordenadores neuronales diferenciables (DNC) son una extensión de las máquinas de Turing neuronal, también de DeepMind. Se han realizado fuera de las máquinas de Turing neuronales, la memoria de largo a corto plazo los sistemas y redes de la memoria en las tareas de procesamiento de secuencia.

Software de red neuronal

Software de la red neuronal se utiliza para simular , la investigación , desarrollo y aplicación de redes neuronales artificiales, redes neuronales biológicas y, en algunos casos, una gama más amplia de sistemas adaptativos .

Tipos de redes neuronales artificiales

Tipos de redes neuronales artificiales varían de aquellos con sólo una o dos capas de lógica única dirección, para muchos bucles complejos multi-direccionales de entrada de realimentación y capas. En general, estos sistemas utilizan algoritmos en su programación para determinar el control y la organización de sus funciones. La mayoría de los sistemas utilizan "pesos" para cambiar los parámetros del rendimiento y las diferentes conexiones con las neuronas. Las redes neuronales artificiales pueden ser autónomas y aprender mediante el aporte de "maestros" externos o incluso auto-enseñanza de las reglas escritas de entrada. Redes neuronales estilo Cubo Neural primera por primera vez por Gianna Giavelli proporcionan un espacio dinámico en el que las redes se recombinan dinámicamente información y enlaces a través de miles de millones de nodos independientes que utilizan la adaptación neuronal darwinismo , una técnica desarrollada por Gerald Edelman , que permite sistemas más modeladas biológicamente.

Potencia del cálculo[editar]

El perceptrón multicapa es un aproximado de la función universal, como lo demuestra el teorema de aproximación universal . Sin embargo, la prueba no es constructivo sobre el número de neuronas es necesario, la topología de red, la configuración de los pesos y los parámetros de aprendizaje.

El trabajo de Hava Siegelmann y Eduardo D. Sontag ha proporcionado una prueba de que una arquitectura específica recurrente con los pesos valorados racionales (en oposición a la precisión total número real -valued pesos) tiene toda la potencia de una máquina universal de Turing [59]utilizando un número finito de las neuronas y las conexiones lineales estándar. Además, se ha demostrado que el uso de valores irracionales para resultados pesos en una máquina con super-Turing poder.

Capacidad

Los modelos de redes neuronales artificiales tienen una propiedad denominada "capacidad", que corresponde aproximadamente a su capacidad para modelar cualquier función dada. Se relaciona con la cantidad de información que puede ser almacenada en la red y a la noción de complejidad.

Convergencia

Nada se puede decir en general sobre la convergencia ya que depende de una serie de factores. En primer lugar, pueden existir muchos mínimos locales. Esto depende de la función de coste y el modelo. En segundo lugar, el método de optimización utilizado no puede ser garantizado a converger cuando lejos de un mínimo local. En tercer lugar, para una cantidad muy grande de datos o parámetros, algunos métodos se vuelven poco práctico. En general, se ha encontrado que las garantías teóricas sobre la convergencia son una guía fiable para la aplicación práctica.

Generalización y estadísticas

En aplicaciones donde el objetivo es crear un sistema que generaliza bien en los ejemplos que no se ven, ha surgido el problema de la formación excesiva. Esto surge en los sistemas complicados o sobre especificadas cuando la capacidad de la red supera significativamente los parámetros libres necesarios. Hay dos escuelas de pensamiento para evitar este problema: La primera es utilizar la validación cruzada técnicas similares y para comprobar la presencia de un exceso de entrenamiento y de manera óptima seleccione hiper- tales que se minimice el error de generalización. La segunda es utilizar algún tipo de regularización . Este es un concepto que surge de manera natural en un marco probabilístico (Bayesiano), donde la regularización puede realizarse mediante la selección de una probabilidad a priori más grande sobre los modelos más simples; sino también en la teoría estadística de aprendizaje, donde el objetivo es reducir al mínimo más de dos cantidades: el "riesgo empírico" y el "riesgo estructural ', que corresponde aproximadamente al error sobre el conjunto de entrenamiento y el error de predicción en los datos que no se ven debido a sobreajuste. Redes neuronales supervisadas que utilicen un error cuadrático medio (MSE) función de coste se pueden utilizar métodos estadísticos formales para determinar la confianza del modelo entrenado. El MSE en un conjunto de validación se puede utilizar como una estimación de la varianza. Este valor puede ser utilizado para calcular el intervalo de confianza de la salida de la red, suponiendo una distribución normal . Un análisis de confianza realizado de esta manera es estadísticamente válida siempre que la salida de distribución de probabilidad sigue siendo el mismo y la red no es modificada.

Análisis de confianza de una red neuronal

Mediante la asignación de una función de activación softmax , una generalización de la función logística , en la capa de salida de la red neuronal (o un componente softmax en una red neuronal basada en componentes) para las variables categóricas de destino, las salidas se pueden interpretar como las probabilidades. Esto es muy útil en la clasificación, ya que da una medida de la seguridad en las clasificaciones.

La función de activación softmax es:

Funcion sotfmax.jpg

La crítica[editar]

cuestiones de capacitación[editar]

Una crítica común de las redes neuronales, en particular en la robótica, es que requieren una gran diversidad de entrenamiento para el funcionamiento del mundo real. Esto no es sorprendente, ya que cualquier máquina de aprendizaje necesita suficientes ejemplos representativos con el fin de capturar la estructura subyacente que le permite generalizar a nuevos casos. Dean A. Pomerleau , en su investigación presentada en el documento "Formación basada en el conocimiento de redes neuronales artificiales para la conducción autónoma del robot," utiliza una red neuronal para entrenar a un vehículo robótico para conducir en múltiples tipos de carreteras (de un solo carril, varios carriles, suciedad, etc.). Una gran cantidad de su investigación está dedicada a (1) la extrapolación de múltiples escenarios de entrenamiento a partir de una sola experiencia de formación, y (2) la preservación de la diversidad de entrenamiento pasado para que el sistema no se convierta en sobre entrenamiento (si, por ejemplo, se presenta con una serie de giros a la derecha - no debe aprender a girar siempre a la derecha). Estos problemas son comunes en las redes neuronales que debe decidir de entre una amplia variedad de respuestas, pero se pueden tratar de varias maneras, por ejemplo por revolver al azar los ejemplos de entrenamiento, mediante el uso de un algoritmo de optimización numérica que no toma demasiado grandes pasos cuando el cambio de las conexiones de red siguiendo un ejemplo, o mediante la agrupación de ejemplos en los llamados mini-lotes.

Cuestiones teóricas

AK Dewdney , un científico matemático e informática de la Universidad de Ontario Occidental y ex Scientific American columnista, escribió en 1997, "A pesar de que las redes neurales hacen resolver algunos problemas de juguete, su poder de computación son tan limitados que me sorprende que nadie los toma en serio como una herramienta general de resolución de problemas ". No existe una red neuronal nunca se ha demostrado que resuelve los problemas computacionalmente difíciles, tales como la N-Queens problema, el problema del viajante de comercio , o el problema de factorizar enteros grandes.

Aparte de su utilidad, una objeción fundamental a las redes neuronales artificiales es que no logran reflejar cómo funcionan las neuronas reales. Propagación hacia atrás está en el corazón de las redes neuronales artificiales y la mayoría no sólo no hay evidencia de ningún mecanismo de este tipo de redes neuronales naturales, parece contradecir el principio fundamental de las neuronas reales que la información sólo puede fluir hacia adelante a lo largo del axón. Como la información está codificada por las neuronas reales aún no se conoce. Lo que se sabe es que las neuronas del sensor disparan potenciales de acción con mayor frecuencia con la activación del sensor y las células musculares tiran más fuertemente cuando sus neuronas motoras asociadas reciben los potenciales de acción con más frecuencia. Aparte del caso más simple de solo transmisión de información de una neurona a un sensor de la neurona motora casi nada de los principios generales subyacentes de cómo se maneja la información por las redes neuronales reales que se conoce.

La motivación detrás de las redes neuronales artificiales no es necesariamente para replicar la función neural real, pero para utilizar redes neuronales naturales como inspiración para un acercamiento a la computación que es inherentemente paralelo y que proporciona soluciones a los problemas que tienen hasta ahora ha considerado intratable. Por tanto, una afirmación central de las redes neuronales artificiales es que encarna algún principio general nuevo y potente para el procesamiento de la información. Por desgracia, estos principios generales están mal definidos y que a menudo se afirma que son emergentes de la red neuronal en sí. Esto permite la asociación estadística sencilla (la función básica de las redes neuronales artificiales), que se describe como el aprendizaje o el reconocimiento. Como resultado, las redes neuronales artificiales tienen un "algo para nada la calidad, que imparte un aura peculiar de la pereza y una clara falta de curiosidad acerca de lo bien que estos sistemas de computación son Ninguna mano humana (o la mente) interviene; soluciones. Se encuentran como por arte de magia, y nadie, al parecer, ha aprendido nada”.

Los problemas de hardware

Para implementar el software de redes neuronales grandes y eficaces, considerables recursos de procesamiento y almacenamiento deben estar comprometidos. Mientras que el cerebro ha hardware adaptado a la tarea de procesamiento de señales a través de un gráfico de las neuronas, simulando incluso una forma más simplificada en la arquitectura von Neumann puede obligar a un diseñador de la red neural para llenar muchos millones de bases de datos filas por sus conexiones - que puede consumir grandes cantidades de equipo de memoria y disco duro espacio. Además, el diseñador de sistemas de redes neurales a menudo necesitará para simular la transmisión de señales a través de muchas de estas conexiones y sus neuronas asociadas - que a menudo deben coincidir con una increíble cantidad de CPU potencia de procesamiento y tiempo.

Jürgen Schmidhuber toma nota de que el resurgimiento de las redes neuronales en el siglo XXI, y su éxito renovado en tareas de reconocimiento de imagen es atribuible en gran medida a los avances en el hardware: de 1991 a 2015, el poder de computación, especialmente en lo entregado por GPGPUs (en las GPU ), ha aumentado alrededor de un millón de veces, por lo que el algoritmo de retropropagación estándar viable para las redes de formación que son varias capas más profundas que antes (pero añade que esto no resuelve los problemas algorítmicos tales como fuga gradientes "de una manera fundamental"). El uso de la GPU en lugar de CPUs ordinarios puede traer los tiempos de entrenamiento para algunas redes por debajo de los meses a meros días.

Potencia de cálculo sigue creciendo más o menos de acuerdo con la Ley de Moore , que puede proporcionar recursos suficientes para llevar a cabo nuevas tareas. Ingeniería neuromorphic aborda la dificultad de hardware directamente, mediante la construcción de chips de no-von Neumann con circuitos diseñados para implementar redes neuronales desde el principio. Google también ha diseñado un chip optimizado para el procesamiento de red neural llamado Unidad de Procesamiento Tensor o TPU.

Contraejemplos prácticas a las críticas

Argumentos en contra de la posición de Dewdney son que las redes neuronales se han utilizado con éxito para resolver muchas tareas complejas y diversas, que van desde aviones que vuelan de forma autónoma para la detección de fraude de tarjetas de crédito.

Escritor de tecnología Roger Bridgman ha comentado las declaraciones de DEWDNEY sobre redes neuronales:

Las redes neuronales, por ejemplo, están en el muelle no sólo porque han sido promocionado al alto cielo, (lo que tiene, no?), sino también porque se puede crear una red de éxito sin la comprensión de cómo funcionaba: el montón de números que captura su comportamiento sería con toda probabilidad "una, mesa ilegible opaca... sin valor como recurso científico".

A pesar de su enfática declaración de que la ciencia no es la tecnología, parece Dewdney aquí para ridiculizar a las redes neuronales como mala ciencia cuando la mayoría de los ideando ellos están tratando de ser buenos ingenieros. Una tabla puede leer que una máquina útil podía leer todavía sería bien vale la pena tener.

Si bien es cierto que el análisis de lo que se ha aprendido por una red neuronal artificial es difícil, es mucho más fácil de hacerlo que analizar lo que se ha aprendido por una red neuronal biológica. Por otra parte, los investigadores involucrados en la exploración de algoritmos de aprendizaje para redes neuronales están descubriendo gradualmente principios genéricos que permiten que una máquina de aprendizaje tenga éxito. Por ejemplo, Bengio y LeCun (2007) escribió un artículo sobre el aprendizaje locales vs. No locales, así como poco profundas frente a la arquitectura de profundidad.

Enfoques híbridos

Algunas otras críticas que provienen de los defensores de los modelos híbridos (combinación de redes neuronales y enfoques simbólicos), que creen que el intermix de estos dos enfoques puede capturar mejor los mecanismos de la mente humana.

Las clases y tipos de RNAs[editar]

Ejemplos[editar]

Quake II Neuralbot[editar]

Un bot es un programa que simula a un jugador humano. El Neuralbot es un bot para el juego Quake II que utiliza una red neuronal artificial para decidir su comportamiento y un algoritmo genético para el aprendizaje. Es muy fácil probarlo para ver su evolución. Más información aquí [1]

Clasificador No Sesgado de Proteínas[editar]

Es un programa que combina diversas técnicas computacionales con el objetivo de clasificar familias de proteínas. Un posible método consiste en utilizar métricas adaptativas como por ejemplo: mapas autoorganizados y algoritmos genéticos.

El problema de clasificación no sesgada basada en la expresión de las proteínas en Aminoácidos puede reducirse, conceptualmente, a lo siguiente:

  • La identificación de grupos de proteínas que compartan características comunes.
  • La determinación de las razones estructurales por las cuales las proteínas en cuestión se agrupan de la manera indicada.
  • Evitar la idea de establecer criterios de clasificación (“sesgados”) fundamentados en ideas preconcebidas para lograr su clasificación. En este sentido, hay dos asuntos que considerar:
    • Cómo lograr la caracterización de las proteínas de manera no sesgada
    • Cómo lograr lo anterior sin apelar a medidas de agrupamiento que, a su vez, impliquen algún tipo de sesgo sobre dicho agrupamiento.

Las RNA han sido aplicadas a un número en aumento de problemas en la vida real y de considerable complejidad, donde su mayor ventaja es en la solución de problemas que son bastante complejos para la tecnología actual, tratándose de problemas que no tienen una solución algorítmica o cuya solución algorítmica es demasiado compleja para ser encontrada.

En general, debido a que son parecidas a las del cerebro humano, las RNA son bien nombradas ya que son buenas para resolver problemas que el humano puede resolver pero las computadoras no. Estos problemas incluyen el reconocimiento de patrones y la predicción del tiempo. De cualquier forma, el humano tiene capacidad para el reconocimiento de patrones, pero la capacidad de las redes neuronales no se ve afectada por la fatiga, condiciones de trabajo, estado emocional, y compensaciones.

Se conocen cinco aplicaciones tecnológicas extendidas:

  1. Reconocimiento de textos manuscritos
  2. Reconocimiento del habla
  3. Simulación de centrales de producción de energía
  4. Detección de explosivos
  5. Identificación de blancos de radares

Galería[editar]

Herramientas de software[editar]

Existen muchas herramientas de software que implementan redes neuronales artificiales, tanto libres como comerciales como, por ejemplo:

Véase también[editar]

Referencias[editar]

Enlaces externos[editar]