如标题所述,我希望能够通过创建自定义正则化项来惩罚我的模型权重。
例如:
def customized_regularizer(weight_matrix, parameterA, parameterB):
return(K.sum(K.dot(parameterA, weight_matrix) - parameterB))
model.add(Dense(64, input_dim=64,
kernel_regularizer=customized_regularizer))
然而,在查看Keras文档时(https://keras.io/regularizers/),我看到了:
"开发新的正则化子任何接受权重矩阵并返回损失贡献张量的函数都可以用作正则化子,例如:">
因此,有可能创建这样一个自定义正则化子吗?
是的,你可以这样做:
def custom_reg_builder(parameterA, parameterB):
def custom_reg(weight_matrix):
return(K.sum(K.dot(parameterA, weight_matrix) - parameterB))
return custom_reg
# ...
model.add(Dense(64, input_dim=64, kernel_regularizer=custom_reg_builder(0.1, 0.01)))