Articles

sigmoid funktion

Vad är sigmoid funktion?

en sigmoidfunktion är en matematisk funktion som har en karakteristisk S-formad kurva. Det finns ett antal vanliga sigmoidfunktioner, såsom logistisk funktion, hyperbolisk tangent och arctangent

. I maskininlärning används termen

sigmoidfunktion normalt för att hänvisa specifikt till logistisk funktion, även kallad logistisk sigmoidfunktion.

alla sigmoidfunktioner har egenskapen att de kartlägger hela nummerlinjen till ett litet intervall som mellan 0 och 1, eller -1 och 1, Så en användning av en sigmoidfunktion är att konvertera ett verkligt värde till ett som kan tolkas som en sannolikhet.

en av de mest använda sigmoidfunktionerna är den logistiska funktionen, som kartlägger något verkligt värde till intervallet (0, 1). Notera den karakteristiska S-form som gav sigmoid funktioner deras namn (från den grekiska bokstaven sigma).

Sigmoidfunktioner har blivit populära i djup inlärning eftersom de kan användas som en aktiveringsfunktion i ett artificiellt neuralt nätverk. De inspirerades av aktiveringspotentialen i biologiska neurala nätverk.

Sigmoidfunktioner är också användbara för många maskininlärningsapplikationer där ett reellt tal måste konverteras till en sannolikhet. En sigmoidfunktion placerad som det sista lagret av en maskininlärningsmodell kan tjäna till att omvandla modellens produktion till en sannolikhetspoäng, vilket kan vara lättare att arbeta med och tolka.

Sigmoidfunktioner är en viktig del av en logistisk regressionsmodell. Logistisk regression är en modifiering av linjär regression för tvåklassig klassificering och omvandlar en eller flera realvärderade ingångar till en sannolikhet, såsom sannolikheten för att en kund kommer att köpa en produkt. Det sista steget i en logistisk regressionsmodell är ofta inställd på den logistiska funktionen, vilket gör att modellen kan mata ut en sannolikhet.

Sigmoidfunktion formel

alla sigmoidfunktioner är monotona och har ett klockformat första derivat. Det finns flera sigmoidfunktioner och några av de mest kända presenteras nedan.

tre av de vanligaste sigmoidfunktionerna: den logistiska funktionen, den hyperboliska tangenten och arctangenten. Alla delar samma grundläggande S-form.

logistisk Sigmoidfunktion formel

en av de vanligaste sigmoidfunktionerna är den logistiska sigmoidfunktionen. Detta kallas ofta Sigmoidfunktionen inom maskininlärning. Den logistiska sigmoidfunktionen definieras enligt följande:

matematisk definition av den logistiska sigmoidfunktionen, en vanlig sigmoidfunktion

den logistiska funktionen tar någon realvärderad ingång och matar ut ett värde mellan noll och en.

hyperbolisk tangentfunktion formel

en annan vanlig sigmoidfunktion är den hyperboliska funktionen. Detta kartlägger alla realvärderade indata till intervallet mellan -1 och 1.

matematisk definition av den hyperboliska tangenten

Arctangent-Funktionsformeln

en tredje alternativ sigmoidfunktion är arctangent, som är inversen av tangentfunktionen.

arctangent-funktionen

i nedanstående diagram kan vi se både tangentkurvan, en välkänd trigonometrisk funktion och arktangenten, dess inversa:

beräkning av sigmoidfunktionen

exempel beräkning av logistisk sigmoidfunktion

med den logistiska sigmoidfunktionen kan vi utvärdera funktionens värde vid flera viktiga punkter för att förstå funktionens form.

Vid x = 0 utvärderar den logistiska sigmoidfunktionen till:

detta är användbart för tolkningen av sigmoid som en Sannolikhet i en logistisk regressionsmodell, eftersom det visar att en nollinmatning resulterar i en utgång på 0,5, vilket indikerar lika sannolikheter för båda klasserna.

Vid x = 1 hittar vi ett något större värde:

