問題タブ [perceptron]

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 投票する
1 に答える
971 参照

machine-learning - 反復ごとにデータを並べ替えたくないパーセプトロン アルゴリズムを使用するケースはありますか?

私の機械学習の教科書は、パーセプトロン アルゴリズムについて説明しているこの質問をしていますが、満足のいく答えを思い付くことができません。

どんなケースがある?

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

machine-learning - POS タグ付けのための構造化パーセプトロンを理解する

品詞のタグ付けのために構造化パーセプトロンを実装する方法を正確に理解するのに苦労しています。私の考えを確認または修正してください。不足しているギャップを埋めてください。

基本的に、構造化パーセプトロンはマルチクラス パーセプトロンの変形ですが、最高のスコアを収集する実装方法が異なります。現在のシーケンス インデックスは前のインデックスのみに依存するという一次マルコフ仮定が行われます。入力は、構造化されていない場合の 1 つの単語だけではなく、単語のシーケンス全体であり、すべての可能なラベル (y) のベクトルです。関数 f(x,y) は、指定された単語シーケンスに対して推測されたラベル シーケンスを返します。

マルチクラス パーセプトロンでは、1 つのラベルを 1 つのインスタンスに分類するだけなので、反復によって最高のスコアを簡単に取得できます。配列全体を分類する際の問題は、可能な標識の数が指数関数的に増加することです。これは、2 つの機能セットを使用して最適なパスを再帰的に見つけるビタビ アルゴリズムが必要な場所です。1 つは特定の POS タグが特定の単語にどの程度当てはまるかを判断するためのもので、もう 1 つは特定の POS タグが別の POS タグの直後に来る可能性を判断するためのものです。これらの各機能セットからのスコアは、各状態の一意の重みで乗算されます。選択したパスが間違っている場合、間違ったパスの状態の各重みが罰せられ、正しいパスの重みが与えられます。

これは、私が(できれば)理解している範囲です。現在の私の最大の質問は、機能がどのように構成されているか (以前のタグ シーケンスは機能の一部ですか?)、およびビタビ アルゴリズムを実際に実装する方法です。また、構造化パーセプトロンを使用した POS タガーの実装はどこにでもありますか (できれば Java で) 分析できますか?

ヒントを教えていただけると大変助かります!

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

artificial-intelligence - しきい値パーセプトロンで表現できる個別のブール関数はいくつありますか?

n入力の2 ^ 2 ^ n個の異なるブール関数があると述べています。問題は、これらのうちいくつが閾値パーセプトロンで表現できるかということです。

答えはすべてではないでしょうか?これは、パーセプトロンがハードしきい値と同じであり、z = mx1 + c - x2 であり、z>=0 の場合はしきい値 (z) = 1、z<0 の場合はしきい値 (z) = 0 であるためです。

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

backpropagation - ショートカット接続を使用したニューラル ネットワークの逆伝播アルゴリズム

現在、F# で多層パーセプトロンを実装しており、標準の逆伝播アルゴリズムを実装する予定ですが、ショートカット接続を処理するためにアルゴリズムをどのように変更する必要があるか疑問に思っています。ショートカット接続とは、レイヤーをスキップする接続、たとえば、入力レイヤーを直接出力レイヤーに接続する接続を意味します。

ありがとう!

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

machine-learning - パーセプトロントレーニング-デルタルール

ウィキペディアによると、デルタルールを使用して重みを次のように調整します。

dw = alpha *(ti-yi)* g'(hj)xi

alpha =学習定数、ti-真の答え、yi-パーセプトロンの推測、g'=パーセプトロンの入力の加重和に関する活性化関数gの導関数、xi-入力の場合。

この式で私が理解できない部分は、導関数g'による乗算です。g = sign(x)(加重和の符号)とします。したがって、g'は常に0であり、dw = 0です。ただし、インターネットで見たコード例では、ライターはg'を省略し、次の式を使用しました。

dw = alpha *(ti-yi)*(hj)xi

適切な説明を読んでよかったです!

前もって感謝します。

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

machine-learning - 多層パーセプトロン-「分離」曲線を見つける

単層パーセプトロンを使用すると、トレーニング後にパーセプトロンの重みに基づいて2種類のポイントを分離する線である「分離線」(専門用語はわかりません)の方程式を簡単に見つけることができます。多層パーセプトロンで、2種類の点を分離する曲線の方程式(直線ではない)を同様の方法で見つけるにはどうすればよいですか?

ありがとう。

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

machine-learning - 多層パーセプトロンの活性化関数

関数を使用して単純なバックプロパゲーション ニューラル ネットワークをトレーニングしようとしましたxortanh(x)をアクティベーション関数として使用すると、導関数を使用して1-tanh(x)^2、約 1000 回の反復後に正しい結果が得られます。ただし、g(x) = 1/(1+e^(-x))導関数を使用してアクティベーション関数として使用する場合g(x)*(1-g(x))、正しい結果を得るには約 50000 回の反復が必要です。その理由は何ですか?

ありがとうございました。

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

algorithm - 品詞タグ付けのための機能関数の作成

パーセプトロンを使用して教師あり分類を実行し、それによって文の品詞タグ付けを実行しようとしています。今のところ、各単語のタグは互いに独立していると想定しています。(つまり、機能として単語だけを使用しています)。私は機械学習アルゴリズムにかなり慣れていないため、各単語の特徴関数を表す方法を理解できません。

私は100文のトレーニングセットを持っており、各単語には特定のタグ(たとえば、N、V、J(形容詞)など)が付けられています。例えば、

ジャック(N)と(&)ジル(N)は(V)から(PRP)ペルー(N)に行きました

タグは中かっこで囲まれています。合計10個の可能なタグがあるとしましょう。さて、私の質問は、ジャックという単語の特徴ベクトルはどのように見えるかということです。

私のコードは表記法とよりよく一致するので、私はそれをベクトルとして実装することに非常に興味があります。機能関数がどのように見えるかを理解すると、パーセプトロンアルゴリズムを実装できるようになります。

また、次のような機能を追加したいとします。(a)最初の文字は大文字ですか?(b)単語はハイフンでつながれているなど、特徴ベクトルに組み込むにはどうすればよいですか?

直感的には、ベクトルには2進値のみが必要であることがわかりますが、それを超えることはできません。

できれば具体的な例で説明してみてください!

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

python - Python - 多層パーセプトロン、バックプロパゲーション、XOR を学習できない

バックプロパゲーションを使用して多層パーセプトロンを実装しようとしていますが、それでも彼に XOR を教えることはできません。数学の範囲エラーもよく発生します。ルールとエラー逆伝播法を学ぶために本とグーグルを調べましたが、それでも自分の間違いがどこにあるのかわかりません

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

python - Python の単純なパーセプトロン

私はしきい値のない Python で非常に単純なパーセプトロンのプログラミングに取り組んでおり、シグモイド関数を使用していますが、従うべき明確なガイドラインが必要です。出力の作成方法に混乱があります。

私は python でコードをテストしませんでしたが、講義から学んだように、それは単なる心の嵐です。しかし、いつsigmoid_derativeを使用するのかわかりませんか? アクティベーション機能には 2 つの部分があることを理解しています。

  1. 加算器: newInput= w1x1 + w2x2 + w3x3
  2. sigmoid = 1.0/(1.0 + exp(- newInput)

次に、重みが正確かどうかを知るためにエラー関数を使用します。