viernes, 28 de octubre de 2016

¿Gracias por qué?

"Si sólo hay un Creador que hizo al tigre y al cordero, al guepardo y a la gacela, ¿a qué está jugando? ¿Es un sádico que disfruta siendo espectador de deportes sangrientos?" (Richard Dawkins)


Hoy alguien han comentado en un foro que suelo frecuentar una expresión que me asombra y que nunca he podido entender. En concreto, esa persona ha escrito: "Gracias a Dios, mi hermana superó el cáncer..."

Y yo me pregunto: ¿Gracias a Dios, o gracias al médico que la trató?

Y aunque es cierto que a veces esta expresión se utiliza solamente de manera metafórica al hablar, también hay gente (mucha) que realmente se la cree; y eso es algo que me produce sorpresa (por no decir indignación): ¿gracias a Dios por salvar a alguien de una enfermedad que Él mismo ha permitido que exista? ¿gracias a Dios, siendo Él omnipotente, por dejar primero que alguien enferme y luego del mal trago "salvarlo" por los pelos una vez pasado el sufrimiento inicial (tras rezarle y alabarle)?

Joder: ¿por qué no simplemente impide la enfermedad en general, o evita en particular que alguien que no deba enfermar no enferme en lugar de salvarlo a posteriori? ¿Qué es lo que quiere, que le roguemos y nos arrastremos para que nos quite la carga de esa enfermedad impuesta por Él mismo? Pues valiente Hijo de la gran puta que sería un Dios así (y eso sin hablar de aquellos que ni aún rogándole hasta la saciedad son luego "salvados").

En fin. Yo no poseo la soberbia necesaria para declararme abiertamente ateo, y me tengo que conformar simplemente con un agnosticismo medido; pero en lo más profundo de mi corazón tengo el deseo de que la realidad no esconda de manera trascendente semejante ente Sádico y ávido de alabanzas. Personalmente no me creo (no me puedo creer) al ateo ni al creyente, y además no veo hoy por hoy forma de poder sobreponer una tesis metafísica de su antítesis (sea cual sea), pero tengo no obstante la esperanza de que sea el ateo quien lleve la razón. Y si luego hay que agradecer a alguien o a algo alguna fortuna puntual que hayamos tenido; pues que sea simplemente al destino o a la casualidad. Me parece indigno dar las gracias a Dios, incluso de manera metafórica.

Pero vaya, aunque no tiene pinta, igual resulta que después de todo la Verdad la poseen los creyentes (teístas o deístas). En tal caso, no tengo más remedio que tirar del refranero español para comunicarle al susodicho Dios (sea el que sea) mi más sincero y honesto sentimiento hacia su "persona" y su creación. Es el siguiente:

Señor Dios, puesto que usted creó el mundo, es evidente que lo haría de acuerdo a cierta voluntad suya por satisfacer alguna necesidad particular que en cierto momento tuvo (la cual ni conozco ni quiero conocer). Y por lo tanto, siendo entonces un hecho que todos nosotros formamos parte activa de esa solución que usted encontró a su necesidad; y dada la mala manera en que funciona todo a nuestro alrededor, me gustaría simplemente decirle lo siguiente: "gracias por nada, y de nada por todo".



Un saludo, compañeros de fatiga.

domingo, 23 de octubre de 2016

Inteligencia exponencial

"La única predicción de la futurología indudablemente cierta es que, en el futuro, los futurólogos de hoy en día parecerán necios. Si bien desconocemos cuáles serán los logros últimos a los que llegará la inteligencia artificial, lo cierto es que dependerán de un sinfín de vicisitudes prácticas, que se irán descubriendo sólo sobre la marcha. Con todo, es un hecho indiscutible que las máquinas dedicadas a la computación son inteligentes." (Steven Pinker)

Debido a la complejidad técnica, pocos son conscientes de que vivimos actualmente una revolución (exponencial) en cuanto a avances en el terreno de la inteligencia artificial. Como digo, esto se debe en parte a lo complicado de la teoría subyacente y en parte a que ya varias veces en la historia se pecó de optimismo y finalmente la IA no avanzó ni la mitad de lo prometido...esta vez es distinto.

El aumento (exponencial) en la potencia de cálculo disponible (gracias al continuo cumplimiento de la ley de Moore y al surgimiento de las tarjetas GPU), al aumento (también exponencial) de datos (datasets) disponibles para entrenar fácilmente y de manera barata las modernas redes neuronales (gracias en gran parte a Internet y al Bigdata), y fundamentalmente gracias a modernos y recientes (y sí, también exponenciales) avances teóricos en cuanto a cómo construir y ajustar ("entrenar") estas redes neuronales (como ha sido el caso por ejemplo, del reciente uso intensivo de redes neuronales profundas -deep networks-, el advenimiento de la convolución -algo similar a lo que nuestro cerebro hace en Cortex visual primario y secundario V1, V2,...-, el descubrimiento de redes neuronales recurrentes y eficientes RRN's -fundamentalmente la propuesta de modelo llamada LTSM: "Long short-term memory"-, el muy reciente uso del concepto de "atención", etc.), hacen que sin duda esta vez las cosas sean realmente muy distinta: y los resultados están comenzando a ser evidentes.

Demis Hassabis
No hay día ya que las noticias (especializadas y no especializadas) no muestren algo nuevo relacionado con el campo de la investigación y la innovación en IA, y el progreso en la búsqueda de una inteligencia artificial general parece literalmente haber explotado exponencialmente. Y a este ritmo (y sobre todo si la ley de Moore se sigue cumpliendo), no pasarán ni 30 años antes de que se logre simular computacionalmente una inteligencia artificial general e incluso una completa conciencia artificial muy similar a la nuestra. Vivimos de hecho en estos momentos el inicio de este cercano hito tecnológico; y es una lástima que no todos puedan seguir en vivo el transcurso de los acontecimientos. En este sentido, me siento un privilegiado. De hecho, si no fuese por cuestiones personales, es bastante probable que pudiese incluso participar aunque fuese muy modestamente en todo este proceso. Actualmente conozco el estado del arte completo de la disciplina (puedo seguir cualquier paper sin problemas), y dada la escasez de profesionales en este terreno y el aumento actual en la demanda de este tipo de trabajadores, sinceramente creo que habría tenido alguna oportunidad para terminar trabajando de manera más o menos directa en alguna compañía dedicada a la investigación en este campo. Pero bueno, no creo que esto llegue a pasar, y muy posiblemente me jubile, con suerte, como un "simple" analista-programador de páginas web. Tampoco pasa nada ;).

Llegar a alcanzar el estado del arte en esta disciplina tan multidisciplinar es algo duro y lleva años de duro trabajo y esfuerzo; pero de todas formas creo que es posible, incluso para el menos preparado, atisbar al menos por encima de qué va toda esta revolución que está aconteciendo hoy día y que ha llevado en poco tiempo a que un ordenador supere en cuanto a intuición (al menos, intuición focalizada en el juego) a cualquier jugador humano de Go, o a que el ordenador de un coche sea capaz de ir él sólo por la ciudad reconociendo todo el entorno, y siendo capaz de abstraer y generalizar tan bien como nosotros en muchas tareas indispensables para la conducción eficiente y segura (Artículo en el diario El País: "Arranca la revolución de los coches sin conductor").

En relación a todo esto, y ya especulando un poco, es muy interesante observar como el hombre está logrando en pocas décadas simular y emular habilidades tan complejas que le llevó al propio proceso evolutivo cientos de millones de años alcanzar. Ese es precisamente el poder del crecimiento exponencial. Bien parece incluso el caso de que la raza humana sea una especie de catalizador de la inteligencia. Y si fuera ese el caso, posiblemente el hombre no sería más que un eslabón intermedio natural necesario para, llegado el momento, lograr que el fenómeno de la inteligencia comience a mejorar de modo exponencial. Es decir, que el hombre estaría limitado biológicamente en cuanto a su capacidad personal, pero tendría el potencial necesario para lograr "fabricar" algo (no biológico) capaz de superar su propia limitación intrínseca. Posiblemente llegue el día que no quede ninguna inteligencia biológica sobre el plantea, y que lo que reste sea este nuevo prototipo catalizado por nosotros mismos como parte del proceso evolutivo natural en busca de maximizar el consumo de energía libre (maximizar la entropía). Pero ya eso es otra historia. Si queréis profundizar un poco más sobre este asunto podéis estudiar mi artículo: El acertado miedo de Stephen Hawking.

En fin. En un intento por ayudar a quien tenga al menos la curiosidad de saber de qué va todo lo tratado, os dejo un par de referencias muy claras y gráficas que quizás os pueda servir de trampolín:

http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ("Understanding LSTM Networks")
- http://distill.pub/2016/augmented-rnns/ ("Attention and Augmented Recurrent Neural Networks")

Evidentemente estos dos artículos no son ni la punta del iceberg de lo que sería necesario conocer de esta disciplina, pero creo que es un buen comienzo (al menos como introducción a las redes neuronales recurrentes). Y para todo aquel que tenga ya cierto nivel, os dejo dos enlaces imprescindibles que mirar cada mañana en busca de novedades:

https://deepmind.com/research/publications/ (Web actualizada con enlaces a todas las publicaciones del equipo de investigación de la filial de Google, DeepMind).
https://research.google.com/pubs/papers.html (Web actualziada con enlaces a todas las publicaciones del equipo de investigación de Google Brain).

También os puede merecer la pena invertir unos minutos en escuchar esta interesante charla impartida por Demis Hassabis, co-fundador de DeepMind: una de las personas que más saben hoy día sobre inteligencia artificial y su potencial futuro al corto-medio plazo. En esta conferencia se centra especialmente en la posibilidad de una Inteligencia Artificial General que precisamente su empresa (filial de Google) tiene en el punto de mira.


Para finalizar, os dejo con un vídeo que muestra en directo lo que hasta hace muy poco era ciencia ficción: un coche totalmente autónomo. Estamos hablando, por supuesto, de la nueva actualización de software para los coches de la marca Tesla.



viernes, 14 de octubre de 2016

Tomorrow, and tomorrow, and tomorrow...

“¡Ah, cuán vana, cuán triste / es la lucha por la existencia. Aprende, ¡oh hombre! / como primer principio de la sabiduría / que por un bien […] tu alma está en vilo. […] ¡Aprende a amar con el espíritu, mortifica / el amor del corazón; y bendice, / bendice con alegría cada hora que más cerca de la tumba / te conduce!” (Philipp Mainländer)

Macbeth:

To-morrow, and to-morrow, and to-morrow,
Creeps in this petty pace from day to day,
To the last syllable of recorded time;
And all our yesterdays have lighted fools
The way to dusty death. Out, out, brief candle!
Life's but a walking shadow, a poor player,
That struts and frets his hour upon the stage,
And then is heard no more.
It is a tale told by an idiot, full of sound and fury,
Signifying nothing.

Macbeth Act 5, scene 5, 19–28 (Shakespeare)

Traducción libre:

Mañana...esa engañosa palabra: mañana, y mañana, y mañana, una palabra que nos va llevando por días al sepulcro, y cuya falaz lumbre del ayer ilumina al necio hasta que cae en la fosa. ¡Extínguete!¡Apágate ya, luz de mi vida!
La vida no es más que una sombra pasajera, un escenario sobre el cual un pobre imbécil se pavonea y se agita durante un tiempo, y a quien poco después se olvida. Es un cuento narrado por un idiota, todo lleno de estrépito y de violencia, pero que no significa nada.

La vida.

He empezado el artículo comentando esta famosa escena de la obra de Shakespeare porque la siento como uno de esos hechos que todos conocen pero que nadie admite. A mí no me importa confesarlo a boca llena: sinceramente, no me gusta la vida.

Es un sentimiento personal y subjetivo, por supuesto, pero es lo que hay. Y no quiere decir esto que sea un depresivo aislado de esos que no salen de casa ni mucho menos. Al contrario; yo vivo una vida bastante normalita: tengo familia, amigos, amistades, estoy casado y con dos hijos, trabajo a jornada completa, tengo que pagar préstamos, voy al gimnasio, me gusta el cine, la música, la lectura, estudiar y aprender, en fin; el pack completo. Mi existencia es quizás en cierta medida, el prototipo "ideal" de vida deseada y deseable...y a pesar de eso, y de no tener que convivir con ningún problema importante de salud ni de otro tipo, honestamente; os insisto en que la vida me parece, como dijo nuestro amigo Shakespeare: una sombra pasajera (un cuento) narrado por un idiota (en este caso yo), todo lleno de estrépito y violencia (con esa lucha diaria que nuestro cerebro nos empuja a llevar a cabo), y que no significa nada (porque toda nuestra conducta tiene como última meta satisfacer unos espontáneos fines evolutivos que no persiguen ninguna finalidad racional ni relevante en lo relativo al hombre). Es decir; una verdadera mamarrachada sinsentido.

