¿Cómo describirías la creatividad usando un algoritmo?

P: ¿Cómo describirías la creatividad usando un algoritmo?

A: Quizás primero, vea:

StoryAlity # 141 – The Robo-Raconteur – un escritor artificial de StoryAlity Theory

Bien, entonces, aquí está el algoritmo para la creatividad (también es el algoritmo para la Evolución, ve a la figura 😉 ¿Coincidencia? Tú eres el juez.

  1. Tome un grupo de cualquier cosa (por ejemplo, un grupo de genes, o de humanos, animales, invenciones, etc.) que compitan entre sí en al menos una característica medible (por ejemplo, en velocidad, economía o tamaño). , o fuerza, o llamar la atención, etc.)
  2. Elija uno (llámelo ‘A’) del grupo al azar
  3. Elija otro (‘B’), al azar
  4. Combina partes de los dos (partes de A, más partes de B)
  5. Tíralo (A + B combinado) de vuelta a la piscina
  6. Vea si compite (puntúa) mejor que el resto del grupo, en un criterio (por ejemplo, velocidad, tamaño, atraer la atención, etc.). Si lo hace, es: creativo.

7) Sigue repitiendo los pasos 1 a 6, para siempre. Sigue observando (etiquetando) a los creativos.

Una posible variación interesante

8 – (Después de un tiempo, comiencen a combinar los más creativos, juntos. ¡Miren lo que sucede!)

