Beste antwoord
Er zijn verschillende soorten squashfuncties. Een squashfunctie wordt in wezen gedefinieerd als een functie die de invoer naar een van de uiteinden van een klein interval verplettert. In neurale netwerken kunnen deze worden gebruikt op knooppunten in een verborgen laag om de invoer te pletten. Dit introduceert non-lineariteit in het NN en maakt het mogelijk dat het NN effectief is. Je kunt bewijzen dat je, zonder non-lineariteit op elke laag te introduceren, in wezen slechts een reeks lineaire transformaties zou hebben die net zo effectief zouden zijn als een lineaire transformatie, dus het NN zou meer op een lineaire regressie lijken.
Populaire die zijn gebruikt, zijn onder meer de sigmoïde functie, de hyperbolische tangensfunctie, enz. U kunt veel van deze bronnen online vinden.
Hoewel squashfuncties een belangrijke rol spelen in NN, zijn er verschillende problemen met een. Een van de problemen is dat het moeilijk is om tussenwaarden te krijgen met behulp van squashfuncties, omdat squashfuncties per definitie proberen de functie naar beide uiteinden van het interval te squashen. Daardoor kunnen ze moeilijk te gebruiken zijn en vaak kunnen de pletfuncties zeer gevoelig zijn voor de toegepaste gewichten. Dit kan het trainen erg moeilijk maken, omdat je een zeer precieze set gewichten moet vinden die het squashen produceert op precies de manier die je zou willen (anders worden de waarden platgedrukt – er is geen middenweg).
Een ander probleem is het probleem Vanishing Gradient. Bij gebruik van backpropagation en cascadering van de fout, heeft de fout de neiging snel af te nemen omdat deze constant wordt vermenigvuldigd met een fractie van één van de squashoutput en de gewichten (die vaak worden geïnitialiseerd als een fractie van één). Dus eerdere lagen zijn het langzaamst om te trainen en het is moeilijk om ze te trainen.
Wat leidde tot de recente effectiviteit van NNs was het gebruik van de ReLU-functie in plaats van de squashfuncties, die in plaats van de squashfuncties invoer volledig, wijst de invoer toe aan een [0, x] interval. Dit bleek veel effectiever te zijn bij NNs en leidde tot het recente succes van NN. Mensen dachten oorspronkelijk, misschien een beetje naïef, dat, omdat de functie niet differentieerbaar was, deze niet zo effectief zou zijn, maar dit bleek niet het geval te zijn.
Zelfs met ReLUs, het Vanishing Gradient-probleem bestaat nog steeds en met zeer diepe netwerken is nog steeds een probleem. Er wordt momenteel aan verschillende methoden gewerkt om dit probleem te bestrijden.
Antwoord
Zonder een squashfunctie zou een neuraal netwerk geen niet-lineaire relaties kunnen modelleren. Als alle neuronen een lineaire responsfunctie hebben, wordt het neurale netwerk, ongeacht welke topologie, vereenvoudigd tot een lineaire regressie.
Als je een output-neuron hebt y die lineair afhangt van een tussenlaag u
y = \ sum\_i \ gamma\_i u\_i
dat op zijn beurt lineair afhangt van de ingevoerde neuronen x
u\_i = \ sum\_j \ beta\_ {ij} x\_j
het hele neurale netwerk wordt vereenvoudigd tot
y = \ sum\_ {ij} \ gamma\_i \ beta\_ {ij} x\_j
Als je kwadratische fouttermen optimaliseert, krijg je een lineaire regressie.