En Materia ¿Qué es el Deep Learning?

Andres Felipe Ocampo
9 min readNov 16, 2023

--

Capítulo Uno

Entramos en materia con el aprendizaje profundo y la base de la inteligencia artificial, previamente hemos visto temas como la introducción a este mundo de IA, y además algun detalle en referencia a la base de las librerías que nos ayudarán a desarrollar nuestra IA, ahora vamos a entender las capas que conforman esta tecnología, a por ello chaval@s.

Después de haber presentado los primeros artículos introductorios en los que hemos establecido ese entorno de aprendizaje o trabajo offline / online y hemos aprendido un poquito sobre algunas librerías importantes dentro del mundo del machine learning, vamos a comenzar con la primera sección del articulos en la que de verdad vamos a hablar sobre Deep Learning.

En este primer capítulo vamos a exponer qué es el Deep Learning de manera muy genérica. Vamos a hablar sobre los componentes fundamentales, sobre algunos conceptos abstractos que son importantes tener claros, como por ejemplo el end2end learning, o las diferencias que hay entre algoritmos de Deep Learning, Machine learning, algoritmos clásicos basados en reglas sin heurísticas. Con lo cual os quería avisar de que no os preocupéis si, por ejemplo, en el caso práctico que voy a poner a lo largo de este capítulo no entendéis muchas de las cosas, es completamente normal. Son cosas un poquito avanzadas, pero yo os pongo este caso práctico para ilustrar un concepto en particular que veremos más adelante.

Por ahora vamos a tratar de entender las intuiciones necesarias para ir construyendo todo lo que necesitamos para después entender las cosas en detalle y de manera formal y matemática. Y en los siguientes artículos ya profundizaremos en cada uno de los componentes en particular. Con lo cual, sin más, vamos a por ello.

¿Qué es el Machine Learning?

Antes de comenzar a hablar sobre Deep Learning y sobre redes neuronales profundas, creo que es bastante importante que comprendamos el contexto que rodea a esta disciplina y para ello, de lo primero que debemos comentar es ¿Qué es el machine learning?.

Antes de comenzar a hablar sobre machine learning, vamos a dar unas pequeñas pinceladas sobre inteligencia artificial en general, bien desde los inicios de la inteligencia artificial. Esta tecnología rápidamente abordó y resolvió problemas que son intelectualmente difíciles para los seres humanos, pero relativamente sencillos para las computadoras.

Tenemos ejemplos muy básicos con los que podemos comprender esta afirmación. Por ejemplo, cualquier problema que involucre la realización de un conjunto elevado de operaciones será algo complicado de realizar para un ser humano utilizando su cerebro.

Sin embargo, con una computadora es una tarea relativamente sencilla. Os voy a poner un ejemplo que describe muy bien estos puntos. Una de las cosas que se resolvió relativamente pronto utilizando técnicas de inteligencia artificial fue, por ejemplo, algunos juegos como el ajedrez.

El ajedrez concretamente, es un juego que aunque es complicado para los seres humanos jugarlo, porque requiere, pues el cálculo de diferentes variaciones a la hora de realizar una jugada, lo podemos describir en base a un conjunto formal de reglas. Es decir, cada una de las piezas se mueve de una manera determinada.

Tenemos un número de casillas determinado, tenemos unas piezas determinadas y por lo tanto es una tarea que un ordenador con un algoritmo basado en inteligencia artificial o el machine learning puede resolverla de manera relativamente sencilla.

Y sin embargo, para los seres humanos es algo muy complejo de resolver. Sin embargo, luego hay otras tareas, como puede ser, por ejemplo, identificar un objeto que aparece en una imagen que para los seres humanos es algo prácticamente intuitivo.

Nosotros vemos una imagen y podemos identificar lo que aparece en ella, pero por el contrario, es muy difícil de describir formalmente a través de un conjunto de reglas fijas. Cuando aparece un objeto determinado en esa imagen o cuando aparece otro objeto diferente. Con lo cual se identifica un problema que implica un reto para los algoritmos basados en inteligencia artificial.

