Tu primera red neuronal en Python y Tensorflow

Ringa Tech
7 Jul 202116:24

Summary

TLDREste video ofrece una introducción detallada a la creación de una red neuronal desde cero utilizando Python y TensorFlow. A través de un ejemplo sencillo de conversión de grados Celsius a Fahrenheit, el presentador explica cómo funciona el aprendizaje automático en comparación con la programación tradicional. El proceso involucra la inicialización aleatoria de pesos y sesgos, el entrenamiento de la red con datos de entrada y la optimización de estos parámetros para mejorar las predicciones. El video también toca la diferencia entre redes neuronales simples y complejas, y cómo estas últimas pueden aprender algoritmos complejos sin ser explícitamente programadas.

Takeaways

  • 🧠 **Aprendizaje automático vs programación regular**: El aprendizaje automático se diferencia de la programación regular en que no se conoce el algoritmo para convertir entradas en resultados, sino que se busca que el modelo aprenda por sí mismo.
  • 🌡️ **Ejemplo de conversión de Celsius a Fahrenheit**: La conversión de Celsius a Fahrenheit se utiliza como ejemplo sencillo para explicar cómo funciona una red neuronal y cómo aprende a realizar la conversión sin conocer la fórmula exacta.
  • 🔄 **Proceso de aprendizaje**: El aprendizaje automático implica ajustar pesos y sesgos de una red neuronal para que pueda predecir resultados a partir de ejemplos de entrada y salida.
  • 🎯 **Inicialización aleatoria de pesos y sesgos**: Al inicio, los pesos y sesgos se inicializan de manera aleatoria, lo que puede resultar en predicciones iniciales no muy precisas.
  • 🔧 **Entrenamiento de la red neuronal**: El entrenamiento de la red neuronal implica ajustar los pesos y sesgos a partir de un conjunto de datos de entrada y salida, con el objetivo de minimizar la función de pérdida.
  • 📈 **Optimización y tasa de aprendizaje**: El optimizador (como Adam) y la tasa de aprendizaje son parámetros clave en el entrenamiento que influyen en cómo eficientemente la red ajustará sus pesos y sesgos.
  • 🔄 **Ejemplo práctico de entrenamiento**: El script proporciona un ejemplo práctico de entrenamiento de una red neuronal utilizando TensorFlow en Google Colab, mostrando cómo se configuran las capas y se realiza el entrenamiento.
  • 📊 **Evolución de la función de pérdida**: La función de pérdida muestra cómo la red neuronal mejora a lo largo del tiempo, y es una indicación de si el entrenamiento está funcionando correctamente.
  • 🔮 **Predicciones y ajuste de la red**: Después del entrenamiento, la red neuronal puede hacer predicciones, y si son precisas, se puede ajustar o mejorar la red según sea necesario.
  • 🌐 **TensorFlow y Google Colab**: TensorFlow es una biblioteca de inteligencia artificial desarrollada por Google, y Google Colab es una plataforma en línea que permite programar en Python y utilizar recursos de computación en la nube sin instalaciones.
  • 🔍 **Investigación en inteligencia artificial**: Aunque no siempre es posible entender completamente cómo una red neuronal llega a sus conclusiones, hay una rama de la inteligencia artificial dedicada a investigar y mejorar estos modelos.

