{UT01}

Introducción a la Programación de Inteligencia Artificial

2024-25

IES AL-ÁNDALUS

1. Perfil del programador de inteligencia artificial

# UT01

No hay un perfil único

Evolución muy rápida

Las carreras profesionales tradicionales, no garantizan los conocimientos y habilidades necesarios

Algunas tareas no requiren conocimientos profundos, aunque es recomendable entender bien el paradigma de programación

Nociones de cómo se trabaja con los datos a nivel matemático

1. Perfil del programador de inteligencia artificial

# UT01

Data Science

Parte algorítmica

al hablar de "Ciencia de Datos", en realidad, nos estamos refiriendo a una parte de lo que comprende el área de "Big Data", vinculado a las técnicas de trabajo en la que interviene el "Machine Learning"

Tareas de datos

Perfiles

Científicos de datos

Expertos en investigación de algoritmos y modelos en machine learning buscan mejoras y soluciones nuevas. Requieren fuertes habilidades matemáticas. Generalmente, trabajan en universidades o grandes empresas tecnológicas, pero también hay profesionales y empresas pequeñas que comparten avances con la comunidad.

1.

2.

Ingenieros de datos

Los "ingenieros de datos" se encargan de asegurar la calidad de los datos utilizados en modelos, tanto durante el entrenamiento como en producción. En este contexto de "Programación de Inteligencia Artificial," asumiremos que ya tenemos los datos y solo necesitamos realizar un tratamiento básico para que sean compatibles con nuestro modelo.

3.

Analista de datos

o "MLops", es un perfil que aplica herramientas existentes para obtener información valiosa en decisiones comerciales o estrategias futuras. No requiere una formación universitaria y debe comprender el contexto del negocio, tener acceso a recursos como servidores y datos, y usar una interfaz para presentar resultados. Suele trabajar en equipos multidisciplinarios.

# UT01
# UT01

1.1. Conocimientos Técnicos

Un técnico de inteligencia artificial debe conocer las principales técnicas y modelos existentes y desarrollados por los investigadores, y debe saber adaptarlos al problema concreto que debe resolver, así como saber interpretar los resultados y corregir los errores.

En concreto, debe poder moverse con soltura con los siguientes aspectos técnicos:

1

Saber programar

2

Conocer el entorno Cloud

3

Saber utilizar software de control de versiones. Git

# UT01

Saber programar

Contar con habilidades de programación sigue siendo importante en el campo de la inteligencia artificial, aunque existan herramientas que permitan crear soluciones sin programación. La programación proporciona una comprensión técnica y una capacidad para optimizar y prever situaciones de fallo. Estas habilidades son valiosas, ya que la precisión y robustez son fundamentales, incluso en entornos donde no se trabaje directamente con código.

Y, finalmente, es bastante importante haber desarrollado las cuatro habilidades propias del pensamiento computacional que permiten idear y adaptar cualquier problema al ámbito computacional, donde podremos resolverlo de forma eficiente y minimizando errores

# UT01

Saber programar

  1. Dividir un problema complejo en partes más simples
  2. Abstracción
  3. Reconocimiento de Patrones
  4. Diseño de algoritmos

Y estas habilidades se adquieren, principalmente, programando. Por ello, es muy recomendable aprender a programar y colaborar en proyectos de código siempre que sea posible, o trabajar en proyectos propios personales para mantener el pensamiento computacional en forma.

# UT01

Conocer el entorno Cloud

Hoy en día, la mayoría de las organizaciones migran su infraestructura a la nube, aprovechando los servicios de servidor en línea. Esto se debe al crecimiento del Software como Servicio (SaaS), que ha permitido que las empresas accedan a servicios informáticos actualizados y seguros de manera rentable. El "cloud computing" permite a las organizaciones enfocarse en sus objetivos de negocio mientras los proveedores de infraestructura se encargan de la protección y los costos, basados en un modelo de "pago por uso".

Los principales proveedores de computación en la nube, son Google Cloud Platform, AWS, IBM Cloud y Azure. Todos ellos te permiten crear una cuenta de desarrollador y probar sus servicios sin coste para un determinado nivel de uso. 

# UT01

Google Cloud Platform

Entre sus servicios, está la herramienta BigQuery, que está orientada a analítica de datos, pero también permite entrar en la experiencia del machine learning. Su servicio específico en el área que nos ocupa, es Vertex AI, una plataforma unificada de aprendizaje automático que contiene la herramienta AutoML. También cuenta con servicios más enfocados en tareas concretas, como por ejemplo Dialog Flow para aplicación de asistentes conversacionales.

# UT01

Amazon Web Services 