No, no me gusta la vida; o mejor dicho, no me gusta tener que vivir, y de hecho no me ha gustado desde que tengo uso de razón. Pero eso no importa, porque este cuento de la vida es un teatro en el que todos nos vemos obligados a participar, salvo pena de sufrir frustración, dolor y sufrimiento. Y aquel que ante un pesimista espeta aquello de: "Pues ve y salta por un puente", no entiende que le pide tanto como que se tape la nariz y deje de respirar: es imposible, porque al igual que no tenemos ese control ante la respiración, tampoco tiene nadie mentalmente sano la capacidad para quitarse la vida como si tal cosa: el fuerte instinto de conservación se encarga de ello.

De todas formas, esta actitud pesimista ante la existencia no es nada nuevo. Ya en el siglo X, el filósofo y poeta Persa Omar Jayam se lamentaba de esta manera:
"No siento ningún temor por la muerte: prefiero este trance doloroso
al sino ineluctable que me fue impuesto el día de mi nacimiento.
¿Qué es la vida? Un bien que me confiaron sin pedirlo, y que tendré
que devolver con indiferencia." 
Es un hecho que con el nacimiento todos somos lanzados sin nuestro consentimiento directamente sobre el escenario de la vida, y que como pobres imbéciles es la química de nuestro cerebro luego la verdadera encargada de guiarnos por la senda de la lucha diaria; evidentemente sin escapatoria posible. En este sentido, cualquiera que intenta salir del redil aunque sea sólo un poco, es rápidamente reconducido mediante una inyección de neurotransmisores los cuales le impelen un fuerte malestar en forma de lo que se conoce como frustración, o mediante el hastío. De hecho, es la sensación de hastío la que nos impide estar mucho tiempo sin hacer nada: nos empuja continuamente a estar activos, mientras que es la frustración la encargada de dirigir toda esa actividad hacia fines evolutivamente estables.

La vida en el fondo es una trampa; un escenario del que no es posible salir, y en el que todos debemos ejercer nuestro papel para luego desaparecer (cosa que en biología hace tiempo que se conoce como teoría del soma desechable). El escenario permanece, y lo que cambian son los pobres cómicos que danzan (danzamos) sobre él, forzados como marionetas incapaces de determinar sus propios actos. Hay hoy día alrededor de 7000 millones de personas "vivas" luchando todas sin saber muy bien para qué, y se estima que otros tantos miles de millones ya pasaron por donde nosotros ahora estamos...todos desaparecieron en el abismo de la nada; y nada se sabe de ellos, a parte de que compartieron nuestro fatal destino.

En palabras del sabio Omar Jayam:
"Porque esta vida no es -como probaros espero-,
Mas que un difuso tablero de complicado ajedrez.
Los cuadros blancos: los días, los cuadros negros: las noches...
Y ante el tablero, el destino acciona allí con los hombres
como con piezas que mueven a su capricho sin orden...
Y uno tras otro al estuche van.
De la nada sin nombre." 
El sesgo del optimismo.

Muchos de vosotros, lectores, seguro que no estáis de acuerdo con mis anteriores párrafos, y es algo normal: la evolución se ha encargado (ha necesitado) programar una tendencia optimista con respecto a la vida en nuestro cerebro. Uno puede tranquilamente reconocer que están muriendo en este mismo instante, retorciéndose de dolor, miles de niños de malaria, y al mismo tiempo relajarse tranquilamente con una plácida lectura disfrutando de una puesta de Sol y pensando en lo bonita que es la vida. Es absurdo pero es así, sólo cuando la realidad pésima del mundo nos embiste de cerca es cuando somos sacados como de improviso de esa ensoñación de esperanza. De hecho, el mejor momento sin duda para conocer a las personas sin este optimista vendaje es ante la enfermedad; momento en que descubre atormentada que su breve paso por la existencia se acaba, y que toda su vida fue un inútil aspaviento cuyo recuerdo está condenado a desaparecer pronto.

