Kruisbestuiving

Cross-entropie ongeluk, of log ongeluk, meet de presentatie van een ordermodel waarvan de opbrengst waarschijnlijkheid is waardering ergens in het bereik van 0 en 1. Cross-entropie ongeluk neemt toe naarmate de verwachte waarschijnlijkheid afwijkt van het echte merk. Dus het voorspellen van een waarschijnlijkheid van .012 wanneer de echte waarnemingsnaam 1 is, zou vreselijk zijn en een hoge mate van ongelukkige waardering met zich meebrengen. Een ideaal model zou een log verlies van 0 hebben.

_images/cross_entropy.png

Het bovenstaande diagram toont de omvang van denkbare tegenslagen bij een echte waarneming (isDog = 1). Naarmate de verwachte waarschijnlijkheid dichter bij 1 komt, neemt het ongeluk geleidelijk af. Naarmate de verwachte waarschijnlijkheid afneemt, neemt het ongeluk in het hout snel toe. Logboekongeluk straft de twee soorten fouten, maar vooral de verwachtingen die zeker en fout zijn!

Kruislingse fouten en ongelukken in het logboek zijn enigszins uniek door de instelling, maar in AI, waar de foutenpercentages in het bereik van 0 en 1 liggen, lossen ze op tot iets wat erg veel op elkaar lijkt.

Code

def CrossEntropy (yHat, y):

als y == 1:

terugkeer -log(yHat)

anders:

terugsturen -log(1 – yHat)

Wiskunde

In de binaire indeling, waarbij het aantal klassen M gelijk is aan 2, kan de kruispuntbelasting worden berekend als:

-(ylog(p)+(1-y)log(1-p))

Als M>2 (d.w.z. multiklasse-indeling), berekenen we een afzonderlijk verlies voor elk klassenetiket per waarneming en tellen we het resultaat op.

-∑c=1Myo,clog(po,c)

Noot:

M – aantal klassen (hond, kat, vis)

logboek – het natuurlijke houtblok

y – binaire indicator (0 of 1) indien klasse-etiket c de juiste indeling is voor de waarneming o

p – voorspelde waarschijnlijkheidswaarneming o is van klasse c

Scharnier

Gebruikt voor classificatie.

Code

def Hinge(yHat, y):

terugkeer np.max(0, 1 – yHat * y)

Huber

Meestal gebruikt voor regressie. Het is minder gevoelig voor uitschieters dan de MSE omdat het de fout alleen binnen een interval als vierkant behandelt.

Lδ={12(y-y^)2δ((y-y^)-12δ)als|(y-y^)|<δ andersom

Code

def Huber(yHat, y, delta=1.):

retour np.where(np.abs(y-yHat) < delta,.5*(y-yHat)**2 , delta*(np.abs(y-yHat)-0.5*delta))

Meer informatie vindt u bij Huber Loss in Wikipedia.

Kullback-Leibler

Code

def KLDivergence(yHat, y):

“””

Parametreur yHat:

:param y:

:return: KLDiv(yHat | y)

“””

retourneer np.sum(yHat * np.log((yHat / y)))

MAE (L1)

Gemiddelde Absolute Fout, of L1 verlies. Uitstekend overzicht hieronder [6] en [10].

Code

def L1(yHat, y):

retourneer np.sum(np.absolute(yHat – y))

MSE (L2)

Gemiddelde kwadratische fout, of L2-verlies. Uitstekend overzicht hieronder [6] en [10].

def MSE(yHat, y):

return np.sum((yHat – y)**2) / y.size

def MSE_prime(yHat, y):

retour yHat – y