記事「ニューラルネットワークが簡単に(第25部):転移学習の実践」についてのディスカッション

 

新しい記事「ニューラルネットワークが簡単に(第25部):転移学習の実践」はパブリッシュされました:

前々回、前回と、ニューラルネットワークのモデルを作成・編集するためのツールを開発しました。いよいよ転移学習技術の利用可能性を実例で評価することになります。

テスト結果は下のチャートのとおりです。ご覧の通り、事前に訓練させたモデルの方が、誤差が少ない状態で始まっていますが、すぐに2番目のモデルが追いつき、さらに両者の値はかなり接近しています。これは、エンコーダのアーキテクチャがモデル全体の性能に大きな影響を与えるという、先の結論を裏付けるものです。

回帰モデルの学習ダイナミクスの比較

学習率に注目します。事前訓練されたモデルは、1つのエポックを通過するのに必要な時間が6倍少なくなっています。もちろん、これはオートエンコーダの訓練を考慮しない純粋な時間です。

作者: Dmitriy Gizlyk

 

dimitryさん、こんにちは、

この記事シリーズには本当に感謝している!ありがとうございます!しかし、この問題について助けてください:

EURUSD_PERIOD_H1_rnn_vae.nn "をロードすると、"Error of load model "と "The file is damaged "というメッセージが表示されます:


トレースしてみると、NeuroNet.mqhのこの行でロードに失敗しています:


EURUSD_i_PERIOD_H1_test_rnn.nnw "という名前のパート23のモデルをロードするとうまくいくようですが、このモデルには2つのレイヤーしかありません。これは正しいものではありません。何か見落としたのでしょうか?

 
UlrichG #:

この記事で紹介されている「EURUSD_PERIOD_H1_rnn_vae.nn」を読み込むと、「Error of load model」と「The file is damaged」というメッセージが表示されます:

パート23のモデルをロードすると、"EURUSD_i_PERIOD_H1_test_rnn.nnw "という名前で動作するようですが、レイヤーが2つしかありません。これは正しいものではありません。何か見落としたのでしょうか?


"EURUSD_PERIOD_H1_rnn_vae.nnw "をロードするには、新しいNeuroNet.mqhライブラリでNetCreatorを再コンパイルする必要があります。最後のモデルではCBufferDoubleをCBufferFloatに置き換えています。そして、レイヤーのいくつかのタイプを追加します。

最終バージョンのファイルをロードすることができます
 

最新バージョンのhear ファイルをダウンロードできます。

最新版の NeuroNet.mqh では、2501 ページに重大な警告があります:

2501ページ if(inputs.AssingnArray(input Vals) || ...... )

非推奨の動作で、非表示メソッド呼び出しは将来のMQLコンパイラー・バージョンで無効になります。


NetCreatorPanel.mqhの最新バージョンでは、21の重大な警告があります。940ページから始まる

935ページ 文字列temp;

ページ 936 ArrayFree(result);

ページ 937 switch(layr.type);

ページ 938 {

ページ 939 ケース defNeuronBaseOCL :

p 940 temp = StringFormat ("Dense (outputs %d, \ activation %s, ˶ optimisation %s)", ...... )

警告- 'a' は認識できない文字エスケープシーケンスです。

o' 認識できない文字エスケープシーケンス


これらの警告の結果、ファイル"_rnn.nnw "はロードされません!


古いバージョン(第24版)では、エラーを伴うシャーマニズムの後、同じファイル"_rnn.nnw "がNetCreatorPanel.mqhにロードされ、新しいネットワークを作成することができました。

しかし、それをテストすることはできませんでした。check_netファイルに2つの重大な警告があります!

関数 トレイン222ページと307ページ


219ページ for(int res = 0; (res <3 && sum >0); res++)

p 220 TempData.Update(res, TempData, At(res) /sum);

ページ 222 switch(TempData.Maximum(0,3))

警告 - 非推奨の動作であり、hiddenメソッド呼び出しは将来のMQLコンパイラー・バージョンで無効になります。

そして、ログはコード32767(不正なパラメータ)で失敗したことを示しています。

私はMetaTraderビルド5120を持っています。

アドバイス!警告で問題を解決することは可能ですか?私の意見では、私のような間抜けにとって、これは

重要な教訓であり、それを習得しなければ、唯一のことは停止することです。