Neurona artificial
Una neurona artificial es una función matemática concebida como modelo de neuronas biológicas, una red neuronal. Las neuronas artificiales son unidades elementales en una red neuronal artificial. La neurona artificial recibe una o más entradas (que representan potenciales postsinápticos excitadores y potenciales postsinápticos inhibidores en las dendritas neurales) y los suma para producir una salida (o activación, que representa el potencial de acción de una neurona que se transmite a lo largo de su axón). Por lo general, cada entrada se pondera por separado y 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 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. También se han explorado recientemente funciones de activación no monótonas, ilimitadas y oscilantes con múltiples ceros que superan a las funciones de activación sigmoidales y similares a ReLU en muchas tareas. La función de umbral ha inspirado la construcción de puertas lógicas 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.
Did you mean:The artificial neuron transfer function should not be confused with a linear system 's transfer function.
Las neuronas artificiales también pueden referirse a células artificiales en ingeniería neuromórfica que son similares a las neuronas físicas naturales.
Estructura básica
Para una neurona artificial k dada, haya m + 1 entradas con señales desde x0 hasta xm y pesos desde wk0 hasta w km. Por lo general, a la entrada x0 se le asigna el valor +1, lo que la convierte en una entrada bias con wk0 = bk. Esto deja sólo m entradas reales a la neurona: de x1 a xm .
Did you mean:The output of the <ukthe neuron is:
- Sí.k=φ φ ().. j=0mwkjxj){displaystyle Y_{k}=varphi left(sum) ¿Por qué?
Donde φ φ {displaystyle varphi } (phi) es la función de transferencia (comúnmente una función 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 proceso de aprendizaje como tal. Se calculan los pesos de su función de transferencia y se predetermina el valor umbral.
Tipos
Dependiendo del modelo específico utilizado, se les puede llamar unidad semilineal, neurona Nv, neurona binaria, neurona lineal. función umbral, 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 pretenden reflejar una o más observaciones neurofisiológicas, pero sin tener en cuenta el realismo.
Modelos biológicos

Las neuronas artificiales están diseñadas para imitar aspectos de sus contrapartes biológicas. Sin embargo, existe una brecha de rendimiento significativa entre las redes neuronales biológicas y artificiales. En particular, se han descubierto neuronas biológicas individuales en el cerebro humano con función de activación oscilante capaces de aprender la función XOR.
- Dendridos – En una neurona biológica, los dendritos actúan como vector de entrada. Estos dendritos permiten que la célula reciba señales de un gran número de neuronas vecinas. Como en el tratamiento matemático anterior, cada dendrito es capaz de realizar "multiplicación" por el "valor de peso" de ese dendrito. La multiplicación se logra aumentando o disminuyendo la proporción de neurotransmisores sinápticos a los productos químicos de señal introducidos en el dendrido en respuesta al neurotransmisor sináptico. Un efecto de multiplicación negativa se puede lograr mediante la transmisión de inhibidores de señales (es decir, iones cargados opuestamente) a lo largo del dendrido 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 summación, vista en la descripción matemática anterior. A medida que las señales positivas y negativas (excitar e inhibir, respectivamente) llegan al soma de los dendritos, los iones positivos y negativos se añaden efectivamente en la summación, por virtud simple de ser mezclados en la solución dentro del cuerpo de la célula.
- Axon – El axón recibe su señal del comportamiento de la sumación que ocurre dentro del soma. La apertura al eje muestra esencialmente el potencial eléctrico de la solución dentro del soma. Una vez que el soma alcance un potencial determinado, el axón transmitirá un pulso de señal todo en su longitud. En este sentido, el axón se comporta como la capacidad para conectar nuestra neurona artificial a 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 reciben 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
Las investigaciones han 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 que contribuye podría ser que la codificación unaria proporcione un cierto grado de corrección de errores.
Células físicas artificiales
Existe investigación y desarrollo de neuronas artificiales físicas, orgánicas e inorgánicas.
Por ejemplo, algunas neuronas artificiales pueden recibir y liberar dopamina (señales químicas en lugar de señales eléctricas) y comunicarse con células musculares y cerebrales naturales de rata, con potencial para su uso en BCI/prótesis.
Los memristores biocompatibles de baja potencia pueden permitir la construcción de neuronas artificiales que funcionan a voltajes de potenciales de acción biológicos y podrían usarse para procesar directamente señales de biodetección, para computación neuromórfica y/o comunicación directa con neuronas biológicas.
Se han integrado en un robot circuitos neuromórficos orgánicos hechos de polímeros, recubiertos con un gel rico en iones para permitir que un material transporte una carga eléctrica como neuronas reales, lo que le permite aprender sensoriomotoramente en el mundo real, en lugar de mediante simulaciones o virtualmente. Además, las neuronas artificiales hechas de materia blanda (polímeros) pueden operar en entornos biológicamente relevantes y permitir la comunicación sinérgica entre los dominios artificial y biológico.
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 estaba específicamente destinado a ser un modelo computacional de la "red nerviosa" 34; en el cerebro. Como función de transferencia, empleó un umbral, equivalente a utilizar la función escalonada de Heaviside. Inicialmente, sólo se consideró 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 observó que cualquier función booleana podía implementarse mediante redes de dichos dispositivos, lo que se ve fácilmente por el hecho de que se pueden implementar las funciones AND y OR y utilizarlas en forma normal disyuntiva o conjuntiva. Los investigadores pronto también se dieron cuenta de que las redes cíclicas, con retroalimentación a través de neuronas, podí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 utilizaba en máquinas con capacidades adaptativas. La representación de los valores umbral como término de sesgo fue introducida por Bernard Widrow en 1960 (ver ADALINE).
A finales de los años 80, cuando la investigación sobre redes neuronales recobró fuerza, se empezaron a considerar 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 mejoren o simplifiquen 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,
- u=.. i=1nwixi{displaystyle u=sum ¿Qué?
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 cumple con un umbral específico, θ. La "señal" se envía, es decir, la salida se establece en uno, si la activación alcanza el umbral.
- <math alttext="{displaystyle y={begin{cases}1&{text{if }}ugeq theta \0&{text{if }}uSí.={}1siu≥ ≥ Silencio Silencio 0siu.Silencio Silencio {displaystyle Y={begin{cases}1 golpe{text{if }ugeq theta \0 tarde {text{if }u madetheta end{cases}}<img alt="y={begin{cases}1&{text{if }}ugeq theta \0&{text{if }}u
Esta función se utiliza en perceptrones y suele aparecer 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 clasificación binaria de las entradas. Se puede aproximar a partir de otras funciones sigmoidales asignando valores grandes a los pesos.
Combinación lineal
En este caso, la unidad de producción 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 ellas pueden utilizarse 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
La función sigmoidea, una función no lineal bastante simple, como la función logística, también tiene una derivada fácil de calcular, lo 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 resultó atractivo 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 sigmoideas 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 que utilizan múltiples capas de neuronas sigmoidales.
Rectificador
En el contexto de las redes neuronales artificiales, el rectificador o ReLU (Unidad Lineal Rectificada) es una función de activación definida como la parte positiva de su argumento:
- f()x)=x+=max()0,x),{displaystyle f(x)=x^{+}=max(0,x),}
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 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. En 2011 se demostró por primera vez 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 su versión más práctica. contraparte, la tangente hiperbólica.
Una variante comúnmente utilizada de la función de activación ReLU es Leaky ReLU, que permite un gradiente pequeño y positivo cuando la unidad no está activa:
0,\ax&{text{otherwise}}.end{cases}}}" xmlns="http://www.w3.org/1998/Math/MathML">f()x)={}xsix■0,axde otra manera.{displaystyle f(x)={begin{cases}x ventaja{text{if }x título0,\ax {text{otherwise}}end{cases}}0,\ax&{text{otherwise}}.end{cases}}}" aria-hidden="true" class="mwe-math-fallback-image-inline" src="https://wikimedia.org/api/rest_v1/media/math/render/svg/fda8917e3cf15d50f5d783e0580eb19366e961d9" style="vertical-align: -2.505ex; width:25.117ex; height:6.176ex;"/>
donde x es la entrada a la neurona y a es una pequeña constante positiva (en el artículo original se usó el valor 0,01 para a).
Algoritmo de pseudocódigo
La siguiente es una implementación de pseudocódigo simple de una única TLU que toma entradas booleanas (verdadera o falsa) 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 siguiente se reemplazaría con una función TLU con parámetros de entrada umbral, pesos y entradas que devolvieran un valor booleano.
clase TLU definida como: miembro de los datos umbral : Número miembro de los datos pesos : lista de números de tamaño X miembro de la función fuego(inputs) : lista de booleanos de tamaño X) : boolean definida como: variable T : Número T ← 0 para cada uno i dentro 1 a X do si inputs(i) es verdadero entoncesT ← T + pesos(i) terminar si fin para cada si T ' umbral entonces retorno verdadero más: retorno falso terminar si función finalclase final