Q & A

  • ¿Qué se creará en el video?

    -Se creará una red neuronal desde cero utilizando Python y TensorFlow.

  • ¿Cuál es el objetivo principal al crear una red neuronal simple?

    -El objetivo es entender cómo funciona una red neuronal y las diferencias entre el aprendizaje automático y la programación regular.

  • ¿Cómo funciona conceptualmente el aprendizaje automático en comparación con la programación regular?

    -Mientras que en la programación regular se definen algoritmos explícitos, en el aprendizaje automático se utiliza una lista de entradas y resultados para que el modelo aprenda por sí solo cómo convertir entradas en resultados.

  • ¿Qué ejemplo se utiliza para ilustrar la diferencia entre programación regular y aprendizaje automático?

    -Se utiliza el ejemplo de convertir grados Celsius a Fahrenheit, mostrando cómo se aborda con programación regular y cómo se podría aprender con una red neuronal.

  • ¿Cuáles son las capas fundamentales que debe tener una red neuronal?

    -Una red neuronal debe tener al menos una capa de entrada para recibir datos y una capa de salida para dar resultados. También puede tener capas ocultas intermedias.

  • ¿Qué es la función de los pesos en una red neuronal?

    -Los pesos representan la importancia de la conexión entre las neuronas y se ajustan durante el aprendizaje automático para mejorar las predicciones del modelo.

  • ¿Qué es el sesgo en el contexto de una red neuronal?

    -El sesgo es un valor numérico que se suma en la neurona y se ajusta durante el entrenamiento para contribuir al resultado final de la red neuronal.

  • ¿Cómo se ajustan los pesos y sesgos en una red neuronal durante el aprendizaje automático?

    -Los pesos y sesgos se ajustan automáticamente a través de un proceso de optimización, donde el modelo recibe ejemplos de entrada y resultados esperados y se ajusta para minimizar la diferencia entre las predicciones y los resultados reales.

  • ¿Qué función de pérdida se utiliza en el ejemplo del video?

    -Se utiliza la función de pérdida 'minimo error' o 'error cuadrático medio' para medir la diferencia entre las predicciones de la red y los resultados esperados.

  • ¿Qué se hace con la red neuronal después de entrenarla para mejorar sus predicciones?

    -Después de entrenar la red neuronal, se puede hacer predicciones utilizando nuevos datos de entrada y comparar los resultados con los esperados para evaluar la precisión del modelo.

  • ¿Qué se puede hacer con una red neuronal más compleja?

    -Una red neuronal más compleja puede aprender algoritmos para resolver problemas más complejos, como clasificar y detectar imágenes, calcular el valor de una casa, clasificar correo no deseado, detectar transacciones fraudulentas, entre otros.

Outlines

00:00

😀 Introducción al Aprendizaje Automático y Redes Neuronales

Este párrafo introduce el concepto de aprendizaje automático y redes neuronales, explicando la diferencia entre la programación regular y el aprendizaje automático. Se destaca la creación de una red neuronal simple para comprender su funcionamiento.

05:01

🤖 Proceso de Aprendizaje Automático en la Conversión de Grados Celsius a Fahrenheit

Se describe el proceso de aprendizaje automático para la conversión de grados Celsius a Fahrenheit utilizando una red neuronal. Se detallan los datos de entrada, la compilación del modelo, el entrenamiento y la optimización de los pesos y sesgos.

10:02

🧠 Predicción y Evaluación del Modelo de Red Neuronal

Este párrafo presenta la predicción del modelo entrenado para convertir grados Celsius a Fahrenheit. Se analiza el rendimiento del modelo mediante la función de pérdida y se realiza una predicción con un nuevo valor de entrada.

15:03

🔍 Exploración de la Estructura Interna de la Red Neuronal

Se examina la estructura interna de la red neuronal, revelando los pesos y sesgos asignados a las conexiones después del entrenamiento. Se discute la complejidad de comprender las decisiones de una red neuronal más grande.

📊 Conclusiones y Continuación

El párrafo final resume las lecciones aprendidas y destaca la capacidad de las redes neuronales para resolver problemas simples y complejos. Se anticipa la exploración de temas futuros, como la visión artificial, y se invita a los espectadores a participar.

Mindmap

Keywords

💡Red neuronal

Una red neuronal es una estructura de computación inspirada en el cerebro humano, compuesta por capas de unidades llamadas neuronas, conectadas entre sí a través de pesos. En el video, se utiliza una red neuronal simple para ilustrar cómo funciona el aprendizaje automático, mostrando cómo esta red puede aprender a convertir grados Celsius a Fahrenheit sin conocer la fórmula exacta.

💡Aprendizaje automático

El aprendizaje automático es un campo de la inteligencia artificial en el que se busca que un modelo pueda aprender y mejorar en tareas específicas a partir de datos y sin la necesidad de programación explícita para cada paso. En el video, el aprendizaje automático se utiliza para que la red neuronal aprenda a realizar conversiones de temperaturas.

💡TensorFlow

TensorFlow es una biblioteca de software de código abierto desarrollada por Google, diseñada para realizar cálculos escalables en redes neuronales. En el video, TensorFlow es utilizado para crear y entrenar la red neuronal que se utiliza para el aprendizaje automático.

💡Conversión de temperaturas

La conversión de temperaturas es el proceso de cambiar los valores de una escala de temperatura a otra. En el video, se utiliza como ejemplo práctico para demostrar cómo una red neuronal puede aprender a convertir grados Celsius a Fahrenheit.

