1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶDeep Learning入門

Connected

演習

最適化パラメータを変更する

最適化に実際に取り組んでみましょう。ここでは、極端に小さい学習率、極端に大きい学習率、そして「ちょうどよい」学習率でモデルを最適化してみます。演習を実行したあとは結果を確認し、損失関数の値が小さいほど良いことを思い出してください。

この演習では、前の分類モデル(Titanic の生存者予測)で使用した予測変数と目的変数をあらかじめ読み込んであります。学習率を変更するたびに最適化を最初からやり直して、公平に各学習率の比較ができるようにしたいところです。そのため、未学習のモデルを作成する関数 get_new_model() を用意しています。

指示

100 XP
  • tensorflow.keras.optimizers から SGD をインポートします。
  • 試す学習率のリスト lr_to_test を作成します。中身は .000001、0.01、1 とします。
  • for ループで lr_to_test を反復しながら、次を行います。
    • get_new_model() 関数を使って、新しい未最適化モデルを構築します。
    • SGD() コンストラクタでキーワード引数 lr=lr を用いて、my_optimizer というオプティマイザを作成します。
    • モデルをコンパイルします。optimizer には上で作成した SGD オブジェクトを指定し、これは分類問題なので loss には 'categorical_crossentropy' を使用します。
    • predictors と target を使ってモデルを学習させます。