問題タブ [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.

0 投票する
3 に答える
8550 参照

algorithm - 前方後方アルゴリズムとビタビ アルゴリズムの違いは何ですか?

n-gram モデルのフォワード-バックワード アルゴリズムと隠れマルコフ モデル (HMM) のビタビ アルゴリズムの違いは何ですか?

これら 2 つのアルゴリズムの実装を確認したところ、トランザクションの確率が異なる確率モデルから来ていることがわかりました。

これら2つのアルゴリズムに違いはありますか?

0 投票する
1 に答える
2247 参照

matlab - MATLAB - knnclassify の使用

するとき:

その後:

以来:

と:

行数が 2016 (3 次元) になるように、knnclassify (TRAINING) の 2 番目のパラメーターに training.inp 3-D マトリックスを指定するにはどうすればよいですか?

0 投票する
2 に答える
1109 参照

artificial-intelligence - タグ付きコーパス データを使用しない隠れマルコフ モデルのトレーニング

言語学コースでは、隠れ変数が品詞である隠れマルコフ モデルを使用して、品詞 (POS) タグ付けを実装しました。タグ付けされたデータでシステムをトレーニングし、テストして、結果をゴールド データと比較しました。

タグ付けされたトレーニング セットなしで HMM をトレーニングすることは可能でしたか?

0 投票する
8 に答える
92544 参照

machine-learning - サポート ベクター マシン (SVM) を使用して多クラス分類を行う方法

すべての本と例では、常にバイナリ分類 (2 つのクラス) のみを示しており、新しいベクトルはいずれか 1 つのクラスに属することができます。

ここでの問題は、4 つのクラス (c1、c2、c3、c4) があることです。私は4つのクラスのトレーニングデータを持っています。

新しいベクトルの場合、出力は次のようになります

C1 80% (勝者)

c2 10%

c3 6%

c4 4%

これを行う方法?libsvm を使用する予定です (最も人気があるため)。私はそれについてあまり知りません。以前に使用した人がいる場合は、使用することになっている特定のコマンドを教えてください。

0 投票する
1 に答える
50117 参照

matlab - Matlab の決定木

Matlab でヘルプを見ましたが、「classregtree」関数でパラメーターを使用する方法を説明せずに例を提供しています。パラメータを使用した「classregtree」の使用を説明する助けがあれば幸いです。

0 投票する
3 に答える
4368 参照

image-processing - Photosynth のようなシーンの再構築

MS Photosynthに似たオープン ソース コードはありますか?

Photosynth は、2 つの独立したブレークスルーを強力に組み合わせたものです。1 つは、大量の平面写真からシーンまたはオブジェクトを再構築する機能であり、もう 1 つはインターネットを介して事実上すべての人にその体験を提供する技術です。

コンピューター ビジョンの分野の技術を使用して、Photosynth は画像の類似性を調べ、その情報を使用して被写体の形状と写真が撮影された視点を推定します。この情報を使用してスペースを再作成し、それをキャンバスとして使用して写真を表示およびナビゲートします。

ただし、その体験を提供するには、大量のデータを表示する必要があります。これは、Web 上で誰かのフォト アルバムを閲覧することで通常一度に取得できるデータよりもはるかに多くなります。そこで、必要なときに必要なピクセルだけを提供する Seadragon™ テクノロジーの出番です。たくさんのサムネイルをいじったり、すべてが読み込まれるのを待つことなく、5、10、または 100 (!) メガピクセルの写真を何十枚も簡単に閲覧できます。このリリースについて

Photosynth は、Microsoft Live Labs の 20 人の従業員からなる情熱的な小さなスタートアップから生まれました。私たちは科学者、エンジニア、デザイナーであり、Photosynth の約束を果たすために狂ったように働いています。

0 投票する
6 に答える
12740 参照

machine-learning - 次元削減とはどういう意味ですか?

次元削減とは正確にはどういう意味ですか?

その意味を調べたところ、生データをより有用な形式に変換することを意味していることがわかりました。では、有用な形式のデータを持つことの利点は何ですか?つまり、実際の生活(アプリケーション)でデータをどのように使用できるのでしょうか?

0 投票する
2 に答える
5845 参照

java - Javaでトレーニングセットを選択するための相互情報量の計算

シナリオ


JavaGUIアプリケーション内のデータセットに対して教師あり学習を実装しようとしています。ユーザーには、検査するアイテムまたは「レポート」のリストが提供され、使用可能なラベルのセットに基づいてそれらにラベルが付けられます。教師あり学習が完了すると、ラベル付けされたインスタンスが学習アルゴリズムに渡されます。これにより、ユーザーがそれらを表示する可能性がどの程度あるかについて、残りのアイテムを並べ替えようとします。

ユーザーの時間を最大限に活用するために、レポートのコレクション全体に関するほとんどの情報を提供するレポートを事前に選択し、ユーザーにラベルを付けてもらいたいと思います。私が理解しているように、これを計算するには、各レポートのすべての相互情報量の値の合計を見つけて、その値で並べ替える必要があります。次に、教師あり学習からのラベル付きレポートを使用してベイジアンネットワークを形成し、残りの各レポートのバイナリ値の確率を見つけます。


ここで、人為的な例が説明に役立つ可能性があり、間違いなく間違った用語を使用した場合の混乱を解消する可能性があります:-)アプリケーションがユーザーにニュース記事を表示する例を考えてみましょう。表示されるユーザーの好みに基づいて、最初に表示するニュース記事を選択します。相関関係のあるニュース記事の特徴は、、country of originまたはcategoryですdate。したがって、ユーザーがスコットランドからのニュース記事を興味深いものとしてラベル付けすると、スコットランドの他のニュース記事がユーザーにとって興味深いものになる可能性が高くなることを機械学習者に伝えます。スポーツなどのカテゴリ、または2004年12月12日などの日付についても同様です。

