トレーディングにおけるニューラルネットワークの活用 - ページ 39

 

パイオニア」がいないのが残念です。どんどん掘っていきます...。

 
フーリエ変換のアナログであるハートリー変換を試してみました。課題は、「過去」に時間をシフトした長方形の窓関数を使うことだった。得られたベクトルを成分に分解し、NSの入力に使用すること。予測として - スペクトル成分の変化、逆変換が続く。その結果、予測されたスペクトルの逆変換が指標に使用される。HEREは、より詳細に説明されています。
 

こんなに面白い 記事を読ませていただきました。

私は、脳を神経回路網として構成する原理に興味があります。まず、あらゆる種類の結合を、その質をあまり気にせずに大量に採用し、次に「結果を得るために不要なものはすべて取り除く」という原理で選択を開始します。

このようなアプローチは、オーバートレーニングといわば「構造的破綻」の両方に対処するために有効である可能性が高いのです。

ちなみに、NS理論で同様の原理を研究した人はいないのだろうか?

 
alsu:

こんなに面白い 記事を読ませていただきました。

私は、脳を神経回路網として構成する原理、つまり、まずあらゆる種類の結合を、その質をあまり気にせずに大量に採用し、次に「結果を得るために必要のないものはすべて取り除く」という原理に従って選択を始めることに興味があります。

このようなアプローチは、オーバートレーニングといわば「構造的破綻」の両方に対処するために有効である可能性が高いのです。

ちなみに、NS理論で同様の原理を研究した人はいないのだろうか?

係数に小さな絶対値が検出された場合、「ネットの間引き」で何かを見たことがある。

でも、そんなことは何十回も見たことがないし、基本として「大きな大きな黒字→削減」。 作ってみたいですか?

興味がある。 計算機資源だけが不足することになる。 // 同じタイプのスキームだけを計算するのが有利で、ここでは毎回ネットワークトポロジーが異なる。

 

MetaDriver:

フックアップする?

しています。でも今は、「どの還元アルゴリズムを使うか、じっくり考えたい」と思っています。最初のアイデアは、絶対値で 本当に薄くし、閾値をすでに提示された例の数に依存させることです:トレーニングサンプルが大きければ大きいほど、リンクが生き残るのは難しくなるはずです。

 
MetaDriver:
GPUの適応方法がわからない。同じ種類のスキームだけを計算するのが有利だが、ここでは毎回ネットワークトポロジーが異なる。 。
シングルタイプで、ハードウェアで実装されたもの。一般に並列計算の 効率は非常に誇張されており、実際(実際の計算や博士論文もある)、一般に逐次計算よりさらに遅く、その理由はデータ転送にかかる時間消費にある。
 
alsu:
これらは同じタイプで、ハードウェア的に実装されている。一般に並列計算の効率は非常に誇張されており、実際(実際に計算した結果や博士論文もある)一般的には逐次計算よりさらに遅く、その理由はデータ転送にかかる時間である。 。

すぐには賛成できない。仕様の理解が深まれば、何百倍ものスピードを引き出す工夫ができます。 幾つか タスクのですから、集中的な計算をするためには、問題をそれらの「ある」 クラスに還元することを試みるのが常に理にかなっているのです。うまくいけば、得られるものは大きいかもしれません。そうでない場合は、いいえ - 通常のプロセッサで逐次計算します。

--

例えば、同一型(同一トポロジー)のニューラルネットワークを多数の学習例で遺伝的最適化を行うことは非常に有効である(実行速度が数十倍から数百倍になる)。ただ、トポロジーごとに新しいOpenCL プログラムが必要なのが難点です。これは、基本的なocl-templateを構築し、与えられたトポロジーに対して新しいocl-programを自動的(プログラム的)に生成することで解決することができる。

ところで、ここです。上記の内容を書いているときに、問題をGPU計算に有利なクラスに落とし込む方法を思いつきました。ステップバイステップで行うには、各ステップ内で1つのOCLプログラムにすべてを読み込む必要がありますが、係数をゼロに減らす(要するに模倣する)必要があります。そして、新しいステップでは、前のステップの削減分がすでに「フラッシュ」されたプログラムを新たに生成する。といった具合に。しかし、これは遺伝的な「学習」を利用した場合の話です。

 
MetaDriver:
すぐには賛成できない。このような仕様の理解により、より100倍以上の速度が得られる可能性があります。 幾つか タスクのしたがって、複雑な計算では、常にそれらの「いくつか」の クラスに問題を減らすことを試みることに意味がある。うまくいけば、得られるものは大きいかもしれません。そうでない場合は、いいえ - 通常のプロセッサで順次カウントします。

私の記憶では、メインループにおける並列タスクと 非並列タスク(データ準備、データ送信)の実行時間の比率がクリティカル値で、並列度が高いほどこの比率に対する要求が厳しくなります。ですから、アルゴリズムを「並列ファイル」にするだけでなく、並列でない部分も最小にすることを目指すべきです。

例えば、今流行のクラウドコンピューティングでは(ちなみにFiveで実装されています)、転送時間の関係でゲインの制限が非常に深刻です。ただし、これらの制限は、クラウドネットワークに数十パーセント以上の負荷がかかっている場合にのみ発生します。

まあでも、今はそんなことより、このタスクには並列性があまりないんですよ。

 
MetaDriver:// 唯一の問題は、各トポロジーに新しい OpenCL プログラムが必要なことです。 これは、基本的なocl-templateを構築し、与えられたトポロジーに対して新しいocl-programを自動的(プログラム的)に生成することで解決することができる。


テンプレートは互いに順次依存するので、あらかじめすべて生成しておかなければならないが、そうすると、何兆個ものテンプレートが存在することになり、ほとんどの時間は、その時点で正しいものを見つけることに費やされることになる)。
 
alsu:

テンプレートは互いに順次依存するので、あらかじめすべて生成しておかなければならないが、そうすると、何兆個ものテンプレートが存在することになり、ほとんどの時間は、その時点で必要なものを見つけるのに費やされることになる)。
そんなことはありません。単一型ニューラルネットワークのためにやったんです。 コードジェネレーターを送ることもできますよ。 問題は、いかにして自分のタスクを採算の取れるクラスまで落とし込むか、である。 前の投稿を読み直してください - そこに追加しました。

あ、じゃあ、重複しちゃいますね。

ところで、ここです。 上記を書きながら、私は、あなたの問題をGPUの有利な計算のクラスに減らす方法を思いつきました。 ステップバイステップで行うには、各ステップ内で1つのOCLプログラムにすべてを読み込む必要がありますが、係数をゼロに減らす(要するに模倣する)必要があります。 そして、新しいステップでは、前のステップの削減分がすでに「フラッシュ」されたプログラムを新たに生成する。 といった具合に。 しかし、これは遺伝的な「学習」を利用した場合の話です。