En el catálogo de aplicaciones y servicios de Amazon Web Services, las herramientas de IA se segmentan en función de la posibilidad de personalizar y entrenar tú mismo un modelo. La herramienta base, es Amazon SageMaker, que provee de todo lo necesario para crear y entrenar modelos de machine learning con una cierta capa de servicio mayor que si se hace en un IDE con Python, por ejemplo. Pero una propuesta muy interesante, son sus servicios Rekognition para reconocimiento de imagen y Comprehend para el análisis de textos y procesamiento de lenguaje natural.

# UT01

IBM Cloud

El producto estrella de IBM en el campo de la IA es su sistema cognitivo Watson, que fue el precursor de la era actual de la inteligencia artificial. Aunque en sus inicios estaba enfocado a convertirse en un asistente conversacional, IBM ha ido ampliando su catálogo de servicios incluyendo todo tipo de soluciones.

# UT01

Saber usar SW control de Versiones. Git

Cuando un equipo debe trabajar de forma colaborativa en un proyecto de código, para que no se pierda ninguna actualización y se pueda ir modificando el código con orden, es muy recomendable utilizar una metodología y/o plataforma en la que vaya quedando registrado el trabajo de cada uno, sugerencias de cambio y la posibilidad de ir incorporando los cambios de forma cómoda, quedando un registro de todas las ramas que se han ido generando y fusionando con el proyecto principal. El software más utilizado es Git, a través de plataformas online como Github o Gitlab.

# UT01

1.2. Conocimientos Matemáticos

Las técnicas utilizadas actualmente para crear productos de inteligencia artificial, tienen una base matemática amplia y profunda. Aunque se pueden aplicar sin contar con una formación académica avanzada, siempre es conveniente tener nociones sobre los campos de estudio que han originado las funciones que se utilizan en los algoritmos, así como las técnicas de optimización y cálculo numérico que permiten resolver las tareas propias del Aprendizaje Automático.

# UT01

Lógica Matemática

El área de las matemáticas que comprende las teorías de modelos, conjuntos, teorías de la demostración y la teoría de la computabilidad, es el de la lógica. Aunque es muy anterior a los ordenadores, el campo de las Ciencias de la Computación, se beneficia de una parte importante de esta disciplina. La teoría de la computabilidad pone los cimientos de la computación en términos lógicos y aritméticos.

proporciona las reglas y técnicas para determinar si es o no válido un argumento dado, lo cual es fundamental en cualquier programa computacional.

# UT01

Álgebra

Trabaja con estructuras numéricas en distintas dimensiones. Se dice que es la matemática de los datos. Es fácil distinguirla por la presencia de elementos apilados en forma de vectores, matrices, tensores,...

En IA son elementos fundamentales, porque facilitan la infinidad de operaciones a realizar con las técnicas actuales de "machine learning" o aprendizaje automático

En cualquier problema con un sistema de múltiples variables de entrada y de salida, es necesario plantear relaciones o ecuaciones entre ellas. Para la resolución de dichas ecuaciones, el álgebra propone estas estructuras de datos y una serie de reglas para poder trabajar con ellos.

# UT01

Estadística (Verdadera disciplina de los datos)

Es una ciencia a parte que utiliza las matemáticas. Se dedica a estudiar colecciones de datos, su organización y análisis.

Tiene un papel clave a la hora de introducir las principales técnicas de análisis y exploración de los datos. En muchos casos, simplemente con un adecuado análisis estadístico, podemos extraer bastante información de valor de los datos, sin necesidad de aplicar técnicas más avanzadas.

# UT01

Estadística (Verdadera disciplina de los datos)

En la gran mayoría de los casos, utilizaremos el análisis estadístico para obtener una "foto" inicial de los datos y orientar mejor las técnicas de "machine learning" o aprendizaje automático.

¡¡¡Repasemos un poco!!!

2. Ecosistema en el ámbito de la inteligencia artificial.

# UT01

IA

Constante Evolución

Mantenerse actualizado supone un desafío debido a su rápido desarrollo.

En el desarrollo de software, especialmente en el paradigma "Open Source," la colaboración y el trabajo en equipo son fundamentales.

En el desarrollo y aplicación de la IA, es altamente recomendable interactuar con la comunidad y no dejar de participar en iniciativas y eventos.

# UT01

2.1. Comunidad de desarrolladores.

El sector del desarrollo ha experimentado una transición hacia el trabajo remoto y equipos distribuidos en todo el mundo, apoyándose en metodologías como Scrum. A pesar de ello, los profesionales técnicos siguen siendo activos en eventos y proyectos presenciales que fomentan la colaboración.

# UT01

2.1. Comunidad de desarrolladores.

La comunidad en torno a la ciencia de datos y la inteligencia artificial se mantiene gracias a iniciativas colaborativas, impulsadas tanto por individuos como por grandes empresas tecnológicas que buscan talento y retroalimentación para mejorar sus productos y servicios.