💡Función de activación

La función de activación es una función matemática que es aplicada a la salida de una o más neuronas en una red neuronal, y su propósito es introducir no linealidad en el modelo, permitiendo que la red pueda aprender patrones complejos. Aunque no se explica en detalle en el video, es un concepto fundamental en el funcionamiento de las redes neuronales.

💡Pesos y sesgos

Los pesos y sesgos son parámetros numéricos en una red neuronal que determinan la intensidad de las conexiones entre neuronas y un ajuste adicional en la salida de cada neurona, respectivamente. Estos valores son ajustados durante el proceso de entrenamiento para optimizar el rendimiento del modelo.

💡Capas ocultas

Las capas ocultas son aquellas que se encuentran entre la capa de entrada y la capa de salida en una red neuronal. Estas capas son esenciales para procesar información de manera más compleja y aprender patrones de datos más sofisticados.

💡Google Colab

Google Colab es un servicio de notebook de código abierto de Google que permite la creación y ejecución de programas en Python en el navegador web, utilizando la potencia de la computación en la nube. En el video, se utiliza Google Colab para ilustrar el proceso de construcción y entrenamiento de la red neuronal sin la necesidad de instalar ningún software adicional.

💡Optimizador

Un optimizador es un algoritmo utilizado en el aprendizaje automático para ajustar los pesos y sesgos de una red neuronal de manera que minimice la función de pérdida. El optimizador ayuda a la red neuronal a aprender más eficientemente a partir de los datos de entrenamiento.

💡Función de pérdida

La función de pérdida es una medida que indica cuán bien se está desempeñando el modelo en el aprendizaje. Su objetivo es minimizar la diferencia entre las predicciones del modelo y los resultados reales en los datos de entrenamiento.

💡Entrenamiento de la red neuronal

El entrenamiento de una red neuronal es el proceso de ajuste de sus pesos y sesgos a partir de un conjunto de datos de entrenamiento, con el objetivo de mejorar su capacidad para hacer predicciones precisas. Este proceso implica iterar sobre los datos de entrada y ajustar los parámetros del modelo según la función de pérdida.

Highlights

En este vídeo se crea una red neuronal desde cero utilizando Python y TensorFlow.

El objetivo es explicar en detalle cómo funciona una red neuronal y las diferencias con la programación tradicional.

La red neuronal se utilizará para entender cómo convertir grados Celsius a Fahrenheit sin conocer la fórmula.

La red neuronal simple consistirá en una capa de entrada, una capa de salida y una conexión simple.

Las redes neuronales grandes pueden tener millones de neuronas y tomar decisiones complejas basadas en datos y variables.

El proceso de aprendizaje automático implica ajustar pesos y sesgos para que la red neuronal aprenda por sí sola.

Se utilizan datos de entrada y resultados esperados para entrenar la red neuronal.

La red neuronal ajustará automáticamente los pesos y sesgos para hacer predicciones más precisas.

El entrenamiento de la red neuronal es una parte matemática y cálculo intensiva del aprendizaje automático.

El modelo de red neuronal se compila con un optimizador y una función de pérdida para mejorar el aprendizaje.

La función de pérdida, como el error cuadrático medio, ayuda a medir la exactitud de las predicciones de la red.

La red neuronal logró aprender la fórmula de conversión Celsius a Fahrenheit sin ser explícitamente programada.

Aunque una red neuronal simple puede resolver el problema, una red más compleja aprende más rápido y posiblemente mejor.

El aprendizaje automático permite a las redes neuronales aprender algoritmos complejos sin la necesidad de conocer el proceso detrás.

El ejemplo práctico de conversión de Celsius a Fahrenheit ilustra cómo las redes neuronales pueden aplicarse a problemas de programación.

Transcripts

play00:00

en este vídeo crearemos una red normal

play00:02

desde cero utilizando python y tensa

play00:04

flow no necesitas saber nada para seguir

play00:06

este vídeo y explicaré todo con detalle

play00:07

con aprendizaje automático machine

play00:09

learning podemos hacer muchas cosas

play00:10

complejas e increíbles sin embargo

play00:13

quiero centrarme en crear una red

play00:14

neuronal simple pero que al hacerla nos

play00:16

haga ver exactamente como el por qué

play00:17

funciona y nos permite ver las

