如何使用 BFGS 求解 KDB 中的线性模型?

How do I solve a linear model in KDB using BFGS?

我有一个玩具线性模型:

\l ml/ml.q
.ml.loadfile`:optimize/init.q

xx: 9h$til 10
yy: ((xx)*3) + 4

x0: 1 1    
error:{sum xexp[(yy - (xx*x) + y);2]}

q).ml.optimize.BFGS[error;x0;();::]
\
'type
  [4]  /home/chris/anaconda3/q/ml/optimize/utils.q:467: .ml.i.gradEval:
  // Evaluate the gradient
  (i.funcEval[func;xk;args]-fk)%eps
                           ^
  }

我希望它将误差函数最小化,并从模型中恢复 3;4

尽管我已尽我所能遵循文档,但它似乎并没有成功:

https://code.kx.com/q/ml/toolkit/optimize/

我做错了什么?

问题与 error 功能有关;它应该是一元的,并以列表作为参数。

error:{sum xexp[(yy - (xx*x[0]) + x[1]);2]}