Creating a Problem with scale=True causes a scaling of the prox functions with the operator norm Knorm. This usually works fine, but when a problem is solved with an x0 initialisation other than None (i.e. all zeros in x0) the scaling of the parameters and the input do not match. From my understanding the initialisation x0 has to be scaled as well. For example with:
x0 = x0.copy() * np.sqrt(Knorm)
In which case the operator norm has to be passed to the solve function. Without this scaling my results were considerably worse. This effect is of course only observable if Knorm != 1.0.
Creating a
Problemwithscale=Truecauses a scaling of the prox functions with the operator normKnorm. This usually works fine, but when a problem is solved with anx0initialisation other thanNone(i.e. all zeros inx0) the scaling of the parameters and the input do not match. From my understanding the initialisationx0has to be scaled as well. For example with:x0 = x0.copy() * np.sqrt(Knorm)In which case the operator norm has to be passed to the solve function. Without this scaling my results were considerably worse. This effect is of course only observable if
Knorm != 1.0.