
Bayesiske nettverk
Et Bayesisk nettverk (BN) er en sannsynlighetsbasert grafmodell som representerer variabler og deres betingede avhengigheter via en rettet asyklisk graf (DAG). ...
BMXNet bringer binære nevrale nettverk til MXNet, og forbedrer dramatisk minne- og beregningseffektivitet for AI på ressurssvake enheter.
BMXNet er en åpen kildekode-implementering av binære nevrale nettverk (BNNs) basert på Apache MXNet-rammeverket for dyp læring. Den tilbyr et sett med verktøy og lag som gjør det mulig for utviklere og forskere å bygge, trene og distribuere nevrale nettverk med binære vekter og aktiveringer. Ved å bruke binær aritmetikk i stedet for standard flyttallsberegninger, reduserer BMXNet drastisk minnebruk og beregningskompleksitet, noe som gjør det mulig å distribuere dyp læringsmodeller på strømsvake enheter og i miljøer med begrensede ressurser.
Før vi dykker inn i detaljene rundt BMXNet, er det viktig å forstå hva binære nevrale nettverk er, og hvorfor de er viktige innen kunstig intelligens (AI).
Binære nevrale nettverk er en type nevralt nettverk der vektene og aktiveringene er begrenset til binære verdier, vanligvis {+1, -1}
eller {1, 0}
. Denne binariseringen forenkler beregningene i nevrale nettverk ved å redusere komplekse aritmetiske operasjoner til enkle bitvise operasjoner som XNOR og bit-telling (popcount).
BNNs er spesielt nyttige i situasjoner hvor de beregningsmessige ressursene er begrenset, men sanntidsbehandling er nødvendig. Dette inkluderer applikasjoner som:
BMXNet står for Binary MXNet, som indikerer integrasjonen med MXNet-rammeverket for dyp læring. MXNet er kjent for sin skalerbarhet, portabilitet og støtte for flere programmeringsspråk.
I BMXNet oppnås binarisering av vekter og aktiveringer ved å bruke sign-funksjonen. Under fremover-passeringen konverteres reelle vekt- og aktiveringsverdier til binære verdier. Under bakover-passeringen kalkuleres gradientene i forhold til de reelle variablene for å muliggjøre trening.
Binariseringsformel:
For en reell input (x):
b = sign(x) = { +1, hvis x ≥ 0; -1, ellers }
BMXNet introduserer flere binære lag:
Disse lagene fungerer på samme måte som sine standard MXNet-motparter, men opererer med binære beregninger.
Den sentrale beregningseffektiviteten i BMXNet kommer av å erstatte tradisjonelle aritmetiske operasjoner med bitvise operasjoner:
Ved å bruke disse operasjonene kan BMXNet utføre konvolusjons- og fullstendig tilkoblede lagberegninger mye raskere enn med flyttallsaritmetikk.
En av hovedbruksområdene for BMXNet er distribusjon av dyp læringsmodeller på enheter med begrensede ressurser. For eksempel:
Innen AI-automatisering og chatbots, gjør BMXNet det mulig å distribuere nevrale nettverk som kan:
Ved å bruke BMXNet har utviklere laget bildeklassifiseringsmodeller som kjører effektivt på Android- og iOS-enheter. Ved å konvertere standardmodeller som ResNet-18 til binære versjoner, er det mulig å oppnå:
I IoT-miljøer kan BMXNet brukes til å distribuere chatbots som:
Roboter og automatiserte systemer kan bruke BMXNet til oppgaver som:
For å begynne å bruke BMXNet kan du laste ned biblioteket og forhåndstrente modeller fra det offisielle GitHub-repositoriet:
https://github.com/hpi-xnor
BMXNet støtter trening av binære modeller:
Utviklere kan konvertere eksisterende MXNet-modeller til binære versjoner:
Under er et forenklet eksempel på hvordan man definerer et binært nevralt nettverk ved hjelp av BMXNets lag:
import mxnet as mx
import bmxnet as bmx
def get_binary_network():
data = mx.sym.Variable('data')
# Første lag (ikke binarisert)
conv1 = mx.sym.Convolution(data=data, kernel=(3,3), num_filter=64)
act1 = mx.sym.Activation(data=conv1, act_type='relu')
# Binære lag
bin_act = bmx.sym.QActivation(data=act1, act_bit=1)
bin_conv = bmx.sym.QConvolution(data=bin_act, kernel=(3,3), num_filter=128, act_bit=1)
bn = mx.sym.BatchNorm(data=bin_conv)
pool = mx.sym.Pooling(data=bn, pool_type='max', kernel=(2,2), stride=(2,2))
# Utgangslag (ikke binarisert)
flatten = mx.sym.Flatten(data=pool)
fc = mx.sym.FullyConnected(data=flatten, num_hidden=10)
output = mx.sym.SoftmaxOutput(data=fc, name='softmax')
return output
Chatbots er avhengige av modeller for naturlig språkprosessering, som kan være ressurskrevende. Ved å bruke BMXNet kan man:
I AI-automatiserings-scenarier er responstid og effektivitet avgjørende.
BMXNet er et verdifullt verktøy for utviklere som ønsker å distribuere dyp læringsmodeller i miljøer med begrensede ressurser. Ved å bruke binære nevrale nettverk åpner det for effektive AI-løsninger på tvers av ulike domener, inkludert AI-automatisering og chatbots. Integrasjonen med MXNet og støtte for både GPU- og CPU-beregninger gjør det tilgjengelig og tilpasningsdyktig til ulike prosjektbehov.
Enten du utvikler en mobilapplikasjon som krever sanntids bildeanalyse eller distribuerer chatbots som må fungere effektivt på strømsvak maskinvare, gir BMXNet nødvendige komponenter for å bygge og distribuere binære nevrale nettverk effektivt.
BMXNet er en betydelig utvikling innen binære nevrale nettverk (BNNs), som er utviklet for å forbedre beregningseffektivitet og redusere energiforbruk, spesielt nyttig for distribusjon av dyp læringsmodeller på strømsvake enheter. Nedenfor følger et sammendrag av relevante vitenskapelige artikler som omhandler BMXNet og dets bruk:
BMXNet: An Open-Source Binary Neural Network Implementation Based on MXNet
Denne artikkelen, forfattet av Haojin Yang og kolleger, introduserer BMXNet, et åpent kildekode-bibliotek for binære nevrale nettverk (BNNs) basert på MXNet. BNNs i BMXNet benytter bitvise operasjoner, som drastisk reduserer minnebruk og øker effektiviteten, spesielt for strømsvake enheter. Biblioteket støtter både XNOR-nettverk og kvantiserte nevrale nettverk, og muliggjør sømløs integrasjon med standardbibliotekets komponenter på tvers av GPU- og CPU-modus. BMXNet-prosjektet, vedlikeholdt av Hasso Plattner Institute, inkluderer eksempler og forhåndstrente binære modeller, tilgjengelig på GitHub: BMXNet Library.
Learning to Train a Binary Neural Network
I dette arbeidet utforsker Joseph Bethge og kolleger metoder for effektiv trening av binære nevrale nettverk ved bruk av BMXNet. De fokuserer på å gjøre treningsprosessen mer tilgjengelig. Artikkelen diskuterer ulike nettverksarkitekturer og hyperparametere for å forbedre forståelsen og treningsresultatene for BNNs. Forskningen introduserer strategier for å forbedre nøyaktigheten ved å øke nettverksforbindelsene. Kode og modeller er offentlig tilgjengelig for videre utforskning.
Training Competitive Binary Neural Networks from Scratch
Denne studien av Joseph Bethge og andre fremhever forbedring av ytelsen til binære nettverk uten å være avhengig av fullpresisjonsmodeller eller komplekse strategier. Forfatterne oppnår toppresultater på referansedatasett, og viser at enkle treningsmetoder kan gi konkurransedyktige binære modeller. De baner også vei for integrasjon av tette nettverksarkitekturer i binære nettverk, og tar dermed feltet et steg videre.
daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices
Jianhao Zhang og hans team presenterer daBNN, et rammeverk som støtter rask implementering av BNNs på ARM-enheter, som mobiltelefoner. Artikkelen viser hvordan daBNN forbedrer inferenseffektiviteten gjennom bitvise operasjoner, og oppfyller potensialet til BNNs for enheter med begrensede ressurser. Forskningen bidrar til praktisk distribusjon av BNNs på utbredte ARM-baserte enheter.
BMXNet er et åpen kildekode-bibliotek for bygging og distribusjon av binære nevrale nettverk (BNNs) på Apache MXNet-rammeverket. Det muliggjør nevrale nettverk med binære vekter og aktiveringer, som drastisk reduserer minnebruk og beregningskompleksitet, noe som gjør det ideelt for AI-applikasjoner på ressurssvake og strømsvake enheter.
BMXNet gir redusert minnebruk, raskere inferens og lavere energiforbruk ved å utnytte binære operasjoner i stedet for flyttallsaritmetikk. Den sømløse integrasjonen med MXNet og støtte for både GPU og CPU gjør det egnet for innebygd AI, IoT, mobil og sanntids AI-automatisering.
BMXNet er ideell for å distribuere dyp læringsmodeller på innebygde enheter, IoT-maskinvare, mobiltelefoner, robotikk og edge AI-scenarier hvor effektivitet, lavt strømforbruk og sanntidsbehandling er avgjørende.
I motsetning til standard nevrale nettverk som bruker flyttallsvekter og -aktiveringer, binariserer BNN-er disse verdiene (til +1/-1 eller 1/0), noe som muliggjør effektive bitvise operasjoner som XNOR og popcount. Dette reduserer betydelig minne- og beregningskravene, samtidig som rimelig nøyaktighet opprettholdes for mange oppgaver.
Du kan laste ned BMXNet, få tilgang til dokumentasjon og finne forhåndstrente modeller i det offisielle GitHub-repositoriet: https://github.com/hpi-xnor. Forskingsartikler og veiledninger er også tilgjengelige for å hjelpe deg i gang.
Oppdag hvordan BMXNet muliggjør rask, energieffektiv AI-distribusjon på strømsvake enheter ved hjelp av binære nevrale nettverk. Integrer, tren og distribuer kompakte nevrale modeller for edge-, IoT- og mobilapplikasjoner.
Et Bayesisk nettverk (BN) er en sannsynlighetsbasert grafmodell som representerer variabler og deres betingede avhengigheter via en rettet asyklisk graf (DAG). ...
Et Deep Belief Network (DBN) er en sofistikert generativ modell som benytter dype arkitekturer og Restricted Boltzmann Machines (RBMs) for å lære hierarkiske da...
Et neuralt nettverk, eller kunstig neuralt nettverk (ANN), er en datamodell inspirert av menneskehjernen, essensiell i KI og maskinlæring for oppgaver som mønst...