Quando le reti

neurali inventano

 

Tre esempi in TensorFlow

Qualcosa su di me

Post-doc (Sapienza), specializzato in machine learning, con un forte interesse verso la divulgazione e la promozione.

Ma le reti neurali inventano?

L'obiezione di Lovelace

« The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. »

[Nota a Sketch of the Analytical Engine Invented by Charles Babbage, Menabrea L.F., 1842]

« Truly creative thinking of course will always remain beyond the power of any machine. »

 [Citato in (Colton & al., 2009)]

« I would like to argue that most current neural network algorithms by definition are unable to be truly creative »

[Are Neural Networks Truly Creative?, @awjuliani, Medium.com]

« [Computational creativity is] The study and support, through computational means and methods, of behaviour exhibited by natural and artificial systems, which would be deemed creative if exhibited by humans. »

[Citato in (Colton & al., 2009)]

« […] creativity is not some mystical gift that is beyond scientific study but rather something that can be investigated, simulated, and harnessed for the good of society. »

[Citato in (Colton & al., 2009)]

Reti neurali?

Architettura di una rete neurale

DeepDream: i sogni di una rete neurale

Dal laboratorio alla stampa

L'idea di base

Abbiamo una rete neurale già allenata che prende in input un'immagine x.

 

Vogliamo capire a cosa "risponde" un certo filtro della rete neurale stessa. Per farlo, ottimizziamo questo obiettivo:

\displaystyle \max_x \;\; h(x)
maxxh(x)\displaystyle \max_x \;\; h(x)

dove h(x) è l'uscita di quello specifico filtro.

Un passo avanti:

stile e contenuto

Neural Artistic Style

Gatys, L.A., Ecker, A.S. and Bethge, M., 2015. A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576.

Come funziona?

Come in DeepDream, usiamo la similitudine fra le attivazioni dei neuroni per valutare l'uguaglianza del contenuto.

La somiglianza di stile viene valutata comparando l'uguaglianza fra un "vettore di stile", dato dalle correlazioni tra le attivazioni di ogni coppia di filtri.

Matching content:

Matching style:

"Disegnami un gatto"

Formulazione

A partire da un vettore casuale z, il generatore G(z) genera una immagine.

Informalmente, l'obiettivo del discriminatore è distinguire fra una immagine vera x ed una artificiale:

- \frac{1}{2}\log(D(x)) - \frac{1}{2}\left(1 - D(G(z)) \right)
12log(D(x))12(1D(G(z)))- \frac{1}{2}\log(D(x)) - \frac{1}{2}\left(1 - D(G(z)) \right)

Al contempo, il generatore vuole massimizzare:

-0.5 \log(D(G(z)))
0.5log(D(G(z)))-0.5 \log(D(G(z)))

Goodfellow, I., 2016. NIPS 2016 tutorial: Generative adversarial networks. arXiv preprint arXiv:1701.00160.

pix2pix: conditional GANs

Text

Isola, P., Zhu, J.Y., Zhou, T. and Efros, A.A., 2016. Image-to-image translation with conditional adversarial networks. arXiv preprint arXiv:1611.07004.

In conclusione...

Le reti neurali inventano?

Made with Slides.com