Bien, la disciplina más popular de la inteligencia artificial es el machine learning. Es decir, el machine learning va a ser un subdominio de la inteligencia artificial. Y concretamente, los algoritmos que se basan en machine learning van a resolver un problema utilizando datos de experiencia pasada de cómo se resolvió ese problema en particular.

Fijaros, el rendimiento de estos algoritmos de aprendizaje automático depende en gran medida de la representación de los datos que se les proporciona.

Por ejemplo, si utilizamos un algoritmo de machine learning para diagnosticar a un paciente, el sistema de inteligencia artificial de machine learning no va a examinar al paciente directamente, sino que en su lugar el médico le indicará el sistema.

Varios parámetros, varios datos relevantes, como por ejemplo la presencia o ausencia de un determinado síntoma en ese paciente. Pues si tiene fiebre, si no tiene fiebre, si tiene este síntoma, si tiene el otro. Y el algoritmo en base a esas características de entrada que se le proporcionan, tomará una decisión de si ese paciente está enfermo o no lo está.

Y para tomar esa decisión, el médico la ha tenido que proporcionar a nuestro algoritmo de manera previa información o experiencia pasada de otros pacientes que enfermaron y de cuáles eran los síntomas que tenían esos pacientes en el pasado.

Bien, pues una vez que sabemos que el machine learning es un subdominio de la inteligencia artificial y que concretamente va a resolver problemas utilizando datos, vamos a ver un poquito la definición más formal de este subdominio.

El aprendizaje automático es un subdominio de la inteligencia artificial que proporciona a los sistemas la capacidad de aprender y mejorar automáticamente a partir de la experiencia pasada, sin ser explícitamente programados para ello.

Es decir, lo que comentábamos anteriormente, vamos a proporcionarle datos pasados y van a ajustar de manera automática una serie de parámetros, de manera que van a poder realizar predicciones para ejemplos que no se encontraban en esa experiencia pasada tomando una determinada decisión. Se basa en la hipótesis subyacente de crear un modelo de acuerdo y tratar de mejorarlo ajustando más datos en ese modelo, super importante este frase ya que a lo largo del tiempo vamos a tratar de comprender un poquito en qué consiste esto de crear un modelo (seguro que os suena ChatGPT y sus modelos, uuuyeahh!!!).

Versión inicial diagrama

Esto que vemos representado en este diagrama podrían ser de alguna manera los componentes a más alto nivel fundamentales de una técnica de machine learning. Y como vamos a ver más adelante, también de una técnica de deep learning.

Concretamente, los componentes que forman parte de cualquier algoritmo de machine learning que nosotros queramos utilizar son los siguientes Por un lado, necesitaremos toda esa experiencia “pasada”. Qué concretamente, cuando hablamos de técnicas de machine learning y también de deep learning, vamos a denominar conjunto de datos de entrenamiento.

Vamos a entrenar nuestra red neuronal. Vamos a entrenar nuestro algoritmo de machine learning para que aprenda de esa experiencia pasada y construya una representación interna. Ajuste una función matemática, unos parámetros, de manera que sea capaz de realizar buenas predicciones.

Ese ajuste de los parámetros de acuerdo es el proceso de aprendizaje y concretamente la función que vamos a ajustar, la función matemática que tiene esos parámetros que van a ir aprendiendo, que van a ir modificando su valor para ajustarse a esos datos pasados. Es lo que se conoce como función hipótesis.

Versión con mas detalle del diagrama

Bien, cuando nosotros cogemos esa experiencia pasada y se la proporcionamos a nuestro algoritmo de machine learning o de deep learning, nuestro algoritmo de aprendizaje lo que va a hacer es comenzar un proceso de optimización en el que va a ir modificando esos parámetros de los que comentaba anteriormente y va a ir aprendiendo de esa experiencia pasada. Una vez que ha terminado de aprender, una vez que ha ajustado esos parámetros, nosotros lo que tenemos será una función hipótesis ajustada o un modelo de acuerdo que se correspondería con este otro componente que veis en la caja amarilla “Modelo”.