La mejor manera de formar parte y mantenerse en contacto con la comunidad de profesionales y entusiastas de la inteligencia artificial es participar en algunas de las plataformas, foros o actividades que existen. 

 

Entrar a formar parte de la comunidad te permitirá, principalmente:

1

Aprender cosas nuevas.

2

Tener un espacio de referencia para preguntar dudas o encontrar proyectos que te interesen.

3

Compartir con otros profesionales de tu mismo perfil tus inquietudes, pasión y logros.

5

No permanecer aislado e incluso hacer nuevos amigos.

Conseguir apoyo y ayuda para proyectos o tests.

4

Debatir sobre diferentes aproximaciones o nuevas tecnologías.

6

Tener visibilidad desde el punto de vista laboral y aumentar posibilidades de encontrar o mejorar trabajo.

# UT01

2.1. Comunidad de desarrolladores.

Pero antes de pasar a ver todas las opciones a tu disposición, una advertencia importante: se trata de una relación bi-direccional. Es necesario tanto dar como recibir. Debes tener una actitud positiva ante lo que los demás comparten u ofrecen de la misma manera que a ti te gusta que se respete y valore tu esfuerzo y trabajo. Y no es bueno recurrir a la comunidad solo para recibir: aprovecha ese espacio para exponerte, para presentar tus ideas y experimentos, porque la comunidad te aportará mucho para mejorarlo y ganarás visibilidad.

# UT01

2.2. Plataformas.

Redes Sociales

Las redes sociales han permitido crear comunidad a través de las distintas opciones de grupos, canales, etc, que proporcionan. En torno a cada tecnología y framework, han ido surgiendo opciones para mantenerte al día y conectado a otros profesionales y apasionados de la inteligencia artificial.

1.

2.

Foros y Blogs

Los foros son muy útiles para pedir ayuda a la comunidad, como es el caso de Stack Overflow  una referencia para toda la comunidad de desarrollo en general. También hay mucha interacción y riqueza de contenido y colaboración en la plataforma Medium, y más concretamente, en las comunidades de contenido dentro de ésta como Towards Data Science.

3.

Github

Es la plataforma de colaboración e interacción entre desarrolladores por excelencia. Se pueden encontrar muchos proyectos "open source"  colaborar aportando sugerencias para mejorar el código. Es recomendable, tener cuenta en github y tener repositorios públicos, así como formar parte de otros repositorios como colaboradores.

# UT01

2.2. Plataformas. RRSS

2.

Twitter - X

Hay muchos usuarios relacionados con el mundo de la inteligencia artificial que comparten contenido de valor en esta red social. Lo más recomendable aquí, es crear tu propia lista de AI e ir añadiendo perfiles interesantes haciendo búsquedas por los términos "Artificial Intelligence", "Machine Learning" o "Deep Learning"

3.

YouTube

Aquí puedes encontrar una gran cantidad de canales dedicados al desarrollo y creación de modelos de inteligencia artificial. Algunos canales que no deberías perderte son:

# UT01

2.3. Competiciones y Eventos.

Una de las formas más directas y eficientes de mantenerse en contacto con la comunidad, hacer contactos de valor y estar al día en las novedades de la industria de la inteligencia artificial es asistir a eventos del sector. También es muy recomendable participar en competiciones abiertas, porque se conoce y colabora con otros profesionales y amantes de la inteligencia artificial, se aprende mucho, y se gana visibilidad de cara empresas que convocan estas competiciones u otros participantes que también están interesados en conocer gente con este perfil.

# UT01

2.3. Competiciones y Eventos.

 Una plataforma que ha crecido mucho en los últimos años y que se ha convertido en referencia para todos los que desarrollan modelos de machine learning, es Kaggle. En esta plataforma se publican retos por parte de empresas y organizaciones en los que es necesario utilizar los datasets que éstas comparten y crear un modelo que, tras ser entrenado con dichos datos, sea útil para la misión de la organización que recurre a la comunidad. La plataforma cuenta con un catálogo de datasets muy variado y amplio, por lo que es un medio ideal para todos los que están aprendiendo o que necesitan probar nuevas técnicas con datos reales y actuales en algún caso de uso concreto.

# UT01

2.4. Empleo.

La inteligencia artificial es herramienta y producto para las empresas

En el ecosistema de la IA, el mayor peso lo tiene la industria, las empresas, en definitiva, el negocio. Principalmente en:

Productos o servicios internos

que mejoren la operativa de negocio o su gestión. En este grupo, tenemos todo el área de analítica avanzada de negocio, herramientas de IA para marketing, ventas, monitorización de sistemas,...

Productos o servicios para cliente

que la empresa crea y comercializa. Es el caso de consultoras, empresas de desarrollo de software o startups con aplicaciones de IA.

# UT01

2.4. Empleo. Búsqueda de Profesionales

