Ich möchte maximieren eine Funktion mit einem Parameter.Wie wird der Gradientenabstiegsalgorithmus ausgeführt, wenn der Parameterraum beschränkt ist?
Also ich Gradientenabstieg (oder, tatsächlich Aufstieg): Ich beginne mit einem Anfangsparameter und fügen Sie den Gradienten (mal ein Lernfaktor, der immer kleiner wird), neu bewerten den Gradienten mit dem neuen Parameter, und so weiter bis zur Konvergenz.
Aber es gibt ein Problem: Mein Parameter muss positiv bleiben, so dass es nicht < = 0 werden soll, weil meine Funktion nicht definiert ist. Meine Farbverlaufssuche wird jedoch manchmal in solche Regionen gehen (wenn es positiv war, sagte der Gradient, dass es etwas niedriger geht und es überschwingt).
Und um die Sache noch schlimmer zu machen, könnte der Gradient an einem solchen Punkt negativ sein, was die Suche in Richtung noch negativerer Parameterwerte treibt. (Der Grund ist, dass die Zielfunktion Protokolle enthält, aber der Gradient nicht.)
Was sind einige gute (einfache) Algorithmen, die mit diesem eingeschränkten Optimierungsproblem umgehen? Ich hoffe auf eine einfache Lösung für meinen Algorithmus. Oder vielleicht den Verlauf ignorieren und eine Art Suche nach dem optimalen Parameter durchführen?
+1 für die Log-Penalty-Methode –