Red Neuronal Artificial
Red Neuronal Artificial
Red Neuronal Artificial
Ir a la navegaciónIr a la búsqueda
Este artículo trata sobre red neuronal artificial. Para otros usos de este término, véase red neuronal
biológica.
{{subst:Aviso mal
Copia y pega el siguiente código en la página de discusión del autor:
traducido|Red neuronal artificial}} ~~~~
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 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 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.
Í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.202122
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.
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
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.
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[editar]
Lo que ha atraído el mayor interés en las redes neuronales es la posibilidad de aprendizaje. Dada
una determinada tarea a resolver, y una clase de funciones , el aprendizaje consiste en utilizar
un conjunto de observaciones para encontrar la cual resuelve la tarea de alguna forma óptima.
Esto implica la definición de una función de coste tal que, para la solución óptima . Es
decir, ninguna solución tiene un costo menor que el costo de la solución óptima.
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
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 una formulación probabilística
la probabilidad posterior del modelo puede ser utilizada como un costo inverso). 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[editar]
encontrar una función en la clase permitido de funciones que corresponden con los ejemplos.
En otras palabras, deseamos inferir el mapeo derivado de los datos; la función de coste está
relacionado con la falta de coincidencia entre nuestro mapeo y los datos, y contiene implícitamente
el conocimiento previo sobre el dominio del problema.36
Un coste de uso común es el error cuadrático medio, que trata de minimizar el error cuadrático
medio entre las salidas de la red, y el valor objetivo sobre todos los pares ejemplares.
Cuando uno trata de minimizar este coste utilizando descenso de gradiente para la clase de las
redes neuronales llamadas perceptrones multicapas (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 también a los datos secuenciales
(por ejemplo, reconocimiento del habla, del manuscrito, y de gestos). Esto se puede considerar
como una forma de 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[editar]
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).
Minimizar este coste nos dará un valor de 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 de datos y el filtrado bayesiano de spam.
Aprendizaje por refuerzo[editar]
En el aprendizaje por refuerzo , los datos por lo general no se dan, pero generada por la
Algoritmos de aprendizaje[editar]
El entrenamiento de un modelo de red neuronal en esencia significa seleccionar un modelo de la
serie de modelos permitidos (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 la formación de los modelos de redes neuronales; la mayoría de ellos puede ser
vista como una aplicación directa de la teoría de optimización 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, cambiando los parámetros en una dirección
relacionada al gradiente. Los algoritmos de entrenamiento de propagación hacia atrás generalmente
se clasifican en tres categorías:
1. Descenso del gradiente (con tasa variable de aprendizaje y momentum, retropropagación
elástica (Rprop));
2. cuasi-Newton ( Broyden-Fletcher-Goldfarb-Shannon, Método de la secante );
3. Levenberg-Marquardt y gradiente conjugado (actualización Fletcher-Reeves, actualizaación
Polak-Ribiere, Powell-Beale reinicio, gradiente conjugado escalado).43
Métodos evolutivos,44 de programación de la expresión génica,45 de recocido simulado,46 de
esperanza-maximización, los métodos no paramétricos y la optimización por enjambre de
partículas47 son algunos otros métodos para la formación de redes neuronales.
Algoritmo recursivo convergente de aprendizaje[editar]
Este es un método de aprendizaje específicamente desegnado para redes neuronales
controladores de articulación (CMAC por sus siglas en inglés) de modelo cerebelosa. En 2004, un
algoritmo recursivo de mínimos cuadrados estaba introducido para formar en línea redes
neuronales CMAC. 48 Este algoritmo puede convergir en un solo paso, y actualizar todos los pesos
en un solo paso con cualquier dato nuevo de entrada. Al principio, este algoritmo tenía complejidad
computacional de O(N3). Basado en factorización QR, este algoritmo recursivo de aprendizaje había
sido simplificado para hacerlo O(N).49
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 los hiperparámetros correctos para la formación
de un conjunto específico de datos fijos. Sin embargo, la selección y el ajuste de un
algoritmo para la formación en datos no previstos requieren una cantidad significativa de
experimentación.
Robustez
Si se seleccionan apropiadamente el modelo, la función de coste y el algoritmo de
aprendizaje, la RNA resultante puede ser extremadamente robusto.
Con la aplicación correcta, las RNA pueden ser utilizadas de forma natural en el
aprendizaje online y aplicaciones de grandes conjuntos de datos. Su aplicación sencilla
y la existencia de dependencias en su mayoría locales 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: