ニューラルネットワークを作成するのは初めてで、通常この目的で使用される言語ではない golang で作成することにしました。 、しかし、basic ライブラリのみを使用して、それらがどのように機能するかを最初からよく理解したいと考えています。
このプログラムの目標は、2 つの数字 (1 ~ 10) を加算できるようにニューラル ネットワークをトレーニングすることです。これを行うために、rawai (思いつく限り最良の名前) というニューラル ネットワーク クラスを作成し、それに 1 つの入力層 (サイズ 2 の配列)、1 つの隠れ層 (サイズ 2 の配列)、および 1 つの出力層を与えました (サイズ 1) の配列。
重みには 2 つの 2 次元配列があり、1 つは ih (隠し入力) [2,2]、もう 1 つは ho, [2,1] です。
以下は、ai を開始し、ai をトレーニングし、テストするコードです。私が使用したいくつかのデバッグ ステートメントと、golang またはそのパッケージではないその他の関数が、私の rawai クラスの次のコードに示されていることがわかります。これはメイン関数によって呼び出されます:
リーリー以下は rawai ファイル内のすべてのコードです:
リーリー出力例は次のとおりです。 ご覧のとおり、ターゲットからゆっくりと遠ざかり、遠ざかり続けます。 このサイトで質問したり、グーグルで検索したりした後、エラーの場所が見つからなかったので、この質問をすることにしました。
平均二乗誤差
を使用し、微分後の-
を忘れていると思います。
したがって、次のように変更します:
リーリー ### に: ### リーリー以上が私のニューラルネットワークは、目標から遠ざかるように(ゼロから)訓練されていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。