Una vez que nosotros tenemos construido ese modelo, hemos encontrado el valor ideal de esos parámetros que ajustan la función hipótesis a la tendencia de nuestro conjunto de datos de entrenamiento de nuestra experiencia pasada. Nosotros podemos comenzar a recibir ejemplos o instancias nuevas que no se encontraban en esa experiencia pasada y realizar para esas instancias una predicción.

Si nosotros traducimos esto al ejemplo del paciente y su médico, este conjunto de datos o experiencia pasada se corresponderían con datos de pacientes que en su momento sufrían una enfermedad y para los que habíamos extraído una serie de síntomas, hemos cogido esa experiencia pasada. Se la hemos proporcionado a un algoritmo de machine learning.

Ese algoritmo ha aprendido de una manera que ya veremos en detalle en las siguientes secciones y ha construido ese modelo.

Una vez que tenemos ese modelo, nosotros podemos coger síntomas de un nuevo paciente y realizar predicciones que sabremos qué se ajustan a lo que teníamos en nuestro conjunto de datos de experiencia pasada.

Bien, pues este es el funcionamiento genérico de una técnica de machine learning y también será, aunque con algunas sutilezas, el funcionamiento de las técnicas de deep learning. Por último, y para confirmar que hemos comprendido bien este concepto de coger un conjunto de datos de experiencia pasada, proporcionársela un algoritmo de aprendizaje para que ajuste esos parámetros del modelo y en base a eso, construir el modelo con el que después vamos a predecir.

Me gustaría que viésemos otro ejemplo sencillito.

En el caso anterior tratábamos de construir un modelo utilizando un algoritmo de machine learning que fuese capaz de diagnosticar si un paciente tenía una enfermedad o no. En este caso particular vamos a construir un modelo o vamos a utilizar un algoritmo o una técnica de machine learning que nos permita identificar o predecir si una transacción bancaria es fraudulenta o es legítima.

Fijaros que para resolver este problema lo primero que tenemos que hacer es recopilar ese conjunto de datos de experiencia pasada. Igual que hacíamos con los pacientes que traíamos los síntomas. Lo que extraemos es una serie de características que se denominan características de entrada. Por ejemplo, hemos extraído, pues:

  • El tiempo que lleva esa cuenta abierta la hora local de ese lugar.
  • El método de pago, una serie de características de cada una de las transacciones.
  • Y por otro lado, también hemos etiquetado esa transacción como legítima con un cero o como fraudulenta con un uno.

Bien, pues esta experiencia pasada será la que utilice nuestro algoritmo para ajustar esos parámetros del modelo para construir ese modelo.

Y una vez que ha terminado de aprender todo ese proceso de ajuste o de construcción del modelo, es lo que se denomina aprendizaje. Cuando termina de aprender, tendremos un modelo entrenado con el que nosotros, cuando recibamos una transacción bancaria nueva, extraeremos esas características de entrada que veíamos anteriormente.

Sin embargo, no tendremos esta etiqueta que nosotros habíamos puesto en nuestro conjunto de datos de entrenamiento. Proporcionaremos esas características de entrada a nuestro modelo entrenado y nuestro modelo entrenado. Precisamente lo que nos proporcionará será esa etiqueta “0” ó “1”.

Nos dirá si es una transacción fraudulenta o si es legítima. Teniendo en cuenta que este modelo ha sido construido en base a esta experiencia pasada. Las decisiones que tome vendrán supeditadas de alguna forma al tipo de datos que nosotros recopilamos en el pasado.

Bien, pues esto es un poquito de manera genérica lo que os quería contar sobre el machine learning, seguimos con el capítulo 2 más a delante, uuuuyeah!!!.

--

--