Hola, querido lector. Espero que sigas bien.
Bueno, ya ha pasado una semana desde el primer artículo desde el primer artículo sobre la Inteligencia Artificial. Ojalá haya sido de tu provecho.
En esta oportunidad vamos a seguir hurgando en otros aspectos de la IA y lo haremos en sus tres elementos constitutivos más importante. Creo que tener presentes sus conceptos clave es fundamental para quien quiera incursionar en el mundo de la “Ciencia de Datos”.
Espero que el artículo te agrade y. como de costumbre, me encontrarás al final de tu lectura para darte mis reflexiones.
Podes encontrar la nota anterior haciendo click aquí.
Ciencia de Datos (Parte II)
Aprendizaje automático, aprendizaje profundo y redes neuronales
Terminología y conceptos relacionados
Antes de profundizar en el funcionamiento de la IA y en sus diversos casos de uso y aplicaciones, vamos a diferenciar algunos de los términos y conceptos estrechamente relacionados con la IA: inteligencia artificial, aprendizaje automático, aprendizaje profundo y redes neuronales. Estos términos se utilizan a veces indistintamente, pero no se refieren a lo mismo.
La inteligencia artificial es una rama de la informática que se ocupa de la simulación del comportamiento inteligente. Los sistemas de IA suelen demostrar comportamientos asociados a la inteligencia humana, como la planificación, el aprendizaje, el razonamiento, la resolución de problemas, la representación del conocimiento, la percepción, el movimiento y la manipulación y, en menor medida, la inteligencia social y la creatividad.
El aprendizaje automático es un subconjunto de la IA que utiliza algoritmos informáticos para analizar datos y tomar decisiones inteligentes basadas en lo que ha aprendido, sin ser programado explícitamente. Los algoritmos de aprendizaje automático se entrenan con grandes conjuntos de datos y aprenden a partir de ejemplos. No siguen algoritmos basados en reglas. El aprendizaje automático es lo que permite a las máquinas resolver problemas por sí mismas y hacer predicciones precisas utilizando los datos proporcionados.
El aprendizaje profundo es un subconjunto especializado del aprendizaje automático que utiliza redes neuronales en capas para simular la toma de decisiones humanas. Los algoritmos de aprendizaje profundo pueden etiquetar y categorizar información e identificar patrones. Es lo que permite a los sistemas de IA aprender continuamente en el trabajo, y mejorar la calidad y la precisión de los resultados determinando si las decisiones fueron correctas.
Las redes neuronales artificiales, a menudo denominadas simplemente redes neuronales, se inspiran en las redes neuronales biológicas, aunque su funcionamiento es bastante diferente. Una red neuronal en la IA es una colección de pequeñas unidades de computación llamadas neuronas que toman datos entrantes y aprenden a tomar decisiones con el tiempo. Las redes neuronales suelen tener capas profundas y son la razón por la que los algoritmos de aprendizaje profundo se vuelven más eficientes a medida que los conjuntos de datos aumentan en volumen, a diferencia de otros algoritmos de aprendizaje automático que pueden estancarse a medida que aumentan los datos.
Aparte de las diferencias entre algunos conceptos clave de la IA, hay una diferenciación más que es importante entender, la que existe entre la inteligencia artificial y la ciencia de los datos.
La ciencia de los datos es el proceso y el método para extraer conocimientos e ideas de grandes volúmenes de datos dispares.
Se trata de un campo interdisciplinar en el que intervienen las matemáticas, el análisis estadístico, la visualización de datos y el aprendizaje automático, entre otros. Es lo que nos permite apropiarnos de la información, ver patrones, encontrar el significado de grandes volúmenes de datos y utilizarlos para tomar decisiones que impulsen el negocio.
La ciencia de los datos puede utilizar muchas de las técnicas de la IA para obtener información de los datos.
Por ejemplo, puede utilizar algoritmos de aprendizaje automático e incluso modelos de aprendizaje profundo para extraer el significado y hacer inferencias de los datos. Existe cierta intersección entre la IA y la ciencia de los datos, pero una no es un subconjunto de la otra. Más bien, la ciencia de los datos es un término amplio que abarca toda la metodología de procesamiento de datos.
Por su parte, la IA incluye todo lo que permite a los ordenadores aprender a resolver problemas y tomar decisiones inteligentes.
Tanto la IA como la Ciencia de Datos pueden implicar el uso de Macrodatos, es decir, grandes volúmenes de datos.
Aprendizaje automático
El aprendizaje automático, un subconjunto de la IA, utiliza algoritmos informáticos para analizar datos y tomar decisiones inteligentes basadas en lo que ha aprendido.
En lugar de seguir algoritmos basados en reglas, el aprendizaje automático construye modelos para clasificar y hacer predicciones a partir de los datos.
Entendamos esto explorando un problema que podemos abordar con el aprendizaje automático.
Si queremos determinar si un corazón puede fallar, ¿es algo que podemos resolver con el aprendizaje automático?
La respuesta es que sí.
Digamos que nos dan datos como las pulsaciones por minuto, el índice de masa corporal, la edad, el sexo y el resultado de si el corazón ha fallado o no.
Con el aprendizaje automático, dado este conjunto de datos, somos capaces de aprender y crear un modelo que, dadas las entradas, predice los resultados.
Entonces, ¿cuál es la diferencia entre esto y el uso del análisis estadístico para crear un algoritmo?
Un algoritmo es una técnica matemática. Con la programación tradicional, tomamos datos y reglas, y los utilizamos para desarrollar un algoritmo que nos dará una respuesta.
En el ejemplo anterior, si utilizáramos un algoritmo tradicional, tomaríamos los datos como las pulsaciones por minuto y el IMC, y los utilizaríamos para crear un algoritmo que determinará si el corazón fallará o no.
Esencialmente, sería una declaración if-then-else (si-entonces-si no).
Cuando enviamos entradas, obtenemos respuestas basadas en lo que el algoritmo ha determinado, y este algoritmo no cambiará.
El aprendizaje automático, por otro lado, toma los datos y las respuestas y crea el algoritmo. En lugar de obtener respuestas al final, ya tenemos las respuestas. Lo que obtenemos es un conjunto de reglas que determinan cuál será el modelo de aprendizaje automático. El modelo determina las reglas y la declaración if-then-else cuando recibe las entradas.
Básicamente, lo que hace el modelo es determinar cuáles son los parámetros de un algoritmo tradicional, y en lugar de decidir arbitrariamente que las pulsaciones por minuto más el IMC equivalen a un determinado resultado, utilizamos el modelo para determinar cuál será la lógica. Este modelo puede ser entrenado continuamente y ser utilizado en el futuro para predecir valores.
El aprendizaje automático se basa en la definición de reglas de comportamiento examinando y comparando grandes conjuntos de datos para encontrar patrones comunes. Por ejemplo, podemos proporcionar a un programa de aprendizaje automático un gran volumen de fotos de pájaros y entrenar al modelo para que devuelva la etiqueta “"pájaro"" siempre que haya proporcionado una foto de un pájaro.
También podemos crear una etiqueta y proporcionar imágenes de gatos para entrenar. Cuando al modelo de la máquina se le muestra una imagen de un gato o un pájaro, etiquetará la imagen con cierto nivel de confianza. Este tipo de aprendizaje automático se llama aprendizaje supervisado, en el que un algoritmo se entrena con datos etiquetados por humanos. Cuantas más muestras se proporcionen a un algoritmo de aprendizaje supervisado, más preciso será a la hora de clasificar nuevos datos.
El aprendizaje no supervisado, otro tipo de lenguaje de máquina, se basa en dar al algoritmo datos sin etiquetar y dejar que encuentre patrones por sí mismo. Se proporciona la entrada, pero no las etiquetas, y se deja que la máquina infiera las cualidades que el algoritmo ingiere de los datos no etiquetados, hace inferencias y encuentra patrones. Este tipo de aprendizaje puede ser útil para la agrupación de datos, en la que los datos se agrupan en función de su similitud con sus vecinos y su disimilitud con el resto. Una vez que los datos están agrupados, se pueden utilizar diferentes técnicas para explorar esos datos y buscar patrones. Por ejemplo, se proporciona a un algoritmo de aprendizaje automático un flujo constante de tráfico de red y se le permite aprender de forma independiente la línea de base, la actividad normal de la red, así como el comportamiento atípico y posiblemente malicioso que se produce en la red.
El tercer tipo de algoritmo de aprendizaje automático, el aprendizaje por refuerzo, se basa en proporcionar a un algoritmo de aprendizaje automático un conjunto de reglas y restricciones, y dejar que aprenda a alcanzar sus objetivos. Se define el estado, el objetivo deseado, las acciones permitidas y las restricciones. El algoritmo averigua cómo alcanzar el objetivo probando diferentes combinaciones de acciones permitidas, y es recompensado o castigado dependiendo de si la decisión haya sido buena. El algoritmo hace todo lo posible para maximizar sus recompensas dentro de las restricciones establecidas. Se puede utilizar el aprendizaje por refuerzo para enseñar a una máquina a jugar al ajedrez o a recorrer una pista de obstáculos.
Como vimos, entonces, el aprendizaje automático es un campo muy amplio y podemos dividirlo en tres categorías diferentes: aprendizaje supervisado, aprendizaje no supervisado y aprendizaje por refuerzo. Hay muchas tareas diferentes que podemos resolver con ellas.
El aprendizaje supervisado se refiere a cuando tenemos etiquetas de clase en el conjunto de datos y las utilizamos para construir un modelo de clasificación. Esto significa que cuando recibimos datos, éstos tienen etiquetas que dicen lo que representan los datos.
En un ejemplo anterior, teníamos una tabla con etiquetas como la edad o el sexo. Con el aprendizaje no supervisado, no tenemos etiquetas de clase y debemos descubrirlas a partir de datos no estructurados. Esto podría implicar cosas como el aprendizaje profundo que mira las imágenes para entrenar los modelos. Cosas como esta se hacen típicamente con algo llamado clustering.
El aprendizaje por refuerzo es un subconjunto diferente, y lo que hace es utilizar una función de recompensa para penalizar las malas acciones o recompensar las buenas.
A su vez, podemos dividir el aprendizaje supervisado en tres categorías: Regresión, Clasificación y Redes Neuronales.
Los modelos de regresión se construyen observando las relaciones entre las características x y el resultado y, donde y es una variable continua. Esencialmente, la Regresión estima valores continuos.
Las redes neuronales se refieren a estructuras que imitan la estructura del cerebro humano.
La clasificación, en cambio, se centra en los valores discretos que identifica.
Podemos asignar etiquetas de clase discretas basadas en muchas características de entrada x. En un ejemplo anterior, dado un conjunto de características x, como latidos por minuto, índice de masa corporal, edad y sexo, el algoritmo clasifica la salida y en dos categorías, Verdadero o Falso, prediciendo si el corazón fallará o no. En otros modelos de clasificación, podemos clasificar los resultados en más de dos categorías. Por ejemplo, predecir si una receta es de un plato indio, chino, japonés o tailandés.
Algunas formas de clasificación son los árboles de decisión, las máquinas de vectores de apoyo, la regresión logística y los bosques aleatorios. Con la clasificación, podemos extraer características de los datos. En este ejemplo, las características serían las pulsaciones por minuto o la edad.
Las características son propiedades distintivas de los patrones de entrada que ayudan a determinar las categorías o clases de salida. Cada columna es una característica y cada fila es un punto de datos. La clasificación es el proceso de predicción de la clase de los puntos de datos dados.
Nuestro clasificador utiliza algunos datos de entrenamiento para entender cómo las variables de entrada dadas se relacionan con esa clase.
El entrenamiento se refiere al uso de un algoritmo de aprendizaje para determinar y desarrollar los parámetros de su modelo.
Aunque hay muchos algoritmos para hacer esto, en términos sencillos, si se está entrenando un modelo para predecir si el corazón fallará o no, es decir, valores Verdaderos o Falsos, se estará mostrando al algoritmo algunos datos de la vida real etiquetados como Verdaderos, luego mostrando al algoritmo de nuevo, algunos datos etiquetados como Falsos, y se estará repitiendo este proceso con datos que tienen valores Verdaderos o Falsos, es decir, si el corazón realmente falló o no. El algoritmo modifica los valores internos hasta que ha aprendido a distinguir de los datos que indican que el corazón ha fallado que es Verdadero o no, que es Falso.
Con el Aprendizaje Automático, normalmente tomamos un conjunto de datos y lo dividimos en tres conjuntos, el de Entrenamiento, el de Validación y el de Prueba.
El subconjunto de entrenamiento son los datos utilizados para entrenar el algoritmo.
El subconjunto de validación se utiliza para validar nuestros resultados y ajustar los parámetros del algoritmo.
Los datos de prueba son los datos que el modelo nunca ha visto antes y se utilizan para evaluar la calidad de nuestro modelo.
Podemos indicar la calidad del modelo utilizando términos como exactitud, precisión y recuperación.
Aprendizaje profundo
Mientras que el aprendizaje automático es un subconjunto de la inteligencia artificial, el aprendizaje profundo es un subconjunto especializado del aprendizaje automático.
El Aprendizaje Profundo estratifica los algoritmos para crear una Red Neural, una réplica artificial de la estructura y funcionalidad del cerebro, lo que permite a los sistemas de IA aprender continuamente en el trabajo y mejorar la calidad y precisión de los resultados.
Esto es lo que permite a estos sistemas aprender de datos no estructurados como fotos, vídeos y archivos de audio.
El aprendizaje profundo, por ejemplo, permite que los sistemas de IA comprendan el lenguaje natural y que puedan averiguar el contexto y la intención de lo que se transmite.
Los algoritmos de aprendizaje profundo no asignan directamente la entrada a la salida. En su lugar, se basan en varias capas de unidades de procesamiento. Cada capa pasa su salida a la siguiente, que la procesa y la pasa a la siguiente. La gran cantidad de capas es la razón por la que se llama aprendizaje profundo.
Al crear algoritmos de aprendizaje profundo, los desarrolladores e ingenieros configuran el número de capas y el tipo de funciones que conectan las salidas de cada capa con las entradas de la siguiente.
A continuación, entrenan el modelo proporcionándole muchos ejemplos anotados. Por ejemplo, se le da a un algoritmo de aprendizaje profundo miles de imágenes y etiquetas que corresponden al contenido de cada imagen.
El algoritmo hará pasar esos ejemplos por su red neuronal en capas, y ajustará los pesos de las variables en cada capa de la red neuronal para ser capaz de detectar los patrones comunes que definen las imágenes con etiquetas similares.
El aprendizaje profundo soluciona uno de los principales problemas presentes en las antiguas generaciones de algoritmos de aprendizaje.
Mientras que la eficiencia y el rendimiento de los algoritmos de aprendizaje automático se estancan a medida que los conjuntos de datos crecen, los algoritmos de aprendizaje profundo siguen mejorando a medida que se les alimenta con más datos.
El aprendizaje profundo ha demostrado ser muy eficiente en varias tareas, como el subtitulado de imágenes, el reconocimiento y la transcripción de voz.
de imágenes, reconocimiento y transcripción de voz, reconocimiento facial, imágenes médicas y traducción de idiomas.
El aprendizaje profundo es también uno de los principales componentes de los coches sin conductor.
Redes neuronales
Una red neuronal artificial es una colección de unidades más pequeñas llamadas neuronas, que son unidades de computación modeladas en la forma en que el cerebro humano procesa la información.
Las redes neuronales artificiales toman prestadas algunas ideas de la red neuronal biológica del cerebro, para aproximarse a algunos de sus resultados de procesamiento.
Estas unidades o neuronas toman los datos entrantes como las redes neuronales biológicas y aprenden a tomar decisiones a lo largo del tiempo.
Las redes neuronales aprenden a través de un proceso llamado retropropagación, que utiliza un conjunto de datos de entrenamiento que hacen coincidir las entradas conocidas con las salidas deseadas.
En primer lugar, se introducen las entradas en la red y se determinan las salidas. A continuación, una función de error determina lo lejos que está la salida dada de la salida deseada.
Por último, se realizan ajustes para reducir los errores.
Un conjunto de neuronas se llama capa, y una capa recibe una entrada y proporciona una salida. Cualquier red neuronal tendrá una capa de entrada y otra de salida.
También tendrá una o más capas ocultas que simulan los tipos de actividad que se producen en el cerebro humano.
Las capas ocultas toman un conjunto de entradas ponderadas y producen una salida a través de una función de activación. Una red neuronal con más de una capa oculta se denomina red neuronal profunda.
Los perceptrones son los tipos más simples y antiguos de redes neuronales. Son redes neuronales de una sola capa que constan de nodos de entrada conectados directamente a un nodo de salida.
Las capas de entrada reenvían los valores de entrada a la siguiente capa, mediante la multiplicación por un peso y sumando los resultados. Las capas ocultas reciben la entrada de otros nodos y reenvían su salida a otros nodos.
Los nodos ocultos y de salida tienen una propiedad llamada sesgo, que es un tipo especial de peso que se aplica a un nodo después de considerar las otras entradas.
Por último, una función de activación determina cómo responde un nodo a sus entradas.
La función se ejecuta contra la suma de las entradas y el sesgo, y luego el resultado se envía como una salida.
Las funciones de activación pueden adoptar diferentes formas, y su elección es un componente crítico para el éxito de una red neuronal.
Las redes neuronales convolucionales o CNN son redes neuronales multicapa que se inspiran en la corteza visual de los animales. Las CNN son útiles en aplicaciones como el procesamiento de imágenes, el reconocimiento de vídeos y el procesamiento del lenguaje natural.
Una convolución es una operación matemática en la que se aplica una función a otra y el resultado es una mezcla de las dos funciones. Las convoluciones son buenas para detectar estructuras sencillas en una imagen y juntar esas características sencillas para construir características más complejas.
En una red convolucional, este proceso se produce en una serie de capas, cada una de las cuales realiza una convolución sobre la salida de la capa anterior.
Las CNN son expertas en construir características complejas a partir de otras menos complejas.
Las redes neuronales recurrentes o RNN, son recurrentes porque realizan la misma tarea para cada elemento de una secuencia, con salidas anteriores que alimentan las entradas de las etapas posteriores.
En una red neuronal general, una entrada se procesa a través de un número de capas y se produce una salida con la suposición de que las dos entradas sucesivas son independientes entre sí, pero eso puede no ser cierto en ciertos escenarios.
Por ejemplo, cuando tenemos que considerar el contexto en el que se ha pronunciado una palabra, en esos escenarios hay que tener en cuenta la dependencia de las observaciones anteriores para producir la salida.
Las RNN pueden hacer uso de la información en secuencias largas, cada capa de la red representa la observación en un momento determinado.
Resumen
- El aprendizaje automático es un subconjunto de la IA que utiliza algoritmos informáticos para analizar datos y tomar decisiones inteligentes basadas en lo que ha aprendido. Las tres categorías principales de algoritmos de aprendizaje automático incluyen el aprendizaje supervisado, el aprendizaje no supervisado y el aprendizaje por refuerzo.
- El Aprendizaje Profundo es un subconjunto especializado del Aprendizaje Automático que estratifica los algoritmos para crear una red neuronal que permite a los sistemas de IA aprender de datos no estructurados y continuar aprendiendo en el trabajo.
- Las redes neuronales son una colección de unidades de computación modeladas en las neuronas biológicas, toman datos entrantes y aprenden a tomar decisiones con el tiempo. Los diferentes tipos de redes neuronales incluyen los perceptrones, las redes neuronales convolucionales o CNN y las redes neuronales recurrentes o RNN.
Con respecto a cuándo es conveniente utilizarlos:
- El aprendizaje supervisado es cuando tenemos etiquetas de clase en el conjunto de datos y las utilizamos para construir el modelo de clasificación.
- El aprendizaje supervisado se divide en tres categorías: regresión, clasificación y redes neuronales.
- Los algoritmos de aprendizaje automático se entrenan utilizando conjuntos de datos divididos en datos de entrenamiento, datos de validación y datos de prueba.
Hola, acá estoy para compartir mis comentarios.
En este artículo indagamos más profundamente sobre los mecanismos que nos permiten obtener dispositivos y equipos “inteligentes”, facilitando así nuestras tareas diarias realizadas en la actualidad.
Razonamos sobre cómo, en realidad, no son “inteligentes” per se, sino que dependen exclusivamente de la incorporación de instrucciones provistas inicialmente por el hombre mediante programas especiales desarrollados para ello.
La gran novedad la constituye el hecho de que luego se convierten en mecanismos auto programables, aprendiendo del medio ambiente que los rodea y de su relación mutua, tal como lo hacemos nosotros.
Creo que, implícitamente, se plantea el riesgo de que, en algún momento de su evolución, esta “inteligencia” sea superior, incluso, a la nuestra y ello se convierta en un riesgo para la existencia del sápiens.
Confío en que, en última instancia, el hombre tendrá siempre la llave para controlarla y modificarla, y lo hará para el bien de nuestra especia.
Ahora me gustaría conocer tu honesta opinión con respecto a este artículo.
Gracias por tu colaboración.
La próxima semana podrás encontrar el siguiente artículo relacionado a la IA.
Comments