2

Ich implementiere Gradientenabstieg für die Regression mit Newton-Methode, wie in der 8.3 Abschnitt der Machine Learning A Probabilistic Perspektive (Murphy) Buch erklärt. Ich arbeite mit zweidimensionalen Daten in dieser Implementierung. Ich verwende folgende Notationen.
x = Eingangsdatenpunkte m * 2
y = markierte Ausgänge (m) entsprechend Eingangsdaten
H = Hesse-Matrix als
Gradientenabstieg Newton-Methode mit Hesse-Matrix

Gradientenabfallsaktualisierung

wo Verlust definiert ist Funktion ist definiert als

In meinem Fall ist Array und H ist

Hier ist meine Python-Implementierung. Dies funktioniert jedoch nicht, da die Kosten in jeder Iteration steigen.

def loss(x,y,theta): 
    m,n = np.shape(x) 
    cost_list = [] 
    for i in xrange(0,n): 
    x_0 = x[:,i].reshape((m,1)) 
    predicted = np.dot(x_0, theta[i])  
    error = predicted - y 
    cost = np.sum(error ** 2)/m 
    cost_list.append(cost) 

    cost_list = np.array(cost_list).reshape((2,1)) 
    return cost_list 


def NewtonMethod(x,y,theta,maxIterations): 
    m,n = np.shape(x) 
    xTrans = x.transpose() 
    H  = 2 * np.dot(xTrans,x)/m 
    Hinv = np.linalg.inv(H) 
    thetaPrev = np.zeros_like(theta) 
    best_iter = maxIterations 
    for i in range(0,maxIterations): 
    cost = loss(x,y,theta) 
    theta = theta - np.dot(Hinv,cost)) 
    if(np.allclose(theta,thetaPrev,rtol=0.001,atol=0.001)): 
     break; 
    else: 
     thetaPrev = theta 
     best_iter = i 

    return theta 

Hier sind die Abtastwerte I

verwendet
import numpy as np 

x = np.array([[-1.7, -1.5],[-1.0 , -0.3],[ 1.7 , 1.5],[-1.2, -0.7 ][ 0.6, 0.1]]) 
y = np.array([ 0.3 , 0.07, -0.2, 0.07, 0.03 ]) 
theta = np.zeros(2) 
NewtonMethod(x,y,theta,100) 

Brauchen Sie Hilfe/Vorschläge, dieses Problem zu beheben.
Danke

Antwort

0

Sie verwenden effektiv eine Schrittweite von 1. Versuchen Sie, die Schrittgröße zu reduzieren und sehen Sie, ob das hilft. Das heißt, statt

enter image description here

Tun Sie dies:

enter image description here

mit einem kleineren Wert als 1

Verwandte Themen