Text(0, 0.5, 'Mean Square Error')

log-concavelog-concavity is very importantlog-concave if \(\log(f(x))\) is concave
log-concave:
wikipedia
log-concave, then so is: \[
g(\mathbf{x}) = \int \mathbf{dy} f(\mathbf{x},\mathbf{y})
\]log-concave then so is \(p(\mathbf{x}) = \int\mathbf{dy} p(\mathbf{x},\mathbf{y})\)log-concavelog-concave are log-concave
log-convex if: \[
f(\theta x + (1-\theta)y) \geq f(x)^{\theta} f(y)^{1-\theta}
\]Suppose that your factory tries to build items with a target set of paramters \(x\)
Randomness/Imprecision causes manufactured items to deviate from target according to probability distribution: \[ p(\theta = x + w ) = p(w) \]
Then yield is defined as fraction of items within tolerances: \[ Y(x) = \int dw I(S,w+\theta) p(w) \]
We say that two (not necessarily convex) optimization problems are equivalent if we have a way to calculate the optimum of one problem from the solution of another problem
log is standard example
ML problems only convex once you take the loglog (monotone):\[ \min_{\mathbf{x}} \left(f_1(\mathbf{x}),f_2(\mathbf{x}),\cdots,f_n(\mathbf{x}\right)) \\ g_i(\mathbf{x}) \leq 0,\quad h_j(\mathbf{x}) = 0 \] - Feasible \(x\) that minimizes all objectives is an optimal point - Generally impossible - If possible objectives are called non-competing
Text(0, 0.5, 'Mean Square Error')

for v in lambd_values:
lambd.value = v
problem.solve()
train_errors.append(mse(X_train, Y_train, beta))
test_errors.append(mse(X_test, Y_test, beta))
beta_values.append(beta.value)
norm_beta_vec = np.array([np.linalg.norm(vec)**2 for vec in beta_values])
plt.plot(norm_beta_vec,train_errors)
plt.title("Pareto Surface for Ridge Regression")
plt.xlabel("Norm of Coefficients")
plt.ylabel("Mean Square Error")CVX SolversCVX has a number of different solversSCS, CLARABEL, OSQPSCS is the in-house solver (Splitting Conic Solver)OSQP from Oxford, does LP and QPCLARABEL from Oxford specializes in Second Order Cone ProgramsCVX by default caches results of computation and uses them as starting pointMOSEK commercial nonlinear solver, some universities have a license/possible to get academic licenseGUROBI fastest for linear programmingGLPK solver of last resort in some python packages when your MOSEK license isn’t working