No obstante nos resistimos a pensar de este modo. Nos cuesta asimilar la realidad del sinsentido de nuestras vidas, y eso a pesar de que todos desde Darwin comprenden el sinsentido del mundo. Como el gran Emil Cioran dijo en su obra "El ocaso del pensamiento":
"Uno puede decir con toda tranquilidad que el universo no tiene ningún sentido. Nadie se enfadará. Pero si se afirma lo mismo de un sujeto cualquiera, éste protestará e incluso hará todo lo posible para que quien hizo esa afirmación no quede impune. Así somos todos: nos exoneramos de toda culpa cuando se trata de un principio general y no nos avergonzamos de quedarnos reducidos a una excepción. Si el universo no tiene ningún sentido, ¿habremos librado a alguien de la maldición de ese castigo? Todo el secreto de la vida se reduce a esto: no tiene sentido; pero todos y cada uno de nosotros le encontramos uno.
Todos encontramos un sentido para nuestras vidas, y el optimismo "irracional" e innato del que hemos hablado nos ayuda a ello; y sin embargo también al mismo tiempo todos sabemos y comprendemos racionalmente que la vida no tiene sentido objetivo: he ahí el verdadero poder evolutivo, haber sido capaz de construir seres conscientes del sinsentido de su ser; pero capaces a pesar de todo de soportar todo ese sinsentido, y eso a pesar de la lucha, el dolor y el sufrimiento generalizado. Realmente la evolución ha hecho un gran trabajo.

Vivir pese al absurdo.

Pero no todos son capaces de soportar esta cruda realidad. Son muchos a los que esta realidad pésima les supera, y que no son capaces ya de soportar la inútil carga de la vida. Para todos ellos, comentar que sigue habiendo un "consuelo": la curiosidad, y el abrazo al absurdo. La vida es un doloroso trance carente de sentido objetivo en el que todos nos vemos abocados a participar, pero también es, como dice Shakespeare, una sombra pasajera. La vida es breve, y eso es bueno; y también es leve, lo cual asegura su final. Por tanto, podemos abrazar este hecho de brevedad y levedad como consuelo ante el sinsentido, y aprovechar de este modo la existencia como un medio para experimentar con curiosidad la realidad en la que estamos envueltos. Esta postura fue defendida entre otros por el filósofo Albert Camus, el cual veía precisamente en el reconocimiento del absurdo una suerte de liberación personal. También habló al respecto Emil Cioran, esta vez en su obra "En la cima de la desesperación":
"Nada podría justificar el hecho de vivir. ¿Cómo, habiendo explorado nuestros propios extremos, seguir hablando de argumentos, causas, efectos o consideraciones morales? Es imposible, puesto que no quedan entonces para vivir más que razones carentes de todo fundamento. En el apogeo de la desesperación, sólo la pasión por lo absurdo orna aún el caos con un resplandor demoníaco. Cuando todos los ideales corrientes, sean morales, estéticos, religiosos, sociales o de cualquier otra clase, no logran imprimir a la vida una dirección y una finalidad, ¿cómo preservarla del vacío? La única manera de lograrlo consiste en aferrarse a lo absurdo y a la inutilidad absoluta, a esa nada fundamentalmente inconsistente cuya ficción es susceptible sin embargo de crear la ilusión de la vida. Vivo porque las montañas no saben reír ni las lombrices cantar. La pasión por lo absurdo nace únicamente en el individuo que lo ha expiado todo pero que es capaz de soportar terribles transfiguraciones futuras. A quien lo ha perdido todo sólo le queda esa pasión. ¿Qué podría en adelante seducirle? Algunos responderán que el sacrificio en nombre de la humanidad o del bien público, el culto de lo bello, etc. Yo sólo soporto a aquellos seres humanos que han renunciado a experimentar, aunque no sea más que provisionalmente, todos esos sueños. Ellos son los únicos que han vivido de manera absoluta, los únicos habilitados para hablar de la vida. Si pueden hallarse de nuevo el amor y la serenidad, ello es posible mediante el heroísmo y no mediante la inconsciencia. Toda existencia que no contenga una gran locura carece de valor. ¿En qué se diferencia una existencia semejante de la de una piedra, un palo o una mala hierba? Lo afirmo con total honestidad: hay que ser objeto de una gran locura para querer ser piedra, palo o mala hierba."
Pasión por lo absurdo, ese es el concepto. Todo aquel que haya logrado racionalizar el mundo y que no vea para vivir ya más que razones carentes de fundamento, todavía tiene el consuelo de saborear esta pasión. Dice Cioran que hay que ser objeto de una gran locura para querer ser piedra o palo, y yo debo estar loco porque no veo la hora de volver a tal estado inanimado. Bendigo con alegría, como dice Mainländer, cada hora que más me acerca al final de mi paso por este consciente circo vital. 

