問題タブ [pybrain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pybrain の重みを使用して予測する方法
pybrain が重みに応じてどのように予測を行うのか知りたいです。たとえば、私は指定しました
この訓練されたネットワークの重みを知っているとしたら、自分で予測を行うにはどうすればよいでしょうか? Java を使用して別のプログラムで結果を計算する必要があります。または、このネットワークのアクティブ化機能は何ですか?
python - PyBrainで多次元時系列予測を行うには?
これは PyBrain Google グループからの再投稿です: https://groups.google.com/forum/#!topic/pybrain/J9qv0nHuxVY。
私は OpenNN と FANN をいじくり回してきましたが、必要なことを行う ANN ライブラリをまだ見つけていません。
これを短期目標と中期目標に分けて説明しますが、最初に少し背景を...
バックグラウンド
ANN を使用して、時間の経過とともに変化する 1000 ~ 2000 項目のベクトルの時系列予測を行いたいと考えています。各要素は、特定の時点でのコンピューター ビジョン システム内のビジュアル プロパティのクラスターの存在を表すブール値です。
アイデアは、ネットワークに時間 t-1 のベクトルを、時間 t のベクトルをターゲット値として供給することです。
ネットワークの出力は、ベクトルの前の状態 (t-1) に基づいて、現在の時間 (t) に何が起こると予想されるかの予測になります。
短期
これらのベクトルを時間の経過とともに予測することを学習できるように、ANN をトレーニングしたいと思います。つまり、任意のベクトルをフィードしたいのですが、次に期待するように訓練されたベクトルを返します。今のところ、有限のデータセットを使用しても問題ありません。通常のエポック学習から始めることを期待しています。入力とターゲットが 1 単位時間オフセットされている通常の教師ありデータ セットから始めます。https://groups.google.com/forumで説明されているように、これまでのところ、MSE リターンに関して FANN で得ることができたほど良い結果を示していません (最初のエポック後にエラーの大幅な減少はありません) 。 /#!topic/pybrain/QSfVHsFRXz0 .
FANN では、1026 個の入力、103 個の非表示、および 1026 個の出力を持つ単純な MLP を使用していました。ブール入力は -1 から 1 にスケーリングされ、重みは -1 から 1 の間のランダムな値に初期化されました (これは、0 から 1 よりも負の値の方が明らかに学習が速いためです)。ネットワークは入力パターンを非常によく再現しており、最終的に小さな MSE になりました。
PyBrain では、これはコードの現在のバージョンです。
これを学習用に最適に設定する方法に関する推奨事項はありますか? (再帰が必要になると思いますが、PyBrain を単純な MLP を使用した以前の FANN の結果と比較したかったのです。)
私は実際に recurrent=True でこのネットワークを構築しようとしましたが、すべてのテストで python は使用可能なすべての RAM を使用してクラッシュしました (このマシンには 8GB の RAM があります)。メモリフットプリントを大幅に増加させずに再実行を有効にする方法がわかりません。
中期
最終的には、システムはオンラインで実行され、入力がオンザフライで供給され、常に変化する必要があります。これは、エポック トレーニングが不可能であることを意味するため、学習アルゴリズムの反復を 1 回実行できる必要があります。ANN が学習するのは難しいと思いますが、幸いなことに、データ ポイント (少なくとも 100,000 秒) が不足することはありません。データの固定セットがないため、収束の必要はありません。新しいパターンや安定したパターンが提示されると、誤差が増減することが予想されます。
コメントや提案をありがとう。
python - フィード フォワード ニューラル ネットワークを間接的にトレーニングする
私はこの問題に直面しています:
未知の関数を近似する必要がある FFNN を構築する必要がありますf:R^2 -> R^2
。私がネットを調べるために持っているデータは一次元のRベクトルです。g:R^2->R
ネットの出力をデータの空間にマッピングする関数を知っています。したがって、データのバイアスに対するフィルターとしてニューラル ネットワークを使用します。しかし、私は2つの問題に直面しています:
まず、この方法でネットワークをトレーニングするにはどうすればよいですか?
2 つ目は、マップする隠しレイヤーを追加してR^2->R
、ネットが自分自身をトレーニングして正しいマップを見つけ、余分なレイヤーを削除できるようにすることを考えています。このアルゴリズムは正しいでしょうか?つまり、出力は私が探していたものと同じでしょうか?
python - シリアル化、pyBrain での分類、機械学習、予測
私はトレーニング データの例を持っています (トレーニング用に 1000 本の映画があります)。各映画の「予算」を予測する必要があります。
'title'
、'producer'
、などのキー'country'
は機械学習の特徴と見なすことができ'The Hobbit: An Unexpected Journey'
、25000
、 などの値は学習プロセスに使用される値と見なすことができます。ただし、トレーニングでは、入力はほとんど文字列形式ではなく実数として受け入れられます。'title'
, 'producer'
, 'country'
(文字列であるフィールド)などのフィールドをint
(分類やシリアル化などを行う必要がありますか?) に変換したり、これらのデータをネットワークのトレーニング セットとして使用できるようにするために他の操作を行う必要がありますか?
python-2.7 - PyBrain出力モジュールドメインを制限するには?
PyBrain で予測を行うプロジェクトに取り組んでいますが、出力レイヤーがドメイン [0..1] の値のみを生成するように、NN の出力のドメインを簡単な方法で制限する方法を知りたいです。
現在、ネットの一部のアクティベーションで負の値を取得しています。
これが可能であることを示すと思われるメソッドまたはメソッドパラメーターに出くわすことなく、PyBrain のドキュメントを検索しました。以下の関連コードサンプル:
python - PyBrain で非常に大きな ClassificationDataSets を使用すると MemoryError
https://gist.github.com/Skyyrunner/8317943
上記の要点リンクには、関連するコードとコンソール出力があります。ClassificationDataSet にフィードしようとしているデータセットは、860 in、1 out の次元を持ち、約 470k の int 要素で、ほとんどが 0 です。問題は、どのように複数のリストに分割しようとしても、gist にメモリ エラーが追加されてクラッシュすることです。この問題を解決する良い方法はありますか?
python - ニューラル ネットワークが奇妙な結果を示すのはなぜですか?
PyBrain を使用して単純なニューラル ネットワークを作成しました。
しかし、プログラムを実行するたびに異なる結果が表示されます。私のネットワークは、英語の「Z」文字とキリル文字の「З」文字を見つけることを学習する必要があります。なにが問題ですか?