具有正映射的线性回归

时间:2019-01-26 07:30:13

标签: python tensorflow

我正在使用Tensorflow进行研究。最近,我正在尝试使用具有正映射K的最小二乘即min || y-Kx ||在Tensorflow中实施线性回归。这样K的所有元素都是正值,其中x和y是通过矩阵K映射的向量。基本上,我想在Tensorflow中实现时将可训练变量K强制为正。

我正在寻找在Tensorflow中实现它的好方法。一些文章建议使用tf.clip_by_value,但它可能在K中有零个条目。我发现tf.Variable具有“ constraint”参数,该参数似乎是将解决方案投影到受约束的空间上,但是我没有未能找到一个适合我的案例的例子。

对于在Tensorflow中为可训练变量强制采用正值的建议,我将不胜感激。谢谢您的提前帮助。

1 个答案:

答案 0 :(得分:0)

请注意,constraint

  

约束功能,它在优化程序更新后应用。 (例如用于实现图层权重的规范约束或值约束)

这意味着,在优化程序更新之前,以下变量均具有相同的值:

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R,L]

值得一提的另一件事是,您还可以定义自己的约束:

myVar1 = tf.Variable([1,-1,2],constraint=lambda x: tf.clip_by_value(x, 0, np.infty))
myVar2 = tf.Variable([1,-1,2],constraint=lambda x: tf.abs(x))
myVar3 = tf.Variable([1,-1,2],constraint=lambda x: tf.clip_by_norm(x,axis=-1))

您可以考虑的另一个建议是对特定参数进行正则化。例如,自适应Lasso( H.Zou,JASA 2006,第101卷,第476号)通过为每个变量使用单独的lambda来实现参数估计的一致性。