Aprendizaje automático con Python: conceptos básicos

Vivimos en la 'era de los datos' que se enriquece con una mejor potencia computacional y más recursos de almacenamiento. Estos datos o información aumentan día a día, pero el verdadero desafío es dar sentido a todos los datos. Las empresas y organizaciones están tratando de lidiar con esto mediante la construcción de sistemas inteligentes utilizando los conceptos y metodologías de la ciencia de datos, la minería de datos y el aprendizaje automático. Entre ellos, el aprendizaje automático es el campo más interesante de la informática. No estaría mal si llamamos aprendizaje automático a la aplicación y ciencia de algoritmos que dan sentido a los datos.

¿Qué es el aprendizaje automático?

El aprendizaje automático (ML) es el campo de la informática con la ayuda del cual los sistemas informáticos pueden dar sentido a los datos de la misma manera que lo hacen los seres humanos.

En palabras simples, ML es un tipo de inteligencia artificial que extrae patrones a partir de datos sin procesar mediante el uso de un algoritmo o método. El enfoque principal de ML es permitir que los sistemas informáticos aprendan de la experiencia sin ser programados explícitamente o sin intervención humana.

Necesidad de aprendizaje automático

Los seres humanos, en este momento, son las especies más inteligentes y avanzadas de la tierra porque pueden pensar, evaluar y resolver problemas complejos. Por otro lado, la IA aún se encuentra en su etapa inicial y no ha superado la inteligencia humana en muchos aspectos. Entonces la pregunta es ¿cuál es la necesidad de hacer que la máquina aprenda? La razón más adecuada para hacer esto es “tomar decisiones, basadas en datos, con eficiencia y escala”.

Últimamente, las organizaciones están invirtiendo mucho en tecnologías más nuevas como la inteligencia artificial, el aprendizaje automático y el aprendizaje profundo para obtener la información clave de los datos para realizar varias tareas del mundo real y resolver problemas. Podemos llamarlo decisiones basadas en datos tomadas por máquinas, particularmente para automatizar el proceso. Estas decisiones basadas en datos se pueden utilizar, en lugar de utilizar la lógica de programación, en los problemas que no se pueden programar de forma inherente. El hecho es que no podemos prescindir de la inteligencia humana, pero otro aspecto es que todos necesitamos resolver problemas del mundo real con eficiencia a gran escala. Por eso surge la necesidad del aprendizaje automático.

¿Por qué y cuándo hacer que las máquinas aprendan?

Ya hemos hablado de la necesidad del aprendizaje automático, pero surge otra pregunta: ¿en qué escenarios debemos hacer que la máquina aprenda? Puede haber varias circunstancias en las que necesitemos máquinas para tomar decisiones basadas en datos con eficiencia y a gran escala. Las siguientes son algunas de esas circunstancias en las que hacer que las máquinas aprendan sería más efectivo:

Falta de experiencia humana

El primer escenario en el que queremos que una máquina aprenda y tome decisiones basadas en datos puede ser el dominio donde hay una falta de experiencia humana. Los ejemplos pueden ser navegaciones en territorios desconocidos o planetas espaciales.

Escenarios dinámicos

Hay algunos escenarios que son de naturaleza dinámica, es decir, siguen cambiando con el tiempo. En el caso de estos escenarios y comportamientos, queremos que una máquina aprenda y tome decisiones basadas en datos. Algunos de los ejemplos pueden ser la conectividad de red y la disponibilidad de infraestructura en una organización.

Dificultad para traducir la experiencia en tareas computacionales.

Puede haber varios dominios en los que los humanos tienen su experiencia; sin embargo, no pueden traducir esta experiencia en tareas computacionales. En tales circunstancias, queremos aprendizaje automático. Los ejemplos pueden ser los dominios del reconocimiento de voz, tareas cognitivas, etc.

Modelo de aprendizaje automático

Antes de discutir el modelo de aprendizaje automático, debemos comprender la siguiente definición formal de AA dada por el profesor Mitchell:

"Se dice que un programa de computadora aprende de la experiencia E con respecto a alguna clase de tareas T y medida de desempeño P, si su desempeño en las tareas de T, medido por P, mejora con la experiencia E."

La definición anterior se centra básicamente en tres parámetros, también los componentes principales de cualquier algoritmo de aprendizaje, a saber, Tarea (T), Desempeño (P) y experiencia (E). En este contexto, podemos simplificar esta definición como:

