Aprende a PROGRAMAR una RED NEURONAL - Tensorflow, Keras, Sklearn
Summary
TLDREste vídeo ofrece una introducción a la programación de redes neuronales, explicando cómo funcionan y cómo se pueden implementar desde cero. Seguidamente, presenta varias herramientas y bibliotecas como TensorFlow y Keras que facilitan el proceso, permitiendo construir y entrenar redes neuronales de manera más eficiente. El vídeo también promociona un curso de Inteligencia Artificial de Academy Point y Jay, destacando la importancia de la simplicidad y flexibilidad al elegir las herramientas de programación para el machine learning.
Takeaways
- 🧠 Se discute sobre redes neuronales y cómo funcionan, incluyendo una breve introducción a su programación desde cero.
- 📈 Se menciona la existencia de herramientas que facilitan el uso de algoritmos de deep learning sin requerir un conocimiento profundo de la programación.
- 🔧 Se destaca TensorFlow y PyTorch como herramientas importantes en el campo de la inteligencia artificial.
- 🎓 Se presenta un curso de la 'Academy Punto y' enfocado en inteligencia artificial, con un enfoque en la formación intensiva y la oportunidad de aprender de expertos.
- 💡 Se aborda la idea de que al aumentar la abstracción en las herramientas de programación, se gana simplicidad pero se pierde flexibilidad en el diseño de las arquitecturas.
- 🛠️ Se explica cómo se pueden construir redes neuronales desde los cimientos, implementando cada paso necesario para su funcionamiento, como la propagación hacia adelante y la retropropagación del error.
- 🌐 Se introduce la librería de diferenciación automática y cómo esta puede calcular automáticamente las derivadas parciales necesarias para la optimización de una red neuronal.
- 🔗 Se describe el concepto de 'grafo computacional' en TensorFlow, que representa todas las operaciones que se ejecutan en una red neuronal.
- 🔄 Se detalla el proceso de entrenamiento de una red neuronal en TensorFlow, desde la definición de los parámetros hasta la ejecución del proceso de auto-diferenciación y entrenamiento.
- 📈 Se compara la simplicidad de usar TensorFlow con la flexibilidad de diseñar arquitecturas personalizadas al programar desde cero.
- 🏢 Se habla sobre las diferentes capas de abstracción en el aprendizaje profundo, desde la programación desde cero hasta el uso de interfaces de alto nivel como Keras.
Q & A
¿Qué es una red neuronal y cómo funciona?
-Una red neuronal es una estructura de computación inspirada en la red de neuronas del cerebro humano, compuesta de nodos o unidades que simulan las neuronas y conexiones que simulan las sinapsis. Funcionan mediante la propagación y transformación de señales de entrada a través de las capas de la red, con el objetivo de modelar y resolver problemas complejos.
¿Por qué programar una red neuronal desde cero puede ser desafiante?
-Programar una red neuronal desde cero es desafiante porque requiere un conocimiento profundo de los procesos matemáticos y algorítmicos subyacentes, como la multiplicación matricial, la propagación del error, y la optimización mediante el descenso del gradiente. Además, cualquier cambio en la arquitectura de la red requiere recalcular manualmente las derivadas y ajustar el código, lo que aumenta la complejidad.
¿Qué herramientas se mencionan en el script para facilitar el aprendizaje y la implementación de redes neuronales?
-El script menciona herramientas como TensorFlow y PyTorch, las cuales son bibliotecas de código abierto para el aprendizaje automático y la computación numérica, especialmente diseñadas para facilitar el trabajo con redes neuronales y el aprendizaje profundo.
¿Qué es la Academy Point y qué ofrece en relación con la inteligencia artificial?
-La Academy Point es un centro de formación que se dedica específicamente a la inteligencia artificial, con un enfoque en la formación intensiva y práctica. Ofrece bootcamps y cursos que incluyen formación en machine learning y deep learning, y cuenta con graduados que han trabajado para empresas como Google o Microsoft.
¿Cómo se puede beneficiar de las bibliotecas de diferenciación automática en el aprendizaje profundo?
-Las bibliotecas de diferenciación automática, como TensorFlow y PyTorch, se encargan de calcular automáticamente las derivadas parciales necesarias para la optimización de las redes neuronales. Esto simplifica enormemente el proceso de diseño y entrenamiento de modelos, ya que se reduce la necesidad de implementar manualmente el cálculo de las derivadas y la programación de la retropropagación.
¿Qué es un 'grafo computacional' en el contexto de las redes neuronales?
-Un grafo computacional es una representación de las operaciones que se realizan en una red neuronal, donde cada nodo del grafo puede representar una variable de entrada, una salida o una operación. Este concepto es fundamental para la diferenciación automática, ya que permite a las bibliotecas de aprendizaje automático rastrear y optimizar el flujo de datos y las transformaciones a través de la red.
¿Cómo se abstrae la programación de redes neuronales al utilizar APIs de alto nivel como Keras?
-Al utilizar APIs de alto nivel como Keras, la programación de redes neuronales se abstrae允许用户通过组合 diferentes tipos de capas predefinidas, en lugar de definir cada operación individualmente. Esto permite diseñar arquitecturas de red neuronal más rápidamente y de manera más sencilla, con menos código y una mayor facilidad para prototipar y experimentar con diferentes configuraciones.
¿Qué ventajas ofrece el uso de modelos predefinidos en herramientas de machine learning en la nube?
-El uso de modelos predefinidos en herramientas de machine learning en la nube ofrece la ventaja de simplificar el proceso de implementación y entrenamiento de modelos, ya que se reduce la necesidad de diseñar arquitecturas de red neuronal desde cero. Además, estos modelos suelen estar optimizados para ejecutarse en infraestructuras escalables y que aprovechan la computación en paralelo y la aceleración por GPU.
¿Cómo se puede personalizar y ajustar una red neuronal utilizando herramientas de alto nivel?
-Con herramientas de alto nivel, como las interfaces de Keras o Scikit-learn, se puede personalizar y ajustar una red neuronal ajustando hiperparámetros como el número de neuronas en cada capa, el tipo de función de activación, el optimizador y la tasa de aprendizaje. Estas herramientas suelen proporcionar una interfaz común para la creación, entrenamiento y predicción, facilitando la experimentación con diferentes configuraciones.
¿Cuál es la relación entre la simplicidad de uso y la flexibilidad en el diseño de las herramientas de aprendizaje automático?
-A medida que se utilizan herramientas de aprendizaje automático de mayor nivel de abstracción, generalmente se ofrece una simplicidad de uso mayor, pero esto puede ir en detrimento de la flexibilidad en el diseño de las arquitecturas de las redes neuronales. Las herramientas de bajo nivel permiten un mayor control y flexibilidad en la configuración de la red, pero a menudo requieren un conocimiento más profundo y una programación más detallada.
Outlines
🤖 Introducción a las Redes Neuronales y Herramientas de Aprendizaje Automático
El primer párrafo introduce el tema de las redes neuronales y cómo se han abordado en el canal, destacando la experiencia previa del programador al crear una red neuronal desde cero para resolver un problema de clasificación binaria. Se menciona la existencia de herramientas que facilitan el uso de algoritmos de deep learning, como TensorFlow, y se anuncia el patrocinador del canal, la Academy, una institución especializada en inteligencia artificial con programas de formación intensiva en Barcelona.
🔍 Construyendo Redes Neuronales con TensorFlow
Este párrafo se enfoca en cómo se pueden construir redes neuronales utilizando la biblioteca TensorFlow. Se explica la creación de una red neuronal a partir de operaciones definidas en un grafo computacional, utilizando placeholders para los datos de entrada y salida. Se detalla el proceso de definición de capas y parámetros, y cómo se implementa la función de activación y el cálculo del error utilizando TensorFlow, facilitando así la diferenciación automática y el entrenamiento de la red neuronal.
🛠️ Usando Keras para Simplificar la Construcción de Redes Neuronales
El tercer párrafo explora el uso de Keras, una interfaz de alto nivel de TensorFlow, para construir y entrenar redes neuronales de manera más eficiente. Se describe cómo se pueden añadir capas a una red neuronal de forma secuencial y cómo se simplifica el proceso de compilación y entrenamiento del modelo. Se resalta la facilidad de Keras para prototipar rápidamente arquitecturas de deep learning y cómo se puede ajustar la configuración de entrenamiento con una sintaxis compacta.
🌐 Herramientas de Machine Learning y Modelos Predefinidos
El último párrafo aborda herramientas de alto nivel como Scikit-learn y plataformas de machine learning en la nube, que ofrecen modelos predefinidos para resolver problemas de aprendizaje automático. Se menciona la facilidad de usar estos modelos con una interfaz similar y cómo se pueden ajustar hiperparámetros para adaptarlos a diferentes problemas. El vídeo concluye con una llamada a la suscripción para recibir tutoriales futuros y se promueve la formación en inteligencia artificial a través de la Academy.
Mindmap
Keywords
💡Redes neuronales
💡Diferenciación automática
💡TensorFlow
💡Función de activación
💡Backpropagation
💡Deep Learning
💡Librerías de alto nivel
💡Optimización del modelo
💡APIs de alto nivel
💡Hiperparámetros
Highlights
Se discute la importancia de las herramientas que facilitan la programación de redes neuronales y se mencionan TensorFlow y PyTorch.
Se explica la ventaja de utilizar bibliotecas de diferenciación automática para calcular derivadas parciales.
Se presenta TensorFlow como una herramienta para construir y entrenar redes neuronales de manera más sencilla.
Se describe el concepto de 'grafo computacional' en el contexto de TensorFlow.
Se detalla cómo definir 'placeholders' en TensorFlow para introducir datos en la red neuronal.
Se muestra cómo construir una capa de red neuronal en TensorFlow con una línea de código.
Se abordan las ventajas de la diferenciación automática en el proceso de backpropagación.
Se menciona la posibilidad de modificar la arquitectura de la red neuronal sin tener que reescribir el código completo.
Se introduce Keras como una interfaz de alto nivel de TensorFlow para construir modelos de red neuronal.
Se explica cómo compilar un modelo en Keras antes de entrenarlo.
Se detallan los pasos para entrenar un modelo en Keras utilizando la función 'fit'.
Se discute la simplicidad de usar Scikit-learn para implementar modelos de red neuronal.
Se menciona la evolución de las herramientas de machine learning y cómo se van haciendo más fáciles de usar.
Se habla sobre la importancia de elegir la herramienta correcta en función de la flexibilidad versus simplicidad.
Se anuncia el primer patrocinador del canal, Academy, y se describe su enfoque en la inteligencia artificial.
Se ofrece un descuento exclusivo para los suscriptores del canal en el curso de Academy.
Se invita a los espectadores a suscribirse y activar la notificación para no perderse futuros tutoriales.
Transcripts
redes neuronales pero decenales redes
neuronales como una red neuronal de
neuronales redes neuronales
vale vale vale vale si hemos hablado
muchísimo sobre redes neuronales hemos
aprendido qué es y cómo funcionan
intuitivamente e incluso hace unos meses
programamos desde cero nuestra propia
red neuronal funcional paso a paso en
línea línea implementamos lo que era una
red neuronal sencilla encargada de
resolver un problema de clasificación
binaria pues también sencillo ok genial
pero significa esto que cada vez que
quiera programar una red neuronal
tengo que programarla desde cero pues
como podrás imaginarte no de hecho la
realidad es que es cuentas con numerosas
herramientas que tengan la posibilidad
de sacarle todo el partido a los
algoritmos de deep learning sin costarte
muchos quebraderos de cabeza
herramientas como que eras tensor flow
para aitor y otras tantas deberían de
ser herramientas que has escuchado más
de una vez pero que a lo mejor no tienes
claro que te aporta cada una y que no es
por eso que hoy veremos tres maneras
diferentes de programar a una red
neuronal estás listo perfecto porque
empezamos en nada pero antes quiero que
sepas que si este vídeo te interesa
posiblemente lo que te voy a contar
ahora también te va a interesar porque
hoy tenemos al primer sponsor del canal
academy punto y hay
es el primer butt que han dedicado
específicamente a la inteligencia
artificial en españa' con graduados que
han ido a estudiar a harvard trabajan
para google o microsoft entre otros lo
interesante aquí es que el próximo
bootcamp de ella inter el que se va a
celebrar empieza el 8 de julio en
barcelona con más de 400 horas de
formación intensiva dedicada a la
inteligencia artificial el machín
learning y el díter ning todo esto
durante 10 semanas si ha seguido los
vídeos de este canal ya tienes el nivel
suficiente para poder empezar pues lo
único que vas a necesitar es tener una
buena base de payton este curso te va a
dar todas las herramientas y prácticas
para impulsar sus conocimientos al
siguiente nivel y poder trabajar como
ingeniero o tata sciences además la
buena noticia es que se aplican a través
del siguiente enlace vas a obtener un
descuento del 15 por ciento exclusivo
para los miembros de este canal tienes
toda la información para consultarlo en
la descripción de este vídeo y ahora si
vamos a programar unas cuantas redes
neuronales por donde empezamos
pues como en todo edificio debemos de
empezar a construir por los cimientos
esto es algo muy común dentro del campo
de la informática donde muchas de las
herramientas que utilizamos se
construyen encima de otras herramientas
anteriores vamos aumentando capa por
capa abstrayendo funcionalidades
complejas en herramientas cada vez más
sencillas de utilizar
es decir si trabajamos con deep learning
pues cada nivel que añadimos sumara una
capa de simplicidad en el uso de las
redes neuronales pero que al mismo
tiempo nos restará flexibilidad en el
diseño de las arquitecturas como he
dicho antes en este canal nuestro
comienzo trabajando con redes neuronales
ha sido desde los cimientos
implementando desde cero todos los pasos
que hacen funcionar a una red neuronal
capaz de neuronas que calculan las más
ponderada funciones de activación
propagación de la información hacia
adelante el cálculo del error la
propagación del error hacia detrás
encadenando derivadas con las chin rule
tal y como derivamos en todos los vídeos
de teorías y optimizando los parámetros
usando el descenso del gradiente todo
esto está muy bien explicado paso a paso
en el notebook número 4 que te
recomiendo hacer si todavía no lo has
hecho en el vídeo de hoy este será
nuestro punto de partida si recuerdas el
problema que trabajamos en aquel vídeo
era un problema de clasificación binaria
este de aquí donde teníamos a dos
círculos concéntricos de puntos que
queríamos separar en dos clases
diferentes
si te fijas todo nuestro código
implementado aquí sirve para diseñar una
red neuronal con esta arquitectura de
acá funciona perfecto pero y si quisiera
experimentar con el diseño de la
arquitectura y si quisiera colocar una
conexión que fuera de esta capa de aquí
a esta otra de aquí una conexión pues
claro en nuestro código ya la
propagación hacia adelante habría que
implementarlas nuevo y peor aún el
código del back propagación también y
claro esto significa que tenemos que
volver a papel y boli y recalcular
todas las derivadas parciales que
implementaban al algoritmo de bach
propagación lo cual pues creo que es un
motivo suficiente para dejarlo todo irse
a jugar con la realidad virtual no debe
de haber una forma más sencilla si al
menos existen una forma en la que yo
pudiera definir qué operaciones quiero
que se ejecuten dentro de mi red y que
de manera automática el código fuera
capaz de calcular todas las derivadas
parciales que necesito para hacer el
algoritmo de bach propagación pues
tendría muchos quebraderos de cabeza
resueltos
muy interesante contar con una
herramienta así verdad pues la buena
noticia es que si tomamos el ascensor y
subimos a la planta 1 de nuestro
edificio entraremos en la zona de las
librerías de diferenciación automática
en esta planta nos vamos a encontrar con
diferentes herramientas donde
posiblemente estén short flow y pay
torch sean las librerías de pay son más
representativas de este nivel como su
nombre bien indica las librerías de
diferenciación automática se van a
encargar de la tarea de calcular
automáticamente las derivadas parciales
necesarias para optimizar cualquier
arquitectura que diseñes internamente
para conseguir esta diferenciación
automática estas librerías representan
todas las operaciones que han de
ejecutarse en nuestra arquitectura como
un grafo donde cada nodo puede
representar una variable entrada o una
operación al realizar por ejemplo este
grafo de aquí representaría la
multiplicación de una variable por tres
y la suma de dos a este grafo que hemos
construido se le conoce como grafo
computacional y es la estructura ideal
para iniciar el proceso de
diferenciación automática en nuestro
caso como ejemplo de librería auto
diferenciable nos centraremos en la
versión una defensor flow para ver cómo
podemos implementar a nuestra red
neuronal y así solucionar el mismo
problema de clasificación de la última
vez
puedes parar el vídeo y copiar el
siguiente código que te servirá como
punto de partida para cargar los datos y
visualizar los resultados no tienes
copiado ya white o bueno también puedes
encontrar el código en un notebook que
he preparado abajo en la descripción
ojos porque siento que debería haber
dicho esto antes bueno da igual fíjate
como hemos mencionado antes el punto de
partida de todo código un tensor flow
pasa por definir explícitamente qué
operaciones forman parte de nuestro
grafo computacional es decir cómo los
datos van a ir fluyendo y
transformándose de principio a fin en
tensor flow utilizamos los plays holders
para definir aquellos puntos de entrada
donde nosotros vamos a insertar datos en
nuestra red en este caso las variables y
x e y son 2 play holder que utilizaremos
para introducir nuestros datos de
entrada la matriz x y nuestro vector de
salida la y para ello los definimos
diciendo que el tipo de datos que va a
llegar será de tipo float decimal y
cuáles van a ser sus dimensiones a
partir de este momento ya podemos
empezar a añadir las operaciones que
definirán a nuestra red neuronal ya
sabes que en una red neuronal en cada
capa se produce una suma ponderada que
es equivalente a una multiplicación
matricial después la suma del parámetro
de varias y luego lo pasamos por una
de activación como podría ser la función
reloj por fíjate qué sencillo es hacer
esto con tenso el flow y lo primero que
tenemos que hacer es definir aquellos
parámetros que van a ser optimizados
dentro de nuestra red cosa que el tensor
flow se define como verbo o variable o
bueno con esta línea de código donde
vamos a indicar que sus valores van a
ser inicializa 2 aleatoriamente y que
tendrá estas dimensiones una vez lo
tenemos simplemente tenemos que indicar
que las operaciones de la capa 1 van a
ser la de multiplicar nuestro input y x
con la matriz de parámetros w 1 sumar el
parámetro de vallas b 1 y pasarlo todo
por la función de activación en red
fíjate como en unas pocas líneas de
código ya hemos creado lo equivalente a
una capa de una red neuronal con tensor
flow qué pasa que quieres más capas pues
simplemente tenemos que copiar y pegar
las mismas líneas de código esta de aquí
sería la capa 2 y esta de aquí sería la
capa 3 en este caso como esta capa 3 va
a ser la última capa la capa de salida
le pondremos la función de activación
sigmoide y no la reino para casi el
output queda acotado entre los valores
de 0 y 1 perfecto una vez hemos
terminado de definir la arquitectura a
lo mejor te ves tentados de
bueno pues ya estaría ahora hago un
print de esto de aquí y obtengo el
resultado de las predicciones verdad
pues no exactamente cuando hagas sprint
verás que te sale este mensaje lo que
viene indicar algo así como mira mira yo
sé que esto es un tensor con estas
dimensiones pero todavía no más pasado
datos así que no te puedo decir qué
valor es claro recuerda que aquí sólo
hemos definido el grafo de operaciones
nada más
todavía nos faltaría pasarle los datos e
iniciar el proceso de entrenamiento la
ventaja es que si bien lo que hemos
hecho hasta ahora no se diferencia mucho
del código original de programarlo desde
cero es en el proceso de back pro para
gestión y de diferenciación automática
donde estas librerías nos mostrarán todo
el potencial porque mira una vez tenemos
nuestro tensor de salida las
predicciones que haremos con él pues si
la cuerda lo que tenemos que hacer es
nuestra función de coste por
ejemplo el error cuadrática medio y
comparar nuestras predicciones con el
vector de salida original en este caso
vendrá introducido por el place holder
y con esto evaluaremos los resultados
que queremos conseguir pues utilizar
este error para optimizar a toda la red
es decir que el error se minimice pues
dicho y hecho con esta línea de aquí es
con la que vamos a definir dentro de
nuestro grafo de operaciones que se
produzca este proceso de optimización
utilizando el descenso del gradiente
para minimizar el coste con esto ya
tendremos planteadas todas nuestras
operaciones y sólo nos faltaría
introducir los datos y dejar que tensó
el flow inicia el proceso de auto
diferenciación y entrenamiento algo que
vamos a hacer con las siguientes líneas
de código para ejecutar nuestro grafo
computacional lo primero que tenemos que
hacer es iniciar una sesión una sesión y
con ésta empezaremos a ejecutar ahora sí
las operaciones de nuestro grafo la
primera operación que vamos a ejecutar
es esta de aquí que servirá para
inicializar todos los parámetros que
hemos creado anteriormente todas las
matrices de pesos y vaya esto se hará de
la manera en la que lo hayamos
especificado que en este caso tal y como
hemos definido viene a ser de manera
aleatoria esto es algo así como si
estuviéramos arrancando por primera vez
toda la máquina que hemos creado a
partir de ahí esta es la línea de código
más importante porque es aquí donde
vamos a evaluar por fin aquello que
queremos ejecutar en este caso le
estamos pidiendo
flow que nos calculé estos tensores de
aquí para lo cual necesitaremos insertar
datos a aquellos plays holders que hemos
declarado como punto de entrada en
nuestro grafo estos datos los podemos
inyectar de manera sencilla en esta
misma línea de código con el parámetro
fit dicta es aquí donde pasaremos
nuestra matriz de entrada en nuestro
vector de salida con esto estos tensores
de aquí se van a calcular y como este
tensor es el optimizador que hemos
definido arriba cada vez que se evalúe
nuestra red estará siendo optimizada de
manera automática por tensor flow es
decir estará aprendiendo esta línea nos
devolverá por tanto el resultado del
optimizador que lo descartaremos y el
resultado de la función de coste y el
vector de predicciones tras una
iteración de entrenamiento si dejamos
que esto se repita de manera interactiva
durante un número determinado de veces
el resultado que obtendremos será el
siguiente la red ha aprendido a resolver
nuestro problema de clasificación como
ves el código que hemos escrito bastante
sencillo y no debería de costar t
entender el resto de líneas que en
realidad sólo sirven para obtener
métricas durante el entrenamiento tienen
todo el código comentado en el notebook
que he compartido en la descripción
ventaja de trabajar con tensor flow
dejando aparte la optimización para gpu
la ejecución distribuida la optimización
del código es que si tú ahora quisieras
modificar algún aspecto de la
arquitectura de tu red sólo tendrías que
hacer cambios en la primera parte del
código y el resto del proceso de auto
diferenciación y entrenamiento se
computará automáticamente si te das
cuenta lo que tensor flow nos permite
hacer es construir la arquitectura de
redes neuronales que queramos a nivel de
operaciones es decir que el diseño de
redes neuronales ahora va a ser el de
juntar diferentes operaciones como si
bloques de lego se tratasen cómodo y
para toda la familia qué te parece mola
verdad pues me alegro que te guste
porque vamos a seguir subiendo en el
ascensor de las cosas fáciles y es que
si tensor flow es una herramienta cómoda
pero si te fijas podría serlo más por
ejemplo antes cuando hemos querido
diseñar a nuestra red neuronal para
definir a cada capa de la red
hemos tenido que escribir tres líneas de
código declarando los parámetros de la
capa y cuáles eran cada una de las
operaciones que se producían en ella
algo que se vuelve muy redundante cuando
seguimos añadiendo más capas a nuestra
red
no habría una forma más cómoda de hacer
esto pues en realidad si todas estas
líneas de código las podríamos abstraer
hasta el nivel de capa es decir en vez
de trabajar combinando distintas
operaciones lo que podemos hacer es
combinar diferentes tipos de capas para
conformar así nuestra red neuronal en
realidad en el campo del deep learning
la gran mayoría de arquitecturas pueden
ser construidas a partir de combinar
unos pocos tipos de capas que son
comunes a todas estas arquitecturas
capas público néctar convolución al es
de convolución al es en las el stm
etcétera visto así tiene sentido
plantearse el diseño de redes neuronales
de otra manera desde el punto de vista
de las apis de alto nivel donde
pasaremos a ver a las redes neuronales
como combinaciones de capas un nivel
donde de la rama de tensor flow nos
encontramos con herramientas como care
as que ha pasado a ser la interfaz de
alto nivel de facto de la librería
tensor flow tras ser integrada como uno
de sus módulos de manera muy
simplificada lo que consigue es quieras
es plantear una interfaz sencilla a
nivel de capa de todas las
funcionalidades que nos aportan tensor
flow visto así vamos a ver cómo podemos
resolver el mismo problema de antes pero
utilizando quieras ojo porque esta vez
va a ser más rápido
y es que en que eras comenzamos creando
nuestra red neuronal a nuestro modelo
llamando a la función secuencial que es
una forma de decir la que eras que
queremos crear un modelo conformado por
una secuencia de capas a partir de este
momento ya podemos empezar a añadir
capas y capas a nuestra red neuronal en
este caso las capas full y connected
donde cada neurona tiene una conexión
con la capa anterior son denominadas
capas de densas a las cuales las tenemos
que especificar cuántas neuronas
contiene y qué tipo de función de
activación va a ejecutar una vez tenemos
definida la capa que queremos añadir la
podemos incluir en nuestro modelo
simplemente llamando a la función model
punto at con esto ya que era sabrá qué
operaciones debe de incluir en nuestro
grafo computacional para implementar a
esta capa muy muy sencillo si ahora
quisiéramos continuar añadiendo capas
pues tendríamos que repetir la línea de
código anterior añadimos una segunda
capa y ahora una tercera capa la de
salida una vez estamos satisfecho con el
diseño de nuestra red en que heras el
entrenamiento se vuelve mucho más
sencillo lo primero que tenemos que
hacer es compilar el modelo para así
comunicar al back-end de tensor flow que
estamos listos para entrenar esto lo
hacemos con la función con baile
objeto del modelo y será aquí donde
especificamos qué función de costos
utilizaremos para optimizar y qué
optimizador utilizaremos de manera
complementaria también podemos añadir
otras métricas que serán calculadas y
visualizadas durante el entrenamiento
una vez tenemos el modelo compilado
ahora sólo queda entrenarlo y en este
caso esto se consigue llamando a la
función punto fit será aquí donde le
diremos a que heras cuáles son nuestros
datos de entrada x y nuestros datos de
salida y de igual forma podremos
controlar otros parámetros del proceso
de entrenamiento como el tamaño del bach
o el número de épocas a entrenar cuando
estemos listos lo ejecutamos y veremos
inmediatamente cómo empezará el proceso
de entrenamiento
acaso nos bello comparativamente el
código programado con care us es
muchísimo más compacto y orientado al
prototipado rápido de arquitecturas de
deep learning como veis tal y como
dijimos en un principio entre más alto
subimos en los niveles de abstracción de
estas herramientas mayor es su
simplicidad de uso en detrimento eso sí
de la flexibilidad en el diseño para
ilustrar esto podemos subir un último
nivel en nuestro ascensor donde
pasaremos a tratar a las redes
neuronales desde un punto de vista de
capas a uno
de vista de modelo en este nivel las
cosas se vuelven bastante sencillas la
verdad ya que miramos a las redes
neuronales como un todo como un modelo
cuya arquitectura ya nos dan
predefinidas y que podemos controlar de
manera limitada ajustando unos pocos
hiper paramentos como ejemplo de este
nivel podemos encontrarnos con librerías
como ese calero a piece en plataformas
de machine learning en la nube o
paquetes avanzados en herramientas de
ofimática estas herramientas suelen
ofrecerte un catálogo de modelos desde
los más tradicionales como knn camins
modelos logísticos o lineales hasta
cosas más avanzadas como modelos de
redes neuronales en este nivel es
importante saber qué herramientas ofrece
soporte para gpu si lo que se quiere es
buscar una solución que escale bien con
el volumen de datos para nuestro
problema bastante sencillo s cullen será
suficiente para poder implementar a
nuestra red con una mínima cantidad de
código
aquí podemos usar los modelos dentro del
módulo neural network y elegir al multi
layer per ser transgresor como el modelo
a utilizar en este caso utilizó al
regreso en vez del clasificador para
seguir obteniendo la probabilidad de
pertenencia a una de las clases lo bueno
de seca lerma es que todos los modelos
siguen una interfaz similar
donde primero se crea el objeto del
modelo luego se entrena llamando a la
función punto fit y finalmente se
realizarán predicciones con la función
credit bastante sencillo la dificultad
de aquí reside en la de encontrar
aquellos híper parámetros que mejor se
ajusten a tu problema podemos definir
estos híper parámetros cuando creamos el
objeto del modelo por ejemplo aquí pues
podemos seleccionar el tipo de
optimizador e learning rate inicial el
número de neuronas para cada capa oculta
o la política detrás del número de
interacciones a entrenar cuando esté
listo veremos que estas dos líneas de
código son suficientes para solucionar a
nuestro problema la ventaja de ese caler
como ya he dicho es la sencillez para
probar otros tipos de modelos diferentes
puesto que sólo requeriría cambiar esta
línea de código por el modelo que
queramos al mantenerse igual la interfaz
del resto de funciones con este último
ejemplo espero que haya quedado clara mi
intención con este vídeo que es la de
mostrar el gradiente de herramientas con
las que contamos en el campo del match
in learning si nos movemos en el eje de
simplicidad versus flexibilidad hay que
comentar que este gradiente de
herramientas cada vez se vuelve más
difuso con la evolución de cada una de
estas librerías al combinarse por
ejemplo tensor flow con care as o cuando
herramientas como python se añaden
más funciones de alto nivel igualmente a
nivel horizontal las diferencias entre
herramientas tan importantes como tensor
flow o pai torch se van igualando cuando
bueno tensor flow se inspira en su nueva
versión en algunas de las bondades que
ofrece pay torch pero bueno esto ya lo
dejaremos para otro vídeo en nuestro
caso quiero que este vídeo sirva como
punto de partida para los próximos ya
notebooks que llegarán al canal donde
nos moveremos entre la planta 1 y 2 de
nuestro edificio trabajando con tensor
flow y quieras si quieres estar alerta
de estos tutoriales te recomiendo
suscribirte y darle a la campana si aún
no lo has hecho y si de verdad te
interesa el mundo del ma jin learning y
quieres profesionalizarte en este sector
no dejes de consultar la información de
los cursos de academy punto y jay y
beneficiarte así del descuento dado a
los suscriptores de este canal tenéis
toda la información en la descripción
por mi parte nada más adiós
[Música]
Voir Plus de Vidéos Connexes
5.0 / 5 (0 votes)