17) Kreativ AI

Den här lektionen handlar om kreativ AI. Här används AI för att skapa konst, musik eller till exempel lyrik.

Bäst resultat för konst tycker jag.

Musik

Här kan AI kanske funka som en idéspruta. Generera ett antal alster, välj det bästa och modifiera för hand.

Visst vore det intressant att ställa upp med ett AI-bidrag till Melodifestivalen.

Ta de bästa låtarna från de 10 senaste åren och generera ny musik.

Bäst är troligtvis att skapa melodin med AI och skriva texten för hand.

Men det är säkert en massa jobb med att skapa ett sådant bidrag.

Text (lyrik mm)

Att skapa lyrik med AI borde gå bra eftersom lyrik inte behöver vara helt begriplig – ska tolkas.

Ett tänkbart framtida projekt för mig vore att skapa lyrik utgående från Werner Aspenströms ”Samlade dikter”.

Så här kunde jag göra (starkt förenklat):

  1. Först väljer jag ut de dikter som kan kallas ”natur-lyrik” för att få en viss typ av dikter.
  2. Jag preparerar data (dikterna) och tränar en modell för sekventiella data med dikterna.
  3. Jag har nu en språkmodell för Werner Aspenström.
  4. Jag skriver sedan för hand de kanske två första raderna i en dikt
  5. Jag matar in raderna i min sekventiella modell och låter modellen generera text
  6. Blir jag inte nöjd kan jag skruva på en parameter som styr hur ”djärv” modellen är när den genererar text.
  7. Sedan försöker jag igen eller byter ut de två första raderna.

Jag kan förstås putsa lite manuellt på texten för att få den bättre.

Ny text kan genereras på bokstavsnivå (kan ge nya ord) eller ordnivå (inga nya ord).

Jag väljer ordnivå för att få det mer begripligt.

Sekventiella data

Text och musik är sekventiella data.

Allt data kommer inte på en gång till modellen utan i en sekvens till exempel ett ord i taget. Det finns ett samband mellan orden i sekvensen. Sannolikheten för ett visst ord är beroende av föregående ord.

Pixlarna i en bild kommer alla på en gång till modellen – det finns inte någon sekvens.

Sekventiella data hanteras ofta av speciella nätverk just för sekventiella data – ett RNN (Recursive Neural Network).

Strukturerade och ostrukturerade data

Förutom sekventiella data och icke-sekventiella data finns strukturerade och ostrukturerade data.

Strukturerade data (även kallade tabulära data) är data i tabellform t.ex. från en databas, Excel-ark eller liknande.

Den här kursen handlar bara om ostrukturerade data t.ex. bilder. Dom tillämpningarna är helt enkelt roligast.

De kommersiellt viktigaste AI-tillämpningarna finns för strukturerade data t.ex. en applikation för att förutsäga vad en kund kommer att köpa på en e-handelsplats. Då använder man insamlade data för kunden från tidigare besök på e-handelsplatsen eller data från liknande kunder.

GAN - Generative Adversarial Networks

GAN är en komplicerad teknik som kan skapa realistiska helt syntetiska bilder – dvs bilder som är helt nya.

Det är bara en slump om bilden liknar en verklig bild.


Ett konstnärskollektiv skapade 2018 ett porträtt av Edmond de Belamy.

De utgick från 15,000 porträtt (från WikiArt) och använde GAN för att generera porträttet..

Porträttet såldes på auktion för 432,500 dollar..

Deepfake innebär att man i ett videoklipp byter ut ett ansikte mot ansiktet från en kändis..

Kändisar kan på så vis dyka upp i porrfilmer eller Obama kan säga tveksamma saker..

Deepfake använder AI och ofta GAN..

Det är en mycket tveksam metod.

Neural Style Transfer

Startbild + stilbild (Gråtande kvinna av Picasso)
 => skapad bild


Neural Style Transfer kom 2015 och är mycket populär. Finns i många appar för bildbehandling.

Neural Style Transfer utgår från en startbild.