ML es un campo de la IA que consta de algoritmos de aprendizaje que:

  • Mejorar su desempeño (P)

  • Al ejecutar alguna tarea (T)

  • Con el tiempo con la experiencia (E)

Basado en lo anterior, el siguiente diagrama representa un modelo de aprendizaje automático:

Vamos a discutirlos con más detalle ahora:

Tarea (T)

Desde la perspectiva del problema, podemos definir la tarea T como el problema del mundo real que debe resolverse. El problema puede ser cualquier cosa como encontrar el mejor precio de la vivienda en una ubicación específica o encontrar la mejor estrategia de marketing, etc. Por otro lado, si hablamos de aprendizaje automático, la definición de tarea es diferente porque es difícil resolver tareas basadas en ML enfoque de programación convencional.

Se dice que una tarea T es una tarea basada en ML cuando se basa en el proceso y el sistema debe seguir para operar en puntos de datos. Los ejemplos de tareas basadas en ML son Clasificación, Regresión, Anotación estructurada, Clustering, Transcripción, etc.

Experiencia (E)

Como sugiere el nombre, es el conocimiento obtenido a partir de los puntos de datos proporcionados al algoritmo o modelo. Una vez que se le proporcione el conjunto de datos, el modelo se ejecutará de forma iterativa y aprenderá algún patrón inherente. El aprendizaje así adquirido se llama experiencia (E). Haciendo una analogía con el aprendizaje humano, podemos pensar en esta situación como en la que un ser humano está aprendiendo o ganando algo de experiencia de varios atributos como situación, relaciones, etc. El aprendizaje supervisado, no supervisado y por refuerzo son algunas formas de aprender o ganar experiencia. La experiencia adquirida por nuestro modelo o algoritmo ML se utilizará para resolver la tarea T.

Rendimiento (P)

Se supone que un algoritmo ML realiza tareas y gana experiencia con el paso del tiempo. La medida que indica si el algoritmo de ML está funcionando según las expectativas o no es su rendimiento (P). P es básicamente una métrica cuantitativa que dice cómo un modelo está realizando la tarea, T, usando su experiencia, E. Hay muchas métricas que ayudan a comprender el desempeño de ML, como puntuación de precisión, puntuación F1, matriz de confusión, precisión, recuerdo , sensibilidad, etc.

Desafíos en el aprendizaje de máquinas

Si bien el aprendizaje automático está evolucionando rápidamente, logrando avances significativos con la ciberseguridad y los automóviles autónomos, este segmento de la IA en su conjunto aún tiene un largo camino por recorrer. La razón detrás es que ML no ha podido superar una serie de desafíos. Los desafíos que ML enfrenta actualmente son:

Quality of data- Tener datos de buena calidad para los algoritmos de ML es uno de los mayores desafíos. El uso de datos de baja calidad genera problemas relacionados con el procesamiento previo de datos y la extracción de características.

Time-Consuming task - Otro desafío al que se enfrentan los modelos ML es el consumo de tiempo, especialmente para la adquisición de datos, extracción de características y recuperación.

Lack of specialist persons - Dado que la tecnología ML aún se encuentra en su etapa inicial, la disponibilidad de recursos expertos es un trabajo difícil.

No clear objective for formulating business problems - No tener un objetivo claro y una meta bien definida para los problemas comerciales es otro desafío clave para ML porque esta tecnología aún no está tan madura.

Issue of overfitting & underfitting - Si el modelo está sobreajustado o desajustado, no se puede representar bien para el problema.

Curse of dimensionality- Otro desafío al que se enfrenta el modelo ML son demasiadas características de los puntos de datos. Esto puede ser un verdadero obstáculo.

Difficulty in deployment - La complejidad del modelo ML hace que sea bastante difícil de implementar en la vida real.

Aplicaciones del aprendizaje de máquinas

El aprendizaje automático es la tecnología de más rápido crecimiento y, según los investigadores, estamos en el año dorado de la IA y el aprendizaje automático. Se utiliza para resolver muchos problemas complejos del mundo real que no se pueden resolver con el enfoque tradicional. A continuación se muestran algunas aplicaciones del aprendizaje automático en el mundo real:

  • Análisis de emociones

  • Análisis de los sentimientos

  • Detección y prevención de errores

  • Predicción y previsión meteorológica

  • Análisis y previsión del mercado de valores

  • Síntesis de voz

  • Reconocimiento de voz

  • Segmentación de clientes

  • Reconocimiento de objetos

  • Detección de fraudes

  • Prevención del fraude

  • Recomendación de productos al cliente en compras online.