¿Cuándo sería posible que los algoritmos de aprendizaje por refuerzo (RL) pudieran aprender ingeniería de software a través de MOOC (cursos en línea abiertos masivos)?

Es una combinación de velocidad del procesador y avances algorítmicos. Tenga en cuenta que si bien creemos que los humanos aprenden rápido de los videos, no comienzan aprendiendo rápido. Primero tienen que aprender el lenguaje y los conceptos lentamente durante un período de años.

En el proceso de hacer esto, están mejorando sus propios algoritmos de “aprendizaje observando”.

Simplemente no pasamos tanto tiempo criando a nuestros robots, por lo que en realidad no estamos tratando de duplicar la competencia del ser humano, sino saltar sobre él con un sistema que puede comenzar, desde el primer día del robot, a los 3 años humanos. viejos niveles y subir desde allí.

Esto puede ser parte del problema que estamos teniendo. No estamos incluyendo los pasos de aprender a aprender que siguen los humanos. Entonces nuestras redes no están haciendo el mismo nivel de proceso adaptativo con el tiempo.

Creo que no estamos muy lejos. En términos de velocidad y capacidad puras, sin procesar, estamos llegando rápidamente en el lado del procesador. Pero todavía tenemos formas de avanzar en el lado motor y sensorial (táctil). Creo que sucederá, y sucederá muy rápido muy pronto.

Puse el número “lejano” en aproximadamente 12 años, y la fecha “más próxima” en aproximadamente 4. Realmente estamos muy lejos. Puede parecer que ni siquiera estamos cerca porque, como un automóvil que solo necesita bujías, no parece que podamos hacer nada que valga la pena. Pero creo que estamos muy cerca.

La combinación de automóviles sin conductor que aprenden a navegar por el mundo, los sistemas de reconocimiento de objetos que recorren los índices de Facebook y Google y similares, se está acumulando un mundo de conocimiento.

Un ser humano, la mayoría de nosotros, pasa casi 12 años coordinado. Esto debe tenerse en cuenta. ¿Por qué esto toma tanto tiempo?

Observamos y nos sentimos satisfechos con un robot que aprende a doblar ropa, por ejemplo.

¿Pero esperarías que un humano de 2 años pueda hacer eso? Probablemente no.

Hemos trabajado duro para evitar el algoritmo humano de 12 años de aprender los movimientos de su cuerpo y coordinarlos, y nos estamos acercando bastante a hacerlo, notablemente cerca.

La parte difícil de la codificación a pesar de mirar no es la codificación. Esa es la parte que la máquina hará más fácilmente. La parte difícil será comprender el dominio del problema. Este es un gran problema para los programadores ahora. Puede entregarle a un programador de experiencia un problema claramente establecido en términos lógicos y le ofrecerá una solución con bastante rapidez. Pero esa no es la forma en que se les entregan los problemas / a nosotros (a veces codifico). Los problemas nos son entregados en este tipo difuso de “sabré lo que quiero cuando lo vea”, en la cual el elemento más complicado para acertar es conseguirlo para que el humano que eventualmente lo use lo encuentre es útil, o que la situación del mundo real en la que eventualmente funcionará no presentará casos extremos inesperados.

He aquí por qué sigo pensando que estamos relativamente cerca. Pienso en la predicción de Kasparov de que pasaría una década o más antes de que una computadora pudiera vencerlo, cuando fue derrotado poco más de un año después de decir eso. La diferencia entre algo con el 90% de las piezas funcionando que necesita y algo con el 100% no es una diferencia del 10%. Es una diferencia de ir / no ir.

Creo que ahora tenemos el 90% de las piezas en su lugar. No sabemos exactamente cuáles son los otros 10%, pero no es solo un laboratorio trabajando en él, se está trabajando en todas las escuelas y universidades, en todas las empresas que hacen cosas con robots, y en algunos garajes silenciosos alrededor del mundo. Está muy cerca

Aún así, sé cómo a la gente le gusta pensar que la primera computadora, más inteligente que una humana, en la codificación comenzará esta espiral ascendente que inmediatamente obsoleta a todos los humanos. El problema con eso es que, lo más probable, se convertirá en otra herramienta para que los humanos multipliquen su producción. Incluso ahora multiplico mi salida dramáticamente usando analizadores estáticos y asistentes de finalización de código que intentan adivinar lo que quiero para poder ir más rápido. Seguirá siendo el mismo tipo de actos en el trabajo.

Probablemente tendremos IA capaces de programar (es decir, una declaración del problema para una competencia de programación competitiva típica: generar código para resolver el problema) dentro de los 5 años más o menos y no me sorprendería si sucediera para el 95% + de problemas en menos de 2 años; y capaz de reemplazar a la mayoría de los programadores de nivel bajo a intermedio en 10 años más o menos.

Los robots que aprenden a programar a partir de videos a través del aprendizaje por refuerzo (RL) es dramáticamente más difícil: me sorprendería mucho si sucede dentro de 20 años, probablemente no por mucho más tiempo. RL para aprender secuencias mecánicas es bastante simple, RL para programación: no hay un camino obvio hacia adelante y puede que nunca lo sea.