play00:19

diferencias que hay entre el aprendizaje

play00:20

automático y la programación regular

play00:22

para los que siguen mis vídeos sabrán

play00:24

que según mi plantilla que viéramos

play00:25

redes neuronales convolución a leds para

play00:27

clasificación y detección de imágenes

play00:29

nada más que como ya todo eso va a ser

play00:30

comparten decidí primero hacer este como

play00:32

introducción antes de pasar a esos temas

play00:34

más complejos muy bien el aprendizaje

play00:36

automático funciona conceptualmente

play00:38

diferente a la programación regular en

play00:41

la programación regular normalmente

play00:42

nosotros programamos algoritmos para

play00:44

convertir entradas en resultados

play00:46

nosotros escribimos las reglas y lógicas

play00:48

necesarias para lograrlo en el caso del

play00:51

aprendizaje automático es diferente

play00:53

contamos con una lista de entradas y

play00:55

resultados pero no necesariamente

play00:57

sabemos cómo convertir esas entradas en

play01:00

los resultados es decir no conocemos el

play01:02

algoritmo que puede hacer la conversión

play01:04

lo que queremos es crear un modelo que

play01:06

pueda

play01:07

esas entradas los resultados esperados

play01:09

de cada entrada y puede aprender por sí

play01:11

solo el algoritmo necesario para hacer

play01:13

la conversión esa es la diferencia

play01:15

principal entre programación regular y

play01:17

el aprendizaje automático veamos un

play01:19

escenario en acción elegir el ejemplo

play01:20

más simple posible pero que nos deje

play01:22

claro cómo funciona imagina que quieres

play01:24

convertir grados celsius y fahrenheit la

play01:27

fórmula o algoritmo para hacerlo es la

play01:29

siguiente par en height iguala celsius

play01:31

por 1.8 más 32 comenzamos primero viendo

play01:35

cómo lo haríamos con programación

play01:36

regular para eso escribiríamos una

play01:39

función como ésta

play01:40

esta función recibe como entrada los

play01:42

grados celsius que queremos transformar

play01:44

aquí tenemos el algoritmo y finalmente

play01:47

regresamos el resultado muy bien eso fue

play01:50

programación regular simple verdad

play01:52

veamos como lograremos esto utilizando

play01:54

aprendizaje automático

play01:55

recordemos que el aprendizaje automática

play01:57

no sirve cuando no conocemos la fórmula

play01:59

o algoritmo así que por un momento

play02:01

imaginemos que no conocemos la fórmula

play02:03

de conversión contamos solamente con

play02:05

entradas en celsius y resultados

play02:07

esperados en fahrenheit y buscamos que

play02:09

nuestro modelo aprenda por sí solo el

play02:11

algoritmo utilizaremos los siguientes

play02:13

datos

play02:13

esta tabla cuenta con siete ejemplos y

play02:16

muestra los grados celsius y el

play02:17

resultado correspondiente en fahrenheit

play02:19

lograremos esto con una red neuronal una

play02:22

red neuronal grande puede tener millones

play02:24

de neuronas conectadas y puede tomar

play02:26

decisiones muy complejas basadas en

play02:28

muchos datos y variables

play02:30

hoy usaremos la red neuronal más simple

play02:32

que podamos y aprovecharemos para ver a

play02:33

detalle cómo funcionan las redes

play02:36

neuronales siguen algunas reglas si

play02:37

quieres una explicación intuitiva de por

play02:39

qué existen esas reglas por eso en el

play02:41

vídeo que te lleva aparecerán en

play02:42

pantalla sin embargo para este vídeo

play02:44

veamos qué reglas y conceptos debemos

play02:46

conocer las redes neuronales se separan

play02:48

en capas cada capa puede tener una o más

play02:52

neuronas cualquier red tiene siempre al

play02:55

menos una capa de entrada que es donde

play02:57

se reciben los datos de entrada en este

play02:59

caso los grados celsius que queremos

play03:00

convertir y también debe tener una capa

play03:03

de salida donde obtendremos el resultado

play03:05

calculado en este caso aquí nos debe

play03:07

decir los grados fahrenheit resultantes

play03:09

en redes más complejas podemos tener más

play03:11

capas intermedias llamadas capas ocultas

play03:13

pero veremos eso después las neuronas se

play03:16

conectan con conexiones

play03:19

