Path: blob/master/site/ja/tensorboard/hyperparameter_tuning_with_hparams.ipynb
25115 views
Copyright 2019 The TensorFlow Authors.
HParams ダッシュボードでハイパーパラメータ調整を行う
機械学習モデルを構築する際、レイヤーのドロップアウト率や学習率などのさまざまなハイパーパラメータを選択する必要があります。この判断によって制度などのモデルメトリックに影響があります。したがって、問題に最適なハイパーパラメータを特定することが機械学習ワークフローの重要なステップであり、多くの場合、実験が伴います。このプロセスは「ハイパーパラメータ最適化」または「ハイパーパラメータ調整」として知られています。
TensorBoard の HParams ダッシュボードには、ハイパーパラメータの最適な実験または最も有望なセットを特定するプロセスを支援するツールがいくつか提供されています。
このチュートリアルでは、次のステップに焦点を当てています。
セットアップと HParams の要約を実験する
ハイパーパラメータとメトリックをログするように TensorFlow 実行を適応させる
実行を開始し、1 つの親ディレクトリにすべてをログする
TensorBoard の HParams ダッシュボードに結果を視覚化する
注意: HParams summary API とダッシュボード UI はプレビュー段階であるため、いずれ変更されます。
TF 2.0 をインストールし、TensorBoard ノートブック拡張機能を読み込んで起動します。
TensorFlow と TensorBoard HParams プラグインをインポートします。
FashionMNIST データセットをダウンロードし、スケーリングします。
1. セットアップと HParams の実験要約を実験する
モデルの 3 つのハイパーパラメータを使って実験します。
最初の密レイヤーのユニット数
ドロップアウトレイヤーのドロップアウト率
オプティマイザ
試す値をリストして、実験構成を TensorBoard にログします。このステップはオプションですが、UI でハイパーパラメータをより正確にフィルタリングして表示するメトリックを指定できるようにドメイン情報を指定することができます。
このステップを省略する場合は、hparams[HP_DROPOUT]
の代わりに hparams['dropout']
を指定するように、HParam
値を使用する箇所に文字列リテラル使用できます。
2. ハイパーパラメータとメトリックをログするように TensorFlow 実行を適応させる
モデルは、2 つの密レイヤーとその間にドロップアウトレイヤーを使用する、非常に簡単なモデルになります。トレーニングコードは似ていますが、ハイパーパラメータはハードコードされていません。その代わり、hparams
ディクショナリにハイパーパラメータを指定し、トレーニング関数で使用します。
実行のたびに、ハイパーパラメータと最終精度とともに、hparams の要約をログします。
Keras モジュールをトレーニングする際は、直接これらを書き込む代わりにコールバックを使用できます。
3. 実行を開始し、1 つの親ディレクトリにすべてをログする
様々なハイパーパラメータのセットを実験ごとに変更してトレーニングし、複数の実験を試せるようになりました。
簡単にするために、グリッド検索を使用します。離散パラメータのすべての組み合わせと実際値パラメータの上限と下限を試します。より複雑なシナリオでは、それぞれのハイパーパラメータの値をランダムに選択する方が効果的かもしれません(ランダム検索といいます)。より高度な手法も存在します。
実験をいくつか実行します。これには数分かかります。
4. TensorBoard の HParams ダッシュボードに結果を視覚化する
HParams ダッシュボードを開けるようになったので、TensorBoard を起動して上部にある「HParams」をクリックします。
ダッシュボードの左ペインには、HParams ダッシュボードのすべてのビューで有効化されているフィルタ機能があります。
ダッシュボードに表示するハイパーパラメータ/メトリックのフィルタリング
ダッシュボードに表示するハイパーパラメータ/メトリックの値のフィルタリング
実行ステータスによるフィルタリング(実行中、成功、など)
テーブルビューのハイパーパラメータ/メトリックの並べ替え
表示するセッショングループの数(実験が多数ある場合のパフォーマンスに役立ちます)
HParams ダッシュボードには 3 つのビューがあり、さまざまな有益な情報が表示されます。
テーブルビュー には、実行、実行のハイパーパラメータ、およびメトリックがリストされます。
平行座標ビューには、各実行がハイパーパラメータとメトリックの軸を通る線として表示されます。任意の軸をクリックしてドラッグして領域をマークすると、それを通過する実行のみを強調して表示するできます。これはどのハイパーパラメータのグループが最も重要であるかを特定する上で役立ちます。軸自体は、ドラッグして並べ替えることができます。
散布図ビューには、各ハイパーパラメータ/メトリックを各メトリックと比較したプロットが表示されます。こうすることで、相関関係を識別するのに役立ちます。クリックアンドドラッグして特定のプロットの領域を選択すると、ほかのプロットのそれらのセッションを強調して表示できます。
テーブル行、平行座標線、および散布図マーケットはクリック可能で、メトリックのプロットをそのセッションのトレーニングステップの関数として表示することができます(このチュートリアルでは、実行ごとに 1 つのステップのみが使用されています)。
HParams ダッシュボードの機能をさらに探るには、より多くの実験を使用した生成済みのログをダウンロードしてください。
TensorBoard でログを表示します。
HParams ダッシュボードのさまざまなビューを試してみてください。
たとえば、平行座標ビューに移動して、精度軸をクリックアンドドラッグすると、精度の最も高い実行を選択できます。こういった実行はオプティマイザ軸の「adam」を通過するため、実験では「sgd」よりも「adam」の方がより高い性能を見せたと結論付けることができます。