Hallo en welkom terug bij de cursus over diep leren.
Dit is een extra tutorial om te praten over de softmax- en cross-entropiefuncties.
Het is niet 100 procent nodig om door alle delen te gaan die we hebben doorgenomen in
het hoofdgedeelte van dit gedeelte waar we het hebben over de convolutionele neurale netwerken.
Maar tegelijkertijd dacht ik dat het een goede aanvulling zou zijn op je zak met kennis en vaardigheden.
Dus laten we doorgaan en in deze functies graven.
Om te beginnen hebben we hier het convolutionele neurale netwerk dat we in het hoofdgedeelte van de sectie
hebben gebouwd.
En dan, aan het einde, verschijnen er enkele kansen voor nul komma vijfennegentig voor een hond en nul komma nul
vijf of vijf procent voor een kat, gezien die foto aan de linkerkant als invoer.
Dit is nadat de training is gevolgd.
Dit is eigenlijk dat het draait en het classificeert een bepaald beeld.
En dus is de vraag hier hoe komt het dat deze twee waarden optellen tot één?
Want voor zover we weten, van alles wat ik heb geleerd over kunstmatige neurale netwerken, is
er niets om te zeggen dat deze twee laatste neuronen met elkaar verbonden zijn.
Dus hoe zouden ze weten wat de waarde van de hoe voor elk van hen is, wat de waarde van de ander
is en hoe zouden ze weten dat ze hun waarden bij één moeten optellen?
Het antwoord is dat ze dat niet zouden doen in de klassieke versie van een kunstmatig neuraal netwerk.
En de enige manier waarop ze dat doen, is omdat we een speciale functie introduceren, de softmax-functie genaamd, om
ons uit de situatie te helpen.
Dus wat er normaal gesproken zou gebeuren, is dat de neuronen van honden en katten enige echte waarde hebben die ze niet hoeven te
zijn, ze hoeven niet op te tellen tot één.
Maar dan zouden we de softmax-functie toepassen, die daar bovenaan staat geschreven, en dat zou deze waarden
tussen nul en één brengen, en ze zouden optellen tot één.
En om Wikipedia te citeren, de softmax-functie of de genormaliseerde exponentiële functie is een generalisatie van de logistische
functie die unquote aanhaalt en een belangrijke dimensionale vector van willekeurige reële waarden verplettert tot een K-dimensionale vector van
reële waarden in het bereik van nul tot één die optellen tot een.
Dus eigenlijk doet het precies wat we willen.
Het brengt deze waarden tussen nul en één en zorgt ervoor dat ze optellen tot één.
En de manier waarop het werkt is dat de manier waarop dit mogelijk is, is omdat je onderaan hier
kunt zien dat er een sommatie is.
Dus het neemt de exponent en plaatst het in de macht van Z en telt het op, zodat zodra de twee over al je klassen,
al deze waarden zijn.
En dat is dus je normalisatie die daar plaatsvindt.
Dus zo werkt de softmax-functie.
En het is logisch om de softmax-functie in convolutionele neurale netwerken te introduceren, want hoe vreemd zou het zijn
als je een mogelijke klasse van een hond en een kat had en voor de hondenklasse had je een kans van 80 procent, en
voor de kattenklasse, je had een kans van 45 procent.
Het heeft gewoon geen zin zo.
En daarom is het veel beter als je de softmax-functie introduceert en dat is wat
je meestal zult zien gebeuren in convolutionele neurale netwerken.
Het andere is dat de softmax-functie hand in hand gaat met iets dat de cross-entropiefunctie wordt genoemd,
en het is erg handig voor ons.
Laten we dus eerst naar de formule kijken.
Zo ziet de kruis-entropiefunctie eruit.
We gaan eigenlijk een andere berekening gebruiken, we gaan deze voorstelling van de eeuw
gebruiken.
Maar de resultaten zijn in principe hetzelfde.
Dit is gewoon makkelijker te berekenen.
En wat ik weet, klinkt op dit moment misschien helemaal niets met wat dan ook, alleen formules op je scherm, maar er
zal wat extra aanbevolen lectuur zijn aan het einde van dit gedeelte.
Dus maak je geen zorgen als je de wiskunde niet oppikt, alsof we de wiskunde nu niet hebben uitgelegd.
Maar het punt hier is dat wat over entropie is, nou ja, over entropiefunctie.
Weet je nog hoe we eerder in kunstmatige neurale netwerken een functie hadden genaamd de gemiddelde A-kwadraat
foutfunctie, die we gebruikten als de kostenfunctie voor het beoordelen van onze netwerkprestaties.
En ons doel was om de MSE te minimaliseren om onze netwerkprestaties te optimaliseren.
Nou, dat was toen onze kostenfunctie.
Ze zijn er en in convolutionele neurale netwerken kunnen we MASC nog steeds gebruiken.
Maar een betere optie in convolutionele neurale netwerken nadat je de softmax-functie hebt toegepast, blijkt de
kruis-entropiefunctie te zijn.
En in convolutionele neurale netwerken, wanneer je over letselfuncties toepast, worden de kosten niet meer de
kostenfunctie genoemd.
Het heet de verliesfunctie.
En ze lijken erg op elkaar.
Het zijn slechts kleine terminologische verschillen en houden van een beetje anders en wat ze betekenen.
Maar voor onze doeleinden is het vrijwel hetzelfde en.
Wat er gebeurt, is dat de verloren functie opnieuw iets is dat we willen minimaliseren om de prestaties van
ons netwerk te maximaliseren.
Laten we dus een snel voorbeeld bekijken van hoe deze functie kan worden toegepast.
Dus laten we zeggen dat we een afbeelding van een hond in het netwerk hebben gezet, de voorspelde waarde voor hond nul punt negen.
En dit is tijdens de training.
Dat weten we dus.
We kennen het label dat een hond is.
Dus de voorspellende waarde, nul komma negen, de voorspellende waarde voor kat is nul komma één.
Dan hebben we hier het label, zodat we weten dat het een hond is, want dit is training en een voor honden is voor een
kat.
En dus in dit geval moet je gebruiken.
U moet deze getallen in uw formule voor de kruis-entropie stoppen.
Dus hoe je het doet, zijn de waarden aan de linkerkant die naar de variabele gaan.
Q Degene die onder de logaritme aan de rechterkant staat en de waarden van rechts zouden in P
gaan.
En dus is het belangrijk om te onthouden welke daar waar naartoe gaat, want als je ze verkeerd
hebt, wil je geen logaritme nemen van a vanaf een waarde van nul en of een logaritme van een één.
Dus je wilt ze gewoon aansluiten, zorg ervoor dat je ze op de juiste plaatsen aansluit en dan tel je dat in feite
op.
Dus zo werkt de cross country.
En we zullen nu kijken naar een specifiek stapsgewijs voorbeeld van het toepassen van deze functie
in het echte leven.
En het zal een beetje logischer zijn wat kruis-entropie is.
En het zal minder zijn zoals mijn doel in deze tutorial is om je meer op je gemak te
stellen met cross-entropie, omdat het erg ingewikkeld kan klinken en geen woordspeling bedoeld is.
Het kan van convolutionele neurale netwerken houden en het kan erg complex en eng klinken, maar daar gaat het niet
om.
Dus laten we doorgaan en het toepassen, zodat we weten dat het niet eng is.
Dus hier is het neurale netwerk.
En dit zal ook verklaren waarom we dit doen, waarom we naar verschillende klassenfuncties kijken.
Dus een neuraal netwerk zoals een neuraal netwerk, laten we zeggen dat we twee neurale netwerken hebben en
dan passeren we een afbeelding van een hond en weten we dat dit een hond is en geen kat.
En dan hebben we nog een afbeelding van een kat, deze keer een dier, en het is een kat, geen hond.
En hier hebben we een raar uitziend dier, dat in feite een hond is, geen kat, als je heel goed kijkt.
Dus we willen zien wat onze neurale netwerken zullen voorspellen.
In het eerste geval, neuraal netwerk een 90 procent.
Hond 10 procent katten.
Correct.
Neurale netwerk nummer twee, 60 procent hond 40 procent kat nog steeds correct.
Erger, maar correct.
Tweede optie, eerste neuraal netwerk 10 procent kattenhond 90 procent katten.
Correct.
Neurale netwerk nummer twee 30 procent hond 70 procent kat erger maar nog steeds correct.
En dan tot slot, neuraal netwerk één in een afbeelding drie neuraal netwerk één 40
procent hond 60 procent kat onjuist neuraal netwerk nummer twee 10 procent hond 90 procent kat onjuist en erger.
Dus de sleutel hier is dat, hoewel beide netwerken het bij de laatste fout hadden, bij alle drie de afbeeldingen,
neuraal netwerk één beter presteerde dan neuraal netwerk twee.
Dus zelfs in het laatste geval was het erg dat het een hond een kans van 40 procent gaf, in tegenstelling tot een neuraal netwerk om de hond maar
een kans van 10 procent te geven.
Geen enkel neuraal netwerk één presteert over de hele linie beter dan neuraal netwerk twee.
En dus gaan we nu kijken naar de functies die ze kunnen meten, prestaties waar we het al
over hadden.
Dus laten we deze in een tabel zetten.
Dus er is een neuraal netwerk, één, je hebt het verkeerde nummer.
Dat is dus het afbeeldingsnummer.
En dan voor afbeelding één, je hebt wat het voorspelde, 90 procent hond, 10 procent kat.
Dus er zijn de hat-variabelen en dan heb je de werkelijke waarden.
Dus hond.
Juist, kat onjuist.
Hetzelfde voor afbeelding nummer twee en hetzelfde voor afbeelding nummer drie en hetzelfde voor neuraal netwerk.
Nummer twee, dus honden 60 procent.
Katten 40 procent in de eerste afbeelding.
Dat is wat het voorspelde.
Het juiste antwoord is hond, geen kat enzovoort.
En laten we nu eens kijken welke fouten we daadwerkelijk kunnen krijgen.
Dus welke fouten we kunnen berekenen om de prestaties in te schatten en de prestaties van onze netwerken te monitoren.
Dus één type fout wordt de classificatiefout genoemd.
En dat is eigenlijk gewoon aan jou vragen, heb je het goed gedaan of niet, ongeacht de kansen, heb je het gewoon goed gedaan
of heb je het niet goed gedaan?
Dus in beide gevallen, voor beide neurale netwerken, elk van hen, kregen ze er een of zo.
Dit is het aantal dat ze fout hadden.
Dus ze hadden een op de drie fout.
Dus een foutenpercentage van 33 procent voor neuraal netwerk één en 33 procent foutenpercentage voor neuraal netwerk om te bereiken.
Kortom, vanuit dit oogpunt presteren beide neurale netwerken op hetzelfde niveau.
Maar we weten dat dat niet waar is.
We weten dat het neurale netwerk een beter presteert dan het neurale netwerk.
Dat is de reden waarom een classificatiefout geen goede maatstaf is, vooral niet voor back-propagatie,
de gemiddelde kwadratische fout anders.
Trouwens, ik deed deze berekeningen in Excel.
Ik wilde je er gewoon niet mee lastig vallen.
Maar je kunt er gewoon voor gaan zitten en ze op papier of in Excel doen.
Dit zijn zeer eenvoudige berekeningen.
Neem in feite de som van de gekwadrateerde fouten en neem dan het gemiddelde over je waarnemingen, en dat
is het zo'n beetje.
Dus voor het Fonua-netwerk krijg je vijfentwintig procent voor een neuraal netwerk.
Twee, je krijgt eenenzeventig procent.
Foutpercentage.
Dus, zoals je kunt zien, is deze nauwkeuriger, het vertelt ons dat neuraal netwerk één een veel
lager foutenpercentage heeft dan neuraal netwerk twee en dan weer de entropie overschrijdt.
We hebben de formule gezien.
Dit kun je ook uitrekenen.
Dit is zelfs nog eenvoudiger te berekenen dan de gemiddelde kwadratische fout.
Kruisfout over entropie geeft je 38 procent voor neuraal netwerk één en één punt nul zes voor neuraal netwerk.
Dus je kunt zien dat de resultaten een beetje anders zijn als je ze zo bekijkt.
Als je kijkt naar, je weet wel, de betekenis van kwadratische fout en kruis-entropie, de vraag waarom je kruis-entropie zou gebruiken
in plaats van betekent dat kwadratische fout niet alleen gaat over het soort getallen hier, maar deze berekeningen waren alleen
bedoeld om laten zien dat dit alles is, het is allemaal mogelijk.
Je kunt het gewoon op papier doen.
Het is het niet, het is een niet erg intense wiskunde.
Dit zijn vrij eenvoudige, duidelijke dingen.
Maar de vraag waarom je zou gebruiken, betekent kruisentropie over het kwadraat.
Het is een zeer goede vraag om te stellen.
Ik ben blij dat je dat vraagt.
Het antwoord daarop, alsof er verschillende voordelen zijn van kruis-entropie ten opzichte van kwadratische fouten, die niet duidelijk
zijn.
En dus zal ik er een paar noemen, maar dan zal ik je laten weten waar je meer te weten kunt komen.
Dus een daarvan is dat als je, bijvoorbeeld, helemaal aan het begin staat van je achterwaartse voortplanting, je outputwaarde heel,
heel, heel, heel klein, heel klein is.
Het is dus veel kleiner dan de werkelijke waarde die u wilt.
Dan, helemaal aan het begin, zal de gradiënt in je gradiëntafdaling heel, heel laag zijn.
En jij, het zal niet genoeg zijn.
Het zal heel moeilijk zijn voor het neurale netwerk om daadwerkelijk iets te gaan doen en te gaan bewegen en die gewichten aan
te passen en te gaan bewegen, daadwerkelijk in de goede richting te gaan bewegen.
Terwijl wanneer je zoiets als de kruis-entropie gebruikt omdat het die logaritme erin heeft, het het netwerk zelfs
helpt om zelfs een kleine fout als die te beoordelen en er iets aan te doen.
Hier leest u hoe u erover nadenkt.
Dus laten we nogmaals zeggen, dit is een zeer intuïtieve benadering.
Er is een link naar de wiskunde en je kunt deze dingen in meer detail uit
de wiskunde afleiden.
Maar een zeer intuïtieve benadering.
Laten we zeggen dat je de uitkomst die je wilt er één is.
En op dit moment ben je op een miljoenste van een tot nulpunt nul nul nul nul nul één.
En dan verbeter je de volgende keer dat je je uitkomst verbetert van een miljoenste naar een duizendste.
En in termen van als je de kwadratische fout berekent, trek je gewoon de een van de ander af of eigenlijk zit je in elk
geval in het kwadraat, en je zult zien dat de gekwadrateerde fouten wanneer je het ene geval met het andere
vergelijkt, het niet veranderde zoveel.
Je hebt je netwerk niet zo veel verbeterd als je daar naar het gemiddelde vierkant kijkt.
Maar als je kijkt naar de over-entropie omdat je een logaritme neemt en je vergelijkt
de twee door elkaar te delen, dan zul je zien dat je je netwerk aanzienlijk hebt verbeterd.
Zodat die sprong van een miljoenste naar een duizendste in termen van gemiddelde kwadraten erg laag zal
zijn.
Het zal onbeduidend zijn en het zal je gradiëntversterkingsproces of je rugvoortplanting niet in de goede
richting sturen.
Het zal het in de goede richting leiden, maar het zal als een heel langzame begeleiding zijn.
Het zal niet genoeg kracht hebben.
Terwijl als je dat over de entropie heen doet, over de entropie heen, je zult
begrijpen dat hoewel dit heel kleine aanpassingen zijn die slechts een kleine verandering in absolute termen betekenen, in relatieve termen,
het een enorme verbetering is.
En we gaan zeker de goede kant op.
Laten we op die manier doorgaan.
Dus kruis-entropie zal je neurale netwerk helpen om naar rechts te gaan, om in de optimale staat te komen.
Het is een betere manier voor het neurale netwerk om het in een optimale staat te krijgen.
Maar houd er rekening mee dat dit alleen werkt als over entropie de voorkeursmethode is, alleen voor classificatie.
Dus als je het hebt over zaken als regressie, zoals we hadden in
kunstmatige neurale netwerken, dan ga je liever met mij mee en kwadratische fout, terwijl kruis-entropie beter is voor classificatie.
En nogmaals, het heeft te maken met het feit dat we de softmax-functie gebruiken.
Dus dat is een soort intuïtieve verklaring daarvoor.
Een goede plek om daar wat meer over te leren.
Als je echt geïnteresseerd bent in, weet je, waarom gebruiken we over-entropie versus gemiddelde kwadratische fout?
Google een video van Geoffrey Hinton genaamd de softmax-uitvoerfunctie, en hij legt dat uit.
Heel goed, en, weet je, als de peetvader van diep leren, wie kan het hoe dan ook beter uitleggen.
En trouwens, elke video van Geoffrey Hinton is goud waard.
Hij heeft sowieso een enorm talent om dingen uit te leggen.
Dus dat is softmax versus.
En ik hoop dat je daardoor een soort van intuïtief begrip krijgt van wat hier aan de
hand is, maar wat nog belangrijker is, dat je niet wordt afgeschrikt door de term kruis-entropie, omdat Hadland het in de praktische tutorials
zal noemen.
En ik wilde er zeker van zijn dat je daarop voorbereid bent.
En het is gewoon een andere manier om je verliesfunctie te berekenen en een andere manier
om je netwerk te optimaliseren, die specifiek is afgestemd op classificatieproblemen en dus convolutionele neurale netwerken,
en die hand in hand gaat met de softmax-functie.
Dus extra lectuur, als je een lichte introductie wilt in over-entropie, als je geïnteresseerd bent in het tegendeel, natuurlijk
een beetje meer.
Een goed artikel om te lezen heet A Friendly Introduction to Cross Entropy Loss door Rob
DePietro 2016.
Hier is de link hieronder.
Heel, heel leuk.
Heel zacht.
Niks.
Geen super complexe wiskunde.
Goede analogieën, goede voorbeelden met analogieën van auto's.
En je kijkt naar auto's en praat over informatie en stukjes en beetjes en, weet je, hoe zou je
dit opnemen?
Hoe zou je dat weten?
Het is een goed artikel om naar te kijken en het geeft je een goed overzicht van kruisentropie.
Zoals vanuit een inleidend standpunt, als je in de zware wiskunde wilt graven, zoals wat je hier
ziet, bekijk dan een artikel van of een blog over hoe je een neuraal netwerk implementeert.
Tussentijds naar.
Dus bemiddelaar is alsof het een tussenproduct is, zoals een onderbreking in, je weet wel, zoals wanneer je naar
een theater gaat en je hebt een pauze tussen het eerste deel en het tweede deel.
Dus omdat hij al deze stappen doorloopt en dan zegt hij, moet ik dit eerst
uitleggen.
En ja.
Daarom wordt het intranasaal genoemd.
Geen reden voor zover ik begrijp.
Het artikel is ook van Peter Rawlence 2016.
Beide zijn dus vrij recent.
En, weet je, kijk hier eens naar als je in dit artikel wilt ingaan op de wiskunde achter
kruis-entropie, achter een softmax en kruis-entropie.
Dus daar gaan we.
Dat is alles wat deze twee hebben.
Hopelijk heb ik wat meer duidelijkheid kunnen geven en veel succes ermee.
Het wordt leuk en geniet van de praktische tutorials.
Ik zie je de volgende keer.
Geniet tot die tijd van deep learning.