Introducción al aprendizaje automático

Introducción

El aprendizaje automático es un subcampo de la inteligencia artificial (IA). El objetivo del aprendizaje automático es, en general, comprender la estructura de los datos y adaptarlos a modelos que las personas puedan comprender y utilizar.

Aunque el aprendizaje automático es un campo dentro de la informática, difiere de los enfoques computacionales tradicionales. En la informática tradicional, los algoritmos son conjuntos de instrucciones programadas explícitamente que utilizan las computadoras para calcular o resolver problemas. Los algoritmos de aprendizaje automático, en cambio, permiten que las computadoras se entrenen con datos de entrada y utilicen análisis estadístico para generar valores que se encuentren dentro de un rango específico. Debido a esto, el aprendizaje automático facilita que las computadoras construyan modelos a partir de datos de muestra para automatizar los procesos de toma de decisiones basados ​​en datos de entrada.

Hoy en día, cualquier usuario de tecnología se ha beneficiado del aprendizaje automático. La tecnología de reconocimiento facial permite a las plataformas de redes sociales ayudar a los usuarios a etiquetar y compartir fotos de amigos. La tecnología de reconocimiento óptico de caracteres (OCR) convierte imágenes de texto en tipos móviles. Los motores de recomendación, impulsados ​​por el aprendizaje automático, sugieren qué películas o programas de televisión ver a continuación en función de las preferencias del usuario. Los automóviles autónomos que dependen del aprendizaje automático para navegar podrían estar pronto disponibles para los consumidores.

El aprendizaje automático es un campo en constante desarrollo. Por ello, hay algunas consideraciones que se deben tener en cuenta al trabajar con metodologías de aprendizaje automático o analizar el impacto de los procesos de aprendizaje automático.

En este tutorial, analizaremos los métodos de aprendizaje automático habituales, tanto supervisados ​​como no supervisados, y los enfoques algorítmicos habituales en el aprendizaje automático, incluido el algoritmo de los k vecinos más cercanos, el aprendizaje de árboles de decisión y el aprendizaje profundo. Exploraremos qué lenguajes de programación se utilizan con más frecuencia en el aprendizaje automático y le proporcionaremos algunos de los atributos positivos y negativos de cada uno. Además, analizaremos los sesgos que perpetúan los algoritmos de aprendizaje automático y consideraremos lo que se puede tener en cuenta para evitar estos sesgos al crear algoritmos.

Métodos de aprendizaje automático

En el aprendizaje automático, las tareas se clasifican generalmente en categorías amplias. Estas categorías se basan en cómo se recibe el aprendizaje o cómo se proporciona retroalimentación sobre el aprendizaje al sistema desarrollado.

Dos de los métodos de aprendizaje automático más adoptados son el aprendizaje supervisado , que entrena algoritmos basándose en datos de entrada y salida de ejemplo etiquetados por humanos, y el aprendizaje no supervisado , que proporciona al algoritmo datos sin etiquetas para permitirle encontrar una estructura dentro de sus datos de entrada. Exploremos estos métodos con más detalle.

Aprendizaje supervisado

En el aprendizaje supervisado, se proporcionan al ordenador ejemplos de entradas que están etiquetados con los resultados deseados. El objetivo de este método es que el algoritmo pueda “aprender” comparando su salida real con las salidas “enseñadas” para encontrar errores y modificar el modelo en consecuencia. Por lo tanto, el aprendizaje supervisado utiliza patrones para predecir valores de etiquetas en datos adicionales no etiquetados.

Por ejemplo, con el aprendizaje supervisado, un algoritmo puede recibir datos con imágenes de tiburones etiquetados como fishe imágenes de océanos etiquetados como water. Al ser entrenado con estos datos, el algoritmo de aprendizaje supervisado debería poder identificar posteriormente imágenes de tiburones sin etiquetar como fishe imágenes de océanos sin etiquetar como water.

Un caso de uso común del aprendizaje supervisado es el uso de datos históricos para predecir eventos futuros estadísticamente probables. Puede utilizar información histórica del mercado de valores para anticipar fluctuaciones futuras o emplearse para filtrar correos electrónicos no deseados. En el aprendizaje supervisado, las fotos de perros etiquetadas se pueden utilizar como datos de entrada para clasificar fotos de perros sin etiquetar.

Aprendizaje no supervisado

En el aprendizaje no supervisado, los datos no están etiquetados, por lo que el algoritmo de aprendizaje debe buscar puntos en común entre los datos de entrada. Como los datos no etiquetados son más abundantes que los etiquetados, los métodos de aprendizaje automático que facilitan el aprendizaje no supervisado son particularmente valiosos.

