给定一个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
从正则化中排除偏差(或者,通过构造,第一个参数)?在
不幸的是,在当前版本的矩阵求解中,这是不可能的。另一方面,矩阵求解中的默认(快速)路径最近更改为简单的复合Python函数:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/linalg_ops.py#L293
您可以很容易地生成这个代码的一个版本,其中l2_正则化器是一个向量(每个参数都有一个单独的值)。一般来说,在矩阵求解中实现这样的泛化可能是个好主意。也许您可以将此更改作为请求提交?在
相关问题 更多 >
编程相关推荐