Cel mai bun răspuns
Există diferite tipuri de funcții de squashing. O funcție de zdrobire este definită în esență ca o funcție care zdrobeste intrarea la unul dintre capetele unui interval mic. În rețelele neuronale, acestea pot fi utilizate la noduri dintr-un strat ascuns pentru a împiedica intrarea. Aceasta introduce neliniaritatea în NN și permite NN să fie eficient. Puteți demonstra că, fără a introduce neliniaritatea la fiecare strat, ați avea în esență doar o serie de transformări liniare care ar fi la fel de eficiente ca o transformare liniară, astfel încât NN ar fi mai mult ca o regresie liniară.
Cele mai populare care au fost folosite includ funcția sigmoidă, funcția tangentă hiperbolică etc. Puteți găsi multe dintre aceste resurse online.
În timp ce funcțiile de squashing joacă un rol important în NN, există mai multe probleme cu utilizarea unuia. Una dintre probleme este că este dificil să obțineți valori intermediare folosind funcții de squashing, deoarece, prin definiție, funcțiile de squashing încearcă să squash funcția la ambele capete ale intervalului. Astfel, acestea pot fi dificil de utilizat și adesea funcțiile de zdrobire pot fi extrem de sensibile la greutățile aplicate. Acest lucru poate face antrenamentul foarte dificil, deoarece trebuie să găsiți un set foarte precis de greutăți care să producă zdrobirea exact așa cum ați dori (în caz contrar, valorile vor fi zdrobite – nu există un punct de mijloc).
O altă problemă este problema gradientului de dispariție. Atunci când se utilizează propagarea înapoi și în cascadă a erorii, eroarea tinde să scadă rapid, deoarece este înmulțită în mod constant cu o fracțiune din ieșirea de zdrobire și din greutăți (care sunt adesea inițializate ca o fracțiune de una). Astfel, straturile anterioare sunt cele mai lente de antrenat și este dificil să le antrenezi.
Ceea ce a condus la eficiența recentă a NN-urilor a fost utilizarea funcției ReLU în locul funcțiilor de zdrobire, care, mai degrabă decât zdrobirea intrare completă, mapează intrarea la un interval [0, x]. Acest lucru sa dovedit a fi mult mai eficient în NN-uri și a condus la succesul recent al NN-urilor. Oamenii au crezut, inițial, poate puțin naiv, că, deoarece funcția nu era diferențiată, nu ar fi la fel de eficientă, dar acest lucru s-a dovedit a nu fi cazul.
Chiar și cu ReLU-uri, problema gradientului de dispariție încă există și cu rețele foarte profunde este încă o problemă. Există diferite metode la care se lucrează în prezent pentru a încerca să combată această problemă.
Răspuns
Fără o funcție de zdrobire, o rețea neuronală nu ar putea modela relații neliniare. De fapt, dacă toți neuronii au o funcție de răspuns liniar, rețeaua neuronală, indiferent de ce topologie simplifică la o regresie liniară.
Dacă aveți un neuron de ieșire y care depinde liniar de un strat intermediar u
y = \ sum\_i \ gamma\_i u\_i
care la rândul său depinde liniar de neuronii de intrare x
u\_i = \ sum\_j \ beta\_ {ij} x\_j
întreaga rețea neuronală se simplifică la
y = \ sum\_ {ij} \ gamma\_i \ beta\_ {ij} x\_j
Dacă optimizați termenii de eroare pătrată, veți avea o regresie liniară.