市場のエチケット、あるいは地雷原でのマナー - ページ 28

 
YDzh писал(а)>>

ニューラルネット、13入力、隠れ層なし。遺伝的アルゴリズム学習

すごいぞ、YDzh!

私の結果は、もっと控えめなものです。デモに載せて、グリッドがどこで切れるか見てほしい。

paralocus さんが書き込みました

Neutron、25のレディネス・カウントは正解だったようだ...。-:)

何か私のネットは学習していないようです。100エポック後の重みは、実質的にネットワークが初期化されたときと同じである。

それに関連して、またまた愚問です。

学習ベクトルは各エポックにおいて同じかどうか?

とにかく、累積補正量と累積二乗補正量の比がすぐにゼロになる傾向があることがわかったのです。そのため、すでに10回目の反復で学習が実質的に停止してしまうのです。

おそらく、コードに間違いがあるのでしょう。検索する必要がありますね。このため、私はまずMatcadetでグリッドのレースを行いました。これは、学習のすべてのダイナミクスを任意のレベルで詳細に追跡するのに便利で、統計を取るのもずっと簡単です。学習結果を比較するために、100の実験(教えやすさと予測について)から独立した統計を取り、状態の平均値だけを比較するのです。

学習ベクトルについては、確かにエポックごとに違いますね。しかし、同じものでありながら、毎回1ステップずつ左にシフトし、ゼロの要素が新しいデータの代わりとなるなど、特殊な方法で異なっているのです。

追伸:今、BPのブレークダウンを均一ステップで調べているのですが、エポックからエポックへ、獲得した知識を保持するよりも、すべての重みを再ランダム化してメッシュを完全に再トレーニングする方が良いことがわかりました。おそらくこれは、使用する入力データの特殊性なのでしょう。パララックスで 強調したいのは、戦闘では何事もセルフチェックが大切だということです。ウェイトがゆっくり大きくなっているか?- 計算された和の前に定数係数=10を付けて、間違えないようにすればいいのです

 
Neutron >> :

コードに誤りがあるのでしょう。探さなくてはならない。このグリッドには、まずMatcadetを使っています。学習のあらゆるダイナミクスを詳細にトレースするのに便利ですし、統計を取るのもずっと簡単です。学習結果を比較するために、100の実験(教えやすさと予測について)から独立した統計を取り、状態の平均値だけを比較するのです。

学習ベクトルについては、確かにエポックごとに違いますね。しかし、それは特殊な方法で異なります。同じベクトルですが、1ステップ左にシフトし、ゼロの要素は新しいデータムに置き換えられるなどです。

昨日からコードを掘っています。すべてをきれいにし、再確認し、一部を書き換えて簡素化したようです。これで、すべての書き込みと読み出しが正確に行えるようになりました。

しかし、各エポックの後に補正ベクトルをゼロにする必要があるのでしょうか?ということだと思います。ベクトルを一歩前にずらすというのはよくわかりますね、やってます。

 

そりゃ、そうでしょうよ!

新しい学習(エポック)の開始によって、すべてのカウンターはゼロにリセットされます。

 

Mathcadは習得が難しいのですか?

怖いと思っても、ついつい手を出してしまいそうで...。

 
Neutron >> :

パララックスで 強調したいのは、バトルですべてを自分でチェックすることがいかに重要かということです。ウェイトの成長は遅いか?- だから、得られる和の前に定数係数=10を付けて、それらが壊れないようにすればいいのです

この実装でのウェイトの伸びはまだ観測されていないが、セルフチェックの必要性は自明である。10をどこに置くかについては、まだ理解していない。

ちなみに、各エポックの最初に重みを鳴らすと、1エポックしか使っていないことになる。N個のエポックでは誤差ベクトルの増分が無視できるほど小さくなるため、真実に非常に近くなり、パソコンのような余分なリソースがない。

 
Neutron писал(а)>>

かっこいい、YDzh!

私の結果は、もっと控えめなものです。デモに載せて、どこでグリッドが切れるか確認する必要があります。

ひとつだけ些細な問題があって、常時電源が入っているPCがないんです...。もっと短い時間軸を使うようにしないと、エラー解析に半年くらいかかってしまいそうです :)

 
paralocus писал(а)>>

Mathcadは習得が難しいのですか?

...

は最も簡単なプログラミング言語であり、言語とさえ思っていない人もいます。本に書いてある数式を見て、Matcadで書いてみるというのがほとんどです。

ただひとつ忘れてはならないのは、matcadは行列言語であるということです。matcadの素数も行列になる。ただ一つ覚えておきたいのは、素数であっても行列であるということです。

 
Prival >> :

は最も簡単なプログラミング言語であり、これを言語と見なさない人もいます。本に書いてある数式を見て、Matcadで書いてみるというのがほとんどです。

ただひとつ忘れてはならないのは、matcadは行列言語であるということです。matcadの素数も行列になる。私は、プログラミング言語の進化の頂点にあるのがこの(matcad)だと思っています。

ありがとうプライヴァル

>>:お久しぶりです。-:)

 
paralocus писал(а)>>

学びのベクトルはどの時代も同じなのか、そうでないのか。

前の記事でお答えしたのは間違いでした。私が言いたかったのは、新しいエポックの予測であって、新しいエポックではありません。新しいバウンスに対する学習では、学習ベクトルは1つだけ、学習エポックは100回で、各エポックでNS重みの補正が行われます。

新しいカウントダウンを受信 - 学習ベクトルが変更され、再びそのベクトルに対して100回の学習エポックを実行、といった具合に。

すみません。もう、自分でもわけがわからなくなりそうです。

paralocus さんが書き込みました

matcadを使いこなすのは難しいですか?

怖くても、でも、何とかしないと......と思っています。

いいえ、簡単です。2001i Proを手に入れよう。

 
paralocus писал(а)>>

ありがとう プライヴァル

お久しぶりです。-:)

はい、このスレッドはいつもしっかり読ませていただいています。でも、用語が多くてよくわからないんです。シナプス、エポック...etc.

理解するのに時間がかかるので、先生と一緒にやった方がいい(早くなる)。しかし、今のところできていない。今、その検証のためのデータを作っているのですが、彼女のアイデアは、国会を通してチェックすることになると思います。そして、その中で何をどのようにプログラムするのかを理解する時が来るのです。今のところ、どのようなデータを与えればいいのか、何を基準に学習させればいいのかが分かっているだけです(分かっているつもりです)。

私はMatkad 14を使っていますが、2001iよりも便利な機能がいくつかあります。