Una neurona artificial es una función matemática concebida como un modelo de neuronas biológicas , una red neuronal . Las neuronas artificiales son unidades elementales de una red neuronal artificial . [1] La neurona artificial recibe una o más entradas (que representan los potenciales postsinápticos excitadores y los potenciales postsinápticos inhibidores en las dendritas neurales ) y las suma para producir una salida (oactivación , que representa el potencial de acción de una neuronaque se transmite a lo largo de su axón ). Por lo general, cada entrada se pondera por separadoy la suma se pasa a través de una función no lineal conocida como función de activación o función de transferencia [ aclaración necesaria ] . Las funciones de transferencia suelen tener una forma sigmoidea , pero también pueden adoptar la forma de otras funciones no lineales, funciones lineales por partes o funciones escalonadas . También suelen ser monótonamente crecientes , continuos ,diferenciable y acotado . La función de umbral ha inspirado puertas lógicas de construcción denominadas lógica de umbral; aplicable a la construcción de circuitos lógicos que se asemejan al procesamiento cerebral. Por ejemplo, en los últimos tiempos se han utilizado ampliamente nuevos dispositivos como los memristores para desarrollar dicha lógica. [2]
La función de transferencia de neuronas artificiales no debe confundirse con la función de transferencia de un sistema lineal .
Para una neurona artificial dada k, supongamos que hay m + 1 entradas con señales x 0 a x my pesos w k 0 a w k m . Por lo general, a la entrada x 0 se le asigna el valor +1, lo que la convierte en una entrada de polarización con w k 0 = b k . Esto deja solo m entradas reales a la neurona: desde x 1 hasta x m .
La salida de la k- ésima neurona es:
Donde (phi) es la función de transferencia (comúnmente una función de umbral).
La salida es análoga al axón de una neurona biológica y su valor se propaga a la entrada de la siguiente capa, a través de una sinapsis. También puede salir del sistema, posiblemente como parte de un vector de salida .
No tiene un proceso de aprendizaje como tal. Se calculan los pesos de su función de transferencia y se predeterminan los valores de umbral.
Dependiendo del modelo específico utilizado puede ser llamado un unidad semi-lineal , neurona Nv , neurona binaria , función de umbral lineal , o McCulloch-Pitts ( MCP ) neurona .
Las neuronas artificiales simples, como el modelo de McCulloch-Pitts, a veces se describen como "modelos de caricatura", ya que están destinadas a reflejar una o más observaciones neurofisiológicas, pero sin tener en cuenta el realismo. [3]
Esta sección necesita expansión . Puedes ayudar agregando más . ( Mayo de 2017 ) |
Las neuronas artificiales están diseñadas para imitar aspectos de sus contrapartes biológicas.
Sin embargo, a diferencia de la mayoría de las neuronas artificiales, las neuronas biológicas se activan en pulsos discretos. Cada vez que el potencial eléctrico dentro del soma alcanza un cierto umbral, se transmite un pulso por el axón. Este pulso se puede traducir en valores continuos. La velocidad (activaciones por segundo, etc.) a la que se dispara un axón se convierte directamente en la velocidad a la que las células vecinas obtienen los iones de señal que se introducen en ellas. Cuanto más rápido se dispara una neurona biológica, más rápido las neuronas cercanas acumulan potencial eléctrico (o pierden potencial eléctrico, dependiendo de la "ponderación" de la dendrita que se conecta a la neurona que se disparó). Es esta conversión la que permite a los informáticos y matemáticos simular redes neuronales biológicas utilizando neuronas artificiales que pueden generar valores distintos (a menudo de -1 a 1).
La investigación ha demostrado que la codificación unaria se utiliza en los circuitos neuronales responsables de la producción del canto de los pájaros . [4] [5] El uso de unario en redes biológicas se debe presumiblemente a la simplicidad inherente de la codificación. Otro factor contribuyente podría ser que la codificación unaria proporcione un cierto grado de corrección de errores. [6]
La primera neurona artificial fue la Unidad de Lógica de Umbral (TLU), o Unidad de Umbral Lineal, [7] propuesta por primera vez por Warren McCulloch y Walter Pitts en 1943. El modelo se apuntó específicamente como un modelo computacional de la "red nerviosa" en el cerebro. . [8] Como función de transferencia, empleó un umbral, equivalente a usar la función escalón Heaviside . Inicialmente, se consideró solo un modelo simple, con entradas y salidas binarias, algunas restricciones sobre los posibles pesos y un valor umbral más flexible. Desde el principio ya se notó que cualquier función booleanapodría implementarse mediante redes de tales dispositivos, lo que se ve fácilmente por el hecho de que se pueden implementar las funciones AND y OR, y usarlas en la forma disyuntiva o conjuntiva normal . Los investigadores también pronto se dieron cuenta de que las redes cíclicas, con retroalimentación a través de neuronas, podrían definir sistemas dinámicos con memoria, pero la mayor parte de la investigación se concentró (y todavía lo hace) en redes estrictamente de retroalimentación debido a la menor dificultad que presentan.
Una red neuronal artificial importante y pionera que utilizó la función de umbral lineal fue el perceptrón , desarrollado por Frank Rosenblatt . Este modelo ya consideraba valores de peso más flexibles en las neuronas y se utilizó en máquinas con capacidades adaptativas. La representación de los valores umbral como un término de sesgo fue introducida por Bernard Widrow en 1960 - ver ADALINE .
A finales de la década de 1980, cuando la investigación sobre redes neuronales recuperó fuerza, se empezaron a considerar las neuronas con formas más continuas. La posibilidad de diferenciar la función de activación permite el uso directo del descenso de gradiente y otros algoritmos de optimización para el ajuste de los pesos. Las redes neuronales también comenzaron a utilizarse como modelo de aproximación de funciones generales . El algoritmo de entrenamiento más conocido llamado retropropagación ha sido redescubierto varias veces, pero su primer desarrollo se remonta al trabajo de Paul Werbos . [9] [10]
La función de transferencia (función de activación ) de una neurona se elige para que tenga una serie de propiedades que mejoran o simplifican la red que contiene la neurona. Fundamentalmente, por ejemplo, cualquier perceptrón multicapa que utilice una función de transferencia lineal tiene una red equivalente de una sola capa; por lo tanto, es necesaria una función no lineal para obtener las ventajas de una red multicapa. [ cita requerida ]
A continuación, u se refiere en todos los casos a la suma ponderada de todas las entradas a la neurona, es decir, para n entradas,
donde w es un vector de pesos sinápticos y x es un vector de entradas.
La salida y de esta función de transferencia es binaria, dependiendo de si la entrada alcanza un umbral especificado, θ . Se envía la "señal", es decir, la salida se establece en uno, si la activación alcanza el umbral.
Esta función se utiliza en perceptrones y, a menudo, aparece en muchos otros modelos. Realiza una división del espacio de entradas por un hiperplano . Es especialmente útil en la última capa de una red destinada a realizar una clasificación binaria de las entradas. Puede aproximarse a partir de otras funciones sigmoidales asignando valores grandes a los pesos.
En este caso, la unidad de salida es simplemente la suma ponderada de sus entradas más un término de sesgo . Varias de estas neuronas lineales realizan una transformación lineal del vector de entrada. Esto suele ser más útil en las primeras capas de una red. Existen varias herramientas de análisis basadas en modelos lineales, como el análisis armónico , y todas pueden usarse en redes neuronales con esta neurona lineal. El término de sesgo nos permite realizar transformaciones afines a los datos.
Ver: transformación lineal , análisis armónico , filtro lineal , Wavelet , análisis de componentes principales , Análisis de Componentes Independientes , deconvolución .
Una función no lineal bastante simple, la función sigmoidea , como la función logística, también tiene una derivada fácilmente calculada, que puede ser importante al calcular las actualizaciones de peso en la red. Por lo tanto, hace que la red sea más fácilmente manipulable matemáticamente y fue atractiva para los primeros científicos informáticos que necesitaban minimizar la carga computacional de sus simulaciones. Anteriormente se veía comúnmente en perceptrones multicapa . Sin embargo, un trabajo reciente ha demostrado que las neuronas sigmoides son menos efectivas que las neuronas lineales rectificadas . La razón es que los gradientes calculados por la retropropagación El algoritmo tiende a disminuir hacia cero a medida que las activaciones se propagan a través de capas de neuronas sigmoidales, lo que dificulta la optimización de las redes neuronales utilizando múltiples capas de neuronas sigmoidales.
En el contexto de las redes neuronales artificiales , el rectificador es una función de activación definida como la parte positiva de su argumento:
donde x es la entrada a una neurona. Esto también se conoce como función de rampa y es análoga a la rectificación de media onda en la ingeniería eléctrica. Esta función de activación fue introducida por primera vez en una red dinámica por Hahnloser et al. en un artículo de 2000 en Nature [11] con fuertes motivaciones biológicas y justificaciones matemáticas. [12] Se demostró por primera vez en 2011 que permite un mejor entrenamiento de redes más profundas, [13] en comparación con las funciones de activación ampliamente utilizadas antes de 2011, es decir, el sigmoide logístico (que se inspira en la teoría de la probabilidad ; verregresión logística ) y su contraparte más práctica [14] , la tangente hiperbólica .
Se ha sugerido que esta sección se divida en otro artículo titulado Unidad lógica de umbral . ( Discutir ) (mayo de 2017) |
La siguiente es una implementación de pseudocódigo simple de una sola TLU que toma entradas booleanas (verdadero o falso) y devuelve una única salida booleana cuando se activa. Se utiliza un modelo orientado a objetos . No se define ningún método de entrenamiento, ya que existen varios. Si se usara un modelo puramente funcional, la clase TLU a continuación se reemplazaría con una función TLU con umbral de parámetros de entrada, pesos y entradas que devolvieran un valor booleano.
clase TLU definida como: umbral de miembros de datos : número pesos de miembros de datos : lista de números de tamaño X miembro de función fuego (entradas : lista de valores booleanos de tamaño X) : booleano definido como: variable T : número T ← 0 para cada i en 1 a X do si las entradas (i) son verdaderas entonces T ← T + pesos (i) end if end para cada si T> umbral luego devuelve verdadero else: devuelve falso end if end function end class
|journal=
( ayuda )