En este punto quizás alguno se pregunte cómo puede ser la vida de ese hombre absurdo (término utilizado por Camus). Yo os doy mi versión puesto que me considero uno de tales hombres: mi vida es como la tuya, lucho como todos a diario con ganas en pos de los estúpidos fines evolutivos (no queda otro remedio si no se quiere sufrir más de lo necesario), pero lo hago siempre con el anhelo de mi redención final en mente. Bato los brazos con vehemencia cada mañana en el teatro de la vida, escenificando mi papel con curiosidad, sin prestar demasiada importancia a nada de lo que me ocurra (porque todo es pasajero) y con alegría, experimentando con todo aquello que surge en mi breve camino; pero lo hago siempre mirando de reojo el reloj, deseando que termine de una vez la función (out, brief candle!). Es sin duda en mi opinión el mejor modo de pasar este amargo trago existencial. Muy pronto todos nuestros átomos, que como se suele decir en su día fueron polvo de estrellas, volverán a formar parte de piedras o palos, malas hierbas o incluso gusanos; cualquier cosa será preferible antes que esta sufrida lucha racional y consciente en favor de fines irracionales y objetivamente inútiles.

Os dejo para finalizar con la magnífica narración que hizo Orson Welles de la escena de Macbeth con la que he comenzado este artículo. Merece la pena de oír:



miércoles, 12 de octubre de 2016

Diseño inteligente (III)

En el magnífico blog de divulgación científica "Cuentos Cuánticos", hoy han tocado el tema de la Realidad simulada.

Nick Bostrom
En la entrada que os comento de ese blog, se han basado fundamentalmente en el trabajo de Nick Bostrom, director del Instituto sobre el Futuro de la Humanidad y  también del Centro Estratégico de Investigación sobre Inteligencia Artificial, ambos adscritos a la Universidad de Oxford. El trabajo en concreto fue publicado en el 2003 y podéis descargarlo desde aquí.

Pero como os digo, en esa entrada que os he comentado está la propuesta de Nick muy bien explicada y no voy a incidir más en lo mismo; aunque sí quiero aprovechar para hacer un pequeño resumen de la hipótesis alternativa (e independiente) sobre este asunto que ya os comenté en dos entradas anteriores de este blog:

http://quevidaesta2010.blogspot.com.es/2016/09/diseno-inteligente.html
http://quevidaesta2010.blogspot.com.es/2016/09/diseno-inteligente-y-ii.html

Pues bien, de manera esquemática (y para el que no tenga la paciencia necesaria para leer grandes textos de este tipo :P), decir que la hipótesis que yo defiendo se puede resumir del siguiente modo:

Observando las leyes físicas de nuestro mundo descubrimos dos cosas interesantes:

1) La física de nuestro mundo siempre aparece matemáticamente bien comportada y de modo tal que teóricamente sería posible que formase parte de una computación externa (cuando no tendría por qué ser así necesariamente, ya que podemos imaginar físicas no computables).

2) Además de computable, nuestra física parece de algún modo especial en cuanto a su "eficiencia" de computación (fundamentalmente gracias a la mecánica cuántica): lo que viene a decir que el modo en que se comporta nuestro mundo es particularmente adecuado para requerir de los mínimos recursos para su hipotético procesamiento computacional externo.

