Neurona de McCulloch y Pitts programada en Python
Summary
TLDREn esta sesión educativa, el presentador, Irving Vázquez, guía a los espectadores a través del proceso de programación de la neurona de McCulloch-Pitts utilizando Python, comenzando por introducir el repositorio en GitHub donde se encuentran los programas del curso de introducción a las redes neuronales. Explica cómo cargar los notebooks en Colab y destaca la importancia de entender las bases de las redes neuronales sin depender completamente de librerías como Numpy. La sesión se centra en implementar y probar la neurona de McCulloch-Pitts, demostrando su funcionamiento con ejemplos prácticos y preparando a los espectadores para sesiones futuras sobre temas más avanzados como el perceptrón de Frank Rosenblatt.
Takeaways
- 📚 Sesión de programación de la neurona de McCulloch-Pitts utilizando Python.
- 🔍 Repositorio de Irving Vázquez en GitHub contiene programas relacionados con redes neuronales.
- 💻 Para ejecutar los programas se requiere tener Python instalado tanto en Linux como en Windows.
- 🌟 Se recomienda darle una 'Estrellita' al repositorio si es útil para aprender sobre redes neuronales.
- 📝 El primer ejercicio es implementar la neurona de McCulloch-Pitts, la cual es una de las neuronas más antiguas.
- 🧠 La neurona de McCulloch-Pitts tiene entradas excitatorias e inhibitorias y una salida binaria (1 o 0).
- ✅ Seguidamente, se programa la neurona sin utilizar funciones predefinidas de numpy, empleando Python básico.
- 🔢 Se define la función `neurona_mip` que toma como parámetros las entradas y el umbral.
- 🚫 Si hay alguna entrada inhibitoria que sea 1, la neurona devuelve un 0.
- 🔁 Se realiza una sumatoria de las entradas excitatorias y se compara con el umbral para decidir la salida.
- 📈 Se prueba la función con diferentes conjuntos de entradas para verificar su comportamiento.
- 📚 Se utilizan ejemplos del libro de Marvin Minsky para corroborar el funcionamiento de la neurona.
Q & A
¿Qué es el repositorio de GitHub mencionado en el video y qué se puede encontrar en él?
-El repositorio de GitHub mencionado por Irving Vázquez es un espacio donde los usuarios pueden encontrar programas relacionados con un curso de introducción a las redes neuronales, además de otros proyectos de investigación.
¿Cuáles son las herramientas mencionadas que se necesitan para ejecutar los programas del curso?
-Para ejecutar los programas del curso, se menciona el uso de Conda, que puede ser utilizado tanto en sistemas operativos Linux como Windows.
¿Cómo se facilita a los estudiantes el uso de los notebooks en GitHub?
-Irving Vázquez ha colocado un botón en la mayoría de los notebooks que permite cargarlos directamente en Google Colab, lo que simplifica significativamente el proceso de ejecución de los programas.
¿Qué es una neurona de McCulloch-Pitts según el contenido del video?
-La neurona de McCulloch-Pitts es un modelo conceptual de una neurona, propuesto en 1943, que opera basándose en entradas excitatorias e inhibitorias y produce una salida binaria de excitación o no excitación.
¿Cuáles son las reglas básicas de funcionamiento de la neurona de McCulloch-Pitts mencionadas en el video?
-La neurona de McCulloch-Pitts sigue dos reglas básicas: si hay una entrada inhibitoria activa (valor uno), la salida siempre será cero; si no hay entradas inhibitorias, la salida dependerá de si la suma de las entradas excitatorias supera un umbral específico.
¿Qué función se necesita implementar en el notebook y qué parámetros recibe?
-Se necesita implementar la función 'neurona_mip', que recibe las entradas excitatorias, las entradas inhibitorias y el umbral como parámetros para determinar la salida de la neurona según las reglas descritas.
¿Cómo se realizan las pruebas de la función de la neurona de McCulloch-Pitts en el notebook?
-En el notebook, se prueba la función 'neurona_mip' utilizando varios ejemplos que cambian los valores de las entradas excitatorias, las entradas inhibitorias y el umbral, para observar si la salida se comporta como se espera según las reglas de la neurona.
¿Qué tipo de ejemplos se utilizan para probar el comportamiento de la neurona de McCulloch-Pitts?
-Se utilizan ejemplos que simulan comportamientos lógicos básicos como NOT y OR, ajustando las entradas y el umbral para verificar si la neurona proporciona la salida correcta para cada caso lógico.
¿Cuál es el propósito de no usar funciones predefinidas de Numpy en la implementación inicial de la neurona?
-El propósito de evitar funciones predefinidas de Numpy es permitir a los estudiantes entender y codificar las operaciones básicas desde cero, lo que ayuda a una mejor comprensión de cómo funciona la neurona de McCulloch-Pitts a nivel fundamental.
¿Qué sigue después de este tutorial sobre la neurona de McCulloch-Pitts según el video?
-Después de este tutorial, la siguiente sesión cubrirá otros programas, incluyendo el perceptrón de Frank Rosenblatt, que es otro modelo importante en el estudio de las redes neuronales.
Outlines
😀 Introducción a la Neurona de McCulloch-Pitts
Se inicia la sesión con una presentación sobre la programación de la neurona de McCulloch-Pitts utilizando Python. Se menciona la utilización de GitHub para acceder a los programas del curso de redes neuronales y se destaca la importancia de este repositorio para encontrar material de investigación relacionado. Se ofrece la posibilidad de ejecutar los programas desde una computadora con Python instalado y se sugiere dejar un 'me gusta' en el repositorio si ha sido útil para aprender sobre redes neuronales. El primer ejercicio se enfoca en la implementación de la neurona de McCulloch-Pitts, la cual es considerada la más antigua y se describe brevemente su funcionamiento con entradas excitatorias e inhibitorias, resultando en una salida binaria (1 o 0). Se enfatiza el uso de Python para programar la neurona sin recurrir a funciones predefinidas de bibliotecas como numpy, optando por un enfoque más básico y educativo.
📝 Implementación de la Neurona de McCulloch-Pitts
Se describe el proceso de implementación de la neurona de McCulloch-Pitts en Python. Se establecen las reglas para la activación de la neurona: si hay al menos una entrada inhibitoria activa (valor 1), la neurona se desactiva (retorna 0). En caso contrario, se calcula la suma de las entradas excitatorias y se compara con un umbral. Si la suma es mayor o igual al umbral, la neurona activa (retorna 1); de lo contrario, se mantiene inactiva (retorna 0). Se detalla el código en Python para llevar a cabo estas operaciones, incluyendo la inicialización de variables y el uso de estructuras de control condicionales. Se sugiere probar la función con diferentes conjuntos de entradas para verificar su comportamiento, y se hace referencia a ejemplos del libro de Marvin Minsky para corroborar los resultados.
🤖 Comportamientos de la Neurona de McCulloch-Pitts
Se exploran diferentes comportamientos de la neurona de McCulloch-Pitts, como el operador lógico NOT y OR, aplicados a las entradas de la neurona. Se ejecutan pruebas con diferentes combinaciones de entradas excitatorias e inhibitorias y se ajusta el umbral para observar cómo cambia la salida de la neurona. Se confirma que la neurona reproduce correctamente los comportamientos lógicos esperados para operadores NOT y OR. Se menciona que en una próxima sesión se abordarán otros programas, incluyendo el perceptrón de Frank Rosenblatt, dejando al espectador expectante para la continuación del curso.
Mindmap
Keywords
💡Neuronas
💡Neuronas de McCulloch-Pitts
💡Python
💡GitHub
💡Colab
💡Repositorio
💡Cuaderno de Jupyter
💡Umbral
💡Entradas excitatorias e inhibitorias
💡Implementación
💡Lógica binaria
Highlights
Sesión de programación de la neurona de McCulloch-Pitts usando Python
Repositorio de GitHub de Irving Vázquez con programas del curso de redes neuronales
Ejecutar programas en computadora con Jupyter Notebook en Linux o Windows
Botón para cargar Notebook directamente en Google Colab
Dejar una estrella en el repositorio si es útil para aprender redes neuronales
Primer ejercicio: implementar la neurona de McCulloch-Pitts
Ejercicios en Jupyter Notebooks interactivos de Python
Si hay problemas, siempre se deja la solución del ejercicio
Neuronas de McCulloch-Pitts son la más antigua, datan de 1943
Tienen entradas excitatorias e inhibitorias y salida binaria (1 o 0)
Implementar neurona en Python sin usar funciones predefinidas de numpy
Cargar npai para asegurar que el usuario es responsable del código ejecutado
Función neurona_mip toma entradas y umbral, devuelve 1 (excitación) o 0
Si hay entrada inhibitoria = 1, neurona devuelve 0
Si no hay entradas inhibitorias, se calcula la suma de entradas excitatorias
Si suma >= umbral, neurona muestra excitación (1), sino es 0
Ejemplos de prueba: NOT (sin excitatorias, inhibitoria=0) da 1
Ejemplo OR: 2 excitatorias, umbral=1, da 1 si ambas son 1
Transcripts
Hola Qué tal cómo están en esta sesión
lo que vamos a hacer es programar la
neurona de macac y pits para eso vamos a
utilizar python y bueno primero les
quiero mostrar En dónde está el
repositorio para que ahí mismo puedan
encontrar los siguientes programas del
curso de introducción a las redes
neuronales y nos tenemos que ir a
github.com y diagonal Irving Vázquez
entonces ahí está mi repositorio y ahí
van a poder encontrar digamos diversos
repositorios que tienen que ver con
investigación que nosotros hacemos y
sobre todo van a encontrar los programas
relacionados al curso de interrupción a
las redes
neuronales así que pues bueno aquí ya
aparece aquí dentro de los repositorios
populares pero si no apareciera pues
tenemos que ir a repositorios y Buscar
intro nn in neural networks Entonces en
este caso está aquí y bueno nosotros lo
abrimos Okay y aquí está la serie de
programas que están
relacionadas relacionados con el curso
de introducción a las redes
neuronales primero para ejecutar estos
programas lo pueden hacer desde su
computadora para eso requieren cona y lo
pueden hacer tanto en Linux como en
Windows afortunadamente para ustedes ya
coloqué aquí en cada uno en la mayoría
de los notebooks eh un botoncito para
que directamente lo carguen en su colap
eso les va a facilitar la vida y si ya
andan por acá pues no olviden dejar aquí
por aquí un una Estrellita a este
repositorio si es que les ayuda a
prender redes neuronales okay
Bueno entonces lo que vamos a hacer es
el primer ejercicio está aquí en macac y
pits es el que vamos a abrir ahorita
Recuerden que pues yo siempre les dejo
el ejercicio y les dejo la solución por
si hubiera algún problema de Por qué no
sé por alguna razón desconocida no
pudieron resolver el ejercicio pues les
dejo siempre arriba la solución en este
primer ejercicio vamos a tratar de
implementar la neurona de macac pits
Entonces los ejercicios son los que
tienen el I el python interactivo
interactive python Notebook Entonces lo
abrimos y Aquí está el Notebook Pues
básicamente hay que resolver este
ejercicio donde vamos a programar esta
neurona que es digamos la más antigua y
como les decía afortunadamente ya que
tenemos este botoncito Y si ustedes ya
tienen configurado su colaps con su
cuenta de Google directamente van a
poder abrir el Notebook en su cuenta de
colaps esto ya les facilita bastante la
vida y Bueno aquí ya estamos en el
Notebook que vamos vamos a resolver
Recuerden que si de repente tienen dudas
con estos programas o o en el curso que
tenemos en mi página pues este escribe a
mí ahí un comentario en el video de
YouTube y de vez en cuando pues checo
checo los comentarios y les puedo dar
respuesta Entonces vamos a ver
em ya tenemos un video que nos explica
de qué va esta neurona de macac pits que
es la más antigua de ahí de 1900 40 43
y bueno tiene como entradas dos cosas no
recordemos las entradas inhibitorias y
las entradas excitatorias eso va a tener
como entradas y como salidas únicamente
va a tener excitación o no excitación
uno o cero Eso es lo que vamos a
entregar y lo que queremos es
implementar esta neurona utilizando
python la idea de este programa es que
pues podamos adentrarnos en las
herramientas y no vamos a utilizar
ahorita funciones predefinidas de numpy
etcétera vamos a utilizar lo más básico
que podamos tener para elaborar nuestro
programa entonces eh básicamente
únicamente vamos a hacer uso de
npai le decimos que sí que nosotros nos
hacemos responsables por lo que vamos a
ejecutar
verdad entonces ahorita solo Vamos a
estar cargando npai y lo que tenemos que
hacer es Eh Pues básicamente rellenar
esta función que se llama neurona mip
que recibe como parámetros las entradas
excitatorias las entradas inhibitorias y
el umbral y ahora lo que nosotros vamos
a codificar
es estas reglas que ya vimos en la
lección entonces recordando pues tenemos
dos reglas la primera es que si existe
una una entrada inhibitoria que sea uno
la neurona siempre nos va a retornar un
cero Okay eso siempre va a pasar si
resulta que no tenemos entradas Eh
inhibitorias entonces la neurona sí
puede
procesar y entonces cuando procesa va a
ser la sumatoria de todas las entradas
excitatorias y entonces nos va a
comparar esa sumat con el umbral
entonces un es un comportamiento
bastante sencillo y lo vamos a
implementar Entonces vamos a implementar
nuestra primera reglita y esta primera
reglita tenemos que verificar todas
nuestras entradas inhibitorias
Okay como les decía pues para utilizar
un comportamiento más sencillo pues
vamos a hacer un recorrido de todas las
entradas que pudiéramos tener en las
inhibitorias
no ini que serían las inhibitorias vamos
a poner
in
I eso significa que pues vamos a ir en
todas las las entradas que tengamos si
no tenemos ninguna entrada Pues no va a
haber tanto problema pues no no va a
entrar en este for verdad Entonces vamos
a buscar si esa entrada
inhibitoria es
un ahorita estamos codificando todo
entonces si resulta que tenemos un uno
pues entonces nuestra función de la
neurona de macala y pits nos va a
retornar un
cero en caso de que no encontremos este
una entrada inhibitoria así pues lo que
tenemos que hacer es la sumatoria verdad
podemos resolver de diferentes formas la
la sumatoria pero en este caso pues les
digo que yo lo que voy a
usar pues es programación
eh básica con una estructura de
recorrido pues como tenemos que hacer
una sumatoria pues vamos a poner
integración esta integración Pues en un
principio la vamos a igualar con cero y
vamos a ir recorriendo pues cada una de
nuestras entradas excitatorias Okay
entonces vamos a poner e excitatorias in
E eso vamos a hacer el recorrido en
todas las
excitatorias vamos a ir
sumando y vamos a tener a integración es
igual a integración más
x OK Porque puede que resulte que no
siempre tengamos entradas excitatorias
igual con
un y con eso ya básicamente tenemos
nuestra
sumatoria ahora tenemos que verificar
con respecto del umbral Okay si resulta
que la
integración es mayor o igual que nuestro
umbral entonces resulta que nuestra
neurona sí va a mostrar un
comportamiento
excitatorio Entonces vamos a poner
return 1 y si resulta que no pues vamos
a
regresar
un cero
verdad aquí nos falta
If ahí está ahí ya está nuestro código
que va a ser nuestra implementación de
la neurona de macala pits muy rápido muy
sencillo Ya hicimos este pequeño
programita y ahora pues lo que vamos a
hacer es probar
Okay
entonces aquí nos faltaron dos puntos
Ahí está entonces vamos a ver qué es lo
que va a pasar vamos a calcular la
salida y vamos a imprimir
de neurona mip y lo que le vamos a pasar
pues estos parámetros que ya tenemos
aquí
definidos la
e de
excitatorias la i que tenemos por acá y
el
umbral vamos a ver qué pasa si las
excitatorias son uno y las inhibitorias
son cer0 y tenemos un umbral igual con
uno vamos a ver qué es lo que nos da
Pues nos dice que el resultado es uno
verdad Okay entonces para corroborar
esto vamos a utilizar algunos ejemplos
que tenemos en el libro de Marvin
minsky y bueno de lado derecho estoy
poniendo el libro de Marvin minsky y nos
Define algunos comportamientos de estas
neuronas de macac pits vamos a probar
por ejemplo el not Okay el not significa
que las entradas no tenemos entradas
excitatorias
verdad Y si tenemos un inhibitoria y el
umbral es
cero
okay Entonces tenemos una inhibitoria
qué va a pasar cuando la
inhibitoria sea igual con cero la
neurona nos debería dar un uno
verdad y vamos a ejecutar esta celda y
en efecto nos dice que la salida es uno
si la inhibitoria es uno entonces la
neurona nos debería decir que la salida
es
cero Entonces sí está mostrando el
comportamiento del not ahora vamos a
buscar otro comportamiento por ejemplo
el or verdad vamos a probar con el or el
or dice que tiene dos entradas no tiene
inhibitorias está aquí en la parte de
arriba no tiene
inhibitorias pero tiene dos
excitatorias Okay qué va a pasar cuando
entrre dos excitatorias el cero y el
cero vamos a
ver entonces eso en un or nos debería
dar
cero y nos dio un
uno Ah okay Claro porque no le cambiamos
el umbral verdad ya estábamos dudando
entonces dice que para el or el umbral
es
uno ahora sí entre 0 y o nos va a dar
Qué pasa si entra a la neurona el 0 y el
uno el resultado es uno okay estamos
bien Luego sería el uno con el
cero y eh podemos ver que nos da un
uno y finalmente pues vamos a probar el
uno con el uno debe dar uno no verá no
dos ni nada raro Entonces tenemos que un
uno okay Entonces ya este probamos esta
neurona de macac pits con el not y la
probamos con el or así que pues espero
que les haya quedado igual que a mí y
pues en la siguiente sesión vamos a
hacer otros programas y entre ellos el
perceptrón de Frank rosen blad así que
pues bueno Pues nos estaremos viendo en
esa siguiente sesión Espero que hayan
hecho este programita al igual que yo
hasta
luego
5.0 / 5 (0 votes)