Het tweede antwoord geeft antwoord op de vraag waarom je een squashing function nodig hebt en het eerste geeft aan wat een squasing function doet.
Als we geen squashing function zouden toepassen, doen we niks anders dan linear dingen met elkaar vermenigvuldingen:
Zonder Squashing Function (ongelimiteerd, dus niet activatie tussen -1 en 1)
O -w1-> O -w2-> O -w3-> O -w4-> O
w1 = 0.5
w2 = 0.75
w3 = 1.4
w4 = 7.1
Input van 2 geeft:
2 * 0.5 * 0.75 * 1.4 * 7.1 = 7.455
doet precies hetzelfde als twee-laag netwerk (dus perceptron) met aangepast gewicht:
w* = 0.5 * 0.75 * 1.4 * 7.1 = 3.7275
O -w*-> O
2 * 3.7275 = 7.455
Als we echter een squashing function gebruiken op elke laag, dan gaat deze "lineare transformatie" niet meer op en doet het dus een multi-layer netwerk dus echt iets anders dan een twee-laag netwerk. Een squashing function limiteerd dus de output-ruimte tussen bijvoorbeeld -1 en 1 (of 0 en -1, maar dat geeft het probleem met x=0 —> y=0.5) en zorgt er daarom voor dat de werking van de lagen achter elkaar niet hetzelfde is als een simpele vermenigvulding van de gewichten op de initiële activatie. Waarom niet de simpele squashing function van de perception (met twee lagen en een simpele (lineare) threshold functie)? Omdat we dan met het probleem komen te zitten dat we slechts met 0 en 1 werken (binair) en alle informatie al door het eerste gewicht wordt bepaald (de tweede laag is dan 0 of 1 en doet daarna altijd hetzelfde).