och med x = 5 blir värdet på sigmoidfunktionen mycket nära 1.

faktum är att i gränsen för x som tenderar mot oändligheten konvergerar sigmoidfunktionen till 1 och mot -1 i fallet med negativ oändlighet, men derivatet av funktionen når aldrig noll. Dessa är mycket användbara egenskaper hos sigmoidfunktionen, eftersom den tenderar mot en gräns men alltid har en icke-nollgradient.

exempel beräkning av hyperbolisk tangentfunktion

På samma sätt kan vi beräkna värdet på tanh-funktionen vid dessa nyckelpunkter. I stället för att vara centrerad kring 0,5 är tanh-funktionen centrerad vid 0.

vid 1 har tanh-funktionen ökat relativt mycket snabbare än den logistiska funktionen:

och slutligen, med 5, har tanh-funktionen konvergerat mycket närmare till 1, inom 5 decimaler:

faktum är att både de hyperboliska tangent-och arctangentfunktionerna konvergerar mycket snabbare än den logistiska sigmoidfunktionen.

exempelberäkning av Arctangent-funktionen

Vi kan utvärdera arctangent-funktionen vid samma punkter för att se var den konvergerar:

Observera att i motsats till de andra två sigmoidfunktionerna som visas ovan, konvergerar arktangenten till 2/2 snarare än 1. Dessutom konvergerar arctangenten långsammare, eftersom den vid x = 5 inte ens ligger nära sitt slutliga värde. Endast med ganska stora siffror, till exempel x = 5000, kommer arctangenten mycket nära Xiaomi/2.

sammanfattning av tre sigmoidfunktioner

Vi kan jämföra nyckelegenskaperna för de tre sigmoidfunktionerna som visas ovan i en tabell:

Sigmoid function Logistic function tanh arctan
Value in the limit x →-∞ 0 -1 -π/2
Value at x = 0 0.5 0 0
Value in the limit x →∞ 1 1 π/2
Converges Fast Very fast Very slow

Sigmoid Function vs. ReLU

i moderna artificiella neurala nätverk är det vanligt att se i stället för sigmoidfunktionen, likriktaren, även känd som den likriktade linjära enheten, eller ReLU, används som aktiveringsfunktion. ReLU definieras som:

Definition av likriktaraktiveringsfunktionen

grafen för Relu-funktionen

Relu-funktionen har flera huvudfördelar jämfört med en sigmoidfunktion i ett neuralt nätverk. Den största fördelen är att Relu-funktionen är mycket snabb att beräkna. Dessutom fortsätter en aktiveringspotential i ett biologiskt neuralt nätverk inte att förändras för negativa ingångar, så ReLU verkar närmare den biologiska verkligheten om ett mål är att efterlikna biologiska system.

dessutom har Relu-funktionen för positiv x

en konstant gradient på 1, medan en sigmoidfunktion har en gradient som snabbt konvergerar mot 0. Den här egenskapen gör neurala nätverk med sigmoidaktiveringsfunktioner långsamma att träna. Detta fenomen är känt som det försvinnande gradientproblemet. Valet av ReLU som aktiveringsfunktion lindrar detta problem eftersom Relu-gradienten alltid är 1 för positiv

x och så kommer inlärningsprocessen inte att sakta ner genom att gradienten blir liten.

nollgradienten för negativ x kan emellertid utgöra ett liknande problem, känt som nollgradientproblemet, men det är möjligt att kompensera för detta genom att lägga till en liten linjär term i x för att ge ReLU-funktionen en icke-noll lutning vid alla punkter.

tillämpningar av Sigmoidfunktion

logistisk sigmoidfunktion i logistisk regression

ett nyckelområde för maskininlärning där sigmoidfunktionen är väsentlig är en logistisk regressionsmodell. En logistisk regressionsmodell används för att uppskatta sannolikheten för en binär händelse, såsom dead vs alive, sick vs well, bedräglig vs ärlig transaktion etc. Det matar ut ett sannolikhetsvärde mellan 0 och 1.

