1

ニューラルネットワークを使用して、身長と髪の長さで男性または女性のカテゴリに分類する簡単なタスクがあります。また、いくつかの例でパターンを教えてから、それを使用して独自に分類します。

私はニューラルネットワークの基本的な理解を持っていますが、ここで本当に助けが必要です。

各ニューロンが領域を2つのサブ領域に分割することを知っています。基本的に、P = w0 + w1 * x1 + w2 * x2 + ... + wn * xnがここで使用されている理由です(幾何学的と考えると、重みは線を移動しているだけです)表現)。

私は、各エポケーが正しい結果に近づくために重みを変更する必要があることを理解していますが、それをプログラムしたことはなく、どのように開始するかについては絶望的です。

どのように進める必要がありますか。つまり、しきい値を決定するにはどうすればよいですか。また、入力をどのように処理する必要がありますか。

興味を持った人にとっては、宿題ではなく宿題です。私はそうです、そして私はそれを理解したいと思います。

4

3 に答える 3

3

しきい値活性化関数を備えた単純なパーセプトロンを扱っているようです。この質問を見てください。バイアスニューロン(w0)を使用しているため、しきい値を0に設定します。

次に、ネットワークの出力を取得して0と比較するだけなので、たとえば、x <0の場合はクラス1を出力し、x>0の場合はクラス2を出力します。x=0の場合を「不明瞭」としてモデル化できます。

重みを学習するには、非常に簡単に実装できるデルタ学習ルールを適用する必要があります。ただし、注意してください。単純なしきい値活性化関数を備えたパーセプトロンは、データが線形分離可能である場合にのみ正しくなります。より複雑なデータがある場合は、多層パーセプトロンとロジスティックシグモイド関数のような非線形活性化関数が必要になります。

詳細については、Geoffrey HintonsCourseraコースの講義2をご覧ください。

于 2013-03-26T15:26:52.053 に答える
1

私は最近機械学習に取り組んでいますが(私は専門家ではありません)、Accord.NETフレームワークを確認する必要があります。箱から出してすぐに使えるすべての一般的な機械学習アルゴリズムが含まれています。そのため、最初から始めるのではなく、既存のサンプルを取得して変更するのは簡単です。また、フレームワークの開発者は、同じページで利用できるフォーラムで非常に役立ちます。

利用可能なサンプルを使用すると、カーネルサポートベクターマシンのようなニューラルネットワークよりも優れたものを見つけることもできます。ニューラルネットワークに固執する場合は、さまざまな変数をすべて変更して楽しんでください。試行錯誤することで、ニューラルネットワークがどのように機能するかを理解できます。

楽しむ!

于 2013-03-26T15:02:25.587 に答える
0

あなたが言ったので:

各ニューロンが領域を2つのサブ領域に分割していることを私は知っています

幾何学的表現を考慮すると、重みは線を動かしているだけです

パーセプトロンまたはADALINEニューラルネットワークを使用したいと思います。これらのニューラルネットワークは、線形分離可能パターンを分類することができます。入力データは複雑なので、多層非線形ニューラルネットワークを使用することをお勧めします。(私の提案は、tanh活性化関数を備えた2層ニューラルネットワークです)。これらのネットワークをトレーニングするには、バックプロパゲーションアルゴリズムを使用する必要があります。

に答えるために

入力をどのように処理する必要がありますか?

入力についてもっと詳しく知る必要があります(たとえば、高さと髪の長さだけですか、それとももっとありますか、範囲と解像度など)

高さと髪の長さだけを扱っている場合は、いくつかのクラス(たとえば、160cm-165cm、165cm-170cmなど)で高さと長さを分割し、これらのクラスごとにオン/オフ入力ニューロンを設定することをお勧めします。次に、高さに関連するすべてのクラスの後に隠しレイヤーを配置し、髪の長さに関連するすべてのクラスの後に別の隠しレイヤーを配置します(tanh活性化関数)。これらの2つの隠れ層のニューロンの数は、トレーニングケースの数に基づいて決定されます。次に、これら2つの隠れ層の出力を取得し、1つの出力ニューロンを持つ集約層に送信します。

于 2013-03-30T02:15:39.713 に答える