para nuestro caso simple de hoy

play03:20

solamente tenemos una conexión

play03:22

conectando la neurona de entrada con la

play03:24

de salida cada una de estas conexiones

play03:26

tiene un peso asignado este peso es un

play03:29

valor numérico que representa la

play03:30

importancia de la conexión entre las

play03:32

neuronas en un momento veremos para qué

play03:34

sirve este dato

play03:35

cada neurona a excepción de la capa de

play03:37

entrada tiene un sesgo el pse es también

play03:40

un valor numérico y en un momento

play03:42

veremos cómo será utilizado por último

play03:44

existe el concepto de función de

play03:46

activación pero eso lo veremos en

play03:47

siguientes vídeos de manera simple el

play03:50

proceso que seguirá esta reunión al es

play03:51

el siguiente colocaremos los grados

play03:53

celsius en la primera neurona esos

play03:56

grados celsius se multiplicarán por el

play03:57

peso de la conexión y llegarán a la

play04:00

siguiente neurona ahí se le sumará el

play04:03

sesgo y ese será nuestro resultado

play04:06

te parece simple espero que sí a grandes

play04:09

rasgos así es cómo funcionan las redes

play04:10

neuronales de este tipo en escenarios

play04:12

complejos utilizamos redes con muchas

play04:14

capas miles de neuronas millones de

play04:16

conexiones pero finalmente todos siguen

play04:18

un proceso muy similar pero bueno

play04:20

regresemos a nuestro ejemplo

play04:21

nuestro modelo actual entonces está de

play04:23

la siguiente manera al comenzar los

play04:25

valores del peso y el sesgo se inician

play04:27

de manera totalmente aleatoria por

play04:29

ejemplo inicializa mos la red y de

play04:31

manera aleatoria asigna un peso de 1.5

play04:34

en la conexión y un valor de 4 para el

play04:36

sesgo no creo que funcione muy bien pero

play04:38

vamos a ver

play04:39

usemos como ejemplo 15 grados celsius

play04:41

queremos que la red nos diga cuánto es

play04:43

15 grados celsius y fahrenheit o bueno

play04:46

al menos cuánto cree que es lo colocamos

play04:48

en la neurona de entrada se multiplica

play04:50

por 1.5 que es el peso de la conexión el

play04:53

resultado es 22.5 ese valor entre en la

play04:56

siguiente neurona aquí se resume el

play04:58

sesgo que es 4 y el valor final es de

play05:00

26.5 por lo tanto en mi red neuronal de

play05:03

momento predice que 15 grados celsius

play05:05

son 26.5 fahrenheit será cierto

play05:09

[Música]

play05:14

y ser que en realidad deberían de ser 59

play05:18

como puede la red neuronal aprender los

play05:21

valores más adecuados para los pesos y

play05:23

los sesgos no queremos hacerlo

play05:25

manualmente a prueba y error aquí es

play05:27

donde entra la magia del aprendizaje

play05:28

automático como veremos en el momento el

play05:30

aprendizaje automático aprender a hacer

play05:32

esta conversión de grados celsius y

play05:33

fahrenheit este tipo de redes puede

play05:35

aprender no sólo esto sino también a por

play05:37

ejemplo calcular el valor de una casa en

play05:39

base a sus características a

play05:40

clasificarse un correo spam o no a

play05:42

detectar transacciones fraudulentas

play05:43

hacer cálculos de tiempos de envío entre

play05:46

otro trillón de cosas cómo puede lograr

play05:48

lo primero que necesitamos es conseguir

play05:50

suficientes ejemplos de entradas y

play05:52

resultados usaremos los que vimos hace

play05:54

un momento ahora queremos darle a la red

play05:56

neuronal esos ejemplos y que aprendan

play05:57

por sí solo a la relación es decir que

play05:59

ajuste automáticamente los pesos y

play06:01

sesgos para después poder hacer

play06:03

predicciones lo más acertadas posibles

play06:04

para lograrlo la red va a tomar todos

play06:07

esos datos de entrada que yo le di y por

play06:08

cada uno va a ser una predicción

play06:10

recordemos que fue inicial izado de

play06:11

manera aleatoria entonces al final le va

play06:13

a ir muy mal dependiendo de qué tan mal

play06:15

le fue ajustará los pesos y los sextos

play06:17

si le fue muy mal se va a ajustar mucho

play06:19