El objetivo del aprendizaje no supervisado puede ser tan sencillo como descubrir patrones ocultos dentro de un conjunto de datos, pero también puede tener como objetivo el aprendizaje de características, que permite a la máquina computacional descubrir automáticamente las representaciones necesarias para clasificar los datos sin procesar.

El aprendizaje no supervisado se utiliza habitualmente para datos transaccionales. Es posible que tenga un gran conjunto de datos de clientes y sus compras, pero como ser humano, probablemente no podrá entender qué atributos similares se pueden extraer de los perfiles de los clientes y sus tipos de compras. Con estos datos introducidos en un algoritmo de aprendizaje no supervisado, se puede determinar que las mujeres de un determinado rango de edad que compran jabones sin perfume tienen probabilidades de estar embarazadas y, por lo tanto, se puede dirigir una campaña de marketing relacionada con el embarazo y los productos para bebés a esta audiencia con el fin de aumentar su número de compras.

Sin que se les diga una respuesta “correcta”, los métodos de aprendizaje no supervisado pueden analizar datos complejos que son más amplios y aparentemente no están relacionados para organizarlos de maneras potencialmente significativas. El aprendizaje no supervisado se utiliza a menudo para la detección de anomalías, incluidas las compras fraudulentas con tarjeta de crédito, y los sistemas de recomendación que recomiendan qué productos comprar a continuación. En el aprendizaje no supervisado, las fotos de perros sin etiquetar se pueden utilizar como datos de entrada para que el algoritmo encuentre similitudes y clasifique las fotos de perros en conjunto.

Aproches

Como campo, el aprendizaje automático está estrechamente relacionado con las estadísticas computacionales, por lo que tener conocimientos básicos en estadística es útil para comprender y aprovechar los algoritmos de aprendizaje automático.

Para quienes no hayan estudiado estadística, puede resultar útil definir primero la correlación y la regresión, ya que son técnicas que se utilizan habitualmente para investigar la relación entre variables cuantitativas. La correlación es una medida de asociación entre dos variables que no se designan como dependientes o independientes. La regresión a un nivel básico se utiliza para examinar la relación entre una variable dependiente y una independiente. Dado que las estadísticas de regresión se pueden utilizar para anticipar la variable dependiente cuando se conoce la variable independiente, la regresión permite capacidades de predicción.

Los enfoques del aprendizaje automático se desarrollan continuamente. Para nuestros propósitos, repasaremos algunos de los enfoques populares que se están utilizando en el aprendizaje automático en el momento de escribir este artículo.

k-vecino más cercano

El algoritmo de k vecinos más cercanos es un modelo de reconocimiento de patrones que se puede utilizar tanto para la clasificación como para la regresión. A menudo abreviado como k-NN, el k en k vecinos más cercanos es un número entero positivo, que normalmente es pequeño. Tanto en la clasificación como en la regresión, la entrada constará de los k ejemplos de entrenamiento más cercanos dentro de un espacio.

Nos centraremos en la clasificación k-NN. En este método, el resultado es la pertenencia a una clase. Esto asignará un nuevo objeto a la clase más común entre sus k vecinos más cercanos. En el caso de k = 1, el objeto se asigna a la clase del único vecino más cercano.

Veamos un ejemplo de k-vecino más cercano. En el diagrama siguiente, hay objetos de diamante azul y objetos de estrella naranja. Estos pertenecen a dos clases distintas: la clase diamante y la clase estrella.

Cuando se agrega un nuevo objeto al espacio (en este caso, un corazón verde), querremos que el algoritmo de aprendizaje automático clasifique el corazón en una clase determinada.

Cuando elegimos k = 3, el algoritmo encontrará los tres vecinos más cercanos del corazón verde para clasificarlo en la clase diamante o en la clase estrella.

En nuestro diagrama, los tres vecinos más próximos del corazón verde son un diamante y dos estrellas. Por lo tanto, el algoritmo clasificará el corazón con la clase de estrella.

Entre los algoritmos de aprendizaje automático más básicos, el vecino más cercano se considera un tipo de “aprendizaje perezoso”, ya que la generalización más allá de los datos de entrenamiento no se produce hasta que se realiza una consulta al sistema.

Aprendizaje del árbol de decisiones

Para uso general, los árboles de decisión se emplean para representar visualmente decisiones y mostrar o informar la toma de decisiones. Cuando se trabaja con aprendizaje automático y minería de datos, los árboles de decisión se utilizan como modelo predictivo. Estos modelos asignan observaciones sobre los datos a conclusiones sobre el valor objetivo de los datos.