Sedan överförs stilen från en stilbild till startbilden så att man får en ny skapad bild.

Den skapade bilden tränas fram genom att få stilen i den skapade bilden så lika som möjligt med stilbilden MEN samtidigt ska innehållet i den skapade bilden vara så lika som möjligt med startbilden.

Skillnaderna formuleras matematiskt så att de går att beräkna och kan användas vid träning av modellen.

Style Transfer görs med hjälp av ett förtränat CNN.

När det görs en fullständig träning kan man se hur den skapade bilden växer fram och avbryta när det ser bra ut.

”Fullständig” Style Transfer är en ganska långsam process – tar ett antal minuter.

De appar som vi ska se prov på gör ingen fullständig träning utan tar genvägar.

Videon överst i lektionen demonstrerar 'Fast Neural Style Transfer' på en bild från webbkameran.

Fast Style Tansfer

Fast Style Tansfer är snabbt men hur kan det vara snabbt när Style Tansfer är långsamt? Så här görs det:

  1. Från ett stort antal startbilder skapa ett stort antal bilder enligt den vanliga proceduren för style transfer: 'startbild' + 'stilbild' => 'skapad bild'. Vi kallar bilderna 'skapade bilder'. Det här steget tar mycket tid, datorkraft etc.
  2. En modell (CNN-nätverk) definieras som tar en 'startbild' och försöker skapa något som liknar motsvarande 'skapad bild'. Skillnaden mellan vad modellen ger och 'skapad bild' (från steg 1) formuleras matematiskt så att modellen kan tränas.
  3. Den nya modellen tränas med 'startbilder' som indata till bästa resultat (jämfört med motsvarande 'skapade bilder').
  4. Steg 1-3 görs för några olika stilbilder. Man får då modeller med olika egenskaper (olika stilar)

För att få en skapad bild med den nya modellen ges bilden som indata till modellen och en style transfer bild fås direkt utan träning. Det går snabbt, bara som en vanlig 'prediction'.

Framtida projekt: Restaurera en video

Det finns en video på YouTube med Animals och Eric Burdon. Låten börjar efter ungefär 30 sekunder.

Ljudet är bra men bilderna är gråa och tråkiga. Varför inte restaurera med hjälp av Style Transfer?

I princip:

  1. Ta en bild från videon
  2. Ändra bilden med hjälp av Style Transfer
  3. Lägg den ändrade bilden till en ny video (här behöver vi hjälp av extern mjukvara)
  4. Ta nästa bild

Att konvertera hela videon kommer att ta en stund. För varje bild kanske 3 sekunder och det finns ju många bilder (några tusen) i en 3 minuters video.

Orginal

Stil: Candy

Stil: Robert

Vilken stil ska jag välja? Candy är mest spännande.

Bilderna Robert och Candy är skapade av 'Microsoft AI - Fast Style Transfer' (se uppgifter för lektionen).

En intressant fråga är hur fladdrig videon blir? Blir det som en tidig tecknad Disney-film eller bättre?

Att konvertera videon "för hand" med Microsoft AI går förstås inte.

Ett bättre sätt är att leta reda på kod och modell för Fast Style Transfer på GitHub och skriva en app som konverterar videon.

DeepDream


DeepDream är en teknik för att modifiera bilder med hjälp av ett CNN-nätverk.

DeepDream kom 2015 och blev direkt en sensation med säregna och drömlika bilder.

DeepDream-nätverket tränades på ImageNet som ju innehåller mycket djurbilder.

Därför kan man ana strukturer som påminner om ögon, nosar och fjädrar i bilden.

Också DeepDream är långsam.

Summering

Den här lektionen handlade om Kreativ AI.

Störst framsteg inom bildbehandling och då speciellt Style Transfer och DeepDream.

Text och musik är exempel på sekventiella data. En bild är inte sekventiell.

Bilder behandlas ofta i CNN-nätverk (Convolutional Neural Network).

Text och musik hanteras ofta av RNN-nätverk (Recursive Neural Network)

<< Bakåt Framåt >>