【问题标题】:Different coefficients for L1-L2 regularisationL1-L2 正则化的不同系数
【发布时间】:2018-06-19 12:24:34
【问题描述】:

我想通过 L1 和 L2 正则化来正则化网络的权重。但是,我找不到独立改变正则化强度的方法。 Keras documentation 也不提供任何信息。

那么,有没有办法在 l1_l2 正则化器中使用不同的优势? 或者也许是一种替代方法来实现相同的结果?

我目前的模型很简单:

stren = 0.001
model = Sequential()
model.add(Dense(64, input_dim=148, activation='relu', kernel_regularizer=reg.l2(stren)))
model.add(Dense(1, activation='sigmoid', kernel_regularizer=reg.l2(stren)))

而且我希望能够有一些类似的东西:

kernel_regularizer=reg.l1_l2(l1_str, l2_str)

【问题讨论】:

    标签: python machine-learning keras regularized


    【解决方案1】:

    当然,您可以独立改变regularizers 的优势:

    from keras import regularizers
    
    regularizers.l1_l2(l1=0.001, l2=0.1) # the strength of l1 is set to 0.001 and l2 to 0.1
    

    【讨论】:

    • 非常感谢!奇怪的是他们没有在文档中提到这一点..
    【解决方案2】:

    也许您可以尝试根据您的损失函数自定义正则化,并在 Keras 框架中设计一个用户定义的正则化函数。像这样的:

    def l1_l2(l1=0.01, l2=0.01):
        return L1L2(l1=l1, l2=l2)
    

    或者使用Dropout(0.2)等层间dropout函数。

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 2021-11-03
      • 2018-06-18
      相关资源
      最近更新 更多