Puede suceder eventualmente, pero luego será el último trabajo en ser automatizado.
¿Por qué?
Mientras existan otros trabajos, los ingenieros de software siempre encontrarán algo para optimizar y automatizar. (Otra pregunta surge sobre si queremos vivir en el mundo donde todo está optimizado y automatizado, pero esa es una historia completamente diferente).
- ¿Serán AI los únicos que escribirán novelas en el futuro o habrá un mercado para los escritores humanos?
- ¿Cuáles fueron los 10 problemas principales en Machine Learning para 2016?
- ¿Qué significa un abandono en las redes neuronales?
- ¿Cuánto costaría producir un robot BMO Adventure time? ¿Podrían Samsung o Apple hacerlo?
- ¿Qué tipo de matemática se usa en el aprendizaje automático y cómo se puede aprender?
No hay duda de que los trabajos de ingeniería de software sufrirán cambios significativos debido a la influencia del aprendizaje automático. Es probable que se desarrollen algunas herramientas que ayudarán a los programadores a (casi) deshacerse de su trabajo de rutina, como corregir errores o realizar pruebas. De hecho, ya se han hecho progresos destacados en este campo. Algunos avances recientes se pueden encontrar en los documentos:
- DeepCoder: Aprendiendo a escribir programas
- Síntesis del programa neuro-simbólico
- RobustFill: Aprendizaje del programa neuronal bajo E / S ruidosa
- Bayesian Sketch Learning para la síntesis del programa
Sin embargo, aparte de eso, muchos trabajos de ingeniería de software requieren bastante creatividad. Actualmente, las habilidades de las máquinas se limitan a lo que la gente les dijo que hicieran. No tome mis palabras literalmente: por supuesto, los ingenieros no programan instrucciones paso a paso a las máquinas exponiendo en detalle cada etapa de lo que debe hacer la máquina. En cambio, generalmente usan modelos razonables con capacidad de generalización y los entrenan. El proceso de entrenamiento a veces puede ser muy complicado e implicar aleatoriedad (por ejemplo, cuando se trata de ajustar parámetros a los datos a través del descenso de gradiente estocástico). Por lo tanto, los resultados producidos por un modelo y su rendimiento general pueden ser inesperados e incluso bastante sorprendentes. ¿Tiene algo que ver con una creatividad real? Bien quizás. De todos modos, en última instancia, lo que cualquier programa creado por humanos intenta hacer es resolver un problema específico utilizando un modelo específico proporcionado por humanos.
Esta es una limitación significativa de la IA actual. Para diseñar un sistema o un nuevo algoritmo, a veces, los ingenieros tienen que pensar fuera de la caja: generar ideas no estándar, realizar una investigación exhaustiva, hacer algunos cálculos, configurar los experimentos necesarios y analizar sus resultados. En mi opinión, si un programa de computadora es capaz de hacer algo como esto, significaría que hemos construido una IA “fuerte” real. Por ahora, puede parecer que no es realista, pero, teniendo en cuenta la velocidad del desarrollo tecnológico y las opiniones de algunos expertos en la materia, podría ser posible.
Por lo tanto, mi punto es que los ingenieros de software son irremplazables, al menos, hasta el punto en que la ciencia ficción sobre las máquinas “pensantes” se hace realidad.
(Una escena del Hombre Bicentenario )