Path: blob/master/site/ja/addons/tutorials/optimizers_conditionalgradient.ipynb
25118 views
Kernel: Python 3
Copyright 2020 The TensorFlow Authors.
In [ ]:
TensorFlowアドオンオプティマイザ:ConditionalGradient
概要
このノートブックでは、アドオンパッケージのConditional Gradientオプティマイザの使用方法を紹介します。
ConditionalGradient
ニューラルネットワークのパラメーターを制約すると根本的な正則化の効果があるため、トレーニングに有益であることが示されています。多くの場合、パラメーターはソフトペナルティ(制約充足を保証しない)または投影操作(計算コストが高い)によって制約されます。一方、Conditional Gradient(CG)オプティマイザは、費用のかかる投影ステップを必要とせずに、制約を厳密に適用します。これは、制約内のオブジェクトの線形近似を最小化することによって機能します。このガイドでは、MNISTデータセットのCGオプティマイザーを介してフロベニウスノルム制約を適用する方法を紹介します。CGは、tensorflow APIとして利用可能になりました。オプティマイザの詳細は、https://arxiv.org/pdf/1803.06453.pdfを参照してください。
セットアップ
In [ ]:
In [ ]:
In [ ]:
モデルの構築
In [ ]:
データの準備
In [ ]:
カスタムコールバック関数の定義
In [ ]:
In [ ]:
トレーニングと評価: CG をオプティマイザとして使用する
一般的なkerasオプティマイザを新しいtfaオプティマイザに置き換えるだけです。
In [ ]:
トレーニングと評価: SGD をオプティマイザとして使用する
In [ ]:
In [ ]:
In [ ]:
重みのフロベニウスノルム: CG と SGD の比較
現在の CG オプティマイザの実装はフロベニウスノルムに基づいており、フロベニウスノルムをターゲット関数の正則化機能と見なしています。ここでは、CG の正則化された効果を、フロベニウスノルム正則化機能のない SGD オプティマイザと比較します。
In [ ]:
トレーニングと検証の精度:CGとSGDの比較
In [ ]: