Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tensorflow V.S.中的FTRL实现。谷歌的FTRL';s的研究论文_Python_Algorithm_Tensorflow - Fatal编程技术网

Python tensorflow V.S.中的FTRL实现。谷歌的FTRL';s的研究论文

Python tensorflow V.S.中的FTRL实现。谷歌的FTRL';s的研究论文,python,algorithm,tensorflow,Python,Algorithm,Tensorflow,我感兴趣的是挖掘FTRL如何在tensorflow中实现的细节。我在文件夹/tensorflow/python/training中的文件“gen\u training\u ops.py”中找到了一些信息。在本文件中,FTRL算法的公式描述如下: def apply_ftrl(var, accum, linear, grad, lr, l1, l2, lr_power, use_locking=None, name=None): r"""Update '*var' according to the

我感兴趣的是挖掘FTRL如何在tensorflow中实现的细节。我在文件夹
/tensorflow/python/training
中的文件
“gen\u training\u ops.py”
中找到了一些信息。在本文件中,FTRL算法的公式描述如下:

def apply_ftrl(var, accum, linear, grad, lr, l1, l2, lr_power,
use_locking=None, name=None):
r"""Update '*var' according to the Ftrl-proximal scheme
accum_new = accum + grad * grad      ------ (1)
linear += grad + (accum_new^(-lr_power) - accum^(-lr_power)) / lr * var        ------ (2)
quadratic = 1.0 / (accum_new^(lr_power) * lr) + 2 * l2              ------ (3)
var = (sign(linear) * l1 - linear) / quadratic if |linear| > l1 else 0.0           ------(4)
accum = accum_new        ------(5)
我还在读谷歌在KDD'13中发表的论文“广告点击预测:战壕中的一个视图”。本文第2页给出了FTRL算法的公式。比较这两种实现,我们发现了一些联系:
var在本文中是w{t,i}<代码>l1在本文中为λ1
在本文中是线性的
lr在本文中是alpha
grad在本文中是gi
accum在纸上不存在。

但也有一些不一致的地方: 根据本文,上述方程式(2)应为

linear += grad - (accum_new^(-lr_power) - accum^(-lr_power)) / lr * var
通过比较两种实现,我们还可以得到以下等式:

2l2 *alpha = beta + alpha * lambda2
对于熟悉tensorflow中FTRL实现的任何专家,您能帮助我澄清tensorflow中给出的参数的含义,以及与谷歌研究论文“广告点击预测:战壕视图”中FTRL代码的联系吗