Introducción a la Inteligencia Artificial
El curso definitivo para aprender los fundamentos de IA, desde conceptos básicos hasta aplicaciones prácticas. Incluye teoría, ejemplos en Python, ejercicios y un quiz final.
Bienvenido al Curso de Inteligencia Artificial
¡Explora el fascinante mundo de la IA! Este curso te guiará desde los conceptos básicos hasta la creación de proyectos prácticos. Aprenderás a usar herramientas como Python, scikit-learn y TensorFlow para resolver problemas reales.
La IA permite a las máquinas realizar tareas que requieren inteligencia humana, como aprender de datos, reconocer patrones o tomar decisiones. Este curso está diseñado para principiantes y entusiastas de la tecnología.
¿Qué aprenderás?
- Conceptos fundamentales de IA y sus aplicaciones.
- Técnicas de machine learning y data mining.
- Construcción de redes neuronales con TensorFlow.
- Consideraciones éticas en el desarrollo de IA.
- Proyectos prácticos para aplicar tus conocimientos.
Aprendizaje
Machine Learning
Redes
Neuronales
Datos
Data Mining
Recursos Adicionales
Módulo 1: ¿Qué es la Inteligencia Artificial?
La IA es una rama de la informática que desarrolla sistemas capaces de realizar tareas que normalmente requieren inteligencia humana, como el aprendizaje, la percepción, el razonamiento o la interacción.
Tipos de IA
- IA Débil (Narrow AI): Diseñada para tareas específicas, como asistentes virtuales (Siri, Alexa) o sistemas de recomendación (Netflix).
- IA General (AGI): Capaz de realizar cualquier tarea intelectual humana. Aún en investigación.
- IA Fuerte (Superinteligencia): Supera la inteligencia humana en todas las áreas. Es un concepto teórico.
Aplicaciones de la IA
La IA está presente en:
- Salud: Diagnósticos médicos basados en imágenes.
- Finanzas: Detección de fraudes.
- Transporte: Vehículos autónomos.
- Entretenimiento: Generación de música o arte.
Un sistema de recomendación usa filtrado colaborativo para sugerir películas basadas en las preferencias de usuarios similares.
Algoritmo de filtrado colaborativo
Usuario
Datos
Recomendaciones
Ejercicio 2: Investiga una aplicación de IA en la industria de tu interés (ej. agricultura, educación). Escribe un párrafo explicando su impacto.
Recursos Adicionales
Módulo 2: Machine Learning
El aprendizaje automático (ML) es una rama de la IA que permite a los sistemas aprender de datos sin programación explícita. Se basa en algoritmos que identifican patrones y hacen predicciones.
Tipos de Machine Learning
- Supervisado: Usa datos etiquetados para predecir resultados (ej. clasificación de correos como spam/no spam, regresión para precios de casas).
- No Supervisado: Encuentra patrones en datos sin etiquetas (ej. clustering de clientes, reducción de dimensionalidad).
- Por Refuerzo: Aprende mediante prueba y error, maximizando recompensas (ej. IA en juegos como AlphaGo).
Flujo de Trabajo en ML
- Recolección de datos.
- Preprocesamiento (limpieza, normalización).
- Selección y entrenamiento de un modelo.
- Evaluación con métricas (precisión, F1-score).
- Optimización (ajuste de hiperparámetros).
Clasificamos flores del dataset Iris usando regresión logística:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# Cargar datos
iris = load_iris()
X, y = iris.data, iris.target
# Dividir en entrenamiento y prueba (80/20)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Crear y entrenar modelo
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Evaluar modelo
accuracy = model.score(X_test, y_test)
print(f»Precisión: {accuracy:.2f}»)
Ejercicio 2: Usa el dataset de dígitos de scikit-learn (`load_digits`) para entrenar un modelo de clasificación. Reporta la precisión.
Recursos Adicionales
Módulo 3: Data Mining
Data mining es el proceso de descubrir patrones y conocimientos en grandes conjuntos de datos, combinando técnicas de ML, estadística y bases de datos.
Técnicas Comunes
- Clasificación: Predecir categorías (ej. spam/no spam).
- Clustering: Agrupar datos similares (ej. segmentación de clientes).
- Asociación: Encontrar relaciones (ej. reglas de mercado como «pan → mantequilla»).
- Regresión: Predecir valores numéricos (ej. precios).
- Reducción de Dimensionalidad: Simplificar datos manteniendo información clave (ej. PCA).
Herramientas Populares
Herramientas como Python (pandas, scikit-learn), R, y plataformas como RapidMiner o KNIME son comunes en data mining.
Agrupamos puntos de datos en dos clusters usando K-Means:
from sklearn.cluster import KMeans
import numpy as np
# Crear datos de ejemplo
X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
# Aplicar K-Means con 2 clusters
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
# Resultados
print(«Centroides:», kmeans.cluster_centers_)
print(«Etiquetas de cluster:», kmeans.labels_)
Ejercicio 2: Implementa un análisis de reglas de asociación con el dataset «Market Basket» en Kaggle. Identifica al menos tres reglas interesantes.
Recursos Adicionales
Módulo 4: Redes Neuronales
Las redes neuronales son modelos computacionales inspirados en el cerebro humano, ideales para tareas complejas como reconocimiento de imágenes, procesamiento de lenguaje natural y más.
Componentes de una Red Neuronal
Neuronas
Unidades de cálculo
Capas
Entrada, oculta, salida
Pesos
Conexiones ajustables
Tipos de Redes Neuronales
- Perceptrón Multicapa (MLP): Para tareas de clasificación/regresión.
- Convolucionales (CNN): Para imágenes.
- Recurrentes (RNN): Para secuencias (ej. texto).
Construimos una red para clasificar el dataset Iris:
import tensorflow as tf
from tensorflow.keras import layers
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Cargar y preparar datos
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Crear modelo
model = tf.keras.Sequential([
layers.Dense(64, activation=’relu’, input_shape=(4,)),
layers.Dense(32, activation=’relu’),
layers.Dense(3, activation=’softmax’)
])
# Compilar modelo
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’])
# Entrenar modelo
model.fit(X_train, y_train, epochs=50, batch_size=16, verbose=0)
# Evaluar
loss, accuracy = model.evaluate(X_test, y_test, verbose=0)
print(f»Precisión: {accuracy:.2f}»)
Ejercicio 2: Usa TensorFlow para construir una CNN simple con el dataset MNIST. Reporta la precisión.
Recursos Adicionales
Módulo 5: Ética en Inteligencia Artificial
La IA plantea desafíos éticos que deben abordarse para garantizar su desarrollo responsable. Estos incluyen sesgos, privacidad, transparencia y el impacto social.
Principios Éticos
Equidad
Evitar sesgos
Privacidad
Proteger datos
Transparencia
Explicar decisiones
Desafíos Éticos
- Sesgo: Modelos entrenados con datos sesgados pueden perpetuar desigualdades.
- Privacidad: El uso de datos personales sin consentimiento es un riesgo.
- Desempleo: La automatización puede desplazar trabajos.
- Seguridad: IA maliciosa (deepfakes, ciberataques).
Un modelo de contratación entrenado con CVs históricos favoreció a hombres porque los datos reflejaban un sesgo de género pasado. Solución: usar datos balanceados y técnicas de auditoría.
Ejercicio 2: Escribe un ensayo corto sobre cómo garantizar la privacidad en aplicaciones de IA como chatbots.
Recursos Adicionales
Módulo 6: Proyectos Prácticos de IA
Aplica los conocimientos adquiridos para desarrollar proyectos de IA que resuelvan problemas reales. Los proyectos combinan ML, data mining y redes neuronales.
Proyectos Sugeridos
- Clasificador de Imágenes: Identifica objetos en fotos usando CNN.
- Chatbot: Crea un asistente conversacional con NLP.
- Análisis de Sentimientos: Clasifica reseñas como positivas o negativas.
- Predicción de Precios: Estima precios de productos con regresión.
- Sistema de Recomendación: Sugiere productos basados en preferencias.
Construimos un modelo LSTM para clasificar tweets:
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
# Datos de ejemplo (simulados)
texts = [«Me encanta este producto!», «Pésima experiencia, no lo recomiendo»]
labels = [1, 0] # 1: positivo, 0: negativo
# Preprocesar texto
tokenizer = Tokenizer(num_words=1000)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
padded = pad_sequences(sequences, maxlen=50)
# Crear modelo LSTM
model = tf.keras.Sequential([
layers.Embedding(1000, 16, input_length=50),
layers.LSTM(32),
layers.Dense(1, activation=’sigmoid’)
])
# Compilar modelo
model.compile(optimizer=’adam’, loss=’binary_crossentropy’, metrics=[‘accuracy’])
model.summary()
Ejercicio 2: Implementa un sistema de recomendación simple usando filtrado colaborativo con el dataset MovieLens.
Recursos Adicionales
Módulo 7: Temas Avanzados en IA
Explora técnicas y conceptos avanzados que están transformando la IA, desde modelos generativos hasta privacidad en el aprendizaje automático.
Temas Avanzados
- Aprendizaje Profundo (Deep Learning): Redes neuronales complejas para tareas como visión computacional y NLP.
- Procesamiento de Lenguaje Natural (NLP): Modelos como Transformers (BERT, GPT) para traducción, chatbots y más.
- IA Explicativa (XAI): Métodos para interpretar decisiones de modelos complejos.
- Federated Learning: Entrenamiento distribuido que respeta la privacidad de los datos.
- Generación de Contenido: Modelos como GANs para crear imágenes, música o texto.
Aplicaciones Avanzadas
Estos avances se usan en:
- Generación de deepfakes (con consideraciones éticas).
- Traducción automática en tiempo real.
- Diagnósticos médicos precisos con visión computacional.
- Asistentes virtuales conversacionales avanzados.
Construimos un generador simple para imágenes MNIST:
import tensorflow as tf
from tensorflow.keras import layers
# Definir generador
generator = tf.keras.Sequential([
layers.Dense(256, activation=’relu’, input_dim=100),
layers.Dense(512, activation=’relu’),
layers.Dense(784, activation=’sigmoid’),
layers.Reshape((28, 28, 1))
])
# Resumen del modelo
generator.summary()
Ejercicio 2: Explora una biblioteca de XAI (ej. SHAP) y aplica un método para explicar un modelo de ML simple.
Recursos Adicionales
Módulo 8: Errores Comunes y Próximos Pasos
Evitar errores comunes en IA y planificar tu aprendizaje continuo te permitirá desarrollar modelos robustos y avanzar en este campo dinámico.
Errores Comunes
- Sobreajustamiento (Overfitting): El modelo memoriza datos de entrenamiento y falla en datos nuevos.
- Datos Desbalanceados: Clases desiguales afectan la precisión (ej. 90% clase A, 10% clase B).
- Falta de Preprocesamiento: Datos con valores nulos, outliers o ruido generan resultados erróneos.
- Mal Elección de Métricas: Usar precisión en problemas desbalanceados (mejor usar F1-score).
- Hiperparámetros Incorrectos: Tasa de aprendizaje muy alta/baja afecta el entrenamiento.
Soluciones y Buenas Prácticas
- Regularización: Usa dropout o penalización L1/L2 para evitar sobreajuste.
- Balanceo de Datos: Técnicas como oversampling (SMOTE) o undersampling.
- Validación Cruzada: Divide datos en k-folds para evaluar modelos robustos.
- Análisis Exploratorio: Visualiza datos antes de entrenar (ej. con pandas, seaborn).
- Monitoreo: Usa herramientas como TensorBoard para rastrear el entrenamiento.
Aplicamos dropout a una red neuronal para reducir sobreajuste:
import tensorflow as tf
from tensorflow.keras import layers
# Crear modelo con dropout
model = tf.keras.Sequential([
layers.Dense(64, activation=’relu’, input_shape=(4,)),
layers.Dropout(0.3), # Desactiva 30% de neuronas
layers.Dense(32, activation=’relu’),
layers.Dropout(0.3),
layers.Dense(3, activation=’softmax’)
])
# Compilar modelo
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’])
model.summary()
Próximos Pasos
Para avanzar en IA:
- Participa en competiciones en Kaggle.
- Explora áreas específicas (visión computacional, NLP).
- Aprende frameworks avanzados (PyTorch, FastAI).
- Contribuye a proyectos de código abierto en GitHub.
- Sigue cursos avanzados (ej. Deep Learning Specialization en Coursera).
Ejercicio 2: Identifica un problema de sobreajuste en un modelo que hayas entrenado. Aplica una técnica de regularización y reporta mejoras.
