Propósito de este artículo
En este artículo intento recopilar lo que estudié en el ciclo de especialización de IA y Big Data. Primero para tener organizado lo que estudié por si en un futuro necesitara refrescarlo poder recurrir a este texto, segundo porque si alguien quiere iniciarse en esto bien por su cuenta bien para prepararse antes de empezar el mismo ciclo, pueda tener una guía de más o menos lo que puede encontrarse.
Ver Recursos de informática para algunos recursos que menciono allí que servirán para lo que menciono aquí.
Aspectos generales
Tal vez lo primero que te preguntes sea: si quiero hacer el curso, ¿cómo apuntarme? Debes haber cursado ASIR, DAM o DAW,
si bien hay un par de otras situaciones que te permiten cursarlo, a grandes rasgos cualquiera de esos tres cursos te permitirán hacerlo. En mi caso
lo hice viniendo de ASIR.
La duración del curso es poco menos de un año y, recalco, no tiene prácticas en empresa.
Para empezar, en el caso de IA vas a necesitar tener nociones de Python y en el caso de Big Data necesitarás tener nociones de SQL.
En Python necesitarás poder manejar variables, bucles, etcétera, nociones básicas. Si bien es posible que no necesites ahondar en la programación
orientada a objetos (POO) ya que mucho se hará con sentencias simples en cuadernos de Jupyter, sí es verdad que recomiendo conocerla
igualmente. Puede que si da tiempo se dé algo en R, pero nosotros no tuvimos tiempo.
En el caso de SQL es necesario también tener nociones de éste, de hecho, es posible que en el curso se haga un repaso rápido porque se presupone
que esos conocimientos ya los has adquirido en la asignatura de bases de datos en cursos anteriores (ASIR, DAM, DAW).
Big Data
Empiezo por Big Data porque creo que voy a extenderme menos que con IA. Con este apartado lo que más se ve es análisis de datos e ingeniería de datos.
- SQL y NoSQL: SQL, MongoDB, CosmosDB (Azure), Hive (Hadoop).
- SSMS (SQL Server Management Studio), MongoDB Compass. En lugar de SSMS también se podría usar DBeaver.
- HDFS (Hadoop Distributed File System).
- Docker, aunque nosotros no llegamos a ver Kubernetes por falta de tiempo, considero que no estaría de más también mirarlo cuando sea posible.
- ETL: Pentaho, NiFi.
- Cloud: AWS, Azure. Las dos son de pago, así que a menos que vuestro centro tenga alguna licencia va a ser imposible.
- Kafka.
- Visualización de datos: PowerBI, no dio tiempo a dar Tableau. Hasta donde yo sé, son los dos que más se usan.
Inteligencia artificial
Este apartado va a ser más extenso que el anterior, además, personalmente, me gusta más (yo ❤️ aprendizaje supervisado).
Aprendizaje automático (machine learning):
Las librerías utilizadas son numpy, pandas y sklearn principalmente. También existe XGBoost aunque no la he tocado mucho.
Técnicas como limpieza de datos, transformación de datos, etcétera. que igualmente es necesario conocer para el análisis de datos
(aunque este apartado es de ciencia de datos), asimismo conocer métodos de codificación (Label Encoding) como One-Hot Encoding para
pasar de categóricos a numéricos (necesario porque los modelos "no entienden" de letras, dicho mal y pronto), Dummies, mapeo a mano, etc.
Aprendizaje supervisado:
Cabe recalcar que estos no son los únicos que hay y que hay más algoritmos, pero estos son los que nosotros vimos
(lo mismo va para el no supervisado).
- Regresión lineal simple y regresión lineal múltiple/multivariante: son casi lo mismo, solo es una o la otra dependiendo del número de variables.
- Regresión logística: similar a la anterior.
- Árboles de decisión.
- Árboles aleatorios: formado por muchos árboles de decisión.
- Máquinas de vectores de soporte (SVM, Support-vector machines).
Aprendizaje no supervisado:
- Clustering: k-means.
- PCA (Principal Component Analysis).
Aprendizaje por refuerzo:
Por desgracia, lo más posible es que no haya tiempo suficiente para ponerlo en práctica y es necesario verlo por cuenta propia. Hay algunos
tutoriales en HuggingFace.
Redes neuronales:
- Frameworks como Tensorflow y PyTorch.
- Redes neuronales convolucionales: necesarias librerías como OpenCV, Pillow (PIL).
- Modelos ya creados como YOLOv8.
Procesamiento de lenguaje natural (PLN en castellano o NLP en inglés):
A estas alturas del curso a lo mejor no hay suficiente tiempo para darlo en profundidad, o directamente, no da tiempo a darlo. Este (ignorando el aprendizaje por refuerzo) es el que más verde llevo.
- Librerías como spaCy y NLTK.
- Tokenización.
- Stemming (reducir una palabra a su raíz) y lematización.
- Categoría gramatical (part of speech).
- Bag of words.
- Análisis de frecuencias (frequency analysis).
- Word embedding.
Apuntes finales
El que venga para otro tipo de IA (la de los dibujitos) se va a desilusionar porque lo cierto es que no me interesa en absoluto. Sí es cierto que en mi curso usamos la API de OpenAI (con Python) para probar y también se hizo uso de la API de Vision de Azure con C#. Con Azure también probamos sus modelos de ML/RRNN que se hace con diagramas visuales y su servicio de chatbot.
Soy consciente de que no se da en todos los centros, de hecho, no sé qué se da en su lugar en otros centros pero nosotros tuvimos una asignatura donde tres meses lo dedicamos a usar BluePrism (RPA) y los otros tres meses a usar Solidity (el lenguaje de Ethereum).
Como conclusión final se puede notar que en varios apartados he mencionado "no hubo tiempo" y es que como dije al inicio, este curso dura poco menos de un año. De hecho, dura unos 8 meses y hay otros centros donde dura menos por la forma en la que se distribuyen las horas. Siendo honesta creo que debería de durar más, sin embargo, es cierto que yo me apunté porque con ASIR no tuve suerte para encontrar empleo, esto dura un año y me parecía una oportunidad para aprender Python.