Ich versuche derzeit, dieses Beastie in Python (mit den numpy-Bibliotheken) zu programmieren. Der Lambda * w
soll außerhalb der Summe liegen.Effizient Codierung Gradienten der Funktion
Derzeit habe ich das Problem mit einer for-Schleife und einer laufenden Summe außerhalb codiert; Dieser Ansatz benötigt jedoch viel Zeit. Meine Vektoren für y
, w
und x
sind sehr groß - denken Sie an 100.000 Elemente. Ich habe mich gefragt, ob es eine einfachere Möglichkeit gibt, das Element zu vektorisieren, anstatt einfache Matrixoperationen zu verwenden, anstatt den Vektor eines Elements durch ein anderes Element zu durchlaufen.
Das ist mein vektorisiert Code:
xty = xtrain.T.dot(ytrain)
e = math.exp(-w_0.T.dot(xty))
gradient = (-xty*(e/1+e)-lambda_var*w_0)
Teilen Ihr Loopy-Code? Bitte fügen Sie nach Möglichkeit auch möglichst wenige Beispiele für repräsentative relevante Eingaben hinzu. – Divakar