Funksionet e humbjes për t'u përdorur kur trajnohen modelet e mësimit të makinerive

Në mësimin e makinerive, një funksion humbje përdoret për të matur humbjen ose koston e një modeli specifik të mësimit të makinës. Këto funksione humbje llogaritin sasinë e gabimit në një model specifik të mësimit të makinerive duke përdorur disa formulë matematikore dhe matin performancën e atij modeli specifik.

Ekzistojnë funksione të ndryshme të humbjes që përdoren në mësimin e makinerive për problemet e regresionit dhe klasifikimit. Në procesin e ndërtimit të modelit të mësimit të makinës, qëllimi ynë është të minimizojmë funksionin e humbjes/kostos dhe për këtë arsye të rrisim saktësinë e modelit.

Në këtë artikull, ne do të shqyrtojmë funksione të ndryshme të humbjes të përdorura në modelet e mësimit të makinerive për problemet e regresionit dhe klasifikimit. Le të fillojmë!

Funksionet e humbjes për regresionin

Gabim mesatar në katror

Gabimi mesatar në katror (MSE) mat sasinë e gabimit në modelet e regresionit të mësimit të makinës duke llogaritur distancën mesatare në katror midis vlerave të vëzhguara dhe të parashikuara në të dhënat tona.

Ky funksion i humbjes e penalizon modelin për gabime të mëdha duke i kuadruar ato dhe për këtë arsye duke e bërë modelin më pak të fortë ndaj vlerave të jashtme. Ne nuk duhet ta përdorim këtë funksion të humbjes kur grupi i të dhënave është i prirur për shumë të dhëna të jashtme.

Për një model/vlerësues të mirë, vlera e MSE duhet të jetë më afër zeros.

Nëse kemi një pikë të dhënash Yi dhe vlera e parashikuar për këtë pikë është Ŷi, atëherë gabimi mesatar në katror mund të llogaritet si:

Ku n është numri i përgjithshëm i vëzhgimeve në grupin tonë të të dhënave.

Shembull:

import numpy as np
def mean_squared_error(true_val, pred):
    squared_error = np.square(true_val - pred) 
    sum_squared_error = np.sum(squared_error)
    mse_loss = sum_squared_error / true.size
    
    return mse_loss

Në mësimin e makinerive, ne synojmë të ulim vlerën MSE për të rritur saktësinë e modelit.

Gabim mesatar absolut

Gabimi mesatar absolut (MAE) mat sasinë e gabimit në modelet e mësimit të makinerive duke llogaritur diferencën totale absolute midis vlerës aktuale dhe vlerës së parashikuar në të dhënat tona. Ky gabim njihet edhe sihumbje L1.

Ky funksion mesatar i humbjes së gabimit absolut është më i fortë ndaj vlerave të jashtme në krahasim me funksionin e humbjes së MSE. Prandaj, ne mund ta përdorim këtë funksion të humbjes kur grupi i të dhënave është i prirur për shumë të dhëna të jashtme.

Nëse kemi pikën e të dhënave Yi dhe vlera përkatëse e parashikuar për këtë pikë të dhënash është Ŷi, atëherë gabimi mesatar absolut mund të llogaritet si:

Ku n është numri i përgjithshëm i vëzhgimeve në grupin tonë të të dhënave.

Shembull:

from sklearn.metrics import mean_absolute_error
#sample data
actual = [2, 3, 5, 5, 9]
predicted = [3, 3, 8, 7, 6]
#calculate MAE
error = mean_absolute_error(actual, predicted)
print(error)

Po luftoni për të gjurmuar dhe riprodhuar parametra komplekse të eksperimentit? Artifaktet janë vetëm një nga mjetet e shumta në kutinë e veglave Comet për të ndihmuar në lehtësimin e menaxhimit të modelit. "Lexoni skenarin tonë PetCam për të mësuar më shumë."

Gabim mesatar i përqindjes absolute

Funksioni i humbjes së gabimit mesatar të përqindjes absolute (MAPE) mat sasinë e gabimit duke marrë diferencën absolute midis vlerës aktuale dhe vlerës së parashikuar në të dhënat tona dhe më pas duke e ndarë atë me vlerën aktuale. Ne aplikojmë përqindjen absolute për këtë vlerë dhe më pas e vlerësojmë atë në të gjithë grupin tonë të të dhënave.

Ky funksion i humbjes mat gabimin më mirë se MSE pasi nuk penalizon gabime të mëdha. Ky funksion i humbjes përdoret zakonisht pasi normalizon të gjitha gabimet në një shkallë të përbashkët dhe është i lehtë për t'u interpretuar.

Nëse kemi pikën e të dhënave Yi dhe vlera përkatëse e parashikuar për këtë pikë të dhënash është Ŷi, atëherë gabimi mesatar i përqindjes absolute mund të llogaritet si:

Ku n është numri i përgjithshëm i vëzhgimeve në grupin tonë të të dhënave.

Shembull:

import numpy as np
def mean_absolute_percentage_error(actual_value, pred):
    abs_error = (np.abs(actual_value - pred)) / actual_value
    sum_abs_error = np.sum(abs_error)
    mape_loss_perc = (sum_abs_error / true.size) * 100
    return mape_loss_perc

Sa më e vogël të jetë vlera e MAPE, aq më e mirë do të jetë saktësia e modelit.

