問題タブ [machine-learning]
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.
matlab - Matlab - ニューラル ネットワークのトレーニング
バックプロパゲーションを使用した 2 層ニューラル ネットワークの作成に取り組んでいます。NN は、各行に次の情報を保持する 20001x17 ベクトルからデータを取得することになっています。
-最初の 16 個のセルには、0 から 15 までの範囲の整数が格納されており、変数として機能し、これらの変数を見たときにアルファベットの 26 文字のどれを表現するかを決定するのに役立ちます。たとえば、次のような一連の 16 個の値は、文字 A を表すことを意味します: [2 8 4 5 2 7 5 3 1 6 0 8 2 7 2 7]。
-17 番目のセルには、必要なアルファベットの文字を表す 1 から 26 までの数字が入ります。1 は A、2 は B などを表します。
NN の出力層は 26 個の出力で構成されます。NN に上記のような入力が与えられるたびに、入力値が表す文字に対応する 1 つのセルを除くすべてにゼロを含む 1x26 ベクトルを出力することになっています。たとえば、出力 [1 0 0 ... 0] は文字 A になり、[0 0 0 ... 1] は文字 Z になります。
コードを提示する前に重要なこと: traingdm 関数を使用する必要があり、隠しレイヤーの番号は (今のところ) 21 に固定されています。
上記の概念を作成しようとして、次の matlab コードを作成しました。
ここで私の問題:出力を説明どおりにしたい、つまり、たとえば y2 ベクトルの各列は文字の表現にする必要があります。私のコードはそうしません。代わりに、0 と 1 の間、値が 0.1 から 0.9 の間で大きく変化する結果が生成されました。
私の質問は次のとおりです。私がしていない変換を行う必要がありますか? つまり、入力および/または出力データを、NN が正しく学習しているかどうかを実際に確認できる形式に変換する必要がありますか?
任意の入力をいただければ幸いです。
machine-learning - ゲームの優れた評価関数を作成するにはどうすればよいですか?
私は時々ボードゲームの変種をプレイするプログラムを書いています。基本的な戦略は、標準的なアルファベータ法または同様の検索であり、エンドゲームやオープニングへの通常のアプローチによって強化されることもあります。私は主に変則チェスをいじっていたので、評価関数を選ぶときは、基本的なチェス評価関数を使用します。
しかし、今はまったく新しいボードゲームをプレイするプログラムを書いています。良いまたはまともな評価関数を選択するにはどうすればよいですか?
主な課題は、常に同じピースがボード上にあるため、通常のマテリアル機能が位置によって変化せず、ゲームのプレイ回数が1,000回未満であるため、人間が必ずしも十分にプレイできるとは限らないことです。まだ洞察を与えるには。(PS。私はMoGoアプローチを検討しましたが、ランダムゲームが終了する可能性は低いです。)
ゲームの詳細:ゲームは、片面に6個固定された10x10のボードでプレイされます。ピースには特定の移動ルールがあり、特定の方法で相互作用しますが、ピースがキャプチャされることはありません。ゲームの目標は、ボード上の特定の特別な正方形に十分な数のピースを置くことです。コンピュータプログラムの目標は、現在の人間のプレーヤーと競争力のある、またはそれよりも優れたプレーヤーを提供することです。
terminology - 折りの意味
ウィキペディアを読んでいるときにこのテキストを見ました( http://en.wikipedia.org/wiki/K-means%2B%2B )
著者は、実際のデータセットと合成データセットを使用してこの方法をテストし、通常は速度が 2 倍向上し、特定のデータセットでは誤差が 1000 倍近く向上しました。
1000倍、2倍など、-foldの意味が気になります。これは一種のユニットですか?か何か?どなたか、この用語に関する参考文献を教えていただけますか?
matlab - Matlab:K-means クラスタリング
19 個のクラスターにクラスター化する A(369x10) の行列があります。私はこの方法を使用します
idx(369x1) と ctrs(19x10) が得られます
ここまでで要点がわかりました。A のすべての行は、19 個のクラスターにクラスター化されています。
これで、配列 B(49x10) ができました。この B の行が、指定された 19 個のクラスターのどこに対応するかを知りたいです。
MATLABでどのように可能ですか?
前もって感謝します
artificial-intelligence - ニューラルネットワークではなく、いつ遺伝的アルゴリズムを使用する必要がありますか?
問題を解決するためにニューラルネットワークとは対照的に遺伝的アルゴリズムをいつ使用するか(およびその逆)を決定するための経験則(または一連の例)はありますか?
両方の方法を混在させることができる場合があることは知っていますが、2つの方法の高レベルの比較を探しています。
algorithm - ブログを論理カテゴリ別にクラスター化してランク付けする
論理的なコミュニティ (テクノロジー、エンターテイメントなど) でブログをクラスター化してランク付けするには、どのようなアルゴリズムが適しているでしょうか?
ブログ投稿をクラスター化してランク付けするアルゴリズムは、さらに優れています。
受け入れられる回答は、アルゴリズム、疑似コード、Java コード、または特定のアルゴリズムに関する説明へのリンクです。
更新:そのため、主にテキスト機能に基づいた部分クラスタリング のカテゴリに何かが欲しいようです。
language-agnostic - サポートベクターマシン-超平面問題の分離
私が見たところ、分離超平面は次の形式でなければならないようです
xw + b=0。
この表記はよくわかりません。私が理解していることから、x.w
は内積であるため、結果はスカラーになります。スカラー+bで超平面を表現できるのはどうしてですか?私はこれとかなり混乱しています。
また、x + b = 0だったとしても、原点を真っ直ぐ通過する超平面ではないでしょうか。私が理解していることから、分離超平面は常に原点を通過するとは限りません!
computer-science - VC次元に関する質問
入力スペースが(1,2、.... 999)の場合。そして、私は10の概念を持つ概念クラスCを持っています:C0、C1、C2...C9。
入力が与えられた場合、その入力に数字iが含まれている場合、その入力はciの要素です。たとえば、123という数字はc1とc2とc3の要素です。
この概念クラスCのVC次元は何ですか?
java - Javaで決定木を作成するための最良の学習アルゴリズム?
年齢、都市、子供の年齢などの情報と結果(確認、承認)を含むデータセットがあります。
「ワークフロー」のモデル化を支援するために、以前のデータセットに基づいて決定木を自動的に作成したいと思います。
私はhttp://en.wikipedia.org/wiki/Decision_tree_learningを調べましたが、問題が明らかに明らかではないことを知っています。
サンプルに基づいた決定木の構築に役立つ、このテーマに関するいくつかのアルゴリズムまたはいくつかのライブラリについてアドバイスが必要です。
machine-learning - ニューラル ネットワークを使用して正弦関数を近似できない
自分で作成したニューラル ネットワークを使用して、sine() 関数を近似しようとしています。単純な OCR 問題でニューラル ネットワークをテストしましたが、うまくいきましたが、それを適用して sine() を近似するのに問題があります。私の問題は、トレーニング中にエラーが正確に 50% に収束することです。したがって、完全にランダムであると推測しています。
入力 (0 から PI) に 1 つの入力ニューロンを使用し、結果に 1 つの出力ニューロンを使用しています。私はニューロンの数を変えることができる単一の隠れ層を持っていますが、現在は約6〜10を試しています.
問題は、sine() の出力が -1 と 1 の間であるのに対し、0 と 1 の間のみを出力するシグモイド伝達関数 (私のアプリケーションの要件) を使用しているためだと感じています。この出力に 2 を掛けてから 1 を引いてみましたが、問題は解決しませんでした。これを機能させるには、どこかで何らかの変換を行う必要があると考えています。
何か案は?