El objetivo del aprendizaje del árbol de decisiones es crear un modelo que predecirá el valor de un objetivo en función de las variables de entrada.

En el modelo predictivo, los atributos de los datos que se determinan a través de la observación están representados por las ramas, mientras que las conclusiones sobre el valor objetivo de los datos están representadas en las hojas.

Al “aprender” un árbol, los datos de origen se dividen en subconjuntos en función de una prueba de valor de atributo, que se repite en cada uno de los subconjuntos derivados de forma recursiva. Una vez que el subconjunto en un nodo tiene el valor equivalente al de su valor de destino, el proceso de recursión estará completo.

Veamos un ejemplo de diversas condiciones que pueden determinar si alguien debería o no ir a pescar. Esto incluye las condiciones meteorológicas y las condiciones de presión barométrica.

En el árbol de decisión simplificado anterior, se clasifica un ejemplo ordenándolo a través del árbol hasta el nodo de hoja apropiado. Esto luego devuelve la clasificación asociada con la hoja en particular, que en este caso es a Yeso a No. El árbol clasifica las condiciones de un día en función de si es adecuado o no para ir a pescar.

Un verdadero conjunto de datos de árbol de clasificación tendría muchas más características que las descritas anteriormente, pero las relaciones deberían ser sencillas de determinar. Cuando se trabaja con el aprendizaje de árboles de decisión, se deben tomar varias decisiones, incluidas las características que se deben elegir, las condiciones que se deben utilizar para la división y la comprensión de cuándo el árbol de decisión ha llegado a un final claro.

Aprendizaje profundo

El aprendizaje profundo intenta imitar la forma en que el cerebro humano puede procesar los estímulos de luz y sonido para transformarlos en visión y audición. Una arquitectura de aprendizaje profundo se inspira en redes neuronales biológicas y consta de múltiples capas en una red neuronal artificial formada por hardware y GPU.

El aprendizaje profundo utiliza una cascada de capas de unidades de procesamiento no lineales para extraer o transformar características (o representaciones) de los datos. La salida de una capa sirve como entrada de la capa siguiente. En el aprendizaje profundo, los algoritmos pueden ser supervisados ​​y servir para clasificar datos, o no supervisados ​​y realizar análisis de patrones.

Entre los algoritmos de aprendizaje automático que se utilizan y desarrollan actualmente, el aprendizaje profundo es el que absorbe la mayor cantidad de datos y ha podido superar a los humanos en algunas tareas cognitivas. Debido a estos atributos, el aprendizaje profundo se ha convertido en un enfoque con un potencial significativo en el espacio de la inteligencia artificial.

Tanto la visión artificial como el reconocimiento de voz han logrado avances significativos gracias a los enfoques de aprendizaje profundo. IBM Watson es un ejemplo conocido de un sistema que aprovecha el aprendizaje profundo.

Lenguajes de programación

Al elegir un lenguaje para especializarse en aprendizaje automático, es posible que desee considerar las habilidades enumeradas en los anuncios de trabajo actuales, así como las bibliotecas disponibles en varios lenguajes que se pueden usar para procesos de aprendizaje automático.

Python es uno de los lenguajes más populares para trabajar con aprendizaje automático debido a los muchos marcos disponibles, incluidos TensorFlow , PyTorch y Keras . Como lenguaje que tiene una sintaxis legible y la capacidad de usarse como lenguaje de script, Python demuestra ser poderoso y sencillo tanto para preprocesar datos como para trabajar con datos directamente. La biblioteca de aprendizaje automático scikit-learn está construida sobre varios paquetes de Python existentes con los que los desarrolladores de Python pueden estar familiarizados, a saber, NumPy , SciPy y Matplotlib .

Para comenzar a usar Python, puede leer nuestra serie de tutoriales sobre “ Cómo codificar en Python 3 ”, o leer específicamente sobre “ Cómo crear un clasificador de aprendizaje automático en Python con scikit-learn ” o “ Cómo realizar una transferencia de estilo neuronal con Python 3 y PyTorch ”.

Java se utiliza ampliamente en la programación empresarial y, por lo general, lo utilizan los desarrolladores de aplicaciones de escritorio front-end que también trabajan en el aprendizaje automático a nivel empresarial. Por lo general, no es la primera opción para quienes son nuevos en programación y desean aprender sobre el aprendizaje automático, pero es la preferida por quienes tienen experiencia en el desarrollo con Java para aplicarlo al aprendizaje automático. En términos de aplicaciones de aprendizaje automático en la industria, Java tiende a usarse más que Python para la seguridad de la red, incluidos los casos de uso de detección de fraude y ataques cibernéticos.

