追加学習

804 views
Skip to first unread message

Akihiro Osaka

unread,
Nov 3, 2017, 11:17:07 PM11/3/17
to Neural Network Console Users (JP)
こんにちは

例えば、データセットA1~A1000で一度学習させ、そこで得られたパラメータをP1.h5とます。
同じネットワークで、違うデータA1001~A2000を学習させる場合、初期パラメータをP1.h5と
することは可能でしょうか。
通常の学習だと、初期パラーメータは適当(ランダム?)な値から開始して学習していくと思いますが、
初期パラーメータ値を指定して、そこからスタートさせたいです。

回答としては、つぎのようなものを想定していますが、どれが正しいのか
教えていただきたいです。

1 データを合体して1から学習し直し
  学習を複数回に分けて学習させるのは、機械学習の世界では邪道だ。
  データ母数をA1~A2000にして1から学習させるのが正しい考え方だ。

2 その機能は実装していない
  そのようなことはPythonで直接コーディングしれば可能だが、
  NNConsoleには実装していない。
  実装する計画は ある/なし




質問の背景
一度モデルを作成したのですが、学習用データは現在も収集しており、
日々溜まっていきます。それで、前回学習した時点から新たに収集し
たデータを追加学習させたいと考えています。そうすれば、学習時間も
短くて済むのかと思います。

よろしくお願いいたします。

以上

小林由幸

unread,
Nov 6, 2017, 9:15:32 PM11/6/17
to Neural Network Console Users (JP)
Neural Network Consoleを用いることで、追加学習が可能です。

具体的手順は以下の通りです。

* TRAININGタブでデータセットA1~A1000を用いた学習済みニューラルネットワークのOverviewを右クリックして表示されるポップアップメニューから「Open in EDIT tab with Weight」を選択します
 EDITタブに、学習済みの係数が係数の初期値として読み込まれます(ConvolutionのW.Fileプロパティなどに、学習済み係数を表すファイルが指定されます)
* DATASETタブで、TrainingデータセットにA1001~A2000を含むデータセットを指定します。
* 学習を実行します。


ただし、Deep Learningにおいては基本的に全てのデータを利用して1から学習し直した方が高い精度が期待できます。
少しでも学習時間を短縮するために1から学習したくないという場合は、上記2つ目の手順において、A1~A2000(全てのデータ)を指定することで、A1~A1000による最適化結果を再利用しながら全てのデータを使った学習を行うことができます。

Akihiro Osaka

unread,
Nov 7, 2017, 12:06:04 AM11/7/17
to Neural Network Console Users (JP)
小林さん

返信ありがとうございます。
NNConsoleで追加学習ができることを理解いたしました。
また、1からやり直したほうが精度が高いことも理解いたしました。
なんとなくそうではないかと思っていあしたが、やはりそうなんですね。

勉強になりました。
ありがとうごあいます。


以上


2017年11月7日火曜日 11時15分32秒 UTC+9 小林由幸:
Reply all
Reply to author
Forward
0 new messages