Case Study: implementatie van Neurale Netwerken voor beeldherkenning met gedetailleerde berekeningen

Neurale netwerken worden op grote schaal gebruikt in beeldherkenningstaken vanwege hun vermogen om complexe patronen te leren. Deze casestudy onderzoekt het implementatieproces, inclusief gedetailleerde berekeningen die betrokken zijn bij het trainen van een neuraal netwerk voor beeldclassificatie.

Het ontwerp van het Neurale Netwerk

Het netwerk bestaat uit een invoerlaag, een verborgen laag en een uitvoerlaag. Voor eenvoud, overweeg een kleine dataset met afbeeldingen die elk door 4 pixels worden weergegeven. De invoerlaag heeft 4 neuronen, de verborgen laag heeft 3 neuronen, en de uitvoerlaag heeft 2 neuronen die twee klassen vertegenwoordigen.

Begingewichten en -bases

Gewichten worden willekeurig geïnitialiseerd. Bijvoorbeeld, de gewichten tussen invoer en verborgen laag zijn:

Biases zijn in eerste instantie op nul gezet voor eenvoud.

Voortplanting en berekeningen

Als je een invoerafbeelding met pixelwaarden [0.5, 0,2, 0,1, 0,7] hebt, worden de verborgen laaginvoeren berekend als:

H1 = (0,5)(0,2) + (0.2)(-0,3) + (0,1(0,4) = 0,1 - 0,06 + 0,04 = 0,08

H2 = (0,5)(-0.5) + (0.2)(0,1) + (0.1)(0.2) = -0,25 + 0,02 - 0,02 = -0,25

H3 = (0,5)(0,3) + (0.2)(-0,4) + (0.1)(0,2) = 0,15 - 0,08 + 0,02 = 0,09

Een activeringsfunctie, zoals sigmoid, toepassen, zijn de verborgen laaguitgangen:

OH1 = 1 / (1 + e-0.08) ≈ 0,52

OH2 = 1 / (1 + e0.25) ≈ 0,43

OH3 = 1 / (1 + e-0.09) ≈ 0,52

De outputs worden dan gebruikt als input voor de outputlaag, waar gewichten op dezelfde manier worden toegepast om klasse waarschijnlijkheden te berekenen.

Fout berekenen en gewichten bijwerken

Stel dat de ware klasse klasse 1 is, weergegeven als [1, 0]. De uitvoerlaag berekent:

O1 = 1 / (1 + e-z1)

Waar z1 de gewogen som is van verborgen outputs. De fout wordt berekend als:

Verlies = 0,5 * (doel - uitvoer)2

Met behulp van gradiëntdaling, gewichten worden bijgewerkt op basis van de fout en het leerpercentage, bijvoorbeeld, 0,1.

Samenvatting van de berekeningen

Dit proces herhaalt zich voor meerdere tijdperken, het aanpassen van gewichten om de nauwkeurigheid te verbeteren. Gedetailleerde berekeningen omvatten matrix vermenigvuldigingen, activeringsfuncties en foutderivaten, die essentieel zijn voor het effectief trainen van neurale netwerken.