Gabim logaritmik mesatar në katror

Gabimi logaritmik mesatar në katror (MSLE) mat sasinë e gabimit në modelet e mësimit të makinerive duke marrë raportin midis vlerës aktuale dhe vlerës së parashikuar në të dhënat tona.

Siç sugjeron emri, ky funksion i humbjes është një variacion i gabimit mesatar në katror (MSE). Ne e përdorim këtë funksion të humbjes kur nuk duam të penalizojmë ndjeshëm modelin (si gabimi mesatar në katror) për gabime të mëdha sesa gabimet më të vogla.

Nëse kemi pikën e të dhënave Yi dhe vlera e parashikuar përkatëse për këtë pikë të dhënash është Ŷi, atëherë gabimi mesatar absolut logaritmik mund të llogaritet si:

Ku n është numri i përgjithshëm i vëzhgimeve në grupin tonë të të dhënave.

Shembull:

from sklearn.metrics import mean_squared_log_error
#sample data
actual = [3, 5, 2.5, 7, 11]
predicted = [2.5, 5, 4, 8, 10.5]
#calculate MSLE
error = mean_squared_log_error(actual, predicted)
print(error)

Funksionet e humbjes për Klasifikimin

Humbje Binar Ndër-Entropie

Kjo humbje binare e ndër-entropisë është një funksion i parazgjedhur i humbjes për klasifikuesit binarë në algoritmet e mësimit të makinerive. Ai mat performancën e një modeli klasifikimi duke krahasuar vlerën e çdo probabiliteti të parashikuar me daljen aktuale të klasës si 0ose1.

Nëse diferenca midis probabilitetit të parashikuar dhe vlerës së prodhimit aktual të klasës rritet, atëherë rritet edhe humbja e ndër-entropisë.

Supozoni se një klasifikues parashikon një probabilitet prej 0.09 dhe klasa aktuale e vëzhgimit është 1, atëherë do të rezultonte në një vlerë të lartë të humbjes së ndër-entropisë. Vlera e këtij funksioni të humbjes për një model duhet të jetë më afër 0 në mënyrë ideale, për të arritur saktësi të lartë.

Këtu është formula për funksionin e humbjes së entropisë:

Këtu, hθ(xi) është probabiliteti i klasës 1 dhe (1-hθ(xi)) është probabiliteti i klasës 0.

Shembull:

def binary_cross_entropy(actual, predicted):
	sum_score = 0.0
	for i in range(len(actual)):
		sum_score += actual[i] * log(1e-15 + predicted[i])
	mean_sum_score = 1.0 / len(actual) * sum_score
	return -mean_sum_score

Humbja e menteshës

Humbja e menteshës është një alternativë ndaj funksionit të humbjes së ndërthurjes së entropisë. Fillimisht u zhvillua për vlerësimin e performancës së algoritmit të makinës së vektorit mbështetës (SVM) për të llogaritur marzhin maksimal nga hiperplani në klasën e etiketuar.

Përdoret me klasifikimin binar ku vlerat e synuara bien në rangun nga -1 deri në 1. Ky funksion i humbjes penalizon parashikimet e gabuara duke caktuar më shumë gabime kur ka më shumë ndryshim midis klasës së vlerës aktuale dhe asaj të parashikuar.

Këtu është formula për funksionin e humbjes së menteshës:

Ku Sj është vlera aktuale dhe Syi është vlera e parashikuar.

Shembull:

import numpy as np
def hinge_loss(y, y_pred):
    l = 0
    size = np.size(y)
    for i in range(size):
        l = l + max(0, 1 - y[i] * y_pred[i])
    return l / size

konkluzioni

Kjo është e gjitha nga ky artikull. Në këtë artikull, mësuam për funksione të ndryshme të humbjes në mësimin e makinerive që përdoren me probleme regresioni dhe klasifikimi. Për të arritur rezultate më të mira, është e rëndësishme të zgjidhni funksionin e humbjes që është më i përshtatshmi për të dhënat tona.

Faleminderit per leximin!

Shënim i redaktorit: "Heartbeat" është një publikim në internet i drejtuar nga kontribuesit dhe komunitet i dedikuar për të ofruar burime arsimore kryesore për shkencën e të dhënave, mësimin e makinerive dhe praktikuesit e të mësuarit të thellë. Ne jemi të përkushtuar të mbështesim dhe frymëzojmë zhvillues dhe inxhinierë nga të gjitha sferat e jetës.

Editorialisht e pavarur, Heartbeat sponsorizohet dhe publikohet nga Comet, një platformë MLOps që u mundëson shkencëtarëve të të dhënave dhe ekipeve të ML të gjurmojnë, krahasojnë, shpjegojnë dhe optimizojnë eksperimentet e tyre. Ne paguajmë kontribuesit tanë dhe nuk shesim reklama.

Nëse dëshironi të kontribuoni, shkoni te thirja jonë për kontribues. Ju gjithashtu mund të regjistroheni për të marrë buletinin tonë javor ("Deep Learning Weekly"), shikoni "blogun e Comet", bashkohuni me ne në" ""Slack" dhe ndiqni Comet në "Twitter" dhe "LinkedIn" për burime, ngjarje , dhe shumë më tepër që do t'ju ndihmojnë të ndërtoni modele më të mira ML, më shpejt.