i logistisk regression är en logistisk sigmoidfunktion anpassad till en uppsättning data där den oberoende variabeln(erna) kan ta något verkligt värde och den beroende variabeln är antingen 0 eller 1.

låt oss till exempel föreställa oss en dataset av tumörmätningar och diagnoser. Vårt mål är att förutsäga sannolikheten för en tumörspridning, med tanke på dess storlek i centimeter.

några mätningar av tumördimensioner och resultat

plottar hela datasetet, vi har en allmän trend att ju större tumören är desto mer sannolikt är det att ha spridit sig, även om det finns en tydlig överlappning av båda klasserna i intervallet 2,5 cm till 3,5 cm:

en plot av tumörresultat kontra tumördimensioner

med hjälp av logistisk regression kan vi modellera Tumörstatus y (0 eller 1) som en funktion av tumörstorlek X med hjälp av den logistiska sigmoidformeln:

där vi behöver hitta de optimala värdena m och b, vilket gör att vi kan flytta och sträcka sigmoidkurvan för att matcha data.

i detta fall ger montering av sigmoidkurvan oss följande värden:

Vi kan sätta dessa värden tillbaka i sigmoidformeln och plotta kurvan:

detta betyder att till exempel givet en tumör av storlek 3cm, vår logistiska regressionsmodell skulle förutsäga sannolikheten för att denna tumör sprider sig som:

intuitivt är det meningsfullt. I de ursprungliga uppgifterna kan vi se att tumörerna runt 3 cm är mer eller mindre jämnt fördelade mellan båda klasserna.

låt oss överväga en tumör av storlek 6 cm. Alla tumörer i den ursprungliga datamängden med storlek 4 cm eller större hade spridit sig, så vi förväntar oss att vår modell skulle returnera en hög sannolikhet för tumörspridningen:

modellen har returnerat en sannolikhet mycket nära 1, vilket indikerar den nära säkerheten att y = 1.

detta visar hur sigmoidfunktioner, och den logistiska funktionen i synnerhet, är extremt kraftfulla för sannolikhetsmodellering.

varför används den logistiska funktionen i logistisk regression, och inte en annan sigmoidfunktion?

anledningen till att den logistiska funktionen används i logistisk regression, och ingen av de andra sigmoidvarianterna, beror inte bara på att det bekvämt returnerar värden mellan 0 och 1. Logistisk regression härrör från antagandet att data i båda klasserna normalt distribueras.

låt oss föreställa oss att icke-spridande tumörer och spridande tumörer var och en följer en normal fördelning. De icke-spridande tumörerna fördelas normalt med medelvärde 1,84 cm och standardavvikelse 1 cm, och spridande tumörer fördelas normalt med medelvärde 4,3 cm, även med standardavvikelse 1 cm. Vi kan plotta både sannolikhetsdensitetsfunktionen för båda dessa normala fördelningar:

vid varje punkt kan vi beräkna oddsförhållandet för de två fördelningarna, vilket är sannolikhetstäthetsfunktionen för spridningstumörerna dividerat med summan av båda sannolikhetstäthetsfunktionerna (icke-spridande + spridningstumörer):

plottning av oddsförhållandet som en funktion av x, kan vi se att resultatet är den ursprungliga logistiska sigmoidkurvan.

anledningen till att den logistiska funktionen väljs för logistisk regression beror på ett antagande att vi modellerar två klasser som båda är normalt fördelade, och den logistiska funktionen uppstår naturligt från förhållandet mellan normala sannolikhetstäthetsfunktioner.

sigmoidfunktion som aktiveringsfunktion i artificiella neurala nätverk

ett artificiellt neuralt nätverk består av flera lager av funktioner, lagrade ovanpå varandra:

ett feedforward neuralt nätverk med två dolda lager

varje lager innehåller vanligtvis vissa vikter och fördomar och funktioner som en liten linjär regression. En viktig del av lagren är också aktiveringsfunktionen.

