Beschleunigung Mathematische Berechnungen in Java

Habe ich ein neuronales Netz in Java geschrieben, verwendet eine sigmoid transfer function wie folgt definiert:

private static double sigmoid(double x)
{
    return 1 / (1 + Math.exp(-x));
}

genannt wird viele mal während der Ausbildung und Berechnung über das Netzwerk. Gibt es eine Möglichkeit dieses zu beschleunigen? Es ist nicht, dass es langsam ist, es ist nur, dass es viel benutzt wird, so dass eine kleine Optimierung wäre hier eine große Gesamtverstärkung.

  • Sind die Werte von x immer wiederholt, oder ist es wahrscheinlicher, dass Sie immer anders sein wird jedes mal, wenn die Methode aufgerufen wird?
  • Auch, wie genau ist das Ergebnis werden müssen?
  • hängt von der gewünschten Genauigkeit, aber Sie sind alle floating-point-zahlen, so ziemlich einzigartig
  • gute Frage, aber ich vermute, ich muss mindestens 4 und wahrscheinlich 6dps. Das Problem ist, dass es schwer ist, stellen die notwendigen Genauigkeit in der realen Welt Probleme, wo es keine "richtige" Antwort.
  • Also, die Regeln die Möglichkeit der Zwischenspeicherung der Ergebnisse, so dass ich leider nicht sehen können, ein weiterer Weg, um dies zu verbessern.
  • Ist die Reichweite des double-Werte beschränkt, oder Sie sind alle über?
  • Sind Sie auf der Suche nach diesem? sharpneat.sourceforge.net/integer_network.html
  • Ich habe einmal versucht memoize -ing der sigmoid-Funktion in Perl, die im Grunde genommen die gleiche Sache, wie die Generierung einer lookup-Tabelle. Die Ausbildung Zeit nicht verbessern. Diese Beobachtung Sekunden DaveJohnston Vorschlag.
  • Ein neuronales Netz! Ich will immer wissen, wie es zu schreiben. Doch die Dokumentation im internet ist sehr lang und ich will nicht, es zu Lesen. Ist es möglich, die Sie mir (und andere interessante Menschen) den code in ein Archiv? Das wäre genial! Ich wäre sehr dankbar.
  • Haben Sie profiliert das Programm, zu wissen, dass die Verbesserung dies wird erheblich verbessern die Gesamtleistung?
  • Die Beschleunigung dieser Berechnung ist eigentlich ein gemeinsames Thema unter NN eggheads, also ich finde, wie Stereotyp StackOverflowish, die Antwort ist, dass es als äußerst humorvoll 🙂

InformationsquelleAutor Simon | 2010-05-22
Schreibe einen Kommentar