Por lo tanto, estos dos puntos nos llevan a lo siguiente:

1) O se trata de que nuestro mundo es eficientemente computable por casualidad. Es decir; que habiendo una infinidad de modos distintos en que una vida inteligente como la nuestra podría aparecer, resulta que estamos en un Universo con una física no sólo capaz de albergar vida inteligente sino que por puro azar también presenta unas propiedades que la hacen fácilmente (eficientemente) computable y muy bien comportada matemáticamente.

2) O sencillamente todo aparece de este modo tan particular porque realmente nuestro mundo ha sido diseñado (¿programado?) a un nivel trascendente (externo): es decir; que formamos parte de una simulación computacional.

Analizando estas dos alternativas vemos que el primer caso es indudablemente posible pero muy improbable: si toda física imaginable es posible, habría una infinidad de maneras distintas en que podría haber aparecido nuestro "mundo" (sus leyes), y también habría una infinidad de maneras imaginables en que podrían organizarse mundos con vida inteligente similar a la nuestra (un subconjunto infinito de mundos con vida dentro del conjunto infinito de mundos posibles, similar al subconjunto infinito de números pares dentro del conjunto infinito de números enteros), por lo que el hecho de que estemos por casualidad en un mundo computable y especialmente eficiente (fuera de la media) capaz de ser simulado mediante un hipotético procesamiento trascendental (sin que luego sea el caso) es ínfima o casi nula. Sería un fino ajuste aún mayor que el de la constantes cosmológicas, pero uno que esta vez no puede ser sorteado sólo apelando a un multiverso sin más. Por lo tanto, lo más lógico posiblemente sea aceptar el segundo punto que hemos visto antes: que sencillamente nuestro mundo forma parte de una simulación.

Un saludo.

lunes, 3 de octubre de 2016

Implementación en TensorFlow de la red neuronal generativa (WaveNet) enfocada en la generación de texto

