Funcția de pierdere Funcția de pierdere în învățarea automată
Prezentare generală
- Ce sunt funcțiile de pierdere? Și cum funcționează în algoritmi de învățare automată? Aflați în acest articol
- Funcțiile de pierdere sunt de fapt la baza acestor tehnici pe care le folosim în mod regulat
- Acest articol acoperă mai multe funcții de pierdere, unde funcționează și cum le puteți codifica în Python
Introducere
Imaginați-vă acest lucru - ați instruit un model de învățare automată pe un anumit set de date și sunteți gata să îl puneți în fața clientului dvs. Dar cum poți fi sigur că acest model va da rezultatul optim? Există o metrică sau o tehnică care vă va ajuta să evaluați rapid modelul pe setul de date?
Da - și asta, pe scurt, este locul în care funcțiile de pierdere intră în joc în învățarea automată.
Funcțiile de pierdere sunt în centrul algoritmilor de învățare automată pe care ne place să le folosim. Dar am văzut că majoritatea începătorilor și entuziașilor devin destul de confuzi cu privire la modul și unde să le folosească.

Nu sunt greu de înțeles și vă vor îmbunătăți infinit înțelegerea algoritmilor de învățare automată. Deci, care sunt funcțiile de pierdere și cum le puteți înțelege semnificația?
În acest articol, voi discuta despre 7 funcții comune de pierdere utilizate în învățarea automată și voi explica unde este folosită fiecare dintre ele. Avem multe de acoperit în acest articol, așa că să începem!
Funcțiile de pierdere sunt o parte a întregii călătorii de învățare automată pe care o veți parcurge. Iată cursul perfect pentru a vă ajuta să începeți și să vă pregătiți pentru industrie:
Cuprins
- Ce sunt funcțiile de pierdere?
- Funcții de pierdere prin regresie
- Pierderea erorii pătrate
- Pierderea absolută a erorilor
- Pierderea lui Huber
- Funcții de pierdere a clasificării binare
- Entropie binară încrucișată
- Pierderea balamalei
- Funcții de pierdere a clasificării în mai multe clase
- Pierdere de entropie încrucișată de mai multe clase
- Pierderea divergenței Kullback Leibler
Ce sunt funcțiile de pierdere?
Să presupunem că sunteți pe vârful unui deal și că trebuie să urcați în jos. Cum decideți unde să mergeți?
Iată ce aș face:
- Uită-te în jur pentru a vedea toate căile posibile
- Respinge-i pe cei care urcă. Acest lucru se datorează faptului că aceste căi mi-ar consuma mai multă energie și mi-ar face sarcina și mai dificilă
- În cele din urmă, luați calea pe care eu gândiare cea mai mare pantă la vale
Această intuiție împotriva căreia tocmai mi-am judecat deciziile? Este exact ceea ce oferă o funcție de pierdere.
O funcție de pierdere mapează deciziile la costurile asociate.
Decizia de a urca panta ne va costa energie și timp. Decizia de a coborî ne va aduce beneficii. Prin urmare, are un cost negativ.
În algoritmii de învățare automată supravegheați, vrem minimiza eroarea pentru fiecare exemplu de instruire în timpul procesului de învățare. Acest lucru se face folosind câteva strategii de optimizare, cum ar fi coborârea în gradient. Și această eroare provine din funcția de pierdere.
Care este diferența dintre o funcție de pierdere și o funcție de cost?
Vreau să subliniez acest lucru aici - deși funcția de cost și funcția de pierdere sunt sinonime și folosite interschimbabil, sunt diferite.
O funcție de pierdere este pentru un singur exemplu de antrenament. Se mai numește uneori și an funcție de eroare. O funcție de cost, pe de altă parte, este pierdere medie pe întregul set de date de antrenament. Strategiile de optimizare vizează minimizarea funcției de cost.
Funcții de pierdere prin regresie
Trebuie să fiți familiarizați cu regresia liniară în acest moment. Se ocupă cu modelarea unei relații liniare între a variabilă dependentă, Y, și mai mulți variabile independente, X_i’s. Astfel, în mod esențial încadrăm o linie în spațiu pe aceste variabile.
Vom folosi punctele de date date pentru a găsi coeficienții a0, a1, ..., an.
Pentru a înțelege acest concept vom folosi faimosul set de date Boston Housing. Și pentru a simplifica lucrurile, vom folosi o singură caracteristică - numărul mediu de camere pe locuință (X) - pentru a prezice variabila dependentă - Valoarea mediană (Y) a caselor în 1000 USD.
Noi vom folosi Coborâre în gradient ca strategie de optimizare pentru a găsi linia de regresie. Nu voi intra în detaliile complicate despre coborârea în gradient, dar iată un memento al regulii de actualizare a greutății:
Aici, theta_j este greutatea care trebuie actualizată, alfa este rata de învățare și J este funcția de cost. Funcția de cost este parametrizată de theta. Scopul nostru este să găsim valoarea theta care produce un cost global minim.
Aici puteți obține o explicație detaliată a coborârii în gradient și cum funcționează.
Am definit mai jos pașii pe care îi vom urma pentru fiecare funcție de pierdere:
- Scrieți expresia funcției noastre predictive, f (X) și identificați parametrii pe care trebuie să îi găsim
- Identificați pierderea de utilizat pentru fiecare exemplu de antrenament
- Găsiți expresia pentru funcția de cost - pierderea medie pe toate exemplele
- Găsiți gradientul funcției de cost în raport cu fiecare parametru necunoscut
- Decideți rata de învățare și rulați regula de actualizare a greutății pentru un număr fix de iterații
1. Pierdere de eroare pătrată
Pierderea erorii pătrate pentru fiecare exemplu de antrenament, cunoscut și sub numele de L2 Pierderea, este pătratul diferenței dintre valorile reale și cele prevăzute:
Funcția de cost corespunzătoare este Rău din acestea Erori pătrate (MSE).
Vă încurajez să încercați să găsiți singur gradientul pentru coborârea gradientului înainte de a vă referi la codul de mai jos.
Am folosit acest cod pe datele din Boston pentru diferite valori ale ratei de învățare pentru 500 de iterații fiecare:
Iată o sarcină pentru dvs. Încercați să rulați codul pentru o rată de învățare de 0,1 din nou pentru 500 de iterații. Spuneți-mi observațiile dvs. și orice explicații posibile în secțiunea de comentarii.
Să vorbim un pic mai mult despre funcția de pierdere MSE. Este o funcție pătratică pozitivă (de forma ax ^ 2 + bx + c unde a> 0). Amintiți-vă cum arată grafic?