si no le fue tan mal

play06:21

ajustar poquito pero tenemos solo siete

play06:23

ejemplos podrá entender la relación y

play06:25

ajustar el peso y sesgo tan sólo con

play06:27

esos ejemplos veámoslo por nosotros

play06:29

mismos pasemos ahora si para programar

play06:31

para que no tengas que instalar nada

play06:33

haré todo en google cola si no lo has

play06:35

usado básicamente es una libreta en

play06:37

línea de google que te permite programar

play06:38

en python y usar cpu y gpu de una

play06:40

computadora en la nube totalmente gratis

play06:42

sin que tengas que instalar nada

play06:44

necesitas una cuenta de google para

play06:46

usarlo pero bueno si no quieres hacerlo

play06:47

así todo esto funciona igual si lo haces

play06:49

en tu computadora e instalas python y

play06:51

tensor flow entremos en google colocó en

play06:53

esta liga y comencemos explicaré todo

play06:55

paso por paso recordemos que haremos

play06:57

todo el compayito en python es uno de

play06:59

los lenguajes más utilizados para

play07:00

inteligencia artificial y aunque muchos

play07:02

de mis vídeos utilizan javascript porque

play07:04

es mucho más simple para lograr cosas

play07:06

complejas es buena idea trabajar con

play07:07

byte en la libreta de cola comienza

play07:09

vacía primero importamos las librerías

play07:11

que vamos a utilizar tensor flow que es

play07:14

una librería para inteligencia

play07:15

artificial hecha por google y también

play07:17

importaremos nunca y para trabajar

play07:19

fácilmente con arreglos numéricos

play07:21

[Música]

play07:30

ahora declaremos un arreglo de números

play07:32

donde colocaremos nuestras siete

play07:33

entradas de grados celsius

play07:36

ah

play07:36

[Música]

play07:40

después queremos otro arreglo con los

play07:42

resultados en grados fahrenheit

play07:45

[Música]

play07:50

estos son los ejemplos que la red usará

play07:52

para aprender menos 10 grados celsius

play07:54

son 14 fahrenheit 15 celsius son 59

play07:57

fahrenheit etcétera

play07:58

ahora diseñamos nuestro modelo de red

play08:00

neuronal que vimos anteriormente para

play08:03

hacerlo además de usar tensor flow usar

play08:05

el framework que eras queda simplemente

play08:07

nos permite hacer las redes neuronales

play08:08

de manera simple nos ahorra muchas

play08:10

líneas de código en quieres puedo

play08:12

especificar las dos capas de entrada y

play08:14

salida por separado no puedo ahorrarme

play08:16

un paso y especificar solo la capa de

play08:18

salida como veamos creemos una variable

play08:21

llamada capa y la iniciaremos como una

play08:23

capa de tipo densa en que heras las

play08:25

capas densas son las capas que tienen

play08:27

conexiones desde cada neurona hacia

play08:29

todas las neuronas de la siguiente capa

play08:30

aquí tenemos sólo dos neuronas entonces

play08:33

no hay mucho más que conectar

play08:35

ok al registrar la le indico las

play08:37

unidades o neuronas de la capa esta capa

play08:40

de salida sólo tiene una neurona aparte

play08:42

usemos la variable input shape y aquí es

play08:45

donde le decimos que tenemos una entrada

play08:47

con una neurona también esto nos auto

play08:49

registra la capa de entrada con una

play08:51

neurona estas capas arriba están volando

play08:53

necesito usar un modelo de quieras para

play08:55

darle las capas y poder trabajar con él

play08:57

hay varios tipos de modelo en este caso

play08:59

usaré el secuencial los otros modelos

play09:01

son para redes neuronales más avanzadas

play09:03

que veremos después indiquemos de la

play09:06

capa que creamos

play09:09

aunque ya tenemos el modelo listo el

play09:11

siguiente paso es compilar lo cual

play09:13

prepara el modelo para hacer entrenar

play09:15

recordemos que el entrenamiento es la

play09:16

parte mágica del aprendizaje automático

play09:18

que no es nada mágico en realidad sino

play09:20

un gran matemáticas y cálculo pero bueno

play09:22

tengo yo que decirle algunas propiedades

play09:23

de cómo quiero que procese esas

play09:25

matemáticas para poder aprender mejor en

play09:28

el momento indicaremos solo dos

play09:29

propiedades en el optimizador y la