Entre las bibliotecas de aprendizaje automático para Java se encuentran Deeplearning4j , una biblioteca de aprendizaje profundo distribuida y de código abierto escrita tanto para Java como para Scala; MALLET ( MA chine Learning for Language Toolkit ) permite aplicaciones de aprendizaje automático en texto, incluido el procesamiento del lenguaje natural, el modelado de temas, la clasificación de documentos y la agrupación; y Weka , una colección de algoritmos de aprendizaje automático para usar en tareas de minería de datos.

C++ es el lenguaje de elección para el aprendizaje automático y la inteligencia artificial en aplicaciones de juegos o robots (incluida la locomoción robótica). Los desarrolladores de hardware informático integrado y los ingenieros electrónicos tienen más probabilidades de preferir C++ o C en aplicaciones de aprendizaje automático debido a su competencia y nivel de control en el lenguaje. Algunas bibliotecas de aprendizaje automático que puedes usar con C++ incluyen mlpack , que es escalable; Dlib, que ofrece algoritmos de aprendizaje automático de amplio alcance; y Shark , que es modular y de código abierto .

Sesgos humanos

Aunque los datos y el análisis computacional pueden hacernos pensar que estamos recibiendo información objetiva, no es así; el hecho de que se basen en datos no significa que los resultados del aprendizaje automático sean neutrales. El sesgo humano influye en la forma en que se recopilan y organizan los datos y, en última instancia, en los algoritmos que determinan cómo interactuará el aprendizaje automático con esos datos.

Por ejemplo, si las personas proporcionan imágenes de “peces” como datos para entrenar un algoritmo y estas personas seleccionan abrumadoramente imágenes de peces de colores, una computadora podría no clasificar a un tiburón como pez. Esto crearía un sesgo en contra de los tiburones como peces, y los tiburones no se contabilizarían como peces.

Al utilizar fotografías históricas de científicos como datos de entrenamiento, es posible que una computadora no clasifique adecuadamente a los científicos que también son personas de color o mujeres. De hecho, investigaciones recientes revisadas por pares han indicado que los programas de inteligencia artificial y aprendizaje automático exhiben sesgos similares a los humanos que incluyen prejuicios raciales y de género. Véase, por ejemplo, “ La semántica derivada automáticamente de corpus lingüísticos contiene sesgos similares a los humanos ” y “ A los hombres también les gusta ir de compras: reducción de la amplificación del sesgo de género mediante restricciones a nivel de corpus ” [PDF].

A medida que el aprendizaje automático se utiliza cada vez más en las empresas, los sesgos no detectados pueden perpetuar problemas sistémicos que pueden impedir que las personas califiquen para préstamos, que se les muestren anuncios de oportunidades laborales bien remuneradas o que reciban opciones de entrega en el mismo día.

Dado que el sesgo humano puede afectar negativamente a los demás, es sumamente importante ser consciente de él y también trabajar para eliminarlo tanto como sea posible. Una forma de trabajar para lograrlo es garantizar que haya personas diversas trabajando en un proyecto y que personas diversas lo prueben y revisen. Otros han pedido que terceros reguladores supervisen y auditen los algoritmos , construyan sistemas alternativos que puedan detectar sesgos y realicen revisiones éticas como parte de la planificación de proyectos de ciencia de datos. Concientizar sobre los sesgos, ser conscientes de nuestros propios sesgos inconscientes y estructurar la equidad en nuestros proyectos y procesos de aprendizaje automático pueden funcionar para combatir el sesgo en este campo.

Conclusión

Este tutorial revisó algunos de los casos de uso del aprendizaje automático, métodos comunes y enfoques populares utilizados en el campo, lenguajes de programación de aprendizaje automático adecuados y también cubrió algunas cosas a tener en cuenta en términos de sesgos inconscientes que se replican en algoritmos.

Dado que el aprendizaje automático es un campo que se innova continuamente, es importante tener en cuenta que los algoritmos, métodos y enfoques seguirán cambiando.

Además de leer nuestros tutoriales sobre “ Cómo crear un clasificador de aprendizaje automático en Python con scikit-learn ” o “ Cómo realizar una transferencia de estilo neuronal con Python 3 y PyTorch ”, puede obtener más información sobre cómo trabajar con datos en la industria de la tecnología leyendo nuestros tutoriales de análisis de datos .

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio