Preparación (Lección 1) - Introducción a los Fundamentos de Machine Learning

Objetivos

1. Fundamentos de Machine Learning

Objetivo: Proporcionar una comprensión básica de qué es el machine learning y cómo se aplica en diversos contextos.

Definición de Machine Learning

Tipos de Machine Learning

Ciclo de Vida de un Proyecto de Machine Learning

2. Algoritmos Comunes de Machine Learning

Objetivo: Conocer los algoritmos más utilizados en machine learning y sus aplicaciones.

Regresión Lineal

Conceptos básicos.


              from sklearn.linear_model import LinearRegression
              model = LinearRegression()
              model.fit(X_train, y_train)
              predictions = model.predict(X_test)
                

Árboles de Decisión

Conceptos básicos.


              from sklearn.tree import DecisionTreeClassifier
              model = DecisionTreeClassifier()
              model.fit(X_train, y_train)
              predictions = model.predict(X_test)
                

Máquinas de Soporte Vectorial (SVM)

Conceptos básicos.


              from sklearn.svm import SVC
              model = SVC()
              model.fit(X_train, y_train)
              predictions = model.predict(X_test)
                

Redes Neuronales

Conceptos básicos.


              from tensorflow.keras.models import Sequential
              from tensorflow.keras.layers import Dense
              model = Sequential()
              model.add(Dense(12, input_dim=8, activation='relu'))
              model.add(Dense(8, activation='relu'))
              model.add(Dense(1, activation='sigmoid'))
              model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
              model.fit(X_train, y_train, epochs=150, batch_size=10)
              predictions = model.predict(X_test)
                

¿Qué es una Red Neuronal?

Una red neuronal es un sistema de computación inspirado en el funcionamiento del cerebro humano. Está compuesta por nodos (o neuronas) que se organizan en capas: capa de entrada, capas ocultas y capa de salida. Cada nodo recibe entradas, las procesa y transmite una salida.

Neuronas y Conexiones

Las neuronas de una red están conectadas entre sí mediante conexiones. Estas conexiones tienen pesos que determinan la importancia de las entradas. Cuando una entrada pasa a través de una neurona, se multiplica por el peso y pasa por una función de activación que determina si la neurona se activa.

Capas de una Red Neuronal

Una red neuronal se compone de tres tipos de capas:

Funciones de Activación

Las funciones de activación determinan si una neurona se activa o no. Algunas de las funciones más comunes son:

Proceso de Aprendizaje: Backpropagation

El proceso de aprendizaje en redes neuronales es supervisado y se realiza mediante un algoritmo llamado retropropagación (backpropagation). Este algoritmo ajusta los pesos de las conexiones de la red mediante el cálculo del error en la salida y propagándolo hacia atrás para actualizar los pesos de manera eficiente.

Entrenamiento y Validación

El entrenamiento de una red neuronal implica alimentar datos de entrada y calcular el error de salida. El modelo ajusta sus pesos utilizando algoritmos de optimización como el descenso por gradiente. Durante el entrenamiento, los datos se dividen en conjuntos de entrenamiento y validación para evitar el sobreajuste y evaluar la capacidad del modelo para generalizar.

Redes Neuronales Convolucionales (CNN)

Las redes neuronales convolucionales (CNN) son un tipo de red especialmente diseñada para procesar datos con una estructura en forma de grilla, como imágenes. Utilizan capas convolucionales que aplican filtros a las imágenes para extraer características importantes, como bordes y texturas.

Redes Neuronales Recurrentes (RNN)

Las redes neuronales recurrentes (RNN) son útiles para datos secuenciales, como texto o series temporales. Tienen conexiones que permiten que la información fluya hacia atrás en el tiempo, lo que permite que la red tenga una memoria de estados anteriores, ideal para tareas como el procesamiento de lenguaje natural y predicciones temporales.

Overfitting y Underfitting

El overfitting ocurre cuando un modelo aprende demasiado bien los detalles del conjunto de entrenamiento, incluyendo el ruido, lo que afecta su capacidad para generalizar a nuevos datos. El underfitting, por otro lado, sucede cuando el modelo no es lo suficientemente complejo para capturar patrones importantes en los datos.

Optimización y Descenso por Gradiente

El descenso por gradiente es un algoritmo utilizado para minimizar la función de pérdida de la red neuronal. Ajusta los pesos de la red en la dirección de la menor pendiente de la función de pérdida. Se pueden utilizar variantes como el descenso por gradiente estocástico (SGD) y métodos más avanzados como Adam para mejorar la eficiencia del aprendizaje.

3. Aplicaciones Prácticas de Machine Learning

Objetivo: Ver cómo se utilizan los algoritmos de machine learning en la práctica a través de estudios de caso.

Estudio de Caso 1: Predicción de Precios de Viviendas

Estudio de Caso 2: Detección de Fraudes en Transacciones Bancarias

Estudio de Caso 3: Clasificación de Imágenes