formel för det första dolda lagret i ett feedforward neuralt nätverk, med vikter betecknade med W och fördomar med b och aktiveringsfunktion g.

men om varje lager i det neurala nätverket endast skulle innehålla vikter och fördomar, men ingen aktiveringsfunktion, skulle hela nätverket motsvara en enda linjär kombination av vikter och fördomar. Med andra ord kan formeln för det neurala nätverket faktoriseras och förenklas ner till en enkel linjär regressionsmodell. En sådan modell skulle kunna hämta mycket enkla linjära beroenden men inte kunna utföra de imponerande uppgifter som neurala nätverk är kända för, såsom bild-och röstigenkänning.

Aktiveringsfunktioner infördes mellan lager i neurala nätverk för att införa en icke-linjäritet. Ursprungligen användes sigmoidfunktioner som logistisk funktion, arctangent och hyperbolisk tangent, och idag är ReLU och dess varianter mycket populära. Alla aktiveringsfunktioner har samma syfte: att införa en icke-linjäritet i nätverket. Sigmoidfunktioner valdes som några av de första aktiveringsfunktionerna tack vare deras upplevda likhet med aktiveringspotentialen i biologiska neurala nätverk.

Tack vare användningen av en sigmoidfunktion vid olika punkter inom ett neuralt nätverk med flera lager kan neurala nätverk byggas för att successiva lager ska kunna hämta allt mer sofistikerade funktioner i ett inmatningsexempel.

sigmoid Funktionshistoria

1798 publicerade den engelska prästen och ekonomen Thomas Robert Malthus en bok under en pseudonym som heter en uppsats om Befolkningsprincipen och hävdade att befolkningen ökade i en geometrisk progression (fördubbling vart 25 år) medan livsmedelsförsörjningen ökade aritmetiskt och att skillnaden mellan de två berodde på att orsaka utbredd hungersnöd.

i slutet av 1830-talet experimenterade den belgiska matematikern Pierre Fran Bijois Verhulst med olika sätt att modellera befolkningstillväxten och ville redogöra för det faktum att en befolknings tillväxt i slutändan är självbegränsande och inte ökar exponentiellt för alltid. Verhulst valde den logistiska funktionen som en logisk anpassning till den enkla exponentiella modellen för att modellera avmattningen av en befolknings tillväxt som uppstår när en befolkning börjar uttömma sina resurser.

under nästa århundrade började biologer och andra forskare använda sigmoidfunktionen som ett standardverktyg för modellering av befolkningstillväxt, från bakteriekolonier till mänskliga civilisationer.1943 utvecklade Warren McCulloch och Walter Pitts en artificiell neuralt nätverksmodell med en hård cutoff som en aktiveringsfunktion, där en neuron matar ut 1 eller 0 beroende på om dess ingång är över eller under en tröskel.1972 försökte biologerna Hugh Wilson och Jack Cowan vid University of Chicago modellera biologiska neuroner beräkningsmässigt och publicerade Wilson–Cowan-modellen, där en neuron skickar en signal till en annan neuron om den får en signal större än en aktiveringspotential. Wilson och Cowan valde den logistiska sigmoidfunktionen för att modellera aktiveringen av en neuron som en funktion av en stimulans.

från 1970-och 1980-talet och framåt började ett antal forskare använda sigmoidfunktioner i formuleringar av artificiella neurala nätverk, med inspiration från biologiska neurala nätverk. 1998 valde Yann LeCun den hyperboliska tangenten som en aktiveringsfunktion i sitt banbrytande konvolutionella neurala nätverk LeNet, som var den första som kunde känna igen handskrivna siffror till en praktisk nivå av noggrannhet.

under de senaste åren har artificiella neurala nätverk flyttat sigmoidfunktioner till förmån för Relu-funktionen, eftersom alla varianter av sigmoidfunktionen är beräkningsintensiva att beräkna, och ReLU ger den nödvändiga olinjäriteten för att dra nytta av nätverkets djup, samtidigt som de är mycket snabba att beräkna.