Cómo abordar los problemas de aprendizaje automático
Publicado: 2022-03-11Una de las tareas principales de las computadoras es automatizar las tareas humanas. Algunas de estas tareas son simples y repetitivas, como "mover X de A a B". Se vuelve mucho más interesante cuando la computadora tiene que tomar decisiones sobre problemas que son mucho más difíciles de formalizar. Ahí es donde empezamos a encontrar problemas básicos de aprendizaje automático.
Históricamente, dichos algoritmos fueron creados por científicos o expertos que tenían un conocimiento profundo de su campo y se basaban en gran medida en reglas. Con la explosión del poder de cómputo y la disponibilidad de conjuntos de datos grandes y diversos, el enfoque se ha desplazado hacia un enfoque más computacional.
Los conceptos de aprendizaje automático más populares en estos días tienen que ver con las redes neuronales y, según mi experiencia, esto creó la impresión en muchas personas de que las redes neuronales son una especie de arma milagrosa para todos los problemas de inferencia. En realidad, esto está bastante lejos de la verdad. A los ojos del estadístico, forman una clase de enfoques de inferencia con sus fortalezas y debilidades asociadas, y depende completamente del problema si las redes neuronales serán la mejor solución o no.
Muy a menudo, hay mejores enfoques.
En este artículo, describiremos una estructura para atacar problemas de aprendizaje automático. No hay margen para entrar en demasiados detalles sobre modelos específicos de aprendizaje automático, pero si este artículo genera interés, los artículos posteriores podrían ofrecer soluciones detalladas para algunos problemas interesantes de aprendizaje automático.
Primero, sin embargo, dediquemos un poco de esfuerzo a mostrar por qué debe ser más prudente que pensar automáticamente en "red neuronal" cuando se enfrenta a un problema de aprendizaje automático.
Pros y contras de las redes neuronales
Con las redes neuronales, la inferencia se realiza a través de una "red" ponderada. Los pesos se calibran durante el llamado proceso de "aprendizaje" y luego, posteriormente, se aplican para asignar resultados a las entradas.
Por simple que parezca, todos los pesos son parámetros de la red calibrada y, por lo general, eso significa demasiados parámetros para que un ser humano los entienda.
Entonces, también podríamos considerar las redes neuronales como una especie de caja negra de inferencia que conecta la entrada con la salida, sin un modelo específico en el medio.
Echemos un vistazo más de cerca a los pros y los contras de este enfoque.
Ventajas de las Redes Neuronales
- La entrada son los datos en sí. Resultados utilizables incluso con poca o ninguna ingeniería de funciones.
- Habilidad entrenable. Sin ingeniería de características, no hay necesidad de habilidades tan difíciles de desarrollar como la intuición o la experiencia en el dominio. Las herramientas estándar están disponibles para inferencias genéricas.
- La precisión mejora con la cantidad de datos. Cuantas más entradas vea, mejor funcionará una red neuronal.
- Puede superar a los modelos clásicos cuando no hay información completa sobre el modelo. Piense en el sentimiento público, por ejemplo.
- La inferencia abierta puede descubrir patrones desconocidos. Si usa un modelo y deja una consideración fuera de él, no detectará el fenómeno correspondiente. Las redes neuronales podrían.
Ejemplo de red neuronal exitosa: la IA de Google encontró un planeta que orbita una estrella distante, donde la NASA no lo hizo, al analizar los datos acumulados del telescopio.
Desventajas de las redes neuronales
- Requieren una gran cantidad de datos (¡anotados!). Primero, esta cantidad de datos no siempre está disponible. La convergencia es lenta. Un modelo sólido (digamos, en física) se puede calibrar después de algunas observaciones; con redes neuronales, esto está fuera de discusión. La anotación es mucho trabajo, sin mencionar que, en sí misma, no es infalible.
- No hay información sobre la estructura interna de los datos. ¿Está interesado en saber en qué se basa la inferencia? No hay suerte aquí. Hay situaciones en las que ajustar manualmente los datos mejora la inferencia de un salto, pero una red neuronal no podrá ayudar con eso.
- Problemas de sobreajuste. A menudo sucede que la red tiene más parámetros de los que justifican los datos, lo que conduce a una inferencia subóptima.
- El rendimiento depende de la información. Si hay información completa sobre un problema, un modelo sólido tiende a superar a una red neuronal.
- Hay problemas de muestreo. El muestreo siempre es un tema delicado, pero con un modelo, uno puede desarrollar rápidamente una noción de muestreo problemático. Las redes neuronales aprenden solo de los datos, por lo que si obtienen datos sesgados, tendrán conclusiones sesgadas.
Un ejemplo de fracaso: un familiar me habló de una gran corporación (que no puedo nombrar) que estaba trabajando en la detección de vehículos militares en fotografías aéreas. Tenían imágenes donde había ese tipo de vehículos y otras que no. La mayoría de las imágenes de la primera clase se tomaron en un día lluvioso, mientras que las últimas se tomaron en un clima soleado. Como resultado, el sistema aprendió a distinguir la luz de la sombra.
En resumen, las redes neuronales forman una clase de métodos de inferencia que tienen sus pros y sus contras.
El hecho de que su popularidad supere a todos los demás métodos estadísticos a los ojos del público probablemente tenga más que ver con el gobierno corporativo que con cualquier otra cosa.
Capacitar a las personas para que usen herramientas estándar y métodos de redes neuronales estandarizados es un proceso mucho más predecible que buscar expertos en dominios y artistas de varios campos. Sin embargo, esto no cambia el hecho de que usar una red neuronal para un problema simple y bien definido es simplemente dispararle a un gorrión con un cañón: necesita muchos datos, requiere mucho trabajo de anotación y, a cambio, podría simplemente tienen un rendimiento inferior en comparación con un modelo sólido. No es el mejor paquete.
Aún así, hay un gran poder en el hecho de que “democratizan” el conocimiento estadístico. Una vez que una solución de inferencia basada en redes neuronales se ve como una mera herramienta de programación, puede ayudar incluso a aquellos que no se sienten cómodos con algoritmos complejos. Entonces, inevitablemente, ahora se construyen muchas cosas que de otro modo no existirían si solo pudiéramos operar con modelos sofisticados.

