1 of 31

Clase 12

CONSTRUYENDO PRIMEROS MODELOS CON PYTHON CON TENSORFLOW

PARTE 1

2 of 31

¿Qué es la inteligencia artificial?

3 of 31

Inteligencia artificial

  • Es una rama de la tecnología que permite a las máquinas realizar tareas que normalmente requerirían inteligencia humana. Esto incluye cosas como razonar, aprender, planificar y entender el lenguaje.

4 of 31

¿Qué es la programación?

  • Es el proceso de crear un conjunto de instrucciones (o algoritmos) que le dice a una computadora cómo realizar una tarea.

5 of 31

Python

  • Es un lenguaje de programación de alto nivel que es famoso por su simplicidad y legibilidad, lo que facilita el aprendizaje y uso para principiantes y expertos por igual.

  • Se utiliza en una variedad de aplicaciones, desde desarrollo web hasta análisis de datos, aprendizaje automático, desarrollo de software, automatización y mucho más.

6 of 31

Bibliotecas de código

  • Son colecciones de módulos o funciones preescritas que los programadores pueden utilizar para desarrollar aplicaciones de manera más eficiente.
  • Proporcionan herramientas y funcionalidades ya implementadas, lo que evita que los programadores tengan que escribir código desde cero para tareas comunes y complejas.

7 of 31

8 of 31

9 of 31

TensorFlow (tf)

  • Es una biblioteca de código abierto para computación numérica y aprendizaje automático, desarrollada por el equipo de Google Brain.
  • Es especialmente conocida y utilizada en el campo del aprendizaje profundo, donde los modelos complejos necesitan manejar y aprender de grandes volúmenes de datos.

10 of 31

Keras

  • Es una biblioteca de Python de código abierto que actúa como una interfaz para la biblioteca de aprendizaje automático TensorFlow.
  • Fue desarrollada con el objetivo de permitir la experimentación rápida con redes neuronales profundas, y está diseñada para ser fácil de usar y versátil.

11 of 31

Numpy

  • Es un acrónimo de Numerical Python, es una biblioteca fundamental para la computación científica en Python.
  • Ofrece soporte para arrays (vectores) y matrices grandes y multidimensionales, junto con una gran colección de funciones matemáticas de alto nivel para operar eficientemente en estos datos.

12 of 31

Arrays

  • Un array, arreglo o vector, es un grupo de objetos, figuras o números.
  • Cada elemento interno del array tendrá asociado un índice “index”.

13 of 31

14 of 31

15 of 31

16 of 31

17 of 31

18 of 31

Explicación

  • tf.keras.layers.Dense: Una capa densa, o "fully connected layer", es un tipo básico de capa en redes neuronales donde cada neurona en esta capa está conectada a todas las neuronas de la capa anterior.
  • units = 1: Este argumento especifica el número de neuronas que tendrá la capa. En este caso, units = 1 significa que hay una sola neurona en esta capa.
  • input_shape=[1]: Define la forma del tensor de entrada que la capa espera recibir. Aquí, input_shape=[1] indica que la capa espera recibir un tensor unidimensional con un solo elemento. En términos más sencillos, cada "ejemplo de entrada" a esta capa consiste en un solo valor numérico.

19 of 31

20 of 31

21 of 31

22 of 31

23 of 31

Funciones de activación

  • Son utilizadas para introducir no linealidades en el modelo. Estas funciones determinan si una neurona debe activarse o no, es decir, si debe enviar información a las siguientes capas de la red.
  • La idea es simular cómo las neuronas en el cerebro humano se activan solo cuando reciben suficientes señales.

24 of 31

Descensor del gradiente

  • Es un algoritmo de optimización muy utilizado para encontrar los valores mínimos de una función, que, en el contexto de las redes neuronales, generalmente representa la función de pérdida o coste.
  • Permite que los modelos de aprendizaje automático se ajusten a los datos de forma eficaz.

25 of 31

…continuando con la explicación

  • optimizer = tf.keras.optimizers.Adam(0.1): Adam es un método optimizador que ajusta la tasa de aprendizaje de manera adaptativa para cada parámetro, lo que generalmente lleva a resultados más rápidos y mejores en la práctica que los métodos de optimización estándar como el descenso del gradiente estocástico simple.
  • 0.1: Este valor es la tasa de aprendizaje inicial para el optimizador.
  • loss = 'mean_squared_error': Esto define la función de pérdida que se utilizará para evaluar qué tan bien el modelo está prediciendo el resultado esperado.

26 of 31

…continuando con la explicación

  • Modelo.compile(…): estás preparando el modelo para el entrenamiento. La compilación configura el modelo con todo lo que necesita para ejecutar el algoritmo de entrenamiento de manera efectiva. Una vez que el modelo está compilado, se puede comenzar a entrenarlo con tus datos llamando a métodos como modelo.fit(...), donde pasas los datos de entrada y salida, el número de épocas (iteraciones sobre el conjunto completo de datos), entre otros parámetros de entrenamiento.

27 of 31

Optimizadores

  • Los optimizadores en el contexto de las redes neuronales y el aprendizaje automático son algoritmos o métodos utilizados para cambiar los atributos del modelo, como los pesos (w) y el sesgo (b), para minimizar la función de pérdida.

28 of 31

Tasa de aprendizaje

  • También conocida como "learning rate", determina el tamaño de los pasos que se toman para actualizar los pesos del modelo en cada iteración del proceso de entrenamiento.

29 of 31

…continuando con la explicación

  • Fit: Método fit es una función de la librería TensorFlow Keras que se utiliza para entrenar un modelo sobre un conjunto de datos.
  • entradas: Estos son los datos de entrada al modelo, también conocidos como datos de características, que el modelo utiliza para hacer predicciones.
  • salidas: Estas son las etiquetas o los valores objetivo reales correspondientes a las entradas.
  • epochs=1000: Un "epoch" representa una iteración completa sobre todo el conjunto de datos de entrada. Este parámetro indica que el modelo debe ser entrenado pasando por los datos de entrada un total de 1000 veces.

30 of 31

31 of 31

…continuando con la explicación

  • [1]: Este es el dato de entrada para el que quieres predecir la salida utilizando el modelo. En este caso, es un simple array que contiene un solo elemento, 1.
  • modelo.predict: Este método toma los datos de entrada y los pasa por el modelo. El modelo utiliza los pesos y sesgos que ha aprendido durante el entrenamiento para hacer una predicción sobre estos datos de entrada.