この設定は、すべてのニュース記事の任意の順序(たとえば、カテゴリ別、日付別)を選択するか、ランダムに並べ替えてから、ユーザーが進むにつれて優先度を計算することで計算できます。私がやりたいのは、ユーザーに少数の特定のニュース記事を見て、それらに興味があるかどうかを言わせることによって、その注文の一種の「有利なスタート」を取得することです(教師あり学習の部分)。ユーザーに表示するストーリーを選択するには、ストーリーのコレクション全体を考慮する必要があります。ここで相互情報量が出てきます。各ストーリーについて、ユーザーが分類したときに、他のすべてのストーリーについてどれだけ教えてくれるか知りたいです。たとえば、スコットランドを起源とするストーリーが多数ある場合は、ユーザーにそのうちの1つを(少なくとも)分類してもらいたいと思います。カテゴリや日付などの他の相関機能についても同様です。目標は、分類されたときに他のレポートに関するほとんどの情報を提供するレポートの例を見つけることです。

問題


私の数学は少し錆びていて、機械学習に慣れていないので、相互情報量の定義をJavaの実装に変換するのに問題があります。ウィキペディアでは、相互情報量の方程式を次のように説明しています。

相互情報量方程式

しかし、何も分類されておらず、学習アルゴリズムがまだ何も計算していないときに、これが実際に使用できるかどうかはわかりません。

私の例のように、このクラスの新しいラベルのないインスタンスが多数あったとします。

私の特定のシナリオでは、フィールド/機能間の相関は完全一致に基づいているため、たとえば、1日と10年の日付の違いはそれらの不平等において同等です。

相関の要因(たとえば、日付はカテゴリよりも相関が高いですか?)は必ずしも等しいとは限りませんが、事前定義して一定にすることができます。これは、関数の結果が事前定義された値であることを意味しますかp(x,y) それとも用語を混同していますか?

質問 (ついに)


