Begränsad Boltzmann-maskin
Del av en serie om |
maskininlärning och datautvinning |
---|
En begränsad Boltzmann-maskin ( RBM ) är ett generativt stokastiskt artificiellt neuralt nätverk som kan lära sig en sannolikhetsfördelning över sin uppsättning indata.
RBM:er uppfanns ursprungligen under namnet Harmonium av Paul Smolensky 1986, och blev framträdande efter att Geoffrey Hinton och medarbetare uppfann snabbinlärningsalgoritmer för dem i mitten av 2000. RBM har hittat tillämpningar inom dimensionsreduktion , klassificering , kollaborativ filtrering , funktionsinlärning , ämnesmodellering och till och med många kroppskvantmekaniker . De kan tränas på antingen övervakade eller oövervakade sätt, beroende på uppgiften.
Som deras namn antyder är RBM:er en variant av Boltzmann-maskiner , med begränsningen att deras neuroner måste bilda en tvådelad graf : ett par noder från var och en av de två grupperna av enheter (vanligen kallade "synliga" och "dolda" enheter respektive) kan ha en symmetrisk koppling mellan dem; och det finns inga kopplingar mellan noder inom en grupp. Däremot kan "obegränsade" Boltzmann-maskiner ha kopplingar mellan dolda enheter . Denna begränsning möjliggör effektivare träningsalgoritmer än vad som är tillgängliga för den allmänna klassen av Boltzmann-maskiner, i synnerhet den gradientbaserade kontrastiva divergensalgoritmen .
Begränsade Boltzmann-maskiner kan också användas i nätverk för djupinlärning . I synnerhet kan djupa trosnätverk bildas genom att "stapla" RBM:er och eventuellt finjustera det resulterande djupa nätverket med gradientnedstigning och backpropagation .
Strukturera
Standardtypen av RBM har binärt värderade ( booleska ) dolda och synliga enheter och består av en matris av vikter med storleken . Varje viktelement i matrisen är associerat med kopplingen mellan den synliga (indata) enheten och den dolda enheten . Dessutom finns det biasvikter (offset) för och för . Givet vikter och förspänningar ( v , h ) som definieras energin för en konfiguration (par booleska vektorer)
eller, i matrisnotation,
Denna energifunktion är analog med den i ett Hopfield-nätverk . Som med allmänna Boltzmann-maskiner definieras den gemensamma sannolikhetsfördelningen för de synliga och dolda vektorerna i termer av energifunktionen enligt följande,
där är en partitionsfunktion definierad som summan av över alla möjliga konfigurationer, vilket kan tolkas som en normaliseringskonstant för att säkerställa att sannolikheterna summerar till 1. Marginalsannolikheten för en synlig vektor är summan av över alla möjliga dolda lagerkonfigurationer,
- ,
och vice versa. Eftersom den underliggande grafstrukturen för RBM är tvådelad (vilket betyder att det inte finns några kopplingar mellan skikten), är de dolda enhetsaktiveringarna ömsesidigt oberoende givet de synliga enhetsaktiveringarna. Omvänt är de synliga enhetsaktiveringarna ömsesidigt oberoende givet de dolda enhetsaktiveringarna. Det vill säga, för m synliga enheter och n dolda enheter är den villkorade sannolikheten för en konfiguration av de synliga enheterna v , givet en konfiguration av de dolda enheterna h ,
- .
är den villkorade sannolikheten för h givet v
- .
De individuella aktiveringssannolikheterna ges av
- och
där betecknar den logistiska sigmoiden .
De synliga enheterna i Restricted Boltzmann Machine kan vara multinomial , även om de dolda enheterna är Bernoulli . [ förtydligande behövs ] I detta fall ersätts logistikfunktionen för synliga enheter med softmax-funktionen
där K är antalet diskreta värden som de synliga värdena har. De tillämpas i ämnesmodellering och rekommenderade system .
Relation till andra modeller
Begränsade Boltzmann-maskiner är ett specialfall av Boltzmann-maskiner och Markov slumpmässiga fält . Deras grafiska modell motsvarar faktoranalysens .
Träningsalgoritm
Begränsade Boltzmann-maskiner tränas för att maximera produkten av sannolikheter som tilldelats någon träningsuppsättning (en matris, vars varje rad behandlas som en synlig vektor ,
eller motsvarande, för att maximera den förväntade loggsannolikheten för ett träningsprov valt slumpmässigt från :
Algoritmen som oftast används för att träna RBM, det vill säga för att optimera viktmatrisen är algoritmen för kontrastiv divergens (CD) på grund av Hinton , som ursprungligen utvecklades för att träna PoE- modeller ( produkt av experter ). Algoritmen utför Gibbs-sampling och används i en gradientnedstigningsprocedur (liknande sättet som backpropagation används inuti en sådan procedur när man tränar framkopplade neurala nät) för att beräkna viktuppdatering.
Den grundläggande, enstegs kontrastiva divergens (CD-1) proceduren för ett enda prov kan sammanfattas enligt följande:
- Ta ett träningsprov v , beräkna sannolikheterna för de dolda enheterna och prova en dold aktiveringsvektor h från denna sannolikhetsfördelning.
- Beräkna den yttre produkten av v och h och kalla detta den positiva gradienten .
- Från h , sampla en rekonstruktion v' av de synliga enheterna, sampla sedan om de dolda aktiveringarna h' från detta. (Gibbs provtagningssteg)
- Beräkna den yttre produkten av v' och h' och kalla detta den negativa gradienten .
- Låt uppdateringen till viktmatrisen vara den positiva gradienten minus den negativa gradienten, gånger viss inlärningshastighet: .
- Uppdatera biaserna a och b analogt: , .
En praktisk guide till utbildning av RBM skriven av Hinton finns på hans hemsida.
Staplad begränsad Boltzmann-maskin
- Skillnaden mellan Stacked Restricted Boltzmann Machines och RBM är att RBM har laterala anslutningar inom ett lager som är förbjudna för att göra analysen genomförbar. Å andra sidan består Stacked Boltzmann av en kombination av ett oövervakat nätverk i tre lager med symmetriska vikter och ett övervakat finjusterat toppskikt för att känna igen tre klasser.
- Användningen av Stacked Boltzmann är att förstå naturliga språk, hämta dokument, bildgenerering och klassificering. Dessa funktioner tränas med oövervakad förträning och/eller övervakad finjustering. Till skillnad från det oriktade symmetriska toppskiktet, med ett tvåvägs osymmetriskt skikt för anslutning för RBM. Den begränsade Boltzmanns anslutning är trelagers med asymmetriska vikter, och två nätverk är kombinerade till ett.
- Stacked Boltzmann delar likheter med RBM, neuronen för Stacked Boltzmann är en stokastisk binär Hopfield-neuron, som är samma som Restricted Boltzmann Machine. Energin från både Restricted Boltzmann och RBM ges av Gibbs sannolikhetsmått: . Utbildningsprocessen för Restricted Boltzmann liknar RBM. Begränsad Boltzmann-tränar ett lager i taget och ett ungefärligt jämviktstillstånd med ett 3-segments pass, utan att utföra bakåtförökning. Restricted Boltzmann använder både övervakad och oövervakad på olika RBM för förträning för klassificering och erkännande. Träningen använder kontrastiv divergens med Gibbs sampling: Δw ij = e*(p ij - p' ij )
- Den begränsade Boltzmanns styrka är att den utför en icke-linjär transformation så att den är lätt att expandera och kan ge ett hierarkiskt lager av funktioner. Svagheten är att den har komplicerade beräkningar av heltals- och verkligt värderade neuroner. Den följer inte gradienten för någon funktion, så approximationen av kontrastiv divergens till maximal sannolikhet är improviserad.
Litteratur
- Fischer, Asja; Igel, Christian (2012), "An Introduction to Restricted Boltzmann Machines" , Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications , Lecture Notes in Computer Science, Berlin, Heidelberg: Springer Berlin Heidelberg, vol. 7441, s. 14–36, doi : 10.1007/978-3-642-33275-3_2 , ISBN 978-3-642-33274-6 , hämtad 2021-09-19
Se även
externa länkar
- Introduktion till begränsade Boltzmann-maskiner . Edwin Chens blogg, 18 juli 2011.
-
"En nybörjarguide till begränsade Boltzmann-maskiner" . Arkiverad från originalet den 11 februari 2017 . Hämtad 15 november 2018 .
{{ citera webben }}
: CS1 underhåll: bot: ursprunglig URL-status okänd ( länk ) . Deeplearning4j dokumentation - "Förstå RBMs" . Arkiverad från originalet den 20 september 2016 . Hämtad 29 december 2014 . . Deeplearning4j dokumentation
- Python- implementering av Bernoulli RBM och handledning
- SimpleRBM är en mycket liten RBM-kod (24kB) användbar för att du ska lära dig hur RBM:er lär sig och fungerar.
- Julia implementering av Restricted Boltzmann-maskiner: https://github.com/cossio/RestrictedBoltzmannMachines.jl