如何使用TensorFlow的“矩阵求解”从正则化中排除偏差?

2024-09-28 22:21:32 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个design matrix(初始列为1,对应于偏差因子),我可以使用各种Python工具执行标准NN样式的L2正则化参数估计,其中only the weights are regularized,包括

scipy.optimize.minimize(lambda p: np.mean((np.dot(dmat, p) - y_data)**2) + lamb*np.dot(p[1:], p[1:]), np.zeros(n_params).T).x

或者

^{pr2}$

但是我看不出任何方法可以排除正则化中的偏差

tf.matrix_solve_ls(dmat, np.array([y_data]).T, l2_regularizer=lamb*len(dmat)).eval()

相当于

scipy.optimize.minimize(lambda p: np.mean((np.dot(dmat, p) - y_data)**2) + lamb*np.dot(p, p), np.zeros(n_params).T).x

如何使用tf.matrix_solve_ls从正则化中排除偏差(或者,通过构造,第一个参数)?在


Tags: lambdadatanpzerosscipyparamsmeanmatrix
1条回答
网友
1楼 · 发布于 2024-09-28 22:21:32

不幸的是,在当前版本的矩阵求解中,这是不可能的。另一方面,矩阵求解中的默认(快速)路径最近更改为简单的复合Python函数:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/linalg_ops.py#L293

您可以很容易地生成这个代码的一个版本,其中l2_正则化器是一个向量(每个参数都有一个单独的值)。一般来说,在矩阵求解中实现这样的泛化可能是个好主意。也许您可以将此更改作为请求提交?在

相关问题 更多 >