
Bayesiske Netværk
Et Bayesisk Netværk (BN) er en probabilistisk grafisk model, der repræsenterer variable og deres betingede afhængigheder via en Rettet Acyklisk Graf (DAG). Baye...
BMXNet bringer binære neurale netværk til MXNet og forbedrer dramatisk hukommelses- og beregningseffektiviteten for AI på enheder med begrænsede ressourcer.
BMXNet er en open source-implementering af binære neurale netværk (BNN’er) baseret på Apache MXNet deep learning-rammen. Den tilbyder et sæt værktøjer og lag, der gør det muligt for udviklere og forskere at bygge, træne og implementere neurale netværk med binære vægte og aktiveringer. Ved at udnytte binær aritmetik i stedet for standard flydende kommatal-beregninger reducerer BMXNet markant hukommelsesforbruget og beregningskompleksiteten, hvilket gør det muligt at implementere deep learning-modeller på lavenergi-enheder og i ressourcebegrænsede miljøer.
Før vi dykker ned i detaljerne om BMXNet, er det vigtigt at forstå, hvad binære neurale netværk er, og hvorfor de er betydningsfulde inden for kunstig intelligens (AI).
Binære neurale netværk er en type neuralt netværk, hvor vægtene og aktiveringerne er begrænset til binære værdier, typisk {+1, -1}
eller {1, 0}
. Denne binarisering forenkler beregningerne i neurale netværk ved at reducere komplekse aritmetiske operationer til simple bitvise operationer som XNOR og bit-tælling (popcount).
BNN’er er især nyttige i situationer, hvor beregningsressourcerne er begrænsede, men der kræves realtidsbehandling. Dette inkluderer applikationer som:
BMXNet står for Binary MXNet, hvilket indikerer dets integration med MXNet deep learning-rammen. MXNet er kendt for sin skalerbarhed, portabilitet og understøttelse af flere programmeringssprog.
I BMXNet opnås binarisering af vægte og aktiveringer ved hjælp af fortegnsfunktionen. Under forward pass konverteres reelle vægte og aktiveringer til binære værdier. Under backward pass beregnes gradienter i forhold til de reelle variabler for at muliggøre træning.
Binariseringsformel:
For en reel input (x):
b = sign(x) = { +1, hvis x ≥ 0; -1, ellers }
BMXNet introducerer flere binære lag:
Disse lag fungerer på samme måde som deres standard MXNet-modparter, men opererer med binære beregninger.
Kernen i beregningseffektiviteten i BMXNet skyldes udskiftningen af traditionelle aritmetiske operationer med bitvise operationer:
Ved at udnytte disse operationer kan BMXNet udføre konvolutions- og fuldt forbundne lags-beregninger langt hurtigere end med flydende kommatal-aritmetik.
En af de primære anvendelser af BMXNet er at udrulle deep learning-modeller på enheder med begrænsede ressourcer. For eksempel:
Inden for AI-automatisering og chatbots gør BMXNet det muligt at implementere neurale netværk, der kan:
Med BMXNet har udviklere skabt billedklassifikationsmodeller, der kører effektivt på Android- og iOS-enheder. Ved at konvertere standardmodeller som ResNet-18 til binære versioner er det muligt at opnå:
I IoT-miljøer kan BMXNet bruges til at udrulle chatbots, der:
Robotter og automatiserede systemer kan udnytte BMXNet til opgaver som:
For at komme i gang med BMXNet kan man downloade biblioteket og fortrænede modeller fra det officielle GitHub-repository:
https://github.com/hpi-xnor
BMXNet understøtter træning af binære modeller:
Udviklere kan konvertere eksisterende MXNet-modeller til binære versioner:
Herunder ses et forenklet eksempel på, hvordan man definerer et binært neuralt netværk med BMXNet’s lag:
import mxnet as mx
import bmxnet as bmx
def get_binary_network():
data = mx.sym.Variable('data')
# Første lag (ikke binariseret)
conv1 = mx.sym.Convolution(data=data, kernel=(3,3), num_filter=64)
act1 = mx.sym.Activation(data=conv1, act_type='relu')
# Binariserede 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))
# Outputlag (ikke binariseret)
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 afhængige af modeller til naturlig sprogbehandling, som kan være ressourcekrævende. Ved brug af BMXNet:
I AI-automatiserings-scenarier er svartid og effektivitet afgørende.
BMXNet fungerer som et værdifuldt værktøj for udviklere, der ønsker at implementere deep learning-modeller i miljøer med begrænsede ressourcer. Ved at anvende binære neurale netværk åbner det op for effektive AI-applikationer på tværs af forskellige domæner, herunder AI-automatisering og chatbots. Dets integration med MXNet og understøttelse af både GPU- og CPU-beregninger gør det tilgængeligt og tilpasningsdygtigt til forskellige projektbehov.
Uanset om du udvikler en mobilapplikation, der kræver realtids billedgenkendelse, eller implementerer chatbots, som skal fungere effektivt på lavenergi-hardware, leverer BMXNet de nødvendige komponenter til at bygge og implementere binære neurale netværk effektivt.
BMXNet er en væsentlig udvikling inden for binære neurale netværk (BNN’er), som er designet til at forbedre beregningseffektivitet og reducere energiforbrug – især nyttigt til implementering af deep learning-modeller på lavenergi-enheder. Nedenfor gives et resumé af relevante videnskabelige artikler, der diskuterer BMXNet og dets anvendelser:
BMXNet: An Open-Source Binary Neural Network Implementation Based on MXNet
Denne artikel, skrevet af Haojin Yang og kolleger, introducerer BMXNet, et open source-bibliotek til binære neurale netværk (BNN’er) baseret på MXNet. BNN’er i BMXNet anvender bitvise operationer, hvilket drastisk reducerer hukommelsesforbruget og øger effektiviteten, især på lavenergi-enheder. Biblioteket understøtter både XNOR-netværk og kvantiserede neurale netværk og muliggør problemfri integration med standardbibliotekets komponenter på tværs af GPU- og CPU-tilstande. BMXNet-projektet, vedligeholdt af Hasso Plattner Institute, indeholder prøveprojekter og fortrænede binære modeller, som er tilgængelige på GitHub: BMXNet Library.
Learning to Train a Binary Neural Network
I dette arbejde undersøger Joseph Bethge og kolleger metoder til effektivt at træne binære neurale netværk ved hjælp af BMXNet. De fokuserer på at afmystificere træningsprocessen og gøre den mere tilgængelig. Artiklen diskuterer forskellige netværksarkitekturer og hyperparametre for at forbedre forståelsen og forbedre træningsresultaterne for BNN’er. Forskningen introducerer strategier til at forbedre nøjagtigheden ved at øge netværksforbindelser. Kode og modeller er offentligt tilgængelige for videre udforskning.
Training Competitive Binary Neural Networks from Scratch
Dette studie af Joseph Bethge m.fl. lægger vægt på at forbedre ydeevnen for binære netværk uden at være afhængig af fuldpræcisionsmodeller eller komplekse strategier. Forfatterne opnår succesfuldt state-of-the-art-resultater på benchmark-datasæt og demonstrerer, at simple træningsmetoder kan give konkurrencedygtige binære modeller. De er også pionerer inden for integrationen af tætte netværksarkitekturer i binære netværk og driver dermed feltet videre.
daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices
Jianhao Zhang og hans team præsenterer daBNN, et framework der understøtter hurtig implementering af BNN’er på ARM-enheder såsom mobiltelefoner. Artiklen demonstrerer daBNN’s evne til at øge inference-effektiviteten via bitvise operationer og udnytter dermed BNN’ers potentiale på enheder med begrænsede beregningsressourcer. Denne forskning bidrager til den praktiske udrulning af BNN’er på udbredte ARM-baserede enheder.
BMXNet er et open source-bibliotek til at bygge og implementere binære neurale netværk (BNN'er) på Apache MXNet-platformen. Det muliggør neurale netværk med binære vægte og aktiveringer, hvilket drastisk reducerer hukommelsesforbruget og beregningskompleksiteten, hvilket gør det ideelt til AI-applikationer på enheder med begrænsede ressourcer og lavt strømforbrug.
BMXNet tilbyder reduceret hukommelsesforbrug, hurtigere inferens og lavere energiforbrug ved at udnytte binære operationer i stedet for flydende kommatal-aritmetik. Dets problemfri integration med MXNet og understøttelse af både GPU'er og CPU'er gør det velegnet til indlejret AI, IoT, mobil og realtids AI-automatisering.
BMXNet er ideel til at implementere dybe læringsmodeller på indlejrede enheder, IoT-hardware, mobiltelefoner, robotteknologi og edge AI-scenarier, hvor effektivitet, lavt strømforbrug og realtidsbehandling er kritisk.
I modsætning til standard neurale netværk, der bruger flydende kommatal-vægte og -aktiveringer, binariserer BNN'er disse værdier (til +1/-1 eller 1/0), hvilket muliggør brugen af effektive bitvise operationer som XNOR og popcount. Dette reducerer markant hukommelses- og beregningsbehovet, mens det for mange opgaver bevarer en rimelig nøjagtighed.
Du kan downloade BMXNet, få adgang til dokumentation og finde fortrænede modeller på det officielle GitHub-repository: https://github.com/hpi-xnor. Forskning og vejledninger er også tilgængelige for at hjælpe dig i gang.
Opdag hvordan BMXNet muliggør hurtig, energieffektiv AI-udrulning på lavenergi-enheder ved hjælp af binære neurale netværk. Integrér, træn og udret kompakte neurale modeller til edge, IoT og mobile applikationer.
Et Bayesisk Netværk (BN) er en probabilistisk grafisk model, der repræsenterer variable og deres betingede afhængigheder via en Rettet Acyklisk Graf (DAG). Baye...
Et neuralt netværk, eller kunstigt neuralt netværk (ANN), er en beregningsmodel inspireret af den menneskelige hjerne, essentiel i AI og maskinlæring til opgave...
Et Deep Belief Network (DBN) er en sofistikeret generativ model, der udnytter dybe arkitekturer og Restricted Boltzmann Machines (RBM'er) til at lære hierarkisk...