Tu primer clasificador de imágenes con Python y Tensorflow
Summary
TLDREn este video práctico, se aborda la clasificación de imágenes utilizando redes neuronales, con un enfoque en un caso real donde se desarrolla un modelo de aprendizaje automático para categorizar artículos de ropa según su fotografía. Se cubren conceptos fundamentales, desde la diferencia entre problemas de regresión y clasificación, hasta la entrada de imágenes en redes neuronales y la importancia de las capas ocultas y las funciones de activación para resolver problemas no lineales. El vídeo guía a los espectadores a través del proceso de construcción y entrenamiento de una red neuronal densa, utilizando un conjunto de datos de 70.000 imágenes de ropa etiquetadas, y luego se exploran técnicas para mejorar el rendimiento del modelo. Además, se destaca la limitación de las redes neuronales tradicionales en la clasificación de imágenes y se menciona la existencia de redes neuronales convolucionales, las cuales son más adecuadas para este tipo de tareas. El video concluye con una demostración de la red neuronal en acción y una invitación a suscriptores para aprender más sobre estas soluciones avanzadas en futuras entregas.
Takeaways
- 📈 El vídeo comienza con una introducción a la clasificación de imágenes utilizando redes neuronales, enfocándose en un caso práctico para desarrollar un modelo de aprendizaje automático para categorizar artículos de ropa según su fotografía.
- 🔍 Se destaca la diferencia entre problemas de regresión y clasificación en redes neuronales; mientras que en regresión la salida es un número, en clasificación la salida es una categoría.
- 🖼️ Para dar como entrada una imagen a una red neuronal, se convierten las imágenes a escala de grises y se representan con valores numéricos por píxel, reduciendo el tamaño de la imagen para un rendimiento más eficiente.
- 🧠 Se introduce el concepto de capas ocultas y funciones de activación como herramientas para que las redes neuronales puedan resolver problemas más complejos que los lineales.
- 🔢 Se menciona la utilización de la función de activación 'reloj' (ReLU), que permite a las redes neuronales manejar problemas no lineales al transformar las salidas de las neuronas.
- 🤖 Se describe el proceso de entrenamiento de una red neuronal, incluyendo la necesidad de un gran número de ejemplos para enseñarle a la red a clasificar correctamente.
- 👕 Se habla sobre el conjunto de datos de 70.000 imágenes de ropa categorizadas previamente, proporcionado por la tienda de ropa y utilizado para entrenar la red neuronal.
- ⚙️ Se detalla el proceso de normalización de los datos de entrada y la importancia de esta etapa en el entrenamiento de la red neuronal para mejorar los resultados y acelerar el proceso.
- 📦 Se muestra cómo se estructura y compone el modelo de la red neuronal, incluyendo las capas de entrada, las capas ocultas y la capa de salida, así como la elección de la función de activación Softmax para la capa de salida.
- 🔧 Se abordan técnicas para mejorar el rendimiento del entrenamiento, como el uso de lotes de datos y la repetición de conjuntos de datos con un orden aleatorio.
- 📉 Se discuten los resultados del entrenamiento, incluyendo la precisión alcanzada y la función de pérdida, y se sugieren formas de mejorar el modelo mediante la experimentación con distintas arquitecturas de red.
- 🚀 Se exploran las limitaciones de la red neuronal utilizada, como la falta de generalización cuando se presentan imágenes en diferentes posiciones y tamaños, y se menciona la existencia de redes neuronales convolucionales para abordar estos desafíos.
Q & A
¿Qué tipo de problema de aprendizaje automático se aborda en el video?
-El video aborda un problema de clasificación de imágenes utilizando redes neuronales.
¿Cuál es la principal tarea que se le asigna al contratado en la tienda de ropa internacional?
-La principal tarea es desarrollar un modelo de aprendizaje automático que categorice los artículos en base a su fotografía.
¿Qué tipo de red neuronal se utiliza para resolver problemas de clasificación de imágenes?
-Se utiliza una red neuronal densa, aunque el video sugiere que podría haber utilizado una red neuronal convolucional si esta última existiera en el contexto hipotético planteado.
¿Cómo se representa una imagen en la capa de entrada de una red neuronal?
-Una imagen se representa en la capa de entrada de una red neuronal dando un valor numérico a cada pixel, con 0 para totalmente negro y 255 para totalmente blanco.
¿Por qué se reduce la resolución de las imágenes en el caso práctico del video?
-Se reduce la resolución de las imágenes para hacer el procesamiento más eficiente, pasando de 10.000 píxeles a 784 píxeles, lo que reduce la complejidad de la red neuronal.
¿Cuántas neuronas de salida tendría una red neuronal para clasificar diez categorías de ropa?
-Una red neuronal para clasificar diez categorías de ropa tendría diez neuronas de salida.
¿Qué son las capas ocultas en una red neuronal y qué propósito sirven?
-Las capas ocultas son una o más capas adicionales en una red neuronal que se encuentran entre la capa de entrada y la capa de salida. Sirven para realizar transformaciones más complejas que las posibles con una sola capa de entrada y salida, permitiendo a la red resolver problemas no lineales.
¿Qué función de activación se utiliza en la capa de salida de una red neuronal de clasificación?
-Se utiliza la función de activación Softmax en la capa de salida de una red neuronal de clasificación para asegurar que la suma de las neuronas de salida sea 1, lo que facilita la interpretación de la salida como una distribución de probabilidad.
¿Cómo se normalizan los datos de entrada en el video?
-Se normalizan los datos de entrada dividiendo cada valor de pixel por 255, lo que transforma los valores de píxeles de un rango de 0 a 255 a un rango de 0 a 1.
¿Cuál es el tamaño del lote utilizado en el entrenamiento de la red neuronal?
-El tamaño del lote utilizado en el entrenamiento de la red neuronal es de 32.
¿Qué tipo de conjunto de datos se utiliza para entrenar y probar la red neuronal?
-Se utiliza el conjunto de datos Fashion MNIST, que contiene 70.000 imágenes de ropa en blanco y negro de 28x28 píxeles, categorizadas en 10 clases.
¿Cuál es la precisión alcanzada por la red neuronal después del entrenamiento?
-La precisión alcanzada por la red neuronal después del entrenamiento es alrededor del 88 por ciento, posiblemente un poco superior.
Outlines
😀 Introducción a la clasificación de imágenes con redes neuronales
El primer párrafo presenta el comienzo de un proyecto práctico de clasificación de imágenes utilizando redes neuronales. Se menciona que se abarcará desde la teoría hasta la implementación de un clasificador de imágenes funcional. Se destaca la necesidad de cubrir varios conceptos y se establece un escenario hipotético en el que se desarrolla el modelo: una tienda de ropa requiere un modelo de aprendizaje automático para categorizar artículos basados en fotografías. Además, se introduce la diferencia entre problemas de regresión y clasificación y se establece la estructura del modelo con 784 neuronas de entrada y 10 de salida.
📈 Conceptos fundamentales para la clasificación de imágenes
Este párrafo profundiza en los conceptos necesarios para la clasificación de imágenes. Se discute cómo representar una imagen en una red neuronal, reduciendo una imagen de 10.000 píxeles a 784 píxeles mediante un tamaño de 28x28 píxeles. Se introduce el tipo de red neuronal que se utilizará, una red neuronal densa, y se compara con la red neuronal convolucional, que no se usará en este caso. Además, se explora la limitación de las redes neuronales simples para resolver problemas no lineales y se presentan las capas ocultas y las funciones de activación como herramientas para abordar estas complejidades.
🤖 Arquitectura y entrenamiento de la red neuronal
El tercer párrafo se enfoca en la arquitectura de la red neuronal y su entrenamiento. Se describe la adición de dos capas ocultas con 50 neuronas cada una y la elección de la función de activación 'reloj'. Se destaca la importancia de las capas ocultas y las funciones de activación para permitir que la red resuelva problemas no lineales. Se menciona la necesidad de un gran número de ejemplos para entrenar la red y se habla sobre el conjunto de datos de 70.000 imágenes proporcionado por la tienda de ropa, que se utilizará para entrenar y probar el modelo.
🔍 Normalización de datos y construcción del modelo
Este párrafo cubre la normalización de los datos de entrada y la construcción del modelo de la red neuronal. Se aclara la necesidad de normalizar los datos de píxeles de 0 a 255 a un rango de 0 a 1 para mejorar el rendimiento del entrenamiento. Se detalla la creación del modelo secuencial con capas de entrada plana, dos capas ocultas densas y una capa de salida con la función de activación Softmax. Además, se menciona la importación de librerías y la preparación de los datos de entrenamiento y prueba.
🎯 Entrenamiento y evaluación del modelo
El quinto párrafo describe el proceso de entrenamiento del modelo y su evaluación. Se establece el tamaño del lote y se describe el uso de funciones para randomizar el orden de los datos durante el entrenamiento. Se habla sobre la duración y la complejidad del entrenamiento debido al gran número de ejemplos. Se muestra el progreso de la precisión y la función de pérdida a lo largo de las épocas y se menciona el uso del modelo entrenado para realizar predicciones. Además, se discuten las limitaciones del modelo, como la falta de generalización en imágenes donde el tamaño y la posición de los objetos varían, y se sugiere el uso de redes neuronales convolucionales para abordar estos desafíos.
🔧 Limitaciones y soluciones futuras
El sexto y último párrafo aborda las limitaciones del modelo actual y sugiere soluciones futuras. Se reconoce que el modelo tiene dificultades para generalizar cuando los objetos en las imágenes cambian de tamaño y posición. Se introduce el concepto de redes neuronales convolucionales como una forma de superar estas limitaciones, ya que son capaces de entender la estructura de las imágenes de manera más robusta. Se anima a los espectadores a suscribirse para recibir actualizaciones sobre el tema y se cierra el vídeo con una nota de despedida.
Mindmap
Keywords
💡Clasificación de imágenes
💡Redes neuronales
💡Regresión
💡Problema de clasificación
💡Convolutional Neural Network (CNN)
💡Normalización de datos
💡Función de activación
💡Capas ocultas
💡Entrenamiento de la red
💡Set de datos
💡Softmax
Highlights
Comenzamos con la clasificación de imágenes utilizando redes neuronales.
El caso práctico consiste en desarrollar un modelo de aprendizaje automático para categorizar artículos de ropa según su fotografía.
Se cubren conceptos fundamentales para llevar el conocimiento de redes neuronales desde lo básico hasta su aplicación en la resolución de problemas complejos.
La diferencia entre problemas de regresión y clasificación en términos de la salida esperada del modelo.
La conversión de imágenes a valores numéricos para su procesamiento por una red neuronal.
La reducción de tamaño de las imágenes a 28x28 píxeles para mejorar la eficiencia del modelo.
La elección de una red neuronal densa para construir el modelo inicial.
La limitación de la red neuronal simple para resolver solo problemas lineales y la necesidad de capas ocultas y funciones de activación para abordar problemas más complejos.
La introducción de funciones de activación, como la función reloj, para permitir que la red neuronal maneje problemas no lineales.
La importancia de las capas ocultas y la configurabilidad que añaden a la red neuronal para resolver transformaciones complejas.
La normalización de datos de entrada para mejorar el rendimiento del entrenamiento de la red neuronal.
El uso de un conjunto de datos de 70.000 imágenes categorizadas para entrenar y probar el modelo.
La construcción del modelo secuencial con capas de entrada plana, capas ocultas densas y una capa de salida con la función de activación softmax.
El entrenamiento del modelo en lotes para aumentar la eficiencia y la velocidad del proceso.
La precisión del modelo, que alcanza alrededor del 88% después del entrenamiento.
La limitación de la red neuronal para manejar imágenes donde los datos de entrada cambian de posición, tamaño o color.
La introducción de las redes neuronales convolucionales como solución a las limitaciones encontradas.
Transcripts
hoy al fin comenzamos con la
clasificación de imágenes con redes
neuronales y lo haremos con un caso
práctico donde resolverá todo paso a
paso para que al final del vídeo tengas
un clasificador de imágenes funcional y
lo probaremos de varias maneras para ver
cómo funciona y qué le podemos mejorar
para lograrlo tenemos que cubrir y
aprender varios conceptos y en este
vídeo cubriremos todo así que agarro un
café otro de nate los dedos y comencemos
imagina que acabas de ser contratado por
una tienda de ropa internacional y el
primer tarea es desarrollar un modelo de
aprendizaje automático que categoriza
todos los artículos en base a su
fotografía
imagina también que todo lo que conoces
acerca de redes neuronales es lo que
vimos en el vídeo anterior una red
neuronal simple que aprende a convertir
grados celsius y fahrenheit si no lo has
visto sería buena idea que lo hagas
antes de continuar cómo puedes tomar lo
que aprendimos en ese vídeo y aplicarlo
aquí para lograrlo necesitamos cubrir
seis puntos importantísimos que llevarán
tu conocimiento de redes neuronales de
aquí a cómo porque veamos el reto que
tenemos y resolvamos todo paso a paso
[Música]
para empezar el problema del vídeo
anterior era de regresión en los
problemas de regresión la salida del
modelo o red neuronal es un número por
ejemplo en ese caso la red daba como
salida los grados fahrenheit que pueden
ser 10 20 100 menos 15 etcétera un
simple número otro ejemplo de regresión
sería una red que intente predecir el
valor de una casa recibe como entrada
las características de la casa como sus
metros cuadrados número de baños cuarto
si tiene alberca o no etcétera y la
salida sería el precio estimado de igual
manera es un número dos el problema de
hoy no es un problema de regresión es un
problema de clasificación debemos
recibir como entrada la imagen y la
salida debe decirnos a qué categoría
pertenece por lo tanto si tenemos diez
categorías posibles nuestra red tendrá
diez neuronas de salida y nos deberá
decir a qué categoría cree que pertenece
y aquí nos metemos al segundo tema
[Música]
dar como entrado un número como los
grados celsius a una red neuronal es
fácil pero como le damos como entrada
una imagen cubre un poco de esto en mi
primer vídeo de visión artificial pero
si tomamos una imagen y la convertimos a
blanco y negro podemos dar un valor
numérico a cada pixel el número 0 sería
para totalmente negro y 255 para
totalmente blanco si tomamos como
ejemplo una imagen de 100% píxeles
significa que tenemos 10.000 píxeles
cada uno con un valor entre 0 y 255
podemos tomar esos 10.000 píxeles e ir
colocando cada uno en una neurona
distinta en la capa de entrada de
nuestra red 10.000 neuronas en la capa
de entrada no es exagerado más o menos
en general no pero para hacer esto más
eficiente lo reduciremos al mínimo
posible reduciremos las imágenes a 28
por 28 píxeles de modo que tendremos 784
píxeles entrando en 784 neuronas de
entrada a la red con esto ya sabemos que
crearemos una red con 784 neuronas de
entrada y 10 neuronas de salida ahora la
duda es
[Música]
qué tipo de red neuronal vamos a
utilizar hay muchos tipos que sirven
para muchas cosas para los que ya saben
del tema sabrán que hay un tipo de red
llamada red neuronal convolución al la
cual es muy utilizada para clasificación
de imágenes sin embargo y quédate
conmigo pero imagina por un momento que
este tipo de red no existe no ha sido
inventada solo existe la red neuronal
densa la regular como la que usamos en
el vídeo anterior y construiremos sobre
ella y verás cómo poco a poco iremos
descubriendo cosas hasta inventar
nosotros mismos las redes neuronales
convolución ales pero bueno con eso ya
sabemos qué tipo de red vamos a utilizar
ahora
ahora
la red neuronal que vimos en el vídeo
anterior era tan simple que solo nos
sirve para resolver problemas simples
por ejemplo convertir grados celsius y
fahrenheit es una ecuación lineal la
conversión se puede graficar con una
línea esa red solo puede resolver
problemas lineales quizá este extraño
comparar salidas de redes normales con
ecuaciones pero quédate conmigo y veamos
algunos ejemplos mira esta imagen como
puedes ver tiene puntos naranjas y
azules y pongamos los de objetivo
diseñar una red neuronal para que
intente graficar una línea que separe
los puntos naranjas de los azules
visualmente es muy simple podemos ver
que una línea por aquí le permitiría
hacer la división veamos como lo haría
una red neuronal
como puedes ver se ajusta muy rápido y
logra encontrar la línea reiniciemos
nuevamente para que comience de manera
aleatoria e intentemos de nuevo
otra vez no encuentra muy fácil así fue
el entrenamiento que logró que nuestra
primera red aprendiera convertir grados
celsius y fahrenheit sin embargo qué
pasa si tenemos una gráfica como ésta
como puedes ver tenemos puntos azules
aquí aquí y aquí y puntos naranjas aquí
aquí y aquí ninguna línea podría ser una
división adecuada pero dejemos que
intente a ver qué pasa
podemos ver que intenta pero como sólo
sabe graficar una línea invariablemente
lo va a ser mal intentemos de nuevo
ok está imposible necesitamos darle a la
red más herramientas para que pueda
resolver problemas más complejos y no
esté limitada a resolver solo ecuaciones
lineales estas herramientas son las
capas ocultas y las funciones de
activación
[Música]
en una red neuronal como la del primer
vídeo donde tenemos la entrada conectada
a la salida tenemos muy poco espacio
para transformaciones solo podemos
resolver problemas que sean una
multiplicación y una suma si queremos
dar a la red más espacio para que
realice transformaciones más complejas
necesitamos agregar una o más capas
ocultas estas capas siguen las mismas
reglas de hacer multiplicaciones y sumas
sin embargo al agregarlas a la red
nuestra red ahora cuenta con más
opciones y caminos en donde puede hacer
más operaciones lineales para el final
unir el resultado digamos que es
imaginamos que nuestra red tiene
perillas de control antes teníamos dos
un peso y un sesgo que se podían ajustar
si agregamos dos capas ocultas con tres
neuronas cada una
ahora tenemos 22 perdidas de control es
decir 15 pesos y 7 sesgos que la red
puede ajustar durante el entrenamiento
como tiene más perillas de control la
red es mucho más configurable sin
embargo las capas ocultas por sí solas
siguen teniendo el inconveniente de que
solucionan solamente problemas lineales
ahora tenemos muchas neuronas haciendo
más transformaciones pero al final todas
siguen siendo lineales esto nos lleva a
nuestra siguiente herramienta
[Música]
para que nuestras pobres neuronas salgan
del infierno que solamente resolver
problemas lineales una vez que una
neurona asuma suceso y va a dar su
resultado la pasaremos por una función
llamada comúnmente función de activación
digamos que tenemos esta neurona la
neurona recibe como entrada el número 10
el setsuv es de 5 entonces al sumarlo la
salida de la neurona sería 15 pero
espera que antes de enviar ese 15 como
salida hacemos ese 15 por una función
hay muchas funciones posibles y
probablemente después haga un vídeo
especial para eso pero imagina que
tenemos esta función
esta función llamada reloj lo que hace
es si el número es mayor a 0 mantenlo
igual no le cambies nada pero si es
menor a 0 es decir un número negativo
entonces el resultado será ser no acepta
números negativos en este ejemplo un 15
daría como salida 15 un 40 daría un 40
pero un -8 por ser negativo daría a ser
y un 12 de 340 también daría ser simple
para que si pues sonar tonto por este
pequeño cambio unido a las capas ocultas
permiten que una rueda poniendo a
resolver problemas y no lineales si
hacemos eso solamente con una neurona el
resultado no es muy
pero si usamos eso en todas las neuronas
y agregamos capas ocultas la red puede
aprender a hacer transformaciones más
complejas con el simple hecho de ya no
estar condenado a resolver sólo
problemas lineales lo sacamos del
infierno lineal y puede ahora probar
muchas cosas en su proceso de
entrenamiento para intentar encontrar
soluciones más interesantes a los
problemas hay obviamente mucho más que
cubrir en los temas de las capas ocultas
en las funciones de activación
pero esto suficiente por lo pronto para
continuar de momento luego que yorke te
lleves es que estas dos herramientas
juntas la abren a la red del mundo de
posibilidades para resolver problemas
complejos
si quieres otros vídeos de un entre
detalle de esto por favor déjame un
comentario y si no también cuéntame tu
opinión de este vídeo astori que te ha
gustado por favor regálame nos gusta
regresamos a nuestra gráfica de puntitos
se agregó yo por ejemplo una capa oculta
con unas cuantas neuronas por sí sólo no
puede salir del infierno línea pero si
además de las capas ocultas activamos
que todas utilizan la función de
activación reloj
a podemos ver que ya está encontrando
resultados más interesantes quizás
todavía no logra hacer una buena
separación pero al menos su cerebro ya
evolucionó y podemos experimentar más
agreguemos más neuronas a la capa
pública
como podemos ver de manera rara pero
logra solucionar el problema
dijimos cuatro neuronas programamos una
capa adicional
con esto no logra resolver y podemos ver
los intentos que hace por hacerlo mejor
podemos agregar tantas capas ocultas
como queramos agreguemos 6 a ver qué
pasa
en una u otra manera lo logra hacer aquí
ya es parte de tu proceso experimentar
con distintas arquitecturas y ver cuál
funciona mejor más rápido pero creo que
con esto queda claro que con estas dos
herramientas podemos resolver problemas
más complejos usando redes neuronales
para terminar en nada más por diversión
veamos este caso más complejo este
espiral aquí aunque tengamos seis capas
ocultas no lo podemos resolver
podemos dejar solo dos pero con más
neuronas
y con eso logrará resolver el problema
te dejaré la liga esta herramienta que
estoy utilizando la descripción del
vídeo aunque ya cubrimos todo lo
necesario volvamos ahora sí a nuestro
caso nuestra red tiene entonces 784
neuronas de entrada 10 neuronas de
salida y para comenzar agregamos dos
capas ocultas cada una de 50 neuronas
como vimos después podemos agregar o
quitar capas y neuronas y experimentar
estamos listos para comenzar el
entrenamiento sólo que
se nos olvidaba algo para entrenar una
red necesitamos muchos gamers en nuestro
vídeo anterior usamos 7 ejemplos pero
era un problema muy simple ahora
queremos que se clasifiquen las imágenes
en 10 categorías entonces necesitamos
muchos ejemplos de cada categoría cuanto
necesitamos mil 5000 tenemos que ir por
nuestra cámara y tomarle fotos a nuestra
ropa nada bueno sí pero alguien más ya
lo hizo por nosotros por este mismo
problema pasó ya la tienda salando una
tienda de ropa que se dio a la laboriosa
tarea de crear un set de datos de 70.000
imágenes cada una categorizada
correctamente para poder entrenar redes
de este tipo y aparte lo abrió al
público en hip hop para que lo usemos
como queramos gracias al andado
como puedes ver todas son imágenes en
blanco y negro de 28 por 28 píxeles y
tenemos playeras pantalones zapatos
tenis bolsas etcétera de hecho están
categorizadas en estas 10 opciones
lo que haremos será descargar ese set de
datos y utilizar 60.000 imágenes para
entrenar en la red y las otras 10.000
para probar que quedó entrenada
correctamente
al hacer esto confirmamos que la red se
puede predecir correctamente imágenes
que no vio durante el entrenamiento
podemos programar ya podemos programar
claro que sí ya vamos para allá
otra vez utilizaremos nuestra bonita
herramienta cola para programar en el
explorador hay mientras habrá cola
quiero agradecer estas personas
[Música]
estos son mismo escenas open game más
nuevo y su apoyo me ayuda muchísimo para
continuar haciendo este tipo de vídeos
si te sirve y te gusta mi contenido y te
gustaría apoyarme para que haga más
dejaré la liga de mi petro en la
descripción del vídeo y si nuestras
posibilidades con que des clic en me
gusta y me dejes un comentario es más
que suficiente muy bien ya estamos en
cola para empezar importaremos la
librería de pensarlo para trabajar
además importaremos otra llamada tensor
flow data sets el set de datos de sadam
no podemos descargarlo de manera simple
utilizando esta librería
ahora descarguemos el set de datos con
sus metadatos tensor flow data se tiene
muchos desde datos para mil cosas desde
imágenes audio traducciones etcétera que
seguramente después veremos el que
usaremos desalando se llama fashion en
mí es importante especificar estos dos
atributos adicionales para que se
descargue con todos los metadatos que
necesitamos
esperemos un poco que termine de
descargarlo aunque salgan algunas líneas
rojas no pasa nada
ya que termino podemos imprimir el valor
de los metadatos y nos dice la
información del set que acabamos de
descargar además de la información
general podemos ver que tiene 60.000
datos para entrenamiento y 10.000 para
problemas pongamos cada conjunto de
datos en una variable diferente para
utilizarlos
[Música]
ya tenemos separados los datos de
entrenamiento y pruebas los metadatos
además traen los nombres de las
categorías que existen en el set
asignamos alguna variable y podemos
imprimirlos para verlos
[Música]
como tip en cola puedes presionar
control enter y se ejecuta el bloque de
código
ok aquí podemos ver que el índice 0 es
camiseta el índice uno es pantalón
tenemos suéter vestido saco etcétera
hasta llegar al índice 9 que es bombo
team
ahora cuando entrenamos una red
normalmente queremos normalizar los
datos es decir hacer que todas las
entradas sean números entre 0 y 1 eso
ayuda mucho acelerar el entrenamiento y
mejorar los resultados actualmente los
datos de entrada se recibirían de 0 a
255 por ser los valores de los píxeles
así que usaremos una función de
normalización para dividir cada pixel
entre 255
después pasaremos todos los datos de
entrenamiento y pruebas por esa función
de normalización
finalmente agregaremos los datos al
caché con eso el entrenamiento se hace
mucho más rápido ya que guarda los datos
en memoria en lugar de disco
muy bien hasta el momento hemos
trabajado con puros textos pero no hemos
visto ninguna imagen así que pongamos un
poquito de código que me pasó rápido
porque no tiene mucho que ver con
inteligencia artificial para mostrar la
imagen
esta es la primera imagen un suéter
podemos imprimir varias imágenes y que
nos muestre cuál es la categoría
correcta con la que viene etiquetadas
[Música]
ok ahora pasemos a ser el modelo similar
al vídeo anterior iniciaremos nuestra
variable modelo y usaremos una red de
tipo secuencial
esta vez y definiremos nuestra capa de
entrada manualmente y usaremos una de
tipo flat en nuestros datos de entrada
que daremos a la red vienen en una forma
de 28 por 28 píxeles con un canal por
ser blanco y negro por lo tanto
especificaremos eso como parámetro a la
capa y la capa flat end se encarga de
convertir esta matriz y aplastarla que
eso quiere decir flat end a una sola
dimensión con 784 neuronas en donde se
recibirá cada pixel ok ahora agreguemos
las dos capas ocultas densas con 50
neuronas cada una y cada una con la
activación reloj y al final agregamos
nuestra capa de salida con 10 neuronas a
esta indicaremos la función de
activación soft mans
no quiero alargar demasiado el vídeo
explicando esta pero en resumen se usa
la función soft max como función de
activación en la capa de salida en las
redes de clasificación para asegurar que
la suma de las neuronas de salida
siempre nos dé 1 por ejemplo si la red
cree que el artículo es una camiseta
puede que camiseta tenga punto 8 saco
punto 1 siempre la suma de todos nos da
el valor de 1 y al final solo vemos cuál
es el que tiene el mayor número y esa es
la predicción de la red porque ya con
nuestro modelo listo lo compilamos
[Música]
al igual que nuestra primera red
utilizamos adán como optimizador y la
función de pérdida usaremos esta otra
que tiene nombre muy feo pero al igual
que software que se usen las redes de
clasificación
muy bien entrenar una red con siete
ejemplos como hicimos anteriormente fue
muy fácil pero ahora tenemos 70.000
ejemplos para hacer que la red entrene
más rápido le podemos decir que lo haga
en lotes definamos un tamaño de lote de
32 ahora ajustaremos algunas propiedades
de los datos de entrenamiento y pruebas
como daremos varias vueltas al set de
datos en el entrenamiento queremos que
se haga de manera aleatoria y no siempre
en un mismo orden parece usaremos dos
funciones repeat y jaffa con los cuales
el orden de los datos será aleatorio y
azul le tenemos que decir cuántos datos
queremos que son todos los 60.000 de
hecho podemos definir los variables aquí
arriba de una vez para tener el número
de ejemplos de entrenamiento y pruebas
si los imprimimos nos dan los 60.000 y
10.000 lo que hacemos aquí esa variable
finalmente usamos la opción batch para
decirle el tamaño del lote de
entrenamiento y que se puede hacer más
rápido con el set de datos de pruebas
solo usaremos la opción de batch
al fin estamos listos para entrenar a
nuestra red ha sido un camino largo pero
ya llegamos
para entrenar usamos la función fit
especificamos los datos de entrenamiento
cuantas vueltas queremos darle a los
datos
digamos 5 además de especificamos esta
opción de este exploit porque es muy
relevante porque -según tensor se lo va
a quitar
comenzamos a entrenar
podemos ver que a diferencia de nuestra
primera red se tarda más lo cual tiene
sentido ya que el problema es mucho más
complejo
en cada época o vuelta a los datos
podemos ver la precisión generalmente
debemos terminar con una precisión de
alrededor del 88 por ciento quizá un
poco superior veamos el resultado de la
función de pérdida en cada época
[Música]
ahora el modelo está listo para realizar
predicciones para eso lo haré de varias
maneras aquí en cola con los datos de
prueba y luego mostraré que se puede
exportar el modelo entrenado para
probarlo por ejemplo en un explorador
comenzamos aquí escribir este código
rápido que no es de inteligencia
artificial sino de matt proclive
entonces no vemos relevante pero nos
sirve para imprimir 25 imágenes del set
de pruebas y que intente predecir cada
uno si predice bien saldrá en una barra
azul si predice mal saldrá en rojo
[Música]
muy bien aquí podemos ver que aquí se
equivocó en la predicción
muy bien por último te dejaré aquí la
manera de que tomes cualquier dato del
set de pruebas que tú quieras y que te
imprima la predicción de la red
el enlace para este collage estará en la
descripción del vídeo ahora podría dejar
el vídeo hasta aquí y decir que ya
tenemos un clasificador de ropa con un
90% de precisión de hecho la mayoría de
los vídeos así lo deja pero quiero
mostrar qué problemas tienen porque los
tiene para ver cómo podemos mejorarlo y
aprender más voy a exportar el modelo
que ya entrenamos para usarlo en un
explorador contento el flow jota es como
exportar le pasarlo en el probador
etcétera puedo verlo en otro vídeo si te
interesa dejamos en los comentarios
y
ok en esta pequeña página importa el
modelo y ahora funciona totalmente en el
explorador agregue un cuadro para
dibujar e intentar que el modelo me
adivine lo que dibuje veamos
ok muy bien intentemos otro
[Música]
disculpen mis habilidades de dibujo
ok en general se ve bien pero veamos
cuáles son las limitantes que tienen
para empezar siempre me da una
predicción aunque dibuje basura
ah
ah
esto es inherente de cómo funciona este
tipo de redes sí o sí me va a intentar
predecir algo aunque no caiga claramente
en las categorías eso no es tal cual una
limitante solo algo gracioso la otra es
que está frágil si no pongo el dibujo
similar a cómo está en el entrenamiento
no me predice muy bien por qué pasa esto
las redes neuronales como estas son
buenísimas resolviendo problemas de
regresión y clasificación donde los
datos de entrada no cambian de posición
en el ejemplo que hablamos de la
predicción del valor de una casa la
misma neurona de entrada siempre va a
recibir los metros cuadrados y la misma
neurona siempre va a recibir el número
de cuartos etcétera no decidimos después
cambiar el orden de las entradas porque
confundiría en la red
en estas situaciones estas redes hacen
predicciones bastante acertadas y de
hecho son muy utilizadas en la industria
sin embargo en este caso que recibimos
una imagen o una sandalia puede estar
así o así o así y cambiando de tamaño y
posición por lo que la red no puede
generalizar correctamente la estamos
llevando al límite de sus capacidades de
hecho tengo otro vídeo de hace años
donde dice esto pero para números
escritos si te interesa debido a estas
limitantes porque se inventaron las
redes neuronales convolución a les
necesitamos una red que no intente
aprenderse las poses
de los píxeles como lo está intentando
hacer esta red sino una que realmente
intenté entender lo que está viviendo lo
que existe en la imagen y no importe su
color su tamaño o posición etcétera es
un problema bastante interesante y sus
soluciones aún más interesante quiere
saber cómo lo resolveremos suscríbete
para que te motive y que esta cosa el
siguiente vídeo y hasta pronto
[Música]
[Aplausos]
[Música]
5.0 / 5 (0 votes)