elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Cómo avanzar en IA? O cómo obtener soluciones "efectos".
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo avanzar en IA? O cómo obtener soluciones "efectos".  (Leído 2,294 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.412


Hackentifiko!


Ver Perfil
¿Cómo avanzar en IA? O cómo obtener soluciones "efectos".
« en: 16 Noviembre 2019, 20:46 pm »

Básicamente la situación es:
1- Hice un programa que averigua un número positivo entero que yo elija; le di al programa la habilidad de producir números positivos enteros y de preguntarme si adivinó.
2- Quiero complicarlo lo cual en cierto punto implicaría que averigüe una palabra simétrica que contenga una d y termine en ar (ej: radar).
3- Me doy cuenta de que eso implica que debo decir al programa cómo ver si una palabra es simétrica, si tiene d, etc.
4- Recuerdo que los programas los hago para averiguar qué acciones deben realizarse para cumplir ciertas condiciones, porque en muchos casos no sé averiguarlo, por lo que pienso que ponerme a pensar qué acciones debo realizar para que el programa vea si una palabra es simétrica, tiene d, etc, no tiene sentido.

Lo que tendría sentido es algo así:
1- Hago un programa que me dice cómo lograr algo. A eso le llamo efecto, crear/eliminar una variable o causar una modificación en una, sea a partir de otra, o por obtener alguna propiedad de otra (ej: Número de veces que contiene la letra d).
2- Complico el programa, lo cual en algunos casos implica agregar por ahí alguno de los efectos que me dió.

Más concretamente:
1- Hago un programa que averigua cómo ver si una palabra termina en lo que le pida.
2- Hago un programa que usando el efecto antes aprendido, averigua si un texto serviría como poema (aunque sólo estaría analizando si hay rimas).
Más o menos...

Pero estoy bastante perdido.

Yo estaba haciendo esto:
1- Planteo un problema sencillo, que puede resolverse mediante 1 acción.
2- Agrego variables de situación (VdS). Difícil explicar qué es esto, pero como el problema es tan sencillo, así como la condición que debe cumplirse, esto no tiene influencia. Cuando se trata de adivinar un número al azar que no cambia mientra intenta adivinarse, no hay variable/s. El número se menciona en la condición como un número fijo. Esto sólo importa cuando estas variables pueden ser modificadas por los candidatos y además la condición no puede cumplirse en 1 acción.
3- Agrego candidatos. Ahora es que esos 2 números tengan cierta relación, ya no hay uno elegido al azar.
4- Agrego efectos sencillos. Sólo influyen en las VdS, pero es irrelevante.
5- Agrego condiciones. Esto permite que puedan ser más candidatos, que cumplan más relaciones entre sí, nada más.
6- Complico las VdS. Siguen sin usarse, así que no importa. Pasan de ser números positivos enteros a negativos enteros, luego decimales, luego texto, imágenes, arrays.
7- Complico los candidatos. Esto complica su producción. No tiene sentido que sean imagenes ya que se pueden nombrar mediante números, llegado el caso las distintas imagenes serían distintos números.
8- Complico los efectos. Esto es lo que digo que no tiene sentido hacer.

Bueno, así continuaría, en cierto punto aumentaría la cantidad de acciones requeridas para resolver el problema, pero el punto es: ¿Qué hago?

Los efectos representan cosas que no controlamos. La gravedad, el viento, cosas que haga un rival, etc. Deben estar.
Y por otro lado, lo nuevo que me estoy planteando quizá me llevaría a averiguar cosas relativas a la programación, y no a la realidad, de afuera, que es la que me interesa. Una cámara de fotos que debe tomarse fotos a si misma no sé cuántas veces antes de tomar una de afuera, no sirve de mucho. Esto parece algo así, un método que debe perfeccionarse a si mismo no sé cuántas veces antes de poderse usar afuera.

Pero bueno... supongamos que la idea fuese buena. Porque los efectos averiguados sí servirían para plantear problemas de afuera.

Supongo que está bien lo del párrafo 2 y 3, pero a ver cómo encaja o lo encajo en lo que estaba haciendo.

Veamos qué aprenden estos programas en cada punto.
1- Cómo hallar un número < 10 por ejemplo. Una tontería.
2- Nada (sólo aprendo yo).
3- Cómo hallar un número < otro número por ejemplo. Aprende a controlar más variables.
4- Igual que 2.
5- Dependiendo de la cantidad de candidatos y condiciones, por ejemplo aprendería que haya excepciones (ej: N<N2<10 pero N!=1)
6- Igual que 2.
7- Igual que 2.
8- Se supone que no debo hacer esto mientras los programas no hayan aprendido cosas... interesantes.

¿Cómo logro que aprendan cosas "interesantes"?

El orden conque agrego o complico las cosas no es arbitrario.
Lo 1ero de estos programas son las VdS, si son necesarias.
Lo 2ndo son los candidatos.
Lo 3ero los efectos.
Lo 4to las condiciones.
Por eso 1ero agrego/complico algo relativo a las VdS, luego candidatos, etc. De esas 4 cosas, algunas tienen más posibles complicaciones que otras. En esos "huecos" agregaría cosas que no parecen relativas a alguna en especial, como cantidad de acciones requeridas para que haya solución.

¿Debo cambiar el orden...?

No creo.

Volviendo a la pregunta anterior: Supongo que planteando condiciones más relativas a esos problemas, pero digamos que yo no sé, o no quiero ponerme a pensar cómo, porque las cosas las tienen que averiguar estos programas.

Un ejemplo claro...
Digamos que quiero hacer un programa que me diga cómo ganar en un juego de tenis en el cual es posible hacer tiros con comba. Para que el programa pueda responderme debo decirle "la física" del juego. Pero el proceso que hacen las combas no lo sé. ¿Puedo hacer un programa que lo averigüe o no? Como se trata de algo visual, tal vez sí: El programa inventaría procesos y yo mirando los resultados le diría cual se aproxima más. Más o menos llegaría a algo igual. O sea que... ¿no es necesario que yo diga condiciones? Eso facilita las cosas... Porque el trancazo era que yo debía plantear condiciones, y parece que si no sé plantear ciertos efectos tampoco las condiciones que un efecto debe cumplir para ser ese efecto y no otro.

Whatever. Otro ejemplo, más sencillo:
En una situación, por algún motivo, a toda palabra que escribimos se le agrega s, y debemos cumplir ciertas condiciones al elegir una palabra. El efecto es, pues, agregarle s. Supongamos que yo no sé decir al programa cómo agregar s. Intento entonces hacer uno que aprenda a hacer eso ¿pero cómo sabe él si aprendió o no? ¿qué condiciones debo decirle?
El proceso es más o menos: Variable = Variable+"s".
La condición sería más o menos VariableInicial+"s" == VariableModificada
Pero supongamos que yo no supiera nada de eso. Hay efectos más complejos en que no sabría.

¿La solución es plantear efectos al azar y chequear "con mis ojos" si cumplen la condición (que no sabría describir)?
O tal vez plantear condiciones al azar y chequear "con mis ojos" si cumplen la condición de ser las condiciones que requiero.

 :-\

¿Cómo plantear efectos/condiciones al azar?

Siento que algo no encaja.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines