Entrenando redes de neuronas - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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