1. ホーム
  2. machine-learning

[解決済み] Keras カーネル・レギュラライザーとアクティビティ・レギュラライザーの違い

2023-01-10 10:20:29

質問

私は、以下のことに気づきました。 ウェイトレギュレータ が Keras で利用できなくなり、その代わりに アクティビティ カーネル のレギュラライザを使用しています。 知りたいと思います。

  • との主な違いは何ですか? カーネル アクティビティ のレギュラー化?
  • 私は アクティビティレギュレータ の代わりに 重量イレギュラライザー ?

どのように解決するのですか?

Activity regularizerはネットの出力の関数として働き、主に隠れユニットの正則化に使われますが、weight_regularizerはその名の通り、重みに作用します(減衰させるなど)。基本的には正則化の損失を出力の関数として表現することができます ( activity_regularizer ) または重みの関数として表現できます ( weight_regularizer ).

新しい kernel_regularizerweight_regularizer - に置き換わるのですが、ドキュメントではあまり明確ではありません。

の定義から kernel_regularizer :

kernel_regularizer。に適用される正則化関数。 に適用される正則化関数です。 kernel 重み行列 に適用されます (正則化参照)。

また activity_regularizer :

activity_regularizer。レイヤーの出力に適用される正則化関数。 レイヤーの出力(活性化)に適用される正則化関数です。 (regularizerを参照)。

重要な編集 : のバグに注意してください。 アクティビティレギュレータ であったものが は Keras のバージョン 2.1.4 で修正されました。 (少なくともTensorflowバックエンドで)修正されました。実際、古いバージョンでは、アクティビティレギュラライザ関数は、出力(意図したとおりのレイヤーの実際のアクティベーション)に適用されるのではなく、レイヤーの入力に適用されています。そのため、Kerasの古いバージョン(2.1.4以前)を使用している場合、アクティビティ正則化はおそらく意図したように動作しない可能性があるので注意してください。

コミットは GitHub

5ヶ月前、François Cholletはアクティビティレギュラーライザーの修正を提供し、それがKeras 2.1.4に含まれました。