play09:31

función de pérdida para el optimizador

play09:34

usaremos uno llamado adam puedes leer el

play09:36

detalle de ese algoritmo en muchos

play09:38

lugares pero en resumen le permite a la

play09:39

red saber cómo ajustar los pesos y

play09:41

sesgos de manera eficiente para que

play09:44

aprenda y no de esa prenda es decir que

play09:46

poco a poco vaya mejorando en lugar de

play09:48

ir empeorando le indicaremos un valor

play09:50

numérico que es la tasa de aprendizaje

play09:52

ese número le dice que tanto ajustar los

play09:54

pesos y sesgos si ponemos un número muy

play09:56

pequeño los ir ajustando muy poco a poco

play09:58

y la red aprenderá muy lento pero si el

play10:00

número es muy grande quizás se pasará

play10:02

del número esperado y no podrá hacer

play10:03

cambios suficientemente finos para

play10:05

llegar a la mejor opción pongamos el

play10:07

valor de 0.1 pero puedes probar con

play10:10

otros después si quieres idealmente

play10:11

serían números más pequeños que este

play10:13

para la función de pérdida usaremos uno

play10:15

llamado min

play10:16

error o error cuadrática medio suena feo

play10:19

el nombre pero básicamente esta función

play10:20

considera que una poca cantidad de

play10:22

errores grandes es peor que una gran

play10:25

cantidad de errores pequeños muy bien ya

play10:27

tenemos nuestro modelo compilado y

play10:29

preparado ahora sí vamos a entrenarlo

play10:33

para entrenarlo usamos la función fit le

play10:36

indicamos los datos de entrada y

play10:37

resultados esperados

play10:39

es decir los celsius y fahrenheit y

play10:41

además le decimos cuantas vueltas quiero

play10:43

que lo intente recordemos que sólo tengo

play10:45

7 datos una vuelta significa revisar los

play10:48

7 datos una sola vez tenemos que darle

play10:50

muchas vueltas a los 7 datos para darle

play10:52

tiempo de que realmente se optimice lo

play10:54

más posible de momento indicaré en 1000

play10:56

y por qué mil no sé veamos cómo funciona

play10:59

y podemos ajustarlo después además le

play11:01

pondré verbos igual a false porque si no

play11:03

me imprime mucho mujer o al estar

play11:04

entrenando imprimamos por aquí si ya se

play11:06

entrenó o no

play11:07

[Música]

play11:12

y listo el modelo ya está entrenado y

play11:14

está listo para hacer predicciones

play11:16

antes de intentar predecir veamos el

play11:17

resultado de la función de pérdida esta

play11:20

función básicamente nos dice qué tan mal

play11:22

están los resultados de la red en cada

play11:24

vuelta que dio

play11:24

[Música]

play11:31

como le dimos mil vueltas esas mil

play11:33

vueltas nos aparecen aquí abajo

play11:36

podemos ver que conforme fue haciendo

play11:38

más vueltas cada vez los errores van

play11:40

disminuyendo en realidad por lo que

play11:42

podemos ver no necesitamos mil vueltas

play11:44

con 500 o 600 vueltas será suficiente

play11:46

porque después ya no mejora mucho se

play11:48

queda básicamente donde mismo muy bien

play11:50

hagamos ahora hace una predicción podrás

play11:52

decirlo de manera correcta el resultado

play11:54

de convertir 100 grados celsius a panes

play11:56

ay no se pierda en el siguiente episodio

play11:57

del emocionante las crean 100 grados no

play12:00

los tenemos en nuestros ejemplos que le

play12:01

dimos entonces si nos da un buen

play12:04

resultado podemos decir que el

play12:05

entrenamiento fue exitoso

play12:14

ok 211 puntos 74 que es tan cierto es la

play12:19

verdad más de haber núcleo ayúdame aquí

play12:25

ok 212 quedó bastante cerca lo

play12:29

suficiente para decir que está muy bien

play12:30

entrenado podemos hacer más predicciones

play12:33

pero te dejo que tú juegues con eso lo

play12:34

que me interesa ahorita es ver la

play12:36

estructura interna de la red qué datos

play12:38

se asignaron después del entrenamiento a

play12:40

la conexión y al sesgo usamos esta

play12:43

función para que nos imprime los valores

play12:45

[Música]

play12:50

a mirar nada más el peso lo asignó en

