【发布时间】:2017-09-06 19:11:27
【问题描述】:
给定一个design matrix(初始列1s对应一个偏差因子),我可以执行标准的NN-style L2-Regularized参数估计,其中only the weights are regularized,使用各种Python工具如
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
或
scipy.optimize.minimize(lambda p: np.mean((np.dot(dmat, p) - y_data)**2) + 2*lamb*tf.nn.l2_loss(p[1:]).eval(), np.zeros(n_params).T).x
但我认为没有办法使用 TensorFlow 的 tf.matrix_solve_ls 将偏差排除在正则化之外
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从正则化中排除偏差(或者,通过构造,第一个参数)?
【问题讨论】:
-
不确定是否使用
tf.matrix_solve_ls,但我之前通过仅计算那些不包含“偏差”一词的变量的正则化项来完成此操作。比如reg_term = tf.norm([var for var in tf.trainable_variables() if not 'bias' in var.name])。
标签: python machine-learning tensorflow regularized