問題タブ [supervised-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.
machine-learning - 非常に大規模なニューラル ネットワークにバイアス ノードは必要ですか?
ニューラル ネットワークにおけるバイアス ノードの役割と、小さなネットワークで活性化関数をシフトするためにバイアス ノードが重要である理由を理解しています。私の質問は次のとおりです: 非常に大規模なネットワーク (より具体的には、ReLu 活性化関数、3 つの畳み込み層、2 つの隠れ層、および 100,000 を超える接続を使用した画像認識のための畳み込みニューラル ネットワーク) では、バイアスは依然として重要ですか、それともその影響は得られますか?発生する膨大な数のアクティベーションによって失われますか?
私が質問する理由は、過去にバイアスノードを実装するのを忘れたネットワークを構築したことがありますが、1 つ追加すると、パフォーマンスにごくわずかな違いが見られたからです。特定のデータセットがバイアスを必要としなかったという点で、これは偶然だったのでしょうか? 大規模なネットワークでは、より大きな値でバイアスを初期化する必要がありますか? 他のアドバイスをいただければ幸いです。
python - NDCG (正規化された割引利益) には欠陥がありますか? いくつかの代替ランキング品質指標を計算しましたが、表も裏もわかりません
ランク付けの学習問題に python を使用しており、次の DCG および NDCG コードを使用して成功を評価しています ( http://nbviewer.ipython.org/github/ogrisel/notebooks/blob/master/Learningから)。 %20to%20Rank.ipynb )
ランクが重複していない 3 つの項目のリストで、最良のシナリオと最悪のシナリオの DCG 値を次に示します...
この指標を使用して 2 つのランキングを比較し、どちらが優れているかを確認できます。ただし、4項目リストの最悪のケースを計算すると...
4 項目のリストは、3 項目のリストとは比較になりません。
また、2 つの代替 NDCG を計算しました。NDCG2 は、達成された dcg とボットの最良のケースと最悪のケースを比較します...
NDCG は実際のランキングのリストを 50 回ランダム化し、それぞれの dcg を計算して、それを実際の DCG と比較します。
さまざまなリスト全体で、次のメトリックを取得します...
- NDCG: 平均は .87 (良さそうですね)
- 槍兵のランク: 0.25 前後 (驚くほどではありませんが、そこには何かがあります)
- NDCG2: .58 (平均して、最悪の DCG よりも最良の DCG にわずかに近い)
- NDCG3: 1.04 (ランダムにソートされたリストよりもわずかに優れています)
正直なところ、これらの結果の頭も尻尾もわかりません。私の NDCG 値は良さそうに見えますが、実際にリスト間で比較できますか? 代替指標の方が理にかなっていますか?
編集:最初のランダムな比較では、np.copy() を使用していませんでした。そのため、私のランダム スコアはほぼ常に .99 でした。これは修正され、結果がより意味のあるものになりました。
matlab - 1 つ除外 - MATLAB - MathWorks 日本
次の戦略を使用してデータセットを分類しようとしていました。
- 相互検証を 1 つ除外する
- 「フォールド」ごとに分類する (エラーの数をカウントする) KNN
- 最終誤差を計算する
- k=[1,2,3,4,5,7,10,12,15,20] について繰り返す
fisheriris データセットのコードは次のとおりです。
(私のデータセットの) 結果が奇妙で一貫性のない値を示したので、次のように独自のバージョンの LOO を作成することにしました。
私のバージョンのコードが適切に記述されていると仮定すると、同じか、少なくとも同様の結果が得られることを期待していました。両方の結果は次のとおりです。
結果がこれほど異なる理由は何か分かりますか? どのバージョンを使用すればよいですか? 今、念のため、私が行った他のテスト (3 倍、5 倍など) を書き直すことを考えています。
皆さん、ありがとうございました
matlab - トレーニング済み混合ガウス モデルを使用した新しいデータのラベル付け
トレーニング済みガウス混合モデル (GMM) を使用して新しいデータの予測を行う方法がわかりません。たとえば、3 つの異なるクラス (クラスター) から抽出されたラベル付きデータをいくつか取得しました。データ ポイントのクラスごとに、GMM (gm1、gm2、および gm3) を当てはめます。各クラスの混合ガウスの数 (例: k1=2、k2=1、k3=3) がわかっているか、赤池情報量基準 (AIC) を使用して推定 (最適化) できるとします。次に、新しいデータセットを取得したときに、それがクラス 1、2、または 3 に属する可能性が高いかどうかをどのように知ることができますか?
一部の Matlab スクリプトは、私が何を意味するかを示しています。
図を取得できます。
次に、たとえば次のような新しいテスト データを取得しました。
テストデータは意図的にクラスタ 2 のデータに似せて作成しました。GMM を使用してトレーニングを行った後、どうにかして新しいテスト データのラベルを予測できますか? 各クラスの予測について、(p1 = 18%、p2 = 80%、p3 = 2%) のような確率を出すことは可能ですか。p2=80% を得たので、新しいテスト データがクラスター 2 としてラベル付けされるというハード分類を行うことができます。
ps: この投稿を見つけましたが、私には理論的なようです(同様の投稿)。できれば、返信に簡単な Matlab スクリプトをいくつか入れてください。
どうもありがとう。A.
編集:
Amro が問題の解決策を回答したので、さらに質問があります。
Amro は、初期化を行ったデータセット全体を使用して新しい GMM を作成しました。
アムロが得たものは以下のようなものです
これは、ラベル付けされたクラスター 1 と、クラスター 1 の一部と混合されたクラスター 2 を分離するため、私のデータには適していない可能性があります。これは私が避けようとしているものです。
ここで提示するのは人工的な数値例です。ただし、私の実際のアプリケーションでは、画像のセグメンテーションの問題を処理します (たとえば、cluster1 が背景画像で、cluster2 が分離したいオブジェクトです)。次に、個別の GMM を個別のクラスに適合させるために何らかの方法で「強制」しようとします。2 つのクラスターが離れている場合 (たとえば、この例のクラスター 1 とクラスター 3)、アムロの方法を使用してすべてのデータを結合し、GMM フィッティングを実行しても問題はありません。ただし、画像データでトレーニングを行う場合、解像度の制限により、オブジェクトから背景を完全に分離することはできません (部分的なボリューム効果が発生します)。したがって、示されているように、cluster1 が cluster2 とオーバーラップしている可能性が非常に高くなります。
しかし、少し考えた後、私が今やろうとしていることは次のとおりです。
皆さんはどう思いますか?それともアムロの方法と同等ですか?もしそうなら、訓練されたGMMを強制的に分離する方法はありますか?
また、関数を使用する理由について質問があり
posterior
ます。基本的に、GMM フィッティングを考慮して、テスト データの可能性を推定したいと考えています。では、なぜ今事後確率を計算するのでしょうか? それとも単なる命名の問題ですか (つまり、「事後確率」=「可能性」)?私の知る限り、GMM は常に教師なしの方法として使用されてきました。GMM は k-means クラスタリングの確率バージョンであると誰かが私に言いました。そのような「監視された」スタイルで使用する資格はありますか? 推奨される論文や参考文献はありますか?
返信ありがとうございます。A.
matlab - KNN による二値分類
バイナリ KNN のパフォーマンスを改善する方法がわからないため、ここに投稿します。問題は、99.8% の特異度と 82% の感度しかないことですが、特異度よりも感度を高くしたいのです。私はこの分野は初めてで、これに取り組んで 1 か月しか経っていません。私の研究では、1 つのクラスのみでトレーニングされた異常検出器を使用しました。その場合、knn 分類子の感度を上げるために、しきい値の値を増やしました...異常検出器を比較する必要があるので2 クラスの分類器を使用すると、最初のケースで KNN がうまく機能するように見えます... 感度と特異度 (√Se*Sp) の幾何平均は、1 クラスの分類器では 0.95 であり、2 つのクラスではわずか 0.91 です。 -感度が低いため、クラス。私は正反対のことを期待していました... 誰か助けてくれますか?
python - 大きなデータサンプルを持つニューラルネットワークのパラメータの値はどうあるべきですか?
マルチレイヤー、フィードフォワード、バックプロパゲーション構造のために、Python でニューラル ネットワークのコーディングを行いました。このネットワーク構造では、入力層に 24 個のノード、隠れ層に 18 個のノード、出力層に 1 個のノードがあります。小さなデータセットでは良いトレーニング結果が得られますが、大きなデータ入力では、学習率、運動率などの定数パラメーターの値を設定できません。入力値の入力サンプルは次のとおりです。
そして、目標値のサンプルを次のように入力します。
サンプルの総数は約 5000 です。
良い結果が得られますが、非常に多くの時間がかかり、約500000回の反復が必要です。結果をすばやく取得できるように、学習率と運動率の設定に関する良い提案はありますか? または、学習率の比率を上げる必要があります。学習率を導入する場合、値はどうすればよいですか?
python - Scikit-Learn で複数のアルゴリズム トライアルを設定する際の問題
sklearn のドキュメントからこの例を使用しようとして います。コードが何をしているのかよくわかりません。データセットを間違った方法で入力していると思いますが、最近このエラーが発生しました。
ValueError: unpack する値が多すぎます データセット (pandas データフレームからの多次元の numpy 配列) で動作するようにコードを変更してエラーを修正する方法についてのアイデアはありますか?