web-dev-qa-db-ja.com

Keras:カーネルとアクティビティレギュラーの違い

weight_regularizerがKerasで利用できなくなり、代わりにactivitykernel regularizerがあることに気づきました。私が知りたいのですが:

  • kernelactivity regularizersの主な違いは何ですか?
  • weight_regularizerの代わりにactivity_regularizerを使用できますか?
58
Simone

アクティビティレギュラーは、ネットの出力の関数として機能し、主に隠されたユニットを正規化するために使用されます。一方、weight_regularizerは、名前が示すように、重みに作用して減衰させます。基本的に、正則化損失は、出力(activity_regularizer)または重み(weight_regularizer)の関数として表現できます。

新しいkernel_regularizerweight_regularizerを置き換えます-ドキュメントからはあまり明確ではありませんが。

kernel_regularizerの定義から:

kernel_regularizer:kernel重み行列に適用されるRegularizer関数(regularizerを参照)。

そしてactivity_regularizer

activity_regularizer:レイヤーの出力に適用されるRegularizer関数(「アクティベーション」)。 (正則化を参照)。

重要な編集activity_regularizerにはバグがあったことに注意してくださいKerasのバージョン2.1.4でのみ修正(少なくともTensorflowバックエンドでは)。実際、古いバージョンでは、アクティビティレギュライザー機能は、出力(意図したとおりのレイヤーの実際のアクティブ化)に適用されるのではなく、レイヤーの入力に適用されます。したがって、古いバージョンのKeras(2.1.4より前)を使用している場合は、アクティビティの正規化が意図したとおりに機能しない可能性があることに注意してください。

GitHub でコミットを確認できます

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

64
Michele Tonutti