Python Colaboratory

keras-test-53 動作確認

全結合モデルファイル
keras-test-53.ipynb
が完成しましたので Colab の中で動かしてみましょう。
Colab 内の左上隅にある「ファイル」から「ノ-トブックを新規作成」をクリック。
ファイル内容をコピしてこれをノートブックの画面内のボックス(セル)のなかに 貼付け[Ctrl + v]ます。
画面上部のファイル名をクリックして、ファイル名を
keras-test-53.ipynb
に変更します。
ドライブのマウントをします。
左端にある「□」をクリックし、次にマウントマ-ク マウントをクリックします。
すると、マウントマ-クに「\」が入ります。
その後、▷ をクリックして動作させます。
下記のようになるはずです。


Epoch 1/40
3/3 [===] - 1s 323ms/step - loss: 0.7151 - mae: 0.7040 - val_loss: 0.2704 - val_mae: 0.4150
Epoch 2/40
3/3 [===] - 0s 51ms/step - loss: 0.1955 - mae: 0.3364 - val_loss: 0.0934 - val_mae: 0.2163
Epoch 3/40
3/3 [===] - 0s 59ms/step - loss: 0.0699 - mae: 0.1783 - val_loss: 0.0444 - val_mae: 0.1496
~~~~
~~~~
Epoch 26/40
3/3 [===] - 0s 59ms/step - loss: 0.0081 - mae: 0.0653 - val_loss: 0.0074 - val_mae: 0.0614
Epoch 27/40
3/3 [===] - 0s 43ms/step - loss: 0.0075 - mae: 0.0647 - val_loss: 0.0095 - val_mae: 0.0870
Epoch 28/40
3/3 [===] - 0s 44ms/step - loss: 0.0086 - mae: 0.0686 - val_loss: 0.0082 - val_mae: 0.0738

keras-test-53 結果検証

ここまでで、全結合モデルファイルを動作させることができました。
引き続き、全結合モデルファイル keras-test-53 がうまく動作したか検証します。
fit() を呼び出すと History オブジェクトが返されます。
このオブジェクトには history というフィ-ルドがあります。
名前が紛らわしいです。
History と history もっと違う名前にしてほしい!
このフィ-ルドには、エボックの進捗につれて
loss:訓練デ-タセットでの損失値 mse(各誤差の二乗の平均)
mae:訓練デ-タセットでの損失値 mae(各誤差の絶対値の平均)
val_loss:検証デ-タセットでの損失値 mse(各誤差の二乗の平均)
val_mae:検証デ-タセットでの損失値 mae(各誤差の絶対値の平均)
の値がどのように変化したか保存されます。

平均誤差

ここで、平均誤差について少し説明します。

  1. MSE

    平均二乗誤差
    MSE:Mean Squared Error
    とは各データに対して「予測値と正解値の差(=誤差)」の二乗値を計算し
    その総和をデータ数で割った値(=平均値)を出力します。
    yyi:i 番目の予測値
    yi :i 番目の正解値
    n :デ-タ数
    とし、数式で表すと下記のようになります。
    平均二乗誤差 MSE

  2. MAE

    平均絶対誤差
    MAE:Mean Absolute Error
    とは各データに対して「予測値と正解値の差(=誤差)」の絶対値を計算し
    その総和をデータ数で割った値(=平均値)を出力します。
    数式で表すと下記のようになります。
    平均絶対誤差 MAE

結果検証詳細

それでは結果検証内容を詳しく見ていきます。

  1. Epoch 1/40   3/3

    訓練を繰り返す回数-エポック数は
    epochs=40
    と設定しました。
    よって最初は 1/40 と表示されました。
    そして訓練デ-タセットとして Input される train_dataset は batch_size=32 ごとに配列のなかで分割されているので
    20×32 + 20×32 + 20×16
    の3分割されています。
    よって 3/3 の処理をしたと表示されます。

  2. 処理時間

    最初は 1 Epoch 当たりの処理時間は 1.323 s かかったことがわかります。
    そのあとは 50 ms くらいまで速くなりました。
    全体でも 2~3 秒といったところでしょうか。
    まずまずの処理時間といえると思います。

  3. 損失値

    loss, mae, val_loss, val_mae
    の値がエポック数が増えるにつれ順調に下がっています。
    しかし 26回目と比較し 27回目と 28回目で val_loss 値が悪化しました。


    Epoch 26/40
    loss: 0.0081 - mae: 0.0653 - val_loss: 0.0074 - val_mae: 0.0614
    Epoch 27/40
    loss: 0.0075 - mae: 0.0647 - val_loss: 0.0095 - val_mae: 0.0870
    Epoch 28/40
    loss: 0.0086 - mae: 0.0686 - val_loss: 0.0082 - val_mae: 0.0738
    

    EarlyStopping コ-ルバックで 監視する損失関数名 loss の値に val_loss を指定しました。
    monitor="val_loss"
    そして、悪化回数を
    patience=2
    としました。
    よって 28回目で EarlyStopping 成立、エポックは終了しています。

  4. 損失曲線確認

    訓練デ-タと検証デ-タの損失[平均絶対誤差(MAE)]曲線も確認しましょう。
    下図のようになります。

  • 損失曲線

  • あとは、ModelCheckpoint コ-ルバックを使って最も性能の良いモデルを保存したはずなので その内容を確認していきます。
    これがなかなか大変です。


  • ModelCheckpoint 確認 に進む
  • 全結合モデルファイルまとめ に戻る
  • コ-ルバックを使用 に戻る
  • 全結合モデル後半作成 に戻る
  • 大域最適解みつからず に戻る
  • Keras モデルの構築 に戻る
  • keras-test-51 動作確認 に戻る
  • 各デ-タセットの内容表示 に戻る
  • 3種の timeseries_dataset デ-タを作成 に戻る
  • CSV timeseries_dataset まとめ に戻る
  • CSV デ-タ timeseries_dataset 作成 に戻る
  • 標準化した dummy_dataset を作成 に戻る
  • dummy_dataset の内容表示 に戻る
  • RNN の理解-Ⅱ に戻る
  • 時系列のためのディ-プラ-ニング に戻る
  • ロ-ソク足表示ファイルまとめ に戻る
  • ロ-ソク足本体の表示 に戻る
  • Colab で mplfinance を使用 に戻る
  • CSV ファイルの読込 に戻る
  • Colab を始める に戻る
  • 70VPS に戻る