Enfocado en el reciente trabajo teórico de Google DeepMind (WaveNet), he desarrollado e implementado una versión en TensorFlow de dicha arquitectura, pero realizando modificaciones para enfocar el diseño en la generación automática de textos (el paper original es: https://arxiv.org/pdf/1609.03499.pdf).

El modelo ideado originalmente por DeepMind fue divulgado con detalle en este artículo: https://deepmind.com/blog/wavenet-generative-model-raw-audio/, y mi implementación del mismo (con las modificaciones necesarias para enfocarlo todo en la generación de texto), se encuentra en el siguiente repositorio de mi cuenta personal en GitHub: https://github.com/Zeta36/tensorflow-tex-wavenet. Se trata como podéis ver, de un desarrollo Python usando el framework de Google, TensorFlow.

Os dejo a continuación toda la información técnica sobre mi trabajo, aunque siento no tener tiempo para traducirlo y simplemente copiaré a continuación la introducción que hice del mismo en inglés (prometo más adelante escribir una entrada dedicada a divulgar de manera más sencilla el potencial de esta red neuronal, y el indicio que puede contener sobre el modo en que nuestro propio cerebro biológico realiza ciertas tareas relacionadas con la memorización):

A TensorFlow implementation of DeepMind's WaveNet paper for text generation.


This is a TensorFlow implementation of the WaveNet generative neural network architecture for text generation.

Previous Work

Originally, the WaveNet neural network architecture directly generates a raw audio waveform, showing excellent results in text-to-speech and general audio generation (see the DeepMind blog post and paper for details).
This network models the conditional probability to generate the next sample in the audio waveform, given all previous samples and possibly additional parameters.
After an audio preprocessing step, the input waveform is quantized to a fixed integer range. The integer amplitudes are then one-hot encoded to produce a tensor of shape (num_samples, num_channels).
A convolutional layer that only accesses the current and previous inputs then reduces the channel dimension.
The core of the network is constructed as a stack of causal dilated layers, each of which is a dilated convolution (convolution with holes), which only accesses the current and past audio samples.
The outputs of all layers are combined and extended back to the original number of channels by a series of dense postprocessing layers, followed by a softmax function to transform the outputs into a categorical distribution.
The loss function is the cross-entropy between the output for each timestep and the input at the next timestep.
In this repository, the network implementation can be found in wavenet.py.

New approach


This work is based in one implementation of the original WaveNet model (Wavenet), but applying some modifications.
In summary: we are going to use the WaveNet model as a text generator. We'll use raw text data (characters), instead of raw audio files, and once the network is trained, we'll use the conditional probability found to generate samples (characters) into an self-generating process.

Only printable ASCII characters (Dec. 0 up to 255) is supported right now.

Results


Pretty interesting results are reached!! Feeding the network with enough text and training, the model is able to memorize the probability of the characters disposition (in a lenguage), and generate later even a very similar text!!

For example, using the Penn Tree Bank (PTB) dataset, and only after 15000 steps of training (with low set of parameters setting) this was the self-generated output (the final loss was around 1.1):

"Prediction is: 300-servenns on the divide mushin attore and operations losers nis called him for investment it was with as pursicularly federal and sotheby d. reported firsts truckhe of the guarantees as paining at the available ransions i 'm new york for basicane as a facerement of its a set to the u.s. spected on install death about in the little there have a $ N million or N N bilot in closing is of a trading a congress of society or N cents for policy half feeling the does n't people of general and the crafted ended yesterday still also arjas trading an effectors that a can singaes about N bound who that mestituty was below for which unrecontimer 's have day simple d. frisons already earnings on the annual says had minority four-$ N sance for an advised in reclution by from $ N million morris selpiculations the not year break government these up why thief east down for his hobses weakness as equiped also plan amr. him loss appealle they operation after and the monthly spendings soa $ N million from cansident third-quarter loan was N pressure of new and the intended up he header because in luly of tept. N million crowd up lowers were to passed N while provision according to and canada said the 1980s defense reporters who west scheduled is a volume at broke also and national leader than N years on the sharing N million pro-m was our american piconmentalist profited himses but the measures from N in N N of social only announcistoner corp. say to average u.j. dey said he crew is vice phick-bar creating the drives will shares of customer with welm reporters involved in the continues after power good operationed retain medhay as the end consumer whitecs of the national inc. closed N million advanc"

This is really wonderful!! We can see that the original WaveNet model has a great capacity to learn and save long codified text information inside its nodes (and not only audio or image information). This "text generator" WaveNet was able to learn how to write English words and phrases just by predicting characters one by one, and sometimes was able even to learn what word to use based on context.

This output is far to be perfect, but It was trained in a only CPU machine (without GPU) using a low set of parameters configuration in just two hours!! I hope somebody with a better computer can explore the potential of this implementation.

If you want to check this results, you just have to type this in a command line terminal (this will use the trained model checkout I uploaded to the respository):
python generate.py --text_out_path=output.txt --samples 2000 
./logdir/train/2016-10-02T10-45-10/model.ckpt-14999

Requirements


TensorFlow needs to be installed before running the training script. TensorFlow 0.10 and the current master version are supported.

Training the network


You can use any text (.txt) file.

In order to train the network, execute
python train.py --data_dir=data

to train the network, where data is a directory containing .txt files. The script will recursively collect all .txt files in the directory.
You can see documentation on each of the training settings by running
python train.py --help

You can find the configuration of the model parameters in wavenet_params.json. These need to stay the same between training and generation.

Generating text


You can use the generate.py script to generate audio using a previously trained model.

Run
python generate.py --samples 16000 model.ckpt-1000
where model.ckpt-1000 needs to be a previously saved model. You can find these in the logdir. The --samples parameter specifies how many characters samples you would like to generate.
The generated waveform can be stored as a .txt file by using the --text_out_path parameter:
python generate.py --text_out_path=mytext.txt --samples 1500 model.ckpt-1000
Passing --save_every in addition to --text_out_path will save the in-progress wav file every n samples.

python generate.py --text_out_path=mytext.txt --save_every 2000 --samples 1500 model.ckpt-1000

Fast generation is enabled by default. It uses the implementation from the Fast Wavenet repository. You can follow the link for an explanation of how it works. This reduces the time needed to generate samples to a few minutes.

To disable fast generation:
python generate.py --samples 1500 model.ckpt-1000 --fast_generation=false

Missing features

Currently, there is no conditioning on extra information.