play12:52

1.79 y el sesgo 31.9 sigamos el flujo de

play12:58

nuestra red

play12:58

tenemos como entrada 100 100 es x 1.79 y

play13:04

después se le suma 31.9 te das cuenta de

play13:08

lo que hizo volvamos a ver la fórmula

play13:10

para convertirse el sespa fahrenheit

play13:12

1.79 es prácticamente 1.8 y 31.9 es

play13:17

prácticamente 32 la red sin que le

play13:19

dijéramos la fórmula pudo llegar a este

play13:21

resultado que es prácticamente exacto se

play13:25

ve muy mágico más o menos en este

play13:27

escenario especificó que se trata de una

play13:29

función lineal da la casualidad de que

play13:31

la fórmula de conversión aplica

play13:33

perfectamente con esta pequeña red hace

play13:35

primero una multiplicación y una suma

play13:38

un problema más complejo no podríamos

play13:40

resolverlo con una red tan simple pero a

play13:43

ver a ver volvamos un poco qué pasa si

play13:44

resuelvo este mismo problema pero le

play13:46

agrego más capas y más neuronas a la red

play13:49

digamos que agregamos dos capas

play13:50

intermedias con tres neuronas y hagamos

play13:53

el mismo proceso veamos

play13:55

[Música]

play14:04

no

play14:13

hagamos el entrenamiento para empezar

play14:16

vemos que se tarda más

play14:21

sin embargo podemos ver que el

play14:22

aprendizaje fue mucho más rápido desde

play14:24

la época 50 o 60 y ya no aprendió nada

play14:27

más es decir que en este escenario una

play14:30

red más compleja nos dan mejores

play14:32

resultados muy rápido no siempre es el

play14:34

caso pero bueno aquí todo es

play14:35

experimental si hacemos la predicción

play14:38

podemos ver que también nos predice

play14:39

correctamente sin embargo que pesos y

play14:42

sesgos que es que haya asignado la

play14:45

verdad ni idea vamos a imprimirlos

play14:47

[Música]

play14:53

no

play14:56

a ver tenemos este número este número

play15:00

la verdad y para que los leo tus números

play15:02

no tiene caso intentar entenderlos

play15:04

simplemente fue la mejor combinación que

play15:06

encontró el proceso de optimización para

play15:08

llegar al resultado de la manera más

play15:09

acertada esto pasa a veces con grandes

play15:12

redes neuronales que usan miles de

play15:13

neuronas y millones de conexiones no

play15:15

podemos saber exactamente por qué

play15:17

considera que cierta combinación de

play15:18

pesos y sesgos es el adecuado y si nos

play15:21

ponemos a ver uno por uno nos morimos

play15:23

antes de acabar claro que ramas de esta

play15:25

industria que se dedican a entender y

play15:26

mejorar estos procesos crear nuevos

play15:29

modelos etcétera pero eso ya es otra

play15:31

rama de la inteligencia artificial más

play15:32

enfocada en la propia investigación con

play15:35

este ejemplo podemos ver que aunque el

play15:36

problema es simple y se puede resolver

play15:37

con una red neuronal muy simple también

play15:40

una red neuronal compleja puede aprender

play15:41

un algoritmo para resolverlo siguiendo

play15:43

caminos totalmente distintos en

play15:46

siguientes vídeos continuaré mi serie de

play15:47

visión artificial y el siguiente paso es

play15:49

utilizar redes neuronales convolución

play15:51

'la es un tipo de red neuronal

play15:52

especializado en entender imágenes para

play15:55

poder detectarlas y clasificarlas de

play15:57

muchas maneras en este canal vi a muchas

play15:59

cosas de programación visión e

play16:00

inteligencia artificial en la

play16:01

descripción del vídeo te dejaré algunos

play16:02

otros vídeos que quizá te interesen y si

play16:04

te gustan estos temas si no te desespera

play16:06

mi voz

play16:07

entonces deje un comentario de que más

play16:08

te gustaría ver en este canal y

play16:10

suscríbete hasta pronto

play16:12

[Música]

play16:18

2

Rate This

5.0 / 5 (0 votes)

Related Tags
AprendizajeAutomáticoRedesNeuronalesPythonTensorFlowProgramaciónCelsiusFahrenheitConversiónTemperaturaMachineLearningTutorialInteligenciaArtificial
Do you need a summary in English?