keras_15_正則化Regularizers


1. 正則化層

  1. 正則化器允許在優化過程中對層的參數或層的激活情況進行懲罰。 網絡優化的損失函數也包括這些懲罰項。(但不包括諸如Dropout/人為加Noise這類的正則化)。懲罰是以層為對象進行的。具體的 API 因層而異,但 DenseConv1DConv2DConv3D 這些層具有統一的 API。

  2. 正則化器開放 3 個關鍵字參數:keras.regularizers.Regularizer 的3個實例:

    • kernel_regularizer

    • bias_regularizer

    • activity_regularizer

      from keras import regularizers
      model.add(Dense(64, input_dim=64,
                      kernel_regularizer=regularizers.l2(0.01),
                      activity_regularizer=regularizers.l1(0.01)))
      
  3. keras中可用的正則

    keras.regularizers.l1(0.)
    keras.regularizers.l2(0.)
    keras.regularizers.l1_l2(l1=0.01, l2=0.01)
    

2. 自定義正則化層

  • 任何輸入一個權重矩陣、返回一個損失貢獻張量的函數,都可以用作正則化器,例如:

    from keras import backend as K
    
    def l1_reg(weight_matrix):
        return 0.01 * K.sum(K.abs(weight_matrix))
    
    model.add(Dense(64, input_dim=64,
                    kernel_regularizer=l1_reg))
    
  • 另外,也可以用面向對象的方式來編寫正則化器的代碼,例子見 keras/regularizers.py 模塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM