Innehållsförteckning
- Introduktion
- Mörk kunskap
- Destillationsförfarande
- Experimentera på MNIST
- Ytterligare experiment på MNIST
1. Introduktion
I den här artikeln kommer jag att utforska kunskapsdestillationsprocessen i AI — hur det fungerar i allmänhet, dess betydelse och anledningarna till att använda det.
Hur kan vi komprimera och överföra kunskap från en större modell eller ensemble av modeller (som tränades på mycket stora datamängder för att extrahera struktur från data) till en enda liten modell utan mycket nedgång i prestanda?
Men varför vill vi göra det här? Varför behöver vi en mindre modell när en större modell eller ensemblemodell redan ger bra resultat på testdata?
Vid träningstid tränar vi vanligtvis stora/ensemble av modeller eftersom huvudmålet är att extrahera struktur från mycket stora datamängder. Vi skulle också kunna tillämpa många saker som avhopp, dataökning vid tågtider för att mata dessa stora modeller med all slags data.
Men vid prognoser är vårt mål ett helt annat. Vi vill få resultat så snabbt som möjligt. Så att använda en större/ensemble av modeller är mycket dyrt och kommer att hindra distributionen till ett stort antal användare. Så nu är frågan hur vi kan komprimera kunskap från denna större modell till en mindre modell som enkelt kan distribueras.
Geoffrey Hinton, Oriol Vinyals och Jeff Dean från google genom sin tidning kom med en annan typ av utbildning som kallas destillation för att överföra denna kunskap till den mindre modellen. Detta är samma teknik som kramande ansikte använde i deras Distill BERT- implementering.
Om vi kan träna den här mindre modellen att generalisera på samma sätt som en stor modell, så kommer den här mindre modellen som tränas på detta sätt att klara sig mycket bättre än den mindre modellen som tränas på samma data men på normalt sätt. Detta är en av huvudprinciperna bakom destillation
2. Mörk kunskap
Vanligtvis, i maskininlärning, en modell som lär sig att skilja mellan ett stort antal klasser, är det huvudsakliga träningsmålet att maximera den genomsnittliga loggsannolikheten för korrekt svar. Ta till exempel exemplet med MNIST-datauppsättningen där målet är att klassificera en bild om det är 1 eller 2 eller … 9. Så om den faktiska bilden är 2 så är syftet med vilken modell som helst att maximera P(dess 2/bild) (vilket kan läsas som sannolikheten att en viss bild är 2 givet bilden). Men modellen ger också sannolikheter till alla felaktiga svar även om de sannolikheterna är väldigt små, vissa av dem är mycket större än andra. Poängen är att även om dessa sannolikheter är små, så säger relativa sannolikheter för felaktiga svar oss mycket om hur modellen kan generalisera. För att förstå det, låt oss ta en titt på exemplet nedan.
I ovanstående figur gavs denna version av 2 sannolikheten 10-6 för att vara en 3:a och 10-9 för att vara en 7:a medan det för en annan version kan vara tvärtom. Detta är värdefull information som definierar en rik likhetsstruktur över datan (dvs det står vilka 2:or som ser ut som 3:or och vilka som ser ut som 7:or) men den har väldigt lite inflytande på korsentropikostnadsfunktionen under överföringsstadiet eftersom sannolikheterna är så nära noll.
Men innan vi går vidare till destillationsproceduren, låt oss ägna tid åt hur modellen faktiskt producerade utmatningssannolikheter. Det är här softmax-aktivering kommer in. Sista steget i modellbearbetningen är softmax och denna komponent är det som ger utmatningssannolikheter. Indata till softmax kallas logits och vi designar det sista lagret av NN på ett sådant sätt att antal dolda enheter = antal klasser vi vill klassificera.
Formeln för att beräkna softmax ges som
Ovanstående ekvation ger sannolikheter för varje i och summan av alla sannolikheter totalt i är lika med 1. Under träningstid beräknas förlusten för varje enskilt träningsexempel genom att jämföra dessa softmax-sannolikheter med hårda mål(etiketter) och med hjälp av backpropagation-koefficienter uppdateras tills förlusten är minimal.
Som sett ovan ger denna softmax en hög sannolikhet till en sann etikett och låga sannolikheter till felaktiga etiketter. Vi ser också att sannolikheter för felaktiga svar även om de är små, har mycket information gömd i sig som hjälper modellen att generalisera. Vi kallar detta Dark Knowledge
3. Destillationsförfarande
Enligt artikeln är det bästa sättet att överföra generaliseringsförmågan hos den större modellen till en liten modell att använda klasssannolikheter som produceras av den besvärliga modellen som mjuka mål för att träna den lilla modellen.
Så processen är som följer:
- Ta det ursprungliga träningssetet som användes för att träna den större modellen, skicka sedan träningsdata genom den större modellen och få softmax-sannolikheter över olika klasser. Som framgår ovan kommer sann etikett att få hög sannolikhet och felaktiga etiketter kommer att få låga sannolikheter. Men vi såg att dessa låga sannolikheter har mycket information gömd i sig. Så för att förstora betydelsen av dessa sannolikheter använde författare av tidningarna en variabel som heter Temperatur(T) för att dela upp alla logiter innan de passerade softmax. Detta ger en mjukare sannolikhetsfördelning över klasser. Vi kan se nedan
Resultatet av att applicera softmax med temperatur(T) är vad vi kallar för mjuka mål. Denna process är vad författarna kallade destillation . Analogi med att ta bort orenheter i vatten genom att höja temperaturen
- Mycket information om inlärd funktion från stora modeller finns i förhållandena för mycket små sannolikheter i de mjuka målen.
- Lite terminologi:
- Mjuka mål - utmatning från den stora modellen efter att temperatur T har applicerats under softmax
- Mjuka förutsägelser - utdata från den mindre modellen efter att temperatur T har applicerats under softmax
- Hårda förutsägelser - utdata från mindre modell när temperaturen T = 1 (vanlig softmax)
- Sanna mål - faktiska mål från träningsuppsättningen
Nedan finns ett flödesschema över hela utbildningsprocessen
Så träningsprocessen för en liten modell har 2 förlustfunktioner. Den första förlustfunktionen tar både mjuka förutsägelser och mjuka mål och är korsentropiförlustfunktionen. Det är så generaliseringsförmågan överförs från stor modell till liten modell genom att försöka matcha mjuka mål. För denna förlustfunktion använder båda softmax temperaturen på 'T'.
Författare fann också att det hjälper att använda den lilla modellen för att matcha verkliga mål. Detta ingår i den andra kostnadsfunktionen. Den slutliga kostnaden är ett vägt medelvärde av dessa två kostnadsfunktioner med hyperparametrar alfa och beta.
4. Experimentera på MNIST
Författarna använde MNIST-datauppsättningen för att testa detta tillvägagångssätt. De använde två arkitekturer för detta som bara skiljer sig i antalet dolda enheter i mellanskikten. Författarna använde 2 dolda lager neurala nätverk i båda fallen
- Mindre modell som kan ses som 784 -> 800 -> 800 -> 10 (där 784 är utrullade dimensioner av en bild, 800 är antalet dolda enheter med RELU-aktivering och 10 är antalet klasser vi förutsäger). Denna modell gav 146 testfel utan reglering.
- Större modell som kan ses som 784 -> 1200 -> 1200 -> 10 (där 784 är utrullade dimensioner av en bild, 1200 är antalet dolda enheter med RELU-aktivering och 10 är antalet klasser vi förutsäger). Denna modell är tränad på MNIST med hjälp av bortfall, viktbegränsningar och skakande ingångsbilder och detta nät uppnådde 67 testfel.
Kan vi överföra denna förbättring i den större modellen till en liten modell?
Författare använde nu både mjuka mål erhållna från det stora nätet och sanna mål utan bortfall och ingen darrning av bilder, dvs det mindre nätet reglerades enbart genom att lägga till den extra uppgiften att matcha mjuka mål som produceras av det stora nätet vid en temperatur på 20 och resultatet är.
74 testfel med 784 -> 800 -> 800 -> 10
Detta visar att mjuka mål kan överföra mycket kunskap till den lilla modellen, inklusive kunskapen om hur man generaliserar som man lär sig från översatta träningsdata. Med andra ord, fördelen vi fick av att omvandla insatser överförs till det lilla nätet även om vi inte omvandlar insatser för det lilla nätet.
Det är ett välkänt faktum att omvandling av indata genom olika transformationer gör att modellen generaliseras mycket bättre och i vårt fall dyker information om hur man generaliserar upp i mörk kunskap och detta gömmer sig i mjuka mål. Ingen av denna information finns i True targets. Så genom att använda information från mjuka mål presterar vårt lilla nät mycket bättre.
Stort nät som använder mjuka mål inlärt likhetsmått som lärde sig "hur är vad" och med denna kunskapsöverföring talar vi om för det lilla nätet "hur är vad"
Alla ovanstående experiment på MNIST sammanfattas nedan
5. Ytterligare experiment på MNIST
Dessutom försökte författarna också att utelämna exempel på siffra 3 när de tränade en mindre modell med hjälp av destillation. Så ur den lilla modellens perspektiv är 3 en mytisk siffra som den aldrig har sett. Eftersom den mindre modellen aldrig har sett 3 under träning, förväntar vi oss att den gör en hel del fel när den stöter på 3 i testsetet. Trots detta gjorde den destillerade modellen bara 206 testfel varav 133 är på 1010 treor i testsetet. Detta visar tydligt att den stora modellens generaliseringsförmåga överfördes till den lilla modellen under destillation och detta gör att den lilla modellen i de flesta fall korrekt förutsäger 3
Så moralisk i historien är.
Att transformera ingående bilder förbättrar generaliseringen avsevärt. Att transformera målen har också en lika stor effekt och om vi kan få mjuka mål någonstans ifrån är det mycket billigare då vi kan få samma prestanda med den mindre modellen
Referenser:
- Hinton, Geoffrey, Oriol Vinyals och Jeff Dean. "Destillera kunskapen i ett neuralt nätverk."
- Kunskapsdestillation av intellabs.