この(偽の)ニュース記事の例を前提として、相互情報量の計算を実装するにはどうすればよいですか?ライブラリ、javadoc、コード例などはすべて歓迎すべき情報です。また、このアプローチに根本的な欠陥がある場合は、その理由を説明することも同様に価値のある答えになります。


PS。私はWekaやApacheMahoutなどのライブラリを知っているので、それらについて言及するだけではあまり役に立ちません。私はまだ相互情報量に関するものを具体的に探しているこれら両方のライブラリのドキュメントと例を探しています。私が本当に役立つのは、これらのライブラリが相互情報量に役立つリソース(コード例、javadoc)を指すことです。

0 投票する
2 に答える
1205 参照

matlab - データ分類:トレーニング ベクトルとテスト ベクトルのサイズ

人間が手を振っているのか、走っているのか、歩いているのかを判断するアプリケーションがあります。アイデアは、アクション、たとえばハンドウェーブをそのポーズにセグメント化したということです。まあ言ってみれば

例;

そして、MatlabでSVMとNeural Netをトレーニングするために上記のベクトルを使用しました..

今、私はそれを使ってテスト画像をテストします。ここでも、テスト画像のポーズをセグメント化しました。

MATLAB のテスト セットとトレーニング セットのベクトル サイズ。SVM とニューラル ネットでは、同じベクトル サイズが必要です。それを機能させるには;
0 を追加するとpose0(-これは無効なポーズであると仮定します)、サイズを等しくするために、非常に優れたパフォーマンスが得られます。
最初に最初のポーズをコピーし、サイズが等しくなるまで最後に追加すると、パフォーマンスが低下します。

例えば;

追加された値はポーズの実際の値であるため、2番目の方法でより良い分類が期待できます。しかしpose0、本当のポーズではありません。

あなたはなにか考えはありますか ?よろしく

0 投票する
2 に答える
376 参照

machine-learning - トレーニングデータを準備するための一般的なフレームワーク?

計算言語学の学生として、私は機械学習実験を頻繁に行っています。そこでは、生または注釈付きのテキストコーパスや構文ツリーバンクなど、あらゆる種類のさまざまなリソースからトレーニングデータを準備する必要があります。すべての新しいタスクとすべての新しい実験について、必要な機能と値を抽出し、データをある形式から別の形式に変換するプログラム(通常はPython、場合によってはJava)を作成します。これにより、通常、非常に多くの非常に大きなファイルと、いくつかの機械学習フレームワーク(Wekaのarffファイルなど)の入力を取得するためにそれらを処理する非常に多くの小さなプログラムが生成されます。

それを処理し、大量のデータの重要な特性、例外、またはエラーを見逃さないように細心の注意を払ってプログラムするために、非常によく組織化する必要があります。設計パターンやリファクタリングパラダイムなどの優れたソフトウェア設計の多くの原則は、セキュリティ、保守性、持続可能性などはそれほど重要ではないため、これらのタスクにはあまり使用されません。プログラムがデータを正常に処理すると、データは不要になります。これはこれまでのところ、Pythonコードとプログラムで単純な手続き的な方法でクラスや関数を使用することさえまったく気にしないようになっています。次の実験では、独自の特性と異なる形式の異なるデータセットが必要になるため、いずれにせよ、それらの準備を最初からプログラムする必要があります。これまでの私の経験はそれが プロジェクトの時間の80〜90%をトレーニングデータの準備に費やすのは珍しいことではありません。何時間も何日も、あるデータ形式から別のデータ形式に移行する方法を考えるだけで過ぎ去ります。時々、これはかなりイライラすることがあります。

さて、あなたはおそらく私が意図的にさえ少し誇張していると推測しました、しかし私はあなたが私が言おうとしていることを理解していると確信しています。私の質問は、実際には、これです:

これらのタスクに取り組むための一般的なフレームワーク、アーキテクチャ、ベストプラクティスはありますか?最適な設計があれば、私が書いたコードのどれだけが再利用可能であると期待できますか?