Dado que todas la organizaciones y empresas necesitan transformar sus procesos para hacerlos más eficientes y la IA es uno de los mejores medios para ello, hay una creciente demanda de este tipo de profesionales. Pero no a través de los métodos tradicionales de selección.

Factores de Éxito

  • Experiencia dentro del área concreta

  • Tener portfolio de proyectos relacionados con el puesto

  • Reconocimiento en plataformas colaborativas

  • Ser emprendedor con la tecnología del puesto.

Sector muy joven y cambiante

Proceso contínuo de "Aprender haciendo"

¡¡¡Repasemos un poco!!!

3. Lenguajes de Programación.

# UT01

Los algoritmos de inteligencia artificial requieren planteamientos matemáticos profundos, lo que implica el uso de lenguajes de programación adecuados para tales tareas. Aunque los lenguajes de bajo o medio nivel son eficientes en cálculos, no son ideales para la IA debido a su complejidad y manejo ineficiente de grandes estructuras de datos.

Ámbito empresarial

Python o Java

Investigación

Matlab o Octave

Estrategias de datos

R (limitado para IA)

Disp. Móviles & Web Apps

Javascript o Node.js

3. Lenguajes de Programación. Octave

# UT01

Leng. Prog. Científica

Intérprete propio

Sintaxis orientada a cálculo matemático

IDE propio, donde se ejecuta habitualmente

Parte del proyecto GNU. (Opensource y Gratuito)

Escrito en C++ y compatible con Matlab

Compatible con otros programas GNU para mejorar la parte gráfica

3. Lenguajes de Programación. Octave

# UT01

Su potencia en el planteamiento de cálculos matemáticos y sus herramientas de visualización 2D y 3D los han hecho muy adecuado para la investigación en el campo del machine learning y la optimización.

Web Oficial

Consulta de dudas en su wiki

3. Lenguajes de Programación. Python

# UT01

La popularización de Python en inteligencia artificial se aceleró con la liberación de TensorFlow por Google y el aporte de proyectos académicos y científicos.

Ofrece programación orientada a objetos, estructurada y funcional, se adapta a diversos sistemas operativos y posee un amplio catálogo de librerías respaldado por la comunidad.

3. Lenguajes de Programación. Python

# UT01

Proyecto de código abierto.

Legibilidad como objetivo principal.

Fácil e intuitivo, similar a leer un texto en inglés.

Potencia comparable a otros lenguajes de su nivel.

Apto para programar tareas sencillas o construir prototipos rápidamente.

Capacidad para ser "incrustado" en programas escritos en C y C++.

Útil y aceptado en proyectos grandes.

3. Lenguajes de Programación. R.

# UT01

 también es un lenguaje de propósito general, pero sus librerías y paquetes se han centrado más en cálculo estadístico, visualización y flujo de datos en general.

R es un lenguaje interpretado y libre que se integra con lenguajes como C o Fortran para tareas muy voluminosas de análisis de datos, orientado a generar informes finales más que código estático.

3. Lenguajes de Programación. R.

# UT01

Se trata de un lenguaje complementario utilizado en proyectos integrales, desde la adquisición de datos hasta su presentación, aunque el motor de inteligencia artificial probablemente se ejecute en otro lenguaje.

Cuenta con un repositorio centralizado de paquetes, denominado CRAN, que facilita bastante la programación de tareas de analítica de datos y lo que se conoce como "Big Data" o "Smart Data"

3. Lenguajes de Programación. Java.

# UT01

A medida que la programación de IA y machine learning evoluciona hacia la programación funcional, Java pierde preferencia entre nuevos desarrolladores, pero aquellos familiarizados con Java para otras aplicaciones optan por usarlo antes que aprender Python.

Podríamos decir que Java es el lenguaje de programación de la industria. Es el más utilizado en proyectos de negocio, en plataformas y herramientas de gestión,...

3. Lenguajes de Programación. Otros.

# UT01

También es posible encontrar desarrollo de inteligencia artificial programados en C y en C++. Este lenguaje, además de ser la base de otros lenguajes de alto nivel que se usan en el campo del machine learning, cuenta con librerías muy potentes para aplicaciones que requieren de rapidez y rendimiento.

Hay desarrollos de inteligencia artificial en otros lenguajes de programación. Por ejemplo, aunque Javascript es considerado el lenguaje de programación de la web, existen librerías y herramientas que permiten ejecutar algoritmos de machine learning en aplicaciones, corriendo en Javascript o en sus frameworks más utilizados, como Node.js.

¡¡¡Fin de la UT01!!!

CE-IABD-UT01-Introducción a la Programación de Inteligencia Artificial

By Manuel Jesús Rodríguez Arabi

CE-IABD-UT01-Introducción a la Programación de Inteligencia Artificial

  • 246