Tehnici de inițializare a greutății în rețelele neuronale de Saurabh Yadav Către știința datelor
Saurabh Yadav
9 noiembrie 2018 · 5 min de citire
Construirea chiar și a unei rețele neuronale simple poate fi o sarcină confuză, iar reglarea acesteia pentru a obține un rezultat mai bun este extrem de plictisitoare. Dar, primul pas care se ia în considerare în timpul construirii unei rețele neuronale este inițializarea parametrilor, dacă se face corect, atunci optimizarea va fi realizată în cel mai scurt timp, altfel convergerea la un minim folosind coborârea în gradient va fi imposibilă.

Acest articol a fost scris presupunând că cititorul este deja familiarizat cu conceptul de rețea neuronală, greutate, părtinire, funcții de activare, propagare înainte și înapoi etc.
Notatii de baza
Considerați o rețea neuronală de strat L, care are straturi ascunse L-1 și fiecare strat de intrare și ieșire fiecare. Parametrii (greutăți și părtiniri) pentru stratul l sunt reprezentați ca
În acest articol, vom analiza unele dintre practicile de inițializare de bază în utilizare și câteva tehnici îmbunătățite care trebuie utilizate pentru a obține un rezultat mai bun. Următoarele sunt câteva tehnici practicate în general pentru inițializarea parametrilor:
- Inițializare zero
- Inițializare aleatorie
Inițializare zero:
În practica generală, părtinirile sunt inițializate cu 0 și ponderile sunt inițializate cu numere aleatorii, ce se întâmplă dacă ponderile sunt inițializate cu 0?
Pentru a înțelege, să luăm în considerare că am aplicat funcția de activare sigmoidă pentru stratul de ieșire.
Dacă toate ponderile sunt inițializate cu 0, derivata cu privire la funcția de pierdere este aceeași pentru fiecare w din W [l], astfel toate ponderile au aceeași valoare în iterațiile ulterioare. Acest lucru face ca unitățile ascunse să fie simetrice și continuă pentru toate iterațiile, adică setarea greutăților la 0 nu o face mai bună decât un model liniar. Un lucru important de reținut este că părtinirile nu au niciun efect, atunci când sunt inițializate cu 0.
să luăm în considerare o rețea neuronală cu doar trei straturi ascunse cu funcție de activare ReLu în straturi ascunse și sigmoid pentru stratul de ieșire.
Folosind rețeaua neuronală de mai sus pe setul de date „face cercuri” din sklearn.datasets, rezultatul obținut după cum urmează:
pentru 15000 de iterații, pierderi = 0.6931471805599453, precizie = 50%