Utilizați regularizarea greutății pentru a reduce supraadaptarea modelelor de învățare profundă
Ultima actualizare la 6 august 2019
Rețelele neuronale învață un set de greutăți care mapează cel mai bine intrările la ieșiri.
O rețea cu greutăți mari de rețea poate fi un semn al unei rețele instabile în care modificările mici în intrare pot duce la schimbări mari în ieșire. Acest lucru poate fi un semn că rețeaua a depășit setul de date de antrenament și probabil că va avea performanțe slabe atunci când se fac predicții cu privire la date noi.
O soluție la această problemă este actualizarea algoritmului de învățare pentru a încuraja rețeaua să mențină greutățile mici. Aceasta se numește regularizarea greutății și poate fi utilizată ca o tehnică generală pentru a reduce supraadaptarea setului de date de antrenament și pentru a îmbunătăți generalizarea modelului.
În acest post, veți descoperi regularizarea greutății ca o abordare pentru a reduce supraadaptarea pentru rețelele neuronale.
După ce citiți această postare, veți ști:
- Greutățile mari într-o rețea neuronală sunt un semn al unei rețele mai complexe, care a depășit datele de antrenament.
- Penalizarea unei rețele pe baza mărimii greutăților rețelei în timpul antrenamentului poate reduce supraadaptarea.
- O optimizare a rețelei vectoriale L1 sau L2 poate fi adăugată la optimizarea rețelei pentru a încuraja greutăți mai mici.
Lansați proiectul cu noua mea carte Better Deep Learning, inclusiv tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.
Să începem.

O introducere ușoară a regularizării greutății pentru a reduce supraadaptarea pentru modelele de învățare profundă
Fotografie de jojo nicdao, unele drepturi rezervate.
Problemă cu greutăți mari
Atunci când montăm un model de rețea neuronală, trebuie să învățăm greutățile rețelei (adică parametrii modelului) folosind descendența stocastică a gradientului și setul de date de antrenament.
Cu cât formăm rețeaua mai mult timp, cu atât greutățile vor deveni mai specializate în datele de antrenament, supradaptând datele de antrenament. Greutățile vor crește în dimensiune pentru a gestiona specificul exemplelor văzute în datele de instruire.
Greutățile mari fac rețeaua instabilă. Deși greutatea va fi specializată pentru setul de date de antrenament, variații minore sau zgomot statistic la intrările așteptate vor avea ca rezultat diferențe mari în producție.
Greutățile mari tind să provoace tranziții clare în funcțiile nodului și, astfel, schimbări mari în ieșire pentru modificări mici în intrări.
În general, ne referim la acest model ca având o varianță mare și o mică părtinire. Adică, modelul este sensibil la exemplele specifice, zgomotul statistic, din setul de date de antrenament.
Un model cu greutăți mari este mai complex decât un model cu greutăți mai mici. Este un semn al unei rețele care poate fi prea specializată în datele de instruire. În practică, preferăm să alegem modelele mai simple pentru a rezolva o problemă (de exemplu, aparatul de ras al lui Occam). Preferăm modelele cu greutăți mai mici.
… Având în vedere unele date de instruire și o arhitectură de rețea, mai multe seturi de valori de greutate (modele multiple) ar putea explica datele. Modelele mai simple sunt mai puțin susceptibile de a se potrivi prea mult decât cele complexe. Un model simplu în acest context este un model în care distribuția valorilor parametrilor are mai puțină entropie
O altă problemă posibilă este că pot exista multe variabile de intrare, fiecare cu niveluri diferite de relevanță pentru variabila de ieșire. Uneori putem folosi metode pentru a ajuta la selectarea variabilelor de intrare, dar de multe ori relațiile dintre variabile nu sunt evidente.
A avea greutăți mici sau chiar greutăți zero pentru intrări mai puțin relevante sau irelevante în rețea va permite modelului să se concentreze asupra învățării. Și asta va duce la un model mai simplu.
Vrei rezultate mai bune cu Deep Learning?
Urmează acum cursul meu gratuit de 7 zile pentru e-mail (cu un exemplu de cod).
Faceți clic pentru a vă înscrie și pentru a obține, de asemenea, o versiune PDF Ebook gratuită a cursului.
Încurajați greutățile mici
Algoritmul de învățare poate fi actualizat pentru a încuraja rețeaua spre utilizarea unor greutăți mici.
O modalitate de a face acest lucru este să modificați calculul pierderilor utilizate în optimizarea rețelei pentru a lua în considerare și dimensiunea greutăților.
Amintiți-vă că atunci când instruim o rețea neuronală, minimizăm o funcție de pierdere, cum ar fi pierderea jurnalului în clasificare sau eroarea medie pătrată în regresie. La calcularea pierderii dintre valorile prezise și cele așteptate într-un lot, putem adăuga dimensiunea curentă a tuturor greutăților din rețea sau adăugați un strat la acest calcul. Aceasta se numește penalizare deoarece penalizăm modelul proporțional cu mărimea greutăților din model.
Multe abordări de regularizare se bazează pe limitarea capacității modelelor, cum ar fi rețelele neuronale, regresia liniară sau regresia logistică, prin adăugarea unei [...] penalizări funcției obiective.
Greutățile mai mari duc la o penalizare mai mare, sub forma unui scor mai mare de pierderi. Algoritmul de optimizare va împinge apoi modelul să aibă greutăți mai mici, adică greutăți nu mai mari decât este necesar pentru a performa bine pe setul de date de antrenament.
Greutățile mai mici sunt considerate mai regulate sau mai puțin specializate și, ca atare, ne referim la această penalizare ca regularizare a greutății.
Când această abordare a penalizării coeficienților modelului este utilizată în alte modele de învățare automată, cum ar fi regresia liniară sau regresia logistică, aceasta poate fi denumită contracție, deoarece penalizarea încurajează coeficienții să se micșoreze în timpul procesului de optimizare.
Contracție. Această abordare implică adaptarea unui model care implică toți predictorii p. Cu toate acestea, coeficienții estimați sunt micșorați spre zero [...] Această contracție (cunoscută și sub denumirea de regularizare) are ca efect reducerea varianței
Adăugarea unei penalizări pentru mărimea greutății sau a regularizării greutății într-o rețea neuronală are ca efect reducerea erorii de generalizare și permiterea modelului să acorde mai puțină atenție variabilelor de intrare mai puțin relevante.