Posts under category Python

6. limited memory graio newton

牛顿方法需要计算$ hessian $矩阵和其逆,为方便计算和减少内存使用,使用L_BFGS算法优化.

最大墒模型:

$$ \begin{align} p(y|x) &= \frac{\exp \left[ \sum_{i=1} w_i f_i(x,y) \right] }{ Z_w(x) } \\ &= \frac{ \exp \left[ \sum_{i=1} w_i f_i(x,y) \right] }{ \sum_y \exp \left[ \sum_{i=1} w_i f_i(x,y) \right] } \end{align} $$

目标优化函数:

$$ \begin{align} \min_w f(w) &= -\sum_{x,y} \tilde{p}(x,y) \log p(y|x) \\ &= \sum_{x} \tilde{p}(x) \log Z_w(x) - \sum_{x,y} \tilde{p}(x,y) \sum_{i=1} w_i f_i(x,y) \end{align} $$

梯度:
$$ \nabla f(w) = \left[\frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},\frac{\partial f(w)}{\partial w_3},\cdots \right]^T $$

$$ \frac{\partial f(w)}{\partial w_i} = \sum_{x,y} \tilde{p}(x) p_w(y|x) f_i(x,y) - \sum_{x,y} \tilde{p}(x,y) f_i(x,y) $$

- 阅读剩余部分 -

调用参考
https://github.com/shizhuolin/PyCTP/blob/master/tests/test_PyCTP.py
具体参数可参考ctp头文件

git clone https://github.com/shizhuolin/PyCTP.git
cd PyCTP
python setup.py build

这是程序化期货交易上期ctp接口版本. 为方便数值计算.将其包装为python版本.
支持python 2.7+, 3.x, windows/linux/gcc/vs2022

绝大部分代码是直接从ctp源码转换而来.

  • char[x] 均用 pybytes代替
  • char用pybyte代替,bool使用pybool或int

- 阅读剩余部分 -