El aprendizaje automático no es menos satisfactorio para todos. De hecho, para algunos es mucho más satisfactorio, y el campamento en el que caes depende de cómo te guste abordar los problemas.
El mundo del desarrollo de software ahora tiene 2 opciones cuando se trata de producir un comportamiento de software:
- Programación Inside Out : escriba manualmente reglas explícitas para producir el comportamiento con el que los usuarios interactúan;
- Afuera En programación: capacite a las computadoras para que produzcan constantemente el comportamiento que ven en los datos.
La primera opción proviene de la programación informática tradicional / estándar . Aquí, el programador tiene el control total sobre cómo el sistema produce su salida. Así es como se ha definido la ingeniería desde la revolución industrial. Pensamos profundamente sobre cada parte del sistema y cómo interactúan. Escribimos todas las reglas del juego, probamos que esas reglas no se desvían del comportamiento esperado y tratamos de gestionar la creciente complejidad de nuestros sistemas utilizando reglas y patrones de diseño adicionales.
La segunda opción proviene del aprendizaje automático . Aquí cedemos el control de la escritura de reglas a las máquinas. Hacemos esto porque muchos de los desafíos que enfrentamos ahora en el software no pueden resolverse escribiendo reglas que los humanos entiendan. Intente utilizar la programación estándar para reconocer una cara en una imagen, la identidad de una persona que habla, un código malicioso, una cartera financiera óptima, para crear un automóvil autónomo, mostrar el mejor diagnóstico para un paciente, los mejores candidatos químicos para una nueva droga, los temas que existen en miles de documentos, estructuran una campaña de marketing rentable, pronostican accidentes en el lugar de trabajo o crean un servicio de chat que puede responder a un número y un tipo de preguntas aparentemente infinitas.
No podemos abordar los desafíos más grandes de la actualidad escribiendo reglas explícitas utilizando codificación estándar. Está más allá de nuestra capacidad descubrir cuáles son esas reglas y, por lo tanto, debemos aceptar que nuestro estilo reduccionista de resolución de problemas se está convirtiendo rápidamente en un enfoque anticuado para los sistemas de ingeniería.
Aceptar la naturaleza de “caja negra” del aprendizaje automático no es algo natural para aquellos a quienes se les ha enseñado que la ingeniería se trata de saber cómo funcionan los sistemas en su nivel más profundo, y que mediante reglas de codificación rígida podemos producir máquinas que resuelvan problemas. Pero es algo natural para aquellos que están acostumbrados a usar la tecnología en un nivel superior de abstracción, incorporando cosas como el comportamiento humano y otros conceptos más suaves en el proceso de fabricación de productos de software. Estas personas no intentan revelar las leyes básicas fundamentales, sino que son más estratégicas y conceptuales en su enfoque para resolver problemas. Por lo tanto, su nivel de comodidad puede provenir de cómo piensa utilizar la tecnología.
Esto puede sorprender a quienes buscan ingresar al aprendizaje automático y, en particular, a la Ciencia de datos, donde resolvemos desafíos muy estratégicos utilizando un software que explica y predice el uso de sus propias reglas aprendidas. Las habilidades necesarias en un campo como Data Science tienen que ver con aprender a trabajar con máquinas, en lugar de cómo construirlas desde cero.
Por lo tanto, el aprendizaje automático es más satisfactorio para muchos porque puede resolver problemas mucho más complejos que con la programación tradicional basada en reglas. También es menos satisfactorio para aquellos que desean un control explícito sobre cómo cada pieza de programación produce sus resultados. Por supuesto, el software siempre necesitará ambos enfoques, pero la codificación estándar se está relegando al andamiaje que mantiene el aprendizaje automático en su lugar.
Los 2 roles modernos para construir software basado en datos son Ingeniería de Datos y Ciencia de Datos . Mi consejo para aquellos que buscan ingresar a los datos es decidir en qué campamento, según lo anterior, se sienten más cómodos. La ingeniería de datos está más cerca del enfoque estándar, ya que esta área construye sistemas para mantener el aprendizaje automático funcionando sin problemas y hacerlo funcionar con las otras piezas más tradicionales de la aplicación. Data Science trata más sobre el arte de hacer que las máquinas escriban reglas excelentes, basadas en los datos que hemos reunido y preparado, y nuestra capacidad para validar modelos tanto estadísticamente como en base a los comentarios de los usuarios. Data Science combina la comprensión matemática con los conceptos de comportamiento, creando un software que se adapta a su entorno a través de los datos a los que está expuesto; no usar reglas explícitas codificadas por personas.
Por supuesto, su función siempre combinará un poco de ambos campos, pero es importante decidir cómo le gusta abordar los problemas. El aprendizaje automático es una forma fundamentalmente diferente de crear software, y solo estamos comenzando a comprender cómo llevar su potencial al mundo tradicional de la programación basada en reglas. Hay mucha fricción en la intersección de estos 2 campamentos, pero con la fricción viene una oportunidad increíble para hacer mejores productos.