A_ABET Proyecto Integrador
The Stochastic Neuron Model
Nombres:
Domenica Escobar
Guillermo Alvarez
Fecha: 30/01/2024
Investigación previa
Neurociencia computacional
La neurociencia computacional (CN, por sus siglas en inglés, computational neuroscience), se encarga del estudio de las propiedades de las conexiones neuronales y la recreación digital de dichas propiedades, combina principios de la neurobiología, la física, las matemáticas y la informática para desarrollar modelos que simulen el comportamiento neuronal y cognitivo. Estos modelos pueden ayudar a explicar cómo emergen las funciones cerebrales complejas, como la percepción, la memoria y el aprendizaje.
Los modelos y simulaciones son obtenidos a partir de la información recabada en experimentos de neuroimagen o psicofisiología con seres humanos.
Se utilizan simulaciones generadas a partir de dicha información para pronosticar cuáles pueden ser las posibles redes implicadas en una u otra función.
Posteriormente, tales modelos y predicciones son comparados con el desempeño de personas reales sometidas a diseños experimentales en el laboratorio.
Los diseños experimentales son cuidadosamente controlados para recrear, lo más fielmente posible, las condiciones que sirvieron como parámetro para las simulaciones. Esta rama de la neurociencia también nos permite establecer un símil entre la forma de aprender de los organismos biológicos y las formas de aprendizaje informatizadas o machine learning.
Modelos de neuronas activas
A diferencia de los modelos de neuronas pasivas, que simplifican el comportamiento de las neuronas tratándolas como circuitos eléctricos pasivos, los modelos de neuronas activas tienen en cuenta la dinámica compleja de la membrana celular y la generación de potenciales de acción. Estos modelos incorporan ecuaciones diferenciales que describen cómo los iones fluyen a través de los canales iónicos de la membrana, lo que permite simular con mayor precisión el comportamiento biofísico de las neuronas reales.
Autómatas celulares
Los autómatas celulares son modelos discretos que consisten en una cuadrícula de celdas, cada una de las cuales puede tener un estado determinado, como "encendido" o "apagado". Estas celdas cambian de estado de acuerdo con reglas locales y el estado de sus vecinas. Los autómatas celulares son útiles para simular sistemas dinámicos complejos y estudiar fenómenos emergentes, como la propagación de ondas, la formación de patrones y la autoorganización.
Redes de cuadrícula
Las redes de cuadrícula son redes neuronales que se encuentran en el cerebro de mamíferos, especialmente en regiones como el hipocampo. Estas redes consisten en neuronas que disparan de manera específica cuando un individuo se encuentra en ubicaciones espaciales discretas, formando una especie de "cuadrícula" que cubre el entorno. Las redes de cuadrícula son importantes para la navegación espacial y la representación cognitiva del espacio.
Sincronización
En el contexto neuronal, la sincronización se refiere a la coordinación temporal de las actividades neuronales entre diferentes neuronas o regiones cerebrales. La sincronización neuronal puede surgir de la interacción entre las neuronas y puede ser crucial para el procesamiento de información y la generación de patrones en el cerebro. La sincronización puede observarse en forma de oscilaciones neuronales coherentes en frecuencia y fase.
Diagramas de fases
Son representaciones gráficas que muestran las diferentes fases y comportamientos de un sistema dinámico en función de variables específicas, como el tiempo o parámetros del sistema. Estos diagramas son comunes en el estudio de sistemas dinámicos y pueden revelar la estructura subyacente, las transiciones de fase y las propiedades emergentes del sistema a lo largo del tiempo.
Modelo de Neurona Estocástica
El Modelo de Neurona Estocástica (Stochastic Neuron Model, SNM) es un modelo matemático que describe el comportamiento de una neurona artificial en un entorno estocástico. El modelo se basa en la idea de que la actividad de una neurona artificial se ve afectada por una cantidad aleatoria de ruido.
El SNM se puede representar mediante la siguiente ecuación:
x(t + 1) = f(x(t)) + w * n(t) donde:
El SNM se puede utilizar para modelar una variedad de fenómenos biológicos y artificiales. Por ejemplo, se puede utilizar para modelar la actividad de las neuronas en el cerebro, o para modelar el comportamiento de los agentes en un sistema complejo.
A continuación se presentan algunas de las características principales del SNM:
-El modelo es probabilístico, lo que significa que el estado futuro de la neurona no está determinado por su estado actual. -El modelo es flexible, ya que la función de transferencia de la neurona se puede elegir para adaptarse a una variedad de aplicaciones. -El modelo es robusto, ya que puede tolerar niveles moderados de ruido. -El SNM ha sido utilizado en una variedad de aplicaciones, incluyendo:
El SNM ha demostrado ser una herramienta útil para estudiar la sincronización de las neuronas. El modelo se ha utilizado para predecir la aparición de la sincronización en redes neuronales artificiales, y para estudiar los efectos del ruido en la sincronización.
Run to view results
Explicación Código #1
Este código simula el paseo aleatorio de una neurona estocástica, una neurona estocástica es una neurona que tiene una actividad que cambia aleatoriamente con el tiempo, por lo que la actividad de la neurona se representa como una variable aleatoria, que puede tomar cualquier valor entre 0 y 120.
La función neuron_walk() simula el paseo aleatorio de una neurona estocástica. La función toma los siguientes parámetros:
L: El umbral de activación de la neurona. Si la actividad de la neurona es igual o superior a L, la neurona se dispara. pf: La probabilidad de que la neurona se dispare si su actividad es igual o superior a L. p: La probabilidad de que la actividad de la neurona aumente en 1 en cada paso de tiempo. time: El número de pasos de tiempo para simular.
La función funciona de la siguiente manera:
1. La función comienza creando una lista vacía para almacenar la actividad de la neurona en cada paso de tiempo, después en cada paso de tiempo, la función verifica la actividad de la neurona en el paso anterior.
2. En cada paso de tiempo, la función verifica la actividad de la neurona en el paso anterior.
3. Si la actividad de la neurona es igual o superior a L en un paso de tiempo, la función verifica si la neurona se dispara.
4. La función repite los pasos 2 y 3 durante time pasos de tiempo.
Tres gráficos de la actividad de la neurona estocástica para tres valores diferentes de pf:
pf = 0.1: La neurona tiene una probabilidad baja de disparar. La actividad de la neurona fluctúa alrededor de L. pf = 0.5: La neurona tiene una probabilidad media de disparar. La actividad de la neurona tiene una mayor probabilidad de estar por encima de L. pf = 0.9: La neurona tiene una probabilidad alta de disparar. La actividad de la neurona tiene una mayor probabilidad de estar cerca de 120.
Gráficos:
Actividad de la neurona estocástica (pf = 0.1): La neurona tiene una probabilidad baja de disparar. La actividad de la neurona fluctúa alrededor de L. La neurona tiene una probabilidad baja de alcanzar el umbral de activación, por lo que no se dispara con frecuencia. Actividad de la neurona estocástica (pf = 0.5): La neurona tiene una probabilidad media de disparar. La actividad de la neurona tiene una mayor probabilidad de estar por encima de L. La neurona tiene una probabilidad media de alcanzar el umbral de activación, por lo que se dispara con una frecuencia media. Actividad de la neurona estocástica (pf = 0.9): La neurona tiene una probabilidad alta de disparar. La actividad de la neurona tiene una mayor probabilidad de estar cerca de 120. La neurona tiene una probabilidad alta de alcanzar el umbral de activación, por lo que se dispara con frecuencia. Los gráficos muestran la probabilidad que tiene la neurona de que se dispare mientras se aumenta el valor de pf ya que una mayor probabilidad de disparar significa que la neurona tiene más probabilidades de alcanzar el umbral de activación.
Los gráficos también muestran que la actividad de la neurona fluctúa alrededor de L. Esto se debe a que la neurona puede aumentar o disminuir su actividad en cada paso de tiempo. La neurona tiene más probabilidades de aumentar su actividad si su actividad actual es inferior a L. La neurona tiene más probabilidades de disminuir su actividad si su actividad actual es superior a L.
Run to view results
Explicación Código #2
Este código simula la red de tres neuronas con acoplamiento eléctrico, una red neuronal con acoplamiento eléctrico es una red en la que las neuronas se influyen mutuamente a través de sinapsis eléctricas.
La función neuron_network() simula la red de neuronas con los siguientes parámetros:
La función funciona de la siguiente manera:
1. La función comienza inicializando las actividades de las neuronas con un paseo aleatorio que comienza en 0. 2. En cada paso de tiempo, la función actualiza las actividades de las neuronas de la siguiente manera:
Gráficos:
Los gráficos muestran la actividad de cada neurona en el eje Y a lo largo del tiempo en el eje X.
Actividad de la red de tres neuronas (g = 0.01): muestra que las neuronas fluctúan aleatoriamente alrededor del umbral de activación (L = 30). Esto se debe a que la conductancia de acoplamiento eléctrico es baja, por lo que las neuronas se influyen poco mutuamente.
Actividad de la red de tres neuronas (g = 0.17): muestra que las neuronas tienden a converger hacia un valor común. Esto se debe a que la conductancia de acoplamiento eléctrico es alta, por lo que las neuronas se influyen mucho mutuamente.
Estos resultados son consistentes con lo que se espera de una red neuronal con acoplamiento eléctrico. Una conductancia de acoplamiento eléctrico más alta significa que las neuronas se influyen más mutuamente, lo que puede conducir a una sincronización más estrecha de las actividades de las neuronas.
Run to view results
Explicación Código #3
Simula una red de neuronas con acoplamiento eléctrico, una red neuronal con acoplamiento eléctrico es una red en la que las neuronas se influyen mutuamente a través de sinapsis eléctricas.
La función neuron_network() simula la red de neuronas. La función toma los siguientes parámetros:
La función funciona de la siguiente manera:
1. La función comienza inicializando las actividades de las neuronas con ceros. 2. En cada paso de tiempo, la función actualiza las actividades de las neuronas de la siguiente manera: - Para cada neurona, la función calcula la suma de las influencias externas de las otras neuronas. - La función actualiza la actividad de la neurona de acuerdo con la siguiente ecuación: new_activity = activity + g * (sum_of_influences) - Si la actividad de la neurona es igual o superior a L, la neurona se dispara. La función establece la actividad de la neurona en 120. - La función repite los pasos 2 y 3 durante time pasos de tiempo.
Gráficos:
El código crea una animación que muestra la evolución de la actividad de la red de neuronas en el tiempo. La animación se crea usando la biblioteca matplotlib.animation.
La actividad de cada neurona se representa con un color.
En la animación, se puede observar que las neuronas comienzan activas de forma aleatoria, sin embargo a medida que pasa el tiempo, las neuronas comienzan a sincronizarse. Esto significa que las actividades de las neuronas tienden a converger hacia un valor común.
En la animación, la sincronización de las neuronas se puede ver claramente en la barra de color. Al principio de la animación, la barra de color está llena de colores aleatorios. A medida que pasa el tiempo, la barra de color se vuelve más uniforme, esto significa que las actividades de las neuronas están más cerca de un valor común.
En este caso, la sincronización de las neuronas se produce debido a la conductancia de acoplamiento eléctrico. Una conductancia más alta significa que las neuronas se influyen más mutuamente, lo que puede conducir a una sincronización más estrecha de las actividades de las neuronas.
Los resultados de la animación muestran que la sincronización neuronal es un fenómeno complejo que puede verse afectado por una variedad de factores, incluyendo la conductancia de acoplamiento eléctrico.
Run to view results
Run to view results
Explicación Código #4
Este código crea un grafo de red 2D utilizando la biblioteca NetworkX en Python.
1. Se define el tamaño de una cuadrícula.
2. Se crea un grafo con nodos dispuestos en una cuadrícula de ese tamaño.
3. Se definen las posiciones de los nodos en la cuadrícula para su visualización en un gráfico.
4. Se dibuja el grafo en un gráfico utilizando Matplotlib, donde los nodos se representan como puntos y las aristas como líneas.
El resultado es una representación visual de una red bidimensional.
Run to view results
Explicación Código #5
Simula una red de neuronas con acoplamiento eléctrico. Una red neuronal con acoplamiento eléctrico es una red en la que las neuronas se influyen mutuamente a través de sinapsis eléctricas.
La función neuron_network() simula la red de neuronas. La función toma los siguientes parámetros:
La función funciona de la siguiente manera:
1. La función comienza inicializando las actividades de las neuronas con ceros. 2. En cada paso de tiempo, la función actualiza las actividades de las neuronas de la siguiente manera: -Para cada neurona, la función calcula la suma de las influencias externas de las otras neuronas. -La función actualiza la actividad de la neurona de acuerdo con la siguiente ecuación: new_activity = activity + g * (sum_of_influences) -Si la actividad de la neurona es igual o superior a L, la neurona se dispara. La función establece la actividad de la neurona en 120. -La función repite los pasos 2 y 3 durante time pasos de tiempo.
Gráfico:
Actividad global de una red de neuronas con acoplamiento eléctrico. La actividad global se calcula como la suma de las actividades de todas las neuronas en la red.
El gráfico muestra que la actividad global oscila entre un valor mínimo y un valor máximo. El valor mínimo es cuando la mayoría de las neuronas están en estado de reposo, y el valor máximo es cuando la mayoría de las neuronas están activas.
En este caso, la oscilación de la actividad global se produce debido a la conductancia de acoplamiento eléctrico. Una conductancia más alta significa que las neuronas se influyen más mutuamente, lo que puede conducir a una oscilación más extrema de la actividad global.
En el gráfico, el valor mínimo de la actividad global es de aproximadamente 100, y el valor máximo es de aproximadamente 500. Esto significa que la mayoría de las neuronas están en estado de reposo la mayor parte del tiempo, pero que un pequeño número de neuronas pueden estar activas a la vez.
La amplitud de la oscilación de la actividad global puede verse afectada por la conductancia de acoplamiento eléctrico. En este caso, la conductancia de acoplamiento eléctrico es de 0.1. Si la conductancia de acoplamiento eléctrico fuera más alta, la amplitud de la oscilación sería mayor.
Los resultados del gráfico muestran que la actividad global de una red de neuronas con acoplamiento eléctrico puede oscilar entre un valor mínimo y un valor máximo. La amplitud de la oscilación puede verse afectada por la conductancia de acoplamiento eléctrico.
Análisis más detallado de los resultados del gráfico:
Run to view results
Explicación Código #6
Simula una red de neuronas con acoplamiento eléctrico. Una red neuronal con acoplamiento eléctrico es una red en la que las neuronas se influyen mutuamente a través de sinapsis eléctricas.
La función neuron_network() simula la red de neuronas. La función toma los siguientes parámetros:
La función funciona de la siguiente manera:
1. La función comienza inicializando las actividades de las neuronas con un paseo aleatorio que comienza en 0. 2. En cada paso de tiempo, la función actualiza las actividades de las neuronas de la siguiente manera: -Para cada neurona, la función calcula la suma de las influencias externas de las otras neuronas. -La función actualiza la actividad de la neurona de acuerdo con la siguiente ecuación: new_activity = activity + g * (sum_of_influences) -Si la actividad de la neurona es igual o superior a L, la neurona se dispara. La función establece la actividad de la neurona en 120. -La función repite los pasos 2 y 3 durante time pasos de tiempo.
Gráficos:
La diferencia promedio entre los picos de la actividad global de una red de neuronas con acoplamiento eléctrico para diferentes valores de g.
El gráfico muestra que la diferencia promedio entre los picos aumenta a medida que aumenta g. Esto significa que, a medida que g aumenta, las neuronas se influyen más mutuamente, lo que hace que las oscilaciones de la actividad global sean más extremas.
En este caso, la diferencia promedio entre los picos varía de aproximadamente 100 a aproximadamente 500 cuando g varía de 0.01 a 0.2.
El gráfico muestra que la conductancia de acoplamiento eléctrico es un factor importante que puede influir en la oscilación de la actividad global de una red de neuronas con acoplamiento eléctrico.
Una conductancia de acoplamiento eléctrica más alta significa que las neuronas se influyen más mutuamente. Esto puede conducir a una mayor oscilación de la actividad global, ya que las neuronas se ven afectadas por las actividades de las demás en mayor medida.
Por ejemplo, cuando g es 0.01, la diferencia promedio entre los picos es de aproximadamente 100. Esto significa que la actividad global oscila entre un valor mínimo de aproximadamente 100 y un valor máximo de aproximadamente 200.
Cuando g es 0.2, la diferencia promedio entre los picos es de aproximadamente 500. Esto significa que la actividad global oscila entre un valor mínimo de aproximadamente 100 y un valor máximo de aproximadamente 600.
Estos resultados muestran que la conductancia de acoplamiento eléctrico puede ser un factor importante a considerar al diseñar redes neuronales con acoplamiento eléctrico.
Bibliografía:
Marte, H. (2023, 16 octubre). Neurociencia computacional: el futuro de la investigación. NeuroClass. https://neuro-class.com/neurociencia-computacional-el-futuro-de-la-investigacion/
Turchetti, Claudio (2004), Stochastic Models of Neural Networks, Frontiers in artificial intelligence and applications: Knowledge-based intelligent engineering systems 102, IOS Press, ISBN 9781586033880..