6) Hur bra är modellen?

I förra lektionen lärde du dig hur en mycket enkel AI-app kan se ut. I denna lektion lär du dig mer om klassificering av bilder. Du kommer nu att använda en mera avancerad app. Blir resultatet bra eller dåligt? Titta på videon överst på sidan.

Modellen som vi använder i den här lektionen är MobileNet - samma som i förra lektionen. Modellen har 1000 klasser, runt 400 för olika sorters djur varav runt 130 för olika hundraser. Återstående 600 klasser täcker resten ”av världen”. Modellen är därför bäst på hundraser, näst bäst på djur och sämst på vad som helst.

Modellen ska ha en noggrannhet på ungefär 70% dvs 7 av 10 bilder ska klassificeras rätt. Men det gäller bara om bilderna har ungefär samma egenskaper som bilderna som modellen tränades med. Det får till exempel inte finnas bilder av en annan klass än vad modellen tränades med. Så 70% kan vi inte räkna med eftersom vi inte har kollat vilka klasser som finns i modellen.

Imageapp - en webbapp för bildklassificering

Jag öppnar gubboit.se/imageapp i webbläsaren (du får snart använda den här appen i en övningsuppgift):


En bild visas tillsammans med tillhörande klassificeringar. 84% sannolikhet är detsamma som 0.84.

En viktig egenskap hos vår modell är att den bara kan hantera en klass per bild. Alltså antingen katt eller hund men inte katt och hund.

En annan egenskap är att bara de tre bästa klasserna (med störst sannolikhet) visas. Därför blir summan av sannolikheterna mindre än 100%. Summan av sannolikheterna för alla klasser är alltid 100%.

Om du klickar på < eller > visas nya bilder och klassificeringar. Resultatet varierar. Bilderna är ibland valda för att vara svåra.

Hur bra resultatet blir beror på flera saker (förenklat):

  • Finns det en klass som passar till bilden? Om inte blir det en annan klass - den som har högst sannolikhet. Det blir alltid ett svar och aldrig 'den klassen finns inte'.
  • Om det finns en lämplig klass: Liknar bilden de bilder som användes vid träningen? Hönor till exempel kan vara mycket olika. Dessutom kan hönan ha olika positioner: i profil, framifrån, bakifrån, uppifrån, framåtböjd osv. Nu förstår vi att det vid träningen krävs ett stort antal bilder för varje klass för att det ska bli bra.

Här kommer några bilder (med kommentarer) med mindre bra resultat från vår app:


Dåligt. Kolibri, bildskärm och tusensköna är dåliga förslag – det är en orkidé (från fjällen). Det dåliga resultatet beror på att modellen helt enkelt är dålig på blommor. Ingen lämplig klass. Modellen är allmänt osäker: Bara 16% sammanlagt för de tre bästa klasserna.



Inte så bra men mobiltelefonen liknar lite en fjärrkontroll och mobil finns med som tredje förslag. Inte tillräckligt med bilder på mobiler vid träningen?



Dåligt. Släpvagn är inte bra. Klassen träd finns nog inte i modellen.



Inte så bra men ändå krokodil som första förslag. Krokodil i profil gav 89% och här bara 11%. Problemet är troligtvis att bilder på krokodiler i den här positionen (och dessutom beskuren) saknas vid träningen.



Dåligt. Samma groda i en annan position hade 55%. Bakelse är ju inte bra men det är en svår bild. Något liknande fanns inte med vid träningen.



Grouse (ripa) är inte så tokigt men när hönan rätar på sig (nästa bild i appen) blir det bättre. Positionen är problemet.

Vad har vi lärt oss?

  • Vid träningen behövs ett stort antal bilder för varje klass där föremålet ses ur olika positioner
  • För att en modell ska vara meningsfull för en viss uppgift måste lämpliga klasser finnas i modellen. Modellen måste också vara tränad med tillräckligt många bilder för varje klass. Vi skulle egentligen ha kollat vilka 1000 klasser modellen hanterar innan vi använde modellen.

Går det att fixa till en modell om vi tycker att något är mindre bra?

Ja, det går men modellen måste tränas om. Men inte hela modellen som tur är eftersom det är tidsödande och kanske dyrt.

Vi kan lägga till en ny klass eller förbättra resultatet för en klass. Vi måste förstås också lägga till motsvarande bilder. Det är något vi kan göra själva men det är en annan kurs.

Vår webbapp - video

Klicka på knappen Video i appen. En video från Skansen visas nu. Klicka på Predict och du får en klassificering av bilden i videon.

Om du klickar på Auto Off får du en klassificering i sekunden om sannolikheten är tillräckligt bra – större än 25% eller 50% (klicka en gång till).

OBS! Klassificeringen hänger kvar tills en ny ska visas och det kan se lite konstigt ut.

Är video svårt?

Är det svårt att få appen att hantera en inspelad video eller direkt från kameran?

Nej, egentligen inte. Vi kan läsa en bild i taget från videon och klassificera den. En video är bara en följd av bilder till exempel 10 bilder per sekund.

OBS: Valet av bilder för träning kan ställa till det

Den här anekdoten är värd att tänka på.

I ett projekt skulle en modell tränas så den kunde skilja på hund och varg. Ett stort antal bilder på hundar och vargar togs fram och modellen tränades.

Men resultatet blev inte bra. Modellen sade 'varg' ganska ofta när det var tydligt att det var en hund.

Men det var inte konstigt. Modellen hade ofta fel om hundbilder med snö. Och orsaken var att de flesta vargbilderna var tagna på vintern (med snö). Modellen hade alltså lärt sig att snö betyder varg.


Summering

I den här lektionen lärde du dig hur en modell för enkel bildklassificering kan ge mycket olika resultat beroende på vilka bilder modellen tränades med och jämfört med vilka nya bilder som gavs till modellen.

I nästa lektion tittar vi på en app för att bestämma hundraser och om hur AI-appar kan skapas.

<< Bakåt Framåt >>