Neurona artificial - Artificial neuron

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 . 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 . 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 , diferenciables y acotados . La función de umbral ha inspirado puertas lógicas de construccióndenominadas 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 ampliamentenuevos dispositivos como los memristores para desarrollar dicha lógica.

La función de transferencia de neuronas artificiales no debe confundirse con la función de transferencia de un sistema lineal .

Estructura basica

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

Neurona artificial.png

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.

Tipos

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.

Modelos biologicos

Neurona y axón mielinizado, con flujo de señal desde las entradas en las dendritas hasta las salidas en los terminales del axón

Las neuronas artificiales están diseñadas para imitar aspectos de sus contrapartes biológicas.

  • Dendritas : en una neurona biológica, las dendritas actúan como vector de entrada. Estas dendritas permiten que la célula reciba señales de un gran número (> 1000) de neuronas vecinas. Como en el tratamiento matemático anterior, cada dendrita puede realizar una "multiplicación" por el "valor de peso" de esa dendrita. La multiplicación se logra aumentando o disminuyendo la relación entre los neurotransmisores sinápticos y las sustancias químicas de señal introducidas en la dendrita en respuesta al neurotransmisor sináptico. Se puede lograr un efecto de multiplicación negativo transmitiendo inhibidores de señal (es decir, iones con carga opuesta) a lo largo de la dendrita en respuesta a la recepción de neurotransmisores sinápticos.
  • Soma : en una neurona biológica, el soma actúa como la función de suma, como se ve en la descripción matemática anterior. A medida que las señales positivas y negativas (excitantes e inhibidoras, respectivamente) llegan al soma desde las dendritas, los iones positivos y negativos se agregan efectivamente en la suma, simplemente en virtud de estar mezclados en la solución dentro del cuerpo de la célula.
  • Axón : el axón obtiene su señal del comportamiento de suma que ocurre dentro del soma. La apertura del axón muestra esencialmente el potencial eléctrico de la solución dentro del soma. Una vez que el soma alcanza un cierto potencial, el axón transmitirá un pulso de señal total a lo largo de su longitud. En este sentido, el axón se comporta como la capacidad que tenemos de conectar nuestra neurona artificial con otras neuronas artificiales.

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

Codificación

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

Historia

La primera neurona artificial fue la Unidad Lógica de Umbral (TLU), o Unidad de Umbral Lineal, 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. 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 booleana podría ser implementada por 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 .

Tipos de funciones de transferencia

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.

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.

Función de paso

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.

Combinación lineal

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 .

Sigmoideo

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, trabajos recientes han demostrado que las neuronas sigmoides son menos efectivas que las neuronas lineales rectificadas . La razón es que los gradientes calculados por el algoritmo de retropropagación tienden 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.

Rectificador

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 con fuertes motivaciones biológicas y justificaciones matemáticas. Se ha demostrado por primera vez en 2011 que permite un mejor entrenamiento de redes más profundas, en comparación con las funciones de activación ampliamente utilizadas antes de 2011, es decir, el sigmoide logístico (que está inspirado en la teoría de la probabilidad ; ver regresión logística ) y sus funciones más prácticas. contraparte, la tangente hiperbólica .

Algoritmo de pseudocódigo

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.

class TLU defined as:
    data member threshold : number
    data member weights : list of numbers of size X

    function member fire(inputs : list of booleans of size X) : boolean defined as:
        variable T : number
        T  0
        for each i in 1 to X do
            if inputs(i) is true then
                T  T + weights(i)
            end if
        end for each
        if T > threshold then
            return true
        else:
            return false
        end if
    end function
end class

Ver también

Referencias

Otras lecturas

enlaces externos