es decir, la definición estándar de creatividad (Runco & Jaeger 2012) = `nuevo, y funciona mejor que cualquier otra cosa con la que compita ‘

Ver: StoryAlity # 6 – ¿Qué es la creatividad (big-C) y cómo funciona?

La creatividad, en la práctica es una expresión, por lo tanto, puede describirse como una idea.

Una expresión se ajusta al contexto de una situación de la misma manera que una solución se ajusta a un problema a resolver. Entonces solo necesitamos codificar ideas y problemas / situaciones.

Por lo tanto, buscamos un espacio dimensional muy alto para buscar combinaciones de características de ideas que si se modifican podrían aplicarse a la situación.

La parte muy difícil de esto es la parametrización de ideas y la capacidad de permitir combinar características de ideas que no son necesariamente proporcionales. Para hacer esto correctamente, necesita tener una especie de integrador de manipulador de características de idea. Este circuito implicaría ser capaz de simular aproximadamente la realidad, el espacio y los fenómenos físicos. Como cuando te pregunto si puedes romper la masa de pizza congelada, utilizas este sistema.

Ahora es fácil, solo evalúa la idea particular en comparación con tus soluciones / expresiones conocidas para la situación / problema. ¡Usted juzga esta comparación en diferentes características como cuán diferente es de otras soluciones conocidas y voila ‘usted es una entidad creativa!

Usaría el Modelo de Complejidad Jerárquica de Commons et al. porque eso me daría una definición eficiente de creatividad, que podría compararse cognitivamente con el nivel humano de creatividad.

Cuantas más pruebas cognitivas pasaría una máquina creativa, más creativa sería. Estas pruebas también podrían administrarse a una cohorte humana (con Mechanical Turk), lo que nos daría una línea de base de las capacidades humanas contra las cuales las computadoras podrían competir.

La creatividad es un proceso complejo, que siempre está ligado a un contexto de expresión o actividad; en este sentido, el algoritmo no sería general, sino siempre específico; generalmente relacionado con los patrones y teorías estudiados por personas creativas.

Marcus, Yates, Russel e incluso Marcas tienen respuestas maravillosas. Los estoy votando a todos. Personalmente, creo que están en la marca. La creatividad, con la tecnología actual, podría simularse como un proceso estocástico controlado.

Matemáticamente, el primer paso para simular la creatividad sería mirar un generador de números pseudoaleatorios bueno y hermoso. Digo belleza , porque hay algo mágico en los generadores congruentes lineales y también porque su débil capacidad para simular aleatoriedad es en este caso un activo importante. Los LCG son deterministas y dependen completamente del valor inicial de la semilla. Pero la creatividad tampoco es completamente aleatoria y también depende de las circunstancias iniciales.

Marcus, Yates y Russel tocan otro aspecto fundamental de la creatividad. La idea de que funciona en conjuntos y las asociaciones entre elementos de estos conjuntos . Donde hay una asociación, existe la posibilidad de un elemento completamente nuevo. Por ejemplo, el conjunto de colores y el conjunto de animales, podría dar como resultado una jirafa completamente negra. Uno o más conjuntos serían los conjuntos de pivote . Estos son conjuntos que determinan la entidad de salida. Por ejemplo, si quiero limitar mi creatividad a la pintura de una casa rural, los conjuntos de pivote podrían ser elementos de paisaje , formatos de cielo , casas rurales . Quisiera uno o más elementos de estos conjuntos en mi pintura. Todos los demás conjuntos serían conjuntos asociativos . Los elementos de estos conjuntos pueden seleccionarse o no, dependiendo de si sus elementos tienen asociaciones con los conjuntos dinámicos. Entonces, mi algoritmo de creatividad de pintura de casas rurales podría dar como resultado la inclusión de un árbol del conjunto de plantas y árboles , pero terminaría sin incluir nada del conjunto de flores .

Por lo tanto, un algoritmo muy básico funcionaría al ingresar conjuntos de pivote, generar números pseudoaleatorios para elegir elementos de esos conjuntos y combinar esos elementos en un nuevo conjunto de salida. El PRNG entonces ejecutaría un número indeterminado de pruebas de asociación con otros conjuntos y decidiría si incluir o no elementos de esos conjuntos asociativos.

Veamos esto en la práctica.

semilla = número elegido
ps [] = lista de conjuntos de pivotes
os [] = conjunto de salida vacío

PRNG (semilla) // inicializa PRNG

para i = ps [0] a ps [max] {// para cada conjunto de pivote
si ps [i] es único // elige solo 1 elemento si set está marcado como singular
num_e = 1
más
num_e = PRNG () // número de elementos para elegir del conjunto
terminara si

para z = 1 a num_e {
os [] + = ps [i] [z] // agregar elemento al conjunto de salida
}
}

Lo anterior crea un conjunto de salida con elementos de los conjuntos dinámicos elegidos de forma semialeatoria. Como dije, este es un algoritmo muy básico. Pero podría ser la base de un algoritmo más sofisticado en el que los elementos pivote se seleccionan en base a algoritmos de toma de decisiones más robustos. Los algoritmos genéticos vienen a la mente como un árbol de decisión potencial más valioso que la fuente PRNG () anterior.

Ahora llegamos a la parte difícil. La creatividad es un proceso de múltiples capas. La pintura de mi casa rural podría mostrar a un caza a reacción cruzando los cielos como una visión creativa del artista sobre el combate entre el hombre natural y el hombre moderno. Por lo tanto, necesitamos traer verdadera creatividad mediante la implementación de conjuntos asociativos.

seed = otro número elegido // volvemos a sembrar el prng para esta tarea

PRNG (semilla) // reiniciar PRNG con nueva semilla

para cada elemento en os [] {
assoc_strength = PRNG () // fuerza de asociación mínima
number_assoc = PRNG () // número de asociaciones para probar
para i = 1 a number_assoc {
assoc_id = PRNG () // genera una identificación de asociación aleatoria
si el elemento tiene assoc_id y assoc_id.strength> assoc_strength
os [] + = assoc_id. elemento // agrega elemento asociativo, si cumple con los criterios
}

Aquí solo estamos entreteniendo nuestros pensamientos, pero lo anterior podría ser la base para resolver las asociaciones en el proceso creativo. Para cada elemento pivote en el conjunto de salida, definimos la fuerza de asociación. Un número alto hace que sea más fácil que ocurran asociaciones y un número bajo más difícil. Arriba elegí este número al azar para indicar que esta es otra variable que requiere procesos estocásticos más sofisticados, como un algoritmo de red neuronal, por ejemplo.

Luego decidimos el número de asociaciones a crear. Luego creamos tantas asociaciones aleatorias. En el pseudocódigo anterior, genero identificadores y busco en el elemento pivote si ese identificador existe. Si no existe, descarto la asociación, por lo que podría decir que este algoritmo es minimalista. Por defecto no hay asociaciones. Es un algoritmo de realismo. Mientras que un algoritmo del Romanticismo tendría que predeterminar muchas asociaciones. Y un algoritmo de Jackson Pollock simplemente se volvería loco.

También probamos la fuerza de asociación. Cada asociación entre elementos de diferentes conjuntos tiene un valor de fuerza que significa qué tan bien se relacionan ambos elementos entre sí. Un elemento de caza a reacción tiene una fuerte asociación con un elemento de nube. Imaginemos que el elemento de la nube es parte de mi conjunto de salida. Entonces, si se me ocurre una identificación de asociación para la nube que apunta al avión a reacción, hay muchas posibilidades de que el avión se agregue a la pintura. Dependerá del valor de la fuerza de asociación mínima permitida (la variable assoc_strength).

Conclusión:

Lo anterior es una simulación . Es importante distinguirlo de una emulación , que es una imitación más fuerte de la realidad. Es simplemente un algoritmo simplista e ingenuo para simular la creatividad.

Sobre todo, define un proceso más de lo que define el método . El método real haría que reemplazáramos todas las instancias por PRNG () con algoritmos de IA más sofisticados como Redes Neuronales y Algoritmos Genéticos para ayudar a los procesos de toma de decisiones involucrados y expandir las ideas aquí presentadas. Pero espero que haya ayudado a satisfacer tu curiosidad.

Consulte “Topología:” Conjuntos y subconjuntos, expandidos … Más allá de los límites iniciales; No al azar, pero de forma inesperada o impredecible, en el sentido de que su ‘novela’ (= valor absoluto) + ‘belleza’ (= valor creativo) crece con el tiempo, más valioso .

Aunque todavía no es un algoritmo, creo que la creatividad computacional involucraría los procesos de serendipia asociativa (o más bien, asociación fortuita). Por ejemplo, uno podría generar asociaciones aleatorias, junto con algún tipo de sistema de clasificación basado en los resultados.