¿Puedes crear IA creando un algoritmo bastante simple que sigue desarrollándose?

A2A.

Es posible.

Hay un campo bastante nuevo llamado programación evolutiva.

El diseñador de tareas establece una meta para el programa y el programa, al probar varias combinaciones, intenta reducir la distancia entre una salida de prueba y la meta establecida por el diseñador. Después de varias iteraciones (pueden ser miles o incluso millones), ¡evoluciona con suficiente aptitud para alcanzar la meta!

Algoritmo Evolutivo: Evolucionando “¡Hola, Mundo!”

Del mismo modo, un robot puede ser entrenado para recoger latas de refresco mediante la evolución de estrategias a través de prueba y error, variando la secuencia de operaciones para detectar y recoger latas de refresco.

Robby puede moverse en 4 direcciones, en una cuadrícula de celdas rectangulares, una celda a la vez. Puede intentar recoger una lata. Si hay una lata, tiene éxito y obtiene una recompensa de 10 puntos. Si lo intenta en una celda donde no hay lata, recibe una penalización de -1. Si se mueve más allá del área de la cuadrícula completa, se estrella contra las paredes y recibe una penalización mayor de -5. Su trabajo es maximizar sus puntos de recompensa.

Al probar varios movimientos en varias pruebas, Robby puede desarrollar una estrategia para maximizar las recompensas por una colocación determinada de latas de refresco.

Robby The Robot

Karl Sims ha demostrado cosas más avanzadas en criaturas virtuales en evolución que nadan, saltan y hacen otras cosas en un entorno determinado.

Este emocionante campo tuvo su comienzo en la idea de Autómatas celulares y el Juego de la vida. El instituto Santa Fe imparte un curso completo sobre estos temas. Me encantó.

Intenté esto cuando tenía quince años, pero no fue muy exitoso. Entonces empecé a pensar por qué. Me di cuenta de que incluso cuando la evolución puede parecer un algoritmo aleatorio que podría implementarse fácilmente, no lo es. Si solo lanzas un puñetazo de “criaturas” en un mundo virtual, no obtendrás nada más que ruido aleatorio y muy poca progresión. Necesitamos algo mas. Debemos tener un objetivo o una forma de medir el rendimiento de las criaturas. De lo contrario, las criaturas no pueden evolucionar. Ahora, si queremos que el objetivo sea “las criaturas deberían ser inteligentes”, es demasiado vago y requeriría que definamos qué es exactamente la inteligencia. Tenga en cuenta que la evolución natural tiene un objetivo diferente; su objetivo es podar a todas las personas que no son aptas. También podemos pensar que la evolución natural no tiene un objetivo, ya que esta poda surge naturalmente del sistema porque cuando un entorno cambia, los animales deben cambiar también para sobrevivir. Podríamos simplemente “matar” una cierta cantidad de criaturas, pero aún necesitamos una manera de decidir qué criaturas matar. Pero supongamos por diversión que tenemos un objetivo y podemos matar criaturas que están demasiado lejos de eso.

Nuestro siguiente problema es construir un marco que permita modificar su propio código. Podemos usar cualquier lenguaje de programación o cualquier presentación de un programa que pueda implementar el conjunto de instrucciones que la criatura “ejecuta” en el mundo. Ahora suponga que le dan dos criaturas con un código diferente y que otra de ellas encaja mejor en el mundo que otra. ¿Cómo puedes fusionarlos para que la criatura resultante sea al menos tan buena como la mejor? Tendría que tomar las partes de ambos que condujeron al éxito en ellos. Necesitamos esto para ver cualquier progresión en nuestras criaturas. Otra forma es aplicar alguna mutación aleatoria para obtener mejores criaturas. Pero las computadoras son malas en cosas aleatorias. Recuerda que en la naturaleza, las criaturas no quieren cambiar, ya que casi todos los cambios aleatorios son fatales. Todavía las criaturas cambian debido a la inestabilidad de los procesos en la naturaleza. Pero, ¿qué estás cambiando realmente? Código fuente textual? ¿Codigo de maquina? ¿O algo mas? Lo que sea que estés cambiando, existe un gran peligro. Lo más probable es que cambie la fuente para que quede atrapada en un bucle infinito y ni siquiera lo sepa. Esto se llama problema de detención de Turing que no se puede resolver en la máquina de Turing. Las máquinas de Turing son dispositivos computacionales que pueden calcular cada función matemática que pueda existir. Pero, ¿y si no existe tal función? Sus máquinas están atascadas para siempre mientras intentan calcular un valor para alguna función inexistente.

Estos fueron problemas que enfrenté un verano. Tendría que construir un dispositivo computacional que sea más adecuado para este estilo evolutivo y una forma de medir qué tan buenos son sus intentos actuales. Entonces debes deshacerte de las criaturas que no encajan y empujar a las buenas para que sean aún mejores. Sin embargo, es probable que sea muy lento (como lo es la evolución natural) y realmente no es factible en la práctica.

Ya

Cualquiera puede crear. El núcleo principal aquí es el mecanismo de retroalimentación adaptativa (Plasticidad), aquí espero que use la palabra “Desarrollo” para ser actualizado ambientalmente, El ritmo de actualización inducirá cuando el conocimiento cibernético de una IA disminuya con respecto a las variaciones del medio ambiente.

Hace unas semanas leí sobre los memistors, que pueden imitar el comportamiento de las neuronas. Las neuronas pueden tener un comportamiento constante continuo por plasticidad e inducirán una anatomía neuronal de bajo nivel y por un mecanismo transversal cuando el entorno tenga diferentes niveles de variaciones, creará automáticamente una organización de alto nivel. Puede estar pensando que eso sería un progreso escalar, y para la plasticidad necesita un vector archivado para el progreso, al igual que nosotros, los humanos, deseamos y queremos estar cómodos, para que se pueda programar Ai que les pueda dar un ritmo vectorial.

Eso es extremadamente difícil de implementar. Técnicamente, puede hacerlo, pero llevaría mucho tiempo y una cantidad dolorosa de propagación hacia atrás.

También deberá poder establecer su objetivo para que coincida con el objetivo final de la biología, que en sí mismo es una tarea muy difícil.

Algoritmos como el descenso de gradiente no son suficientes.

Ahora no sé demasiado sobre IA, pero puedo intentarlo.

¿Quieres un algoritmo simple?

Echemos un vistazo a los residuos.

Esto se ajusta a los valores debido a sus entradas de datos. Podemos trazar los valores como un conjunto de matrices. Definamos las matrices para que sean x e y. Podemos conectar x e y para obtener la ecuación de desviación estándar de la siguiente manera:

Ahora conecte la desviación estándar en la función 1 / (1 + e ^ -t) donde t es la desviación estándar. Use esta ecuación y su derivada parcial para trazar un gráfico en constante cambio con +4 variables, actuando como una corriente (vea las funciones del área de superficie). Ahora podemos utilizar esta función de “flujo” R ^ 4 + para obtener una función con muchas variables para aumentar la flexibilidad.

Haga lo que haga, no defina nada como definitivo y haga que n, sy R puedan cambiar. Sin embargo, creo que utilizar el método de desviación estándar es clave para hacer un cambio automático ai que sea excepcionalmente preciso.

También encuentre una función en la que se propague de nuevo a una función alternativa. Su clave es utilizar técnicas de aprendizaje automático, pero en múltiples dimensiones computacionales.

Ayude a la máquina a descubrir el resto de los datos por sí misma y proporcione un programa gratuito como el bloc de notas y la computadora para que trabaje y juegue con un sistema de hardware especializado.

No sé, todo esto es teórico, ¡pero espero que esto haya ayudado!

Ya existe un paradigma que es similar; Es el cálculo evolutivo. Es capaz de desarrollar programas por medio de un mecanismo evolutivo (como reproducción sexual y asexual, supervivencia de los mejores individuos hasta ahora, etc.). He estado escribiendo un programa que puede desarrollar un programa y guardarlo en un archivo para su uso posterior. Creará una jerarquía de archivos y categorizará los problemas resueltos (problemas combinatorios, etc.). De esa manera podrá reconocer problemas ya vistos o similares y usar su conocimiento para resolver problemas no vistos. También es posible guardar una solución provisional temporalmente como una terminal o función (es decir, un tipo de función auxiliar, que solo se usa en la ejecución actual).

Todo lo que necesita es un robot inteligente muy bien construido con software y hardware que física e inteligentemente pueda escribir el código del programa en una computadora que compila y carga los nuevos programas ingeniosos en los nuevos robots, digamos en una fábrica. El algoritmo debe aprender, crecer y evolucionar con cada recurrencia y heredar su código padre, así como tener un código propio y poder “reproducirse”. En este caso, la reproducción se produce creando la vida de otro robot diseñando, haciendo, programación, sus muchos hijos propios.

Eso probablemente depende de tu definición de IA y simple.

Pero en teoría eso sería posible, sí.

Un ejemplo simple serían los algoritmos genéticos. Utilizan un algoritmo bastante simple, en este caso inspirado por la evolución, para optimizar el comportamiento hacia un determinado objetivo. Dado que este tipo de algoritmos cuentan para la rama de inteligencia artificial de la informática, los comportamientos resultantes podrían describirse como inteligencia artificial.

Odio cuando la gente trata de pensar en el aprendizaje automático como si las computadoras pudieran ser autónomas.

El aprendizaje automático de hoy (no puedo hablar sobre el de mañana) no es más que modelos estadísticos altamente controlados. Es posible crear una máquina que evolucionará dados los parámetros apropiados, pero eso no la hará inteligente.

El problema es visible en su pregunta, si puede definir muy claramente “desarrollarse” tiene la respuesta.

Si comienzas con nada o casi nada quieres es mejor? ¿Qué dirección tomar?

Se llama bootstrapping (y la idea es tan antigua como Bootstrapping (compiladores), es decir, 1960). Mire también en el blog de J.Pitrat (titulado “inteligencia artificial de arranque”) que tiene varias entradas y muchas referencias en torno a esta idea.

Sin embargo, un metaprograma capaz de generar algunos programas “interesantes” o “útiles” no es tan simple. Vea también Metaprogramación y programación de etapas múltiples. Entonces, ese enfoque interesante requiere mucho trabajo (humano) para ser experimentado. En otras palabras, el “punto de partida” o “programa inicial” es mucho más complejo de lo que sugiere. Y simplemente generar programas aleatorios no es suficiente (ya que es mucho más probable que obtenga aleatoriamente un programa que falla, o un programa que borra datos esenciales en la computadora -eg Eurisko “inventando” una regla que se borró a sí misma), que un programa que se mejora a sí mismo) .

(y lamentablemente vivimos en una era donde los proyectos a largo plazo no son muy bienvenidos: recuerde el comentario de Brook en The Mythical Man-Month: si una mujer necesita 9 meses para tener un bebé, 9 mujeres no tendrán un bebé en un mes … .; también este enfoque de arranque no dará resultados muy “interesantes” al principio, pero creo, como J.Pitrat y quizás N.Bostrom, que este enfoque es necesario para AGI)

Yo diría que eso no requiere mucho (ni nada) en términos de IA. Los científicos ya están jugando con nanobots que pueden crear copias de sí mismos en el mundo físico. Hacer eso (con mutaciones controladas) en el mundo del software es magnitudes más simples.

Entonces sí, absolutamente.

More Interesting

¿Cuáles son los próximos mejores MOOC en el área de aprendizaje automático, aprendizaje profundo, visión por computadora e inteligencia artificial en 2017?

¿Debería otorgarse a una inteligencia artificial sensible los mismos derechos que a un humano, por qué o por qué no?

Cómo hacer una IA de mí mismo

¿Crees que la inteligencia artificial es alcanzable? Quiero decir, ¿podemos "realmente" hacer pensar a las máquinas? ¿Si es así por qué? Si un gran no, ¿por qué?

¿Cuándo crees que se creará AGI?

¿Cuáles son las garantías contra un motor de inteligencia artificial que toma la decisión equivocada?

¿Quién parece más cercano a dar a luz una inteligencia artificial fuerte?

¿Qué opinas de los artículos que afirman que la IA matará a millones de empleos? ¿La IA generaría nuevos empleos?

¿Temen los humanos que puedan ser dominados por una Inteligencia Artificial?

¿Crees que la IA sobrehumana que es capaz de conquistar a la humanidad se desarrollará durante nuestra vida?

¿Es cierto que MIT USA ha desarrollado una IA que predice el futuro hasta dos segundos?

Cómo hacer mi propia inteligencia artificial como Jarvis teniendo una mente profunda como Google, qué lenguajes de programación debo aprender

¿Cuáles son las posibilidades de que una IA súper inteligente ya exista en otro planeta en el universo?

Estoy interesado en aprender sobre los conceptos básicos de la inteligencia artificial, ¿hay algún lugar en particular en el que deba comenzar?

¿Es la tecnología AI la última frontera de la capacidad humana?