Acercarse a los problemas de aprendizaje automático
Al abordar los problemas de aprendizaje automático, estos son los pasos que deberá seguir:
- Establecimiento de criterios de aceptación
- Limpiando sus datos y maximizando su contenido de información
- Elegir el enfoque de inferencia más óptimo
- Entrena, prueba, repite
Veamos estos elementos en detalle.
Establecimiento de criterios de aceptación
Debería tener una idea de la precisión de su objetivo lo antes posible, en la medida de lo posible. Este va a ser el objetivo por el que trabajarás.
Limpiando sus datos y maximizando su contenido de información
Este es el paso más crítico. En primer lugar, sus datos no deben tener (o deben tener pocos) errores. Limpiarlo de estos es un primer paso esencial. Sustituya los valores que faltan, trate de identificar patrones que son obviamente falsos, elimine los duplicados y cualquier otra anomalía que pueda notar.
En cuanto a la información, si sus datos son muy informativos (en el sentido lineal), prácticamente cualquier método de inferencia le dará buenos resultados. Si la información requerida no está allí, entonces el resultado será ruido. Maximizar la información significa principalmente encontrar cualquier relación no lineal útil en los datos y linealizarlos. Si eso mejora significativamente las entradas, genial. De lo contrario, es posible que sea necesario agregar más variables. Si todo esto no da frutos, la precisión del objetivo puede verse afectada.
Con un poco de suerte, habrá variables individuales que sean útiles. Puede identificar variables útiles si, por ejemplo, las grafica contra la(s) variable(s) objetivo de aprendizaje y encuentra que la gráfica es similar a una función (es decir, un rango estrecho en la entrada corresponde a un rango estrecho en la salida). Luego, esta variable se puede linealizar; por ejemplo, si se traza como una parábola, resta algunos valores y saca la raíz cuadrada.
Para las variables que son ruidosas (un rango estrecho en la entrada corresponde a un rango amplio en la salida), podemos intentar combinarlas con otras variables.
Para tener una idea de la precisión, es posible que desee medir las probabilidades de clase condicional para cada una de sus variables (para problemas de clasificación) o aplicar alguna forma muy simple de regresión, como la regresión lineal (para problemas de predicción). Si el contenido de información de la entrada mejora, también lo hará su inferencia, y simplemente no desea perder demasiado tiempo en esta etapa calibrando un modelo cuando los datos aún no están listos. Así que siga probando lo más simple posible.
Elegir el enfoque de inferencia más óptimo
Una vez que sus datos estén en buena forma, puede optar por el método de inferencia (los datos aún pueden pulirse más tarde, si es necesario).
¿Deberías usar un modelo? Bueno, si tiene buenas razones para creer que puede construir un buen modelo para la tarea, entonces probablemente debería hacerlo. Si no lo cree, pero hay una gran cantidad de datos con buenas anotaciones, entonces puede usar las manos libres con una red neuronal. Sin embargo, en las aplicaciones prácticas de aprendizaje automático, a menudo no hay suficientes datos para eso.
Jugar con precisión frente a cobertura a menudo vale la pena enormemente. Los enfoques híbridos suelen estar completamente bien. Suponga que los datos son tales que puede obtener una precisión cercana al 100 % en el 80 % con un modelo simple. Esto significa que puede obtener resultados demostrables rápidamente, y si su sistema puede identificar cuándo está operando en el 80% del territorio amigable, entonces básicamente ha cubierto la mayor parte del problema. Es posible que su cliente aún no esté completamente satisfecho, pero esto le hará ganar su confianza rápidamente. Y no hay nada que le impida hacer algo similar con los datos restantes: con un esfuerzo razonable ahora cubre, digamos, el 92 % de los datos con un 97 % de precisión. Cierto, en el resto de los datos, es un lanzamiento de moneda, pero ya produjo algo útil.
Para la mayoría de las aplicaciones prácticas, esto es muy útil. Digamos que está en el negocio de los préstamos y quiere decidir a quién otorgar un préstamo, y todo lo que sabe es que en el 70% de los clientes su algoritmo es muy preciso. Genial, es cierto, el otro 30 % de sus solicitantes requerirá más procesamiento, pero el 70 % puede automatizarse por completo. O: suponga que está tratando de automatizar el trabajo del operador para los centros de llamadas, puede hacer un buen trabajo (rápido y sucio) solo en las tareas más simples, pero estas tareas cubren el 50% de las llamadas. Genial, el centro de llamadas ahorra dinero si puede automatizar el 50% de sus llamadas de manera confiable.
En resumen: si los datos no son lo suficientemente informativos, o el problema es demasiado complejo para manejarlo en su totalidad, piense fuera de la caja. Identifique subproblemas útiles y fáciles de resolver hasta que tenga una mejor idea.
Una vez que tenga su sistema listo, aprenda, pruébelo y recíclelo hasta que esté satisfecho con los resultados.
Entrenar, probar, repetir
Después de los pasos anteriores, queda poco de interés. Tiene los datos, tiene el método de aprendizaje automático, por lo que es hora de extraer parámetros a través del aprendizaje y luego probar la inferencia en el conjunto de prueba. La literatura sugiere que el 70% de los registros deben usarse para capacitación y el 30% para pruebas.
Si está satisfecho con los resultados, la tarea ha terminado. Pero, lo más probable es que haya desarrollado algunas ideas nuevas durante el procedimiento, y estas podrían ayudarlo a mejorar la precisión. ¿Quizás necesitas más datos? ¿O simplemente más limpieza de datos? O otro modelo? De cualquier manera, es probable que estés ocupado durante bastante tiempo.
Así que, ¡buena suerte y disfruta del trabajo que tienes por delante!
- Máquinas y confianza: cómo mitigar el sesgo de la IA
- Estrellas realineadas: mejorando el sistema de calificación de IMDb