Saltar navegación

Entrenando redes de neuronas - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 20 de mayo de 2025 por M.nuria A.

10 visualizaciones

Descargar la transcripción

Hola, este es el ejercicio de entrenar redes de neuronas 00:00:02
usando el Playground que tiene la página web de TensorFlow. 00:00:06
TensorFlow es una de las dos bibliotecas de código más usadas en Python 00:00:11
para desarrollar redes de neuronas y en general modelos de Deep Learning y Machine Learning. 00:00:16
En esta página web, playground.tensorflow.org, 00:00:22
tienen un entorno de pruebas en el que se puede aprender cómo funciona una red de neuronas por dentro 00:00:26
y jugar probando con distintos parámetros y demás y tratando de entrenar la red. 00:00:31
El objetivo en este problema, que es el problema de clasificación, que es del que trata este ejercicio, 00:00:37
es tratar de clasificar los puntos de datos entre si son naranja o azul, siendo naranja menos uno o azul uno. 00:00:44
para poder hacer esto se van a tener que seguir los pasos empezando por el de capas y patrones 00:00:52
en este paso se puede entrenar la red neuronal por defecto haciendo clic en el botón de ejecución 00:01:02
y parándolo cuando veamos que el resultado es decente 00:01:09
el resultado será decente cuando el nivel de loss o pérdida en el entorno de test sea muy reducido 00:01:16
Podemos darle a parar y podemos observar en el color del fondo como se han predicho que va a ser la clasificación o la etiqueta de los puntos del entorno de test 00:01:23
En los puntos del entorno de test se puede mostrar aquí para distinguirlos del del entorno de entrenamiento 00:01:36
Así pues se puede comprobar como todos los puntos que son naranjas la red de neuronas que se representa en el fondo ha acertado prediciendolos como naranja 00:01:41
Y todos los azules los ha acertado prediciendo como azules. 00:01:51
Dándole a discretizar el output podemos hacer que sea puramente binario, es decir, o menos uno para el naranja, la clasificación naranja, o uno para el azul. 00:01:55
Podemos así observar cómo se encuentra rápidamente una buena solución para la tarea de clasificación en este tipo de datos. 00:02:08
El tipo de datos podemos cambiarlo aquí para cambiar a tipos quizá más difíciles de aprender o de entrenar. 00:02:16
observa que las neuronas de la primera capa oculta han aprendido patrones simples 00:02:23
mientras que las neuronas de la segunda capa han aprendido a combinar los patrones simples de la primera capa en patrones más complejos 00:02:27
así podemos observar que del input de la variable 1 que podría ser la variable en el eje x 00:02:35
y la variable 2 que podría ser la variable en el eje y 00:02:43
Como inputs la primera capa oculta está aprendiendo patrones muy simples 00:02:46
De hecho son lineales como se puede observar 00:02:53
Básicamente son funciones lineales de distinta pendiente y origen 00:02:56
Mientras que la segunda capa está aprendiendo un patrón más complejo 00:03:02
Son patrones en este caso con formas más complejas 00:03:06
Que permiten ajustarse mejor al entorno de datos 00:03:09
el segundo ejercicio trata de cambiar la función de activación 00:03:12
las redes de neuronas tienen como output de las capas intermedias una función de activación 00:03:17
con la cual se determina cuál es el valor final que se le otorga al output de la propia red 00:03:24
esta función de activación típicamente es una de estas cuatro que se ve aquí 00:03:30
o relu o la tan h o la sigmoide o la lineal 00:03:35
os recomiendo que preguntéis a chatgpt si queréis informaros más sobre cada función de activación 00:03:40
y que busquéis qué tipo de gráfica representa cada una de estas 00:03:46
entonces vamos a probar a cambiar la función de activación a la relu 00:03:50
que es una de las más empleadas y volver a entrenar la red 00:03:54
vamos a poder observar una vez le damos a repetir desde el principio y entrenar la red 00:03:59
podemos parar aquí ya que el error es bajo 00:04:04
que se encuentra una solución aún más rápido que antes, pero esta vez los límites son lineales. 00:04:13
Es decir, donde antes se formaba una especie de forma cilíndrica o circular, ahora los límites son más lineales, 00:04:21
son casi líneas completamente rectas. Esto se debe a la propia función de activación. 00:04:27
El siguiente ejercicio trata sobre los mínimos locales. En este caso hay que modificar la arquitectura de la red 00:04:38
para tener una sola capa oculta con tres neuronas entonces vamos a reducir el número de capas a una 00:04:44
sola capa oculta y el número de neuronas a tres y restablecemos el entrenamiento entrene la varias 00:04:51
veces y observa que el tiempo de entrenamiento varía mucho y es posible que se quede atascada 00:04:59
en un mínimo local es interesante aprender entender que cuanto más capas ocultas en general o cuanto 00:05:05
más deep sea la red de neuronas de ahí el término deep learning es más fácil que se alcancen los 00:05:13
mínimos globales del problema de optimización y no que se quede parado en mínimos locales por 00:05:19
ejemplo en este caso vemos que el resultado es un poquito peor que antes pero es posible en 00:05:26
vuestras pruebas que en algunos casos no se llegue siquiera a un resultado idóneo en especial si 00:05:30
probáis con tipos de datos más complicados como por ejemplo este demasiado pequeño ahora elimina 00:05:36
una neurona para quedarte con solo dos neuronas. Observa que la red ahora es incapaz de encontrar 00:05:45
una buena solución, aunque lo intentes varias veces, ya que este modelo va a tener muy pocos 00:05:49
parámetros y se va a ceñir únicamente al patrón de los datos de entrenamiento. Como podemos 00:05:55
observar, la predicción no es muy buena, ya que aunque sí que predice la mayoría de datos azules 00:06:03
como azules, está prediciendo muchos datos naranjas también como azules, lo cual es un error. 00:06:09
Se puede observar que el porcentaje de error o el por 1 de error es bastante alto, suficientemente grande. 00:06:15
A continuación podemos ajustar el número de neuronas a 8 y entrenar varias veces. 00:06:25
En este caso vamos a ver cómo es más rápido y nunca se atasca. 00:06:30
Esto tiene que ver en la teoría de redes neuronales con que cuanto más white, es decir, cuantas más neuronas en una capa o en cada capa, 00:06:34
se puede explorar más los mínimos globales, es decir, que no se queda simplemente en los mínimos locales 00:06:44
y trata de encontrar mejores soluciones. 00:06:52
Sin embargo, es verdad que podría quedarse atascado durante mucho tiempo para intentar salir de este tipo de meseta. 00:06:56
Entonces podemos hacerlo aumentando el número de neuronas, restableciendo y volviendo a entrenar. 00:07:02
como vemos en el fondo los límites siguen siendo lineales 00:07:07
pero podemos observar que la precisión es mucho mejor que antes 00:07:12
siguiente red profunda de gradientes de fuga 00:07:17
ahora hay que cambiar el conjunto de datos para que sea la espiral 00:07:23
podemos observar que la espiral va a ser un conjunto de datos mucho más complicado de predecir 00:07:26
por lo que vamos a tener que aumentar el número de capas 00:07:31
y vamos a tener que aumentar el número de neuroras en cada capa 00:07:34
en este caso a las 8 que teníamos. Podemos observar como el número de conexiones neuronales 00:07:39
aumenta considerablemente según aumentamos el número de neuronas. Al clicar en una neurona 00:07:44
nos fijamos en que depende de todas las neuronas anteriores y cada una de esas anteriores depende 00:07:50
a su vez de todas las anteriores por lo que las neuronas del final están aprendiendo patrones 00:07:56
cada vez más complejos. Veamos si es suficiente para detectar este tipo de patrón de datos tan 00:08:02
complicado. Podemos reiniciar y podemos intentar entrenar. Vemos que en este caso el entrenamiento 00:08:08
llevará más tiempo y que no siempre nos asegurará que sea un resultado perfecto. Aquí parece que va 00:08:17
mejorando poco a poco y vemos cómo la gráfica del error va reduciéndose hasta llegar a un límite 00:08:24
bastante decente. Cuando llegamos a un límite decente podemos parar y llegar a la solución 00:08:33
esperada. Es importante que probéis los parámetros de la izquierda si queréis observar qué pasa en 00:08:43
distintos casos con los datos de entrada. Por ejemplo, mi recomendación es que el porcentaje 00:08:51
de datos que se dedican al entrenamiento de la red sea superior al 50%. Normalmente en la industria 00:08:56
se utiliza entre un 70 y un 80% para entrenar, mientras que el resto se utiliza para test y 00:09:03
validación. Si queréis un reto podéis aumentar el ruido de los datos. Podemos ver que los datos 00:09:09
tienen mucho más ruido ahora, es decir que va a ser más difícil predecir este patrón. Si no podéis 00:09:17
simplemente dejar el ruido a cero. Y por último el tamaño de BATS tiene que ver con cuántos 00:09:22
datos se entrenan a la vez en cada iteración. Podéis dejarlo de momento en 10 y dándole a 00:09:28
regenerar podéis generar nuevos ejemplos de entrenamiento. Por último recomiendo que probéis 00:09:33
a aumentar o disminuir el rate o el ratio de aprendizaje para tratar de converger más rápido 00:09:40
pero jugándosela más a ir a acabar en mínimos locales o converger más lento pero poder intentar 00:09:47
alcanzar mejores óptimos. Esto buscad qué valor se adapta mejor a vuestro caso. Probad de nuevo 00:09:56
con distintas funciones de activación 00:10:03
y si sois aventureros 00:10:06
y queréis investigar un poco más 00:10:07
por vuestra cuenta 00:10:10
mirad qué significa la regularización L1 y L2 00:10:10
y qué ratio de regularización 00:10:14
ponerle a la red de neuronas 00:10:16
una red de neuronas 00:10:18
es el 00:10:27
modelo de machine learning 00:10:29
que hemos visto en este ejercicio 00:10:31
que se fundamenta 00:10:33
en utilizar una serie de capas 00:10:35
intermedias ocultas 00:10:37
a las cuales se les pasa una información en forma de características, en este caso hemos utilizado simplemente el eje X y el eje Y, o sea dos dimensiones de estos puntitos, 00:10:38
aunque podríamos incluir características más complejas como el eje X al cuadrado o incluso el producto del eje X por el eje Y. 00:10:50
Esas características se dan como entrenamiento a la red de neuronas que trata de aprender a predecir en este output cuál va a ser el valor resultante dado un cierto input. 00:10:57
Es decir, si le damos un punto nuevo en esta situación, la red de neuronas tiene que ser buena prediciendo que el punto debe ser naranja en vez de azul. 00:11:12
Una vez ha entrenado lo suficiente, con datos de entrenamiento será capaz de detectar o categorizar si es naranja o azul en datos nuevos que no haya conocido de antes 00:11:21
Por ejemplo, estos datos podrían estar representando si una persona tiene diabetes o no 00:11:37
Siendo naranja no tener diabetes y azul sí tener diabetes 00:11:43
quizá el eje X puede representar una variable médica o fisiológica 00:11:48
quizá de momento podemos decir que se refiere a la altura del paciente 00:11:55
y el eje Y otra, por ejemplo podría referirse a la edad 00:11:59
lo cual significa que a una edad determinada y a una altura determinada 00:12:03
este paciente no tiene diabetes 00:12:09
mientras que a una altura determinada y a una edad determinada este otro sí que lo tiene 00:12:12
Materias:
Ciencias de la computación 1
Etiquetas:
Inteligencia Artificial
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Bachillerato
    • Primer Curso
    • Segundo Curso
Autor/es:
Nuria A.
Subido por:
M.nuria A.
Licencia:
Reconocimiento
Visualizaciones:
10
Fecha:
20 de mayo de 2025 - 20:01
Visibilidad:
Clave
Centro:
IES JOSÉ GARCÍA NIETO
Duración:
12′ 24″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
54.14 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid