¿Es posible que AI modifique su código, ya que necesita un código para decirle qué hacer?

Depende de su definición de “código”. El código, como la mayoría de los ingenieros de software sabe, es un lenguaje de programación, un lenguaje “comprensible para los humanos” que se utiliza para interconectar los dos mundos. La mayoría de los lenguajes, como C / C ++, se compilan en instrucciones de montaje que, por consiguiente, se convierten en instrucciones de la máquina. Sin embargo, un modelo de adaptación dinámica generalmente está compuesto de “parámetros”. Los últimos avances en la IA han usado “Redes neuronales profundas” para “entrenar” algoritmos que pueden reconocer imágenes, habla, videos, idioma, lo que se le asigna a una etiqueta específica (clasificación) o un rango específico (regresión). Sin embargo, las redes neuronales profundas están tomando lentamente todo el código del lenguaje de programación al sustituirlo por matemáticas, funciones matemáticas puras que luego se convierten directamente en código de máquina. Así que los algoritmos en sí mismos están entrenados en los datos, por lo tanto, los datos y la aleatoriedad (naturaleza estocástica de tales sistemas) es lo que influye en cómo el algoritmo hace las cosas. También una gazzillona otras cosas como la arquitectura y los modelos hiperparámetros influyen en eso, pero una arquitectura cuidadosamente seleccionada puede alcanzar niveles humanos en muchas de las tareas (visión, habla, aprendizaje por refuerzo, etc.). Ha habido intentos de que las redes neuronales profundas aprendan “programas”, no solo algoritmos, sino programas completos que pueden hacer cosas complicadas. Echa un vistazo a estos papeles.

[1509.06461] Aprendizaje de refuerzo profundo con doble aprendizaje Q

[1511.06581] Arquitecturas de red en duelo para un aprendizaje de refuerzo profundo

[1511.06279] Programadores e intérpretes neuronales

[1511.08228] Las GPUs neuronales aprenden algoritmos

Estos documentos muestran cómo enseñar a una máquina a aprender programas, puede restringir su capacidad por los datos que le proporciona, o en el caso de los 2 principales, por el sistema de objetivo / recompensa que implementa en el sistema.

¿Puede una máquina aprender a operar fuera de su programa normal?

Si el programa en sí es un algoritmo de aprendizaje, entonces podría potencialmente cambiar todo excepto el algoritmo de aprendizaje, que son las piezas de construcción de todo lo demás.

Si el programa no es un algoritmo de aprendizaje, es probable que el sistema no pueda reprogramarse.

Estos son solo una pequeña parte de un campo grande y complejo. Para obtener más información, vaya a google scholar y busque aprendizaje de refuerzo profundo o programadores neuronales.

Un buen ejemplo de este tipo de técnicas es, de hecho, la máquina que hoy acaba de superar al número 2 en el mundo en Go.

En realidad, Elon Mush no cree que la IA pueda ser controlada, ni siquiera por el código inicial que dicta qué códigos puede escribir la propia AI.

He escrito dos programas de inteligencia artificial, tanto redes neuronales como, más concretamente, un feedtron de múltiples capas con retroalimentación hacia adelante. El primero fue para un experimento BOEING, el segundo fue para un fondo de cobertura.

AI es un término genérico para muchos tipos diferentes de programas que “aprenden y se adaptan”. Ciertas cosas como lo que escribo, NO PUEDEN sobrescribirse para hacer nada porque solo se permite sobrescribir los valores de los datos, no el contenedor de los datos o los algoritmos internos. Es como una neurona en tu cerebro que puede aprender y alterar las vías del cerebro para ayudarte a aprender diferentes cosas, pero nunca puede cambiar el cerebro a un corazón.

La mayoría de las formas de IA, incluso Watson, Deep Blue de IBM solo manipulan datos. Los algoritmos son funciones estáticas preprogramadas que permiten un mejor procesamiento de los datos.

Ahora, una forma de IA, sin embargo, no solo se reescribe para hacer lo que sea, sino que está programada para hacer precisamente eso. Si tienes miedo de cualquier rama de la IA, ¡esto es todo! Algoritmo genético.

Si una red neuronal simula el cerebro biológico, entonces GA simula la evolución biológica de los genes. Comienza como una serie aleatoria de operaciones o ADN, como {+, -, power, root, derivative}. Se basará en sus recursos disponibles para crear copias de sí mismo hasta que se quede sin memoria o CPU. Sólo crea unas pocas copias de sí mismo en cada ciclo.

Cada vez que se replica, se activa una función de mutación, y toma aleatoriamente uno o más de esos operadores y los agrega, elimina o reemplaza. Cada replicación es un ciclo. Después de cada ciclo de replicación, la entrada (de nuevo, los datos) se envía a través de cada ADN y ver qué número se envía, si se acerca al valor real, el ADN se fortalece a través de la función, si se hace más lejos, se debilita o muere . Entonces comienza el siguiente ciclo de replicación.

En la IA, las pruebas básicas son generalmente la función AND u OR. 1 Y 1 es 1, 1 Y 0 es 1, 0 Y 0 es 0. GA dado suficientes recursos, puede resolver problemas matemáticos difíciles durante la noche. Un problema resuelto por una súper computadora hace unos años tomó meses, pero GA lo resolvió en 3 días.

Ahora todo esto sigue siendo datos. PERO es lo que representan los datos y está vinculado a … ese es el problema del mundo real. En mi programa BOEING AI, las entradas representaban todas las entradas en el motor de un avión, como combustible, aire, relaciones de compresión, etc., y la producción es un subproducto dañino como el dióxido de carbono u óxidos de nitrógeno. La salida podría usarse para ingresar a otra máquina, por ejemplo, una motosierra que dice output1 – potencia, output2 – vector de dirección, output3 – fuerza, output4 – objetivo (¿humanos?).

Cada campo de AI en sí mismo no da miedo, pero si los unes, un AI puede aprender a agrupar cosas en sus propias categorías (función actual de AI de reconocimiento facial), puede aprender qué es bueno y qué es malo (aprendizaje estatal). puede cambiar su código a través de GA para que pueda definir sus propias categorías de lo que es bueno y lo que es malo. Entonces … todo el infierno se desata.

Sí (a la pregunta del título). No (a las otras preguntas).

Piensa cómo aprenden los humanos. Se les da el algoritmo y lo adaptan a su propio sistema (leer un libro o se les muestra un método), o por su cuenta a través de prueba y error.

Por lo tanto, una máquina solo necesita tener bloques de construcción predefinidos, que luego se pueden juntar en un esfuerzo por completar una tarea. Los humanos hacen lo mismo; tenemos firmware predefinido para mover, emitir sonidos y almacenar información nueva. Solo combinamos y refinamos aquellos para realizar tareas altamente complicadas como caminar, hablar / cantar, razonar y aprender.

Estamos pensando en las máquinas como óptimas y siempre correctas. Pero no funciona así. Para lograr tareas avanzadas (como aprender cosas nuevas), debemos aceptar un rendimiento por debajo del óptimo y la posibilidad de errores. Una máquina que aprende nuevos trucos por su cuenta * necesitará * tiempo para hacerlo bien la primera vez. Sin embargo, ese tiempo podría ser una fracción de lo que los humanos necesitan.

Pero en cierto sentido, esto hace que el círculo vuelva a lo que escribiste. Una máquina se limitará a los límites de sus bloques de construcción de firmware. Como los humanos también lo son: no todos son cantantes de ópera, aunque todos pueden cantar. Al igual que el hardware actual, también lo es: los controladores de dispositivos más nuevos aumentan el rendimiento a niveles que el hardware pudo realizar desde el principio.

Pero, de nuevo, las máquinas pueden llegar a un punto en el que pueden desarrollar su firmware por su cuenta. Al igual que hacen los atletas y los artistas.

Una de las bellezas de trabajar en AI en LISP es que modificar su propio código es realmente fácil de hacer, ya que todo es puntero.

Han estado escribiendo programas de IA que alteran su propio código desde los años 70. Uno de los primeros ejemplos es la investigación de Gerald Jay Sussman. El juego que juegas aquí es para que la IA desarrolle un primer corte en un programa para resolver un problema, la IA descubre dónde va mal y luego la IA se depura a sí misma: un modelo informático de adquisición de habilidades es su tesis doctoral. ¡Excelente trabajo!

También hay muchos sistemas de software que utilizan técnicas de aprendizaje automático para modificar su propio código de una manera u otra. Esto puede ir desde el ajuste de parámetros o ecuaciones hasta el uso de un subsistema ML para generar código.

Dadas las restricciones de hardware actuales, no.

Sin embargo, con un enfoque más fluido de la computación, en lugar de tener registros y puertas, que no son mutables, tener conexiones y núcleos de cómputo que cambian sobre la marcha podría replicar cómo “piensa” la vida orgánica. Tenga en cuenta que en este momento las computadoras son mucho menos complejas que el cerebro humano, pero en general son más rápidas en los cálculos. Una vez que ese puente de hardware se cruza, no se sabe qué pasará.

Un programa de computadora es sólo una secuencia de números.
Y los programas de computadora pueden trabajar, y generar números.

Los programas conocidos como compiladores generan programas todo el tiempo, incluidos otros compiladores.

Una IA con la capacidad predictiva de un ser humano podría escribir código.
Y eso podría incluir su propio código. Obviamente.

Sin embargo, mi conjetura es que una IA moderna probablemente será más como una red de componentes flexibles, que se modifican a sí mismos, no en términos de código, sino en términos de cómo se extiende e interconecta el gráfico de elementos.

Si entiendo bien la pregunta, significa que una inteligencia no puede evolucionar porque no puede ir más allá de lo que ya tiene, porque el estado evolucionado tendría que estar dentro del algoritmo en primer lugar, bueno, incluso que la inteligencia humana. está restringido a lo que ya puede hacer, pero la historia nos muestra que estamos evolucionando. De lo que sería la pregunta ¿cómo evolucionamos?
En lo que respecta a la evolución, los cambios básicos son modificaciones aleatorias que son correctas, y eso sería factible para un algoritmo.
También los seres inteligentes pueden obtener un aprendizaje más inteligente del entorno.
Una IA muy avanzada podría hacer algunas modificaciones aleatorias guiadas a una copia de su código o ser programada para obtener conocimiento del mundo exterior para hacer una posible versión mejorada de sí misma como una inteligencia no artificial.

Ya que sacaste el tema de la alteración del futuro de la IA, te recomendaré que leas un libro de Nick Bostrom.

Trayectorias, peligros, estrategias: Amazon.es: Nick Bostrom: 9780199678112: Libros

Ya hay programas auto-modificables. Pero eso no es lo que estás pensando.

Actualmente, ninguna IA puede alterar su código significativamente.

¿Habrá alguna vez tales IAs? Probablemente. Nuevamente, esto se reduce a la pregunta de si alguna vez habrá una IA fuerte (ver Inteligencia general artificial)

Sí.

Piensa en los seres humanos. Nuestra programación principal es, en cierto sentido, nuestro genoma (los genes en su ADN). Podríamos alterar ese código si quisiéramos, lo que cambiaría la forma en que operamos. Por supuesto, esto también podría significar que podrías dañarte de alguna manera.

Así que, en esencia, una IA podría agregarse a lo suyo. Solo tiene que hacerlo bien el primer intento. 😉

Excelentes respuestas aquí, pero me sorprendió que nadie ofreciera ningún informe de los principales medios de comunicación actuales sobre este tema. Aquí hay un artículo reciente sobre la tecnología recién obtenida de Google que puede permitir que su IA se programe a sí misma, lo que puede ser de interés: la nueva computadora de Google con capacidades de aprendizaje de tipo humano se programará por sí misma

Duh … ya se está haciendo y se ha hecho durante unos años.

El autoaprendizaje y los sistemas adaptativos están en el corazón de una buena IA.

Mella.

La gente cambia su propio código todo el tiempo. Lo mismo ocurre con los perros, monos y loros inteligentes. Eventualmente, algunas IA harán lo mismo de manera rutinaria.