Specialisering af en fortolker af neurale netværk: Specialization of an interpreter for neural networks

Robert Ayzma, Jørgen Buch, Kim Allan Hansen & Martin Bernth Pedersen

Studenteropgave: Semesterprojekt

Abstrakt

Programspecialisering kan bruges til at reducere udførselstiden af programmer med flere parametre ved at holde visse parametre fast. Vi har sammenlignet udførselstiden for en fortolker af trænede neurale netværk med udførselstiden for versioner af denne fortolker specialiseret med hensyn til trænede neurale netværk. Et sådan neuralt netværk er en vægtet graf; nogle af de hyppigst foretagede operationer i fortolkeren er multiplikationer med vægte. Vi har derfor desuden undersøgt i hvor høj grad disse vægte kan approksimeres med værdierne 0 eller 1 (hvorved en muliplikation kan spares væk i den specialiserede fortolker), og i hvor høj grad sådanne ændringer forringer præcisionen af det neurale netværk. Den væsentligste metode vi har gjort brug af er manuel offline partiel evaluering, herunder blandt andet en bindingstidsanalyse af den originale fortolker. Implementeringen af fortolkeren til det neurale netværk er udviklet i Java. Fortolkeren tager et feed forward netværk med ét skjult lag, og et input. Resultaterne viser en mindre hastighedsforøgelse for netværks på mellem 3 og 61 neuroner (knuder) i inputlaget. Gyldigheden af forsøgsresultaterne er begrænset til de benyttede neurale netværkstyper og programmeringssprog. Konklusionen er at specialisering af fortolkere af neurale netværk kan betale sig indenfor et begrænset område. Justeringen af vægtenes præcision indikerer at der kan spares beregninger, hvilket principielt set kan omsættes til en hastighedsforøgelse.

UddannelserBasis - Naturvidenskabelig Bacheloruddannelse, (Bachelor uddannelse) Basis
SprogDansk
Udgivelsesdato1 jun. 2006
VejledereMorten Rhiger

Emneord

  • netværk
  • kunstig
  • specialisering
  • partiel evaluering
  • neurale
  • intelligens