新しい種類の数値を使用してニューラルネットワークをトレーニングするためのアルゴリズム

読者の皆さん、こんにちは。私が子供の頃、学校で勉強していたとき、私の好きな科目は数学でした。私の好きな科目は、問題を解決するのが大好きであるという事実によるものでした。人生のある時点で、明らかに解決できない問題を自分で作成して試しました。解決するために、解決できない問題を解決するためのアプローチを考えることに完全に頭を悩ませることによって、解決できない問題は、いくつかの明白でない瞬間の省略のためにそのようなものにしか見えないことが時々ありました。問題解決への愛情は私に大きな影響を与えました。そのため、数学的な問題だけでなく、他の分野の問題も常に頭の中で解決しています。私は、鋼の3Dプリンターから、原子力発電所からの放射性廃棄物の処理の問題を解決する方法まで、私の人生の中で多くのアイデア(解決策)を蓄積してきました。確かに多くのアイデアは、何らかの理由で実際には実現できず、おそらく私の前に発明されたものもあり、私はそれらについて知りませんでした(これはすでに起こっています)。私の最後に記事の中で、私は(私自身は理由がわかりませんが)ニューラルネットワークをトレーニングできる新しい種類の番号を思いついたと述べました。これらの数字を使ってニューラルネットワークを訓練するサービスを始めたかったのですが、パンデミックと体調不良を考えると、突然私が最初にこれらの数字を考えたのだと思いました。私。そのため、この記事を書くことにしました。この記事では、これらの数値と、それらを使用してニューラルネットワークをトレーニングする方法について詳しく説明します。私は自分のプログラミング言語で忙しかったので、そのような数値を扱うために必要なすべての式を作成しなかったとすぐに言わなければなりません。これは単なるアイデアであり、既成の実装ではありません。





この記事で説明する内容を完全に理解するには、単純なフィードフォワードニューラルネットワークの構造に関する知識が必要です。





ある種のトレーニングセットを持つフィードフォワードニューラルネットワークをトレーニングする必要があるとします。このセットには、ニューラルネットワークの入力に供給されるものと、出力で受信されると予想されるものの例があります。そのような場合、関数を書くことができます(遺伝的アルゴリズムのように)それをフィットネスと呼びましょう、ニューラルネットワークとトレーニングサンプルがそのような関数の入力に与えられ、関数は0から1までの数値を返します。数値はこのサンプルによってこのニューラルネットワークがトレーニングされる量に対応します、 0が可能な限りトレーニングされていない場合、1は理想的にトレーニングされます。このようなフィットネス関数を使用すると、ニューラルネットワークは、引数がニューラルネットワークの重みである数学関数として表すことができ、結果は、指定された重みとトレーニングサンプルを使用してニューラルネットワークに適用されたフィットネス関数の結果です。 「そんな機能の最大値をどうやって見つけたらいいの?」と思い始めました。私の頭の中で、2つの引数を持つ関数の3次元グラフを提示し、各重みが可能な値の有限範囲に制限されるという条件を追加すると、このグラフは2つの部分に分割できると考えました。グラフの一部では、最初の引数はからの同じ値を持ちます。その可能な範囲、およびグラフの2番目の部分には引数の残りのすべての値があり、最大値が大きい部分を分析し、この部分を同じ方法で分割しますが、すでに別の引数に依存しています。その後、2番目の分割の結果として取得された部分が再び必要になります最初の引数に基づいて2つに分割します。そのような部分への分割は、分割から得られた領域での関数の結果の値の変動が大きすぎるまで実行する必要があります。グラフの結果の部分からの引数はすべて適切な重みです。理解を深めるために、上記を例を挙げて説明します。





関数y = sinxのグラフ
y = sin x





y(x) = sin x, x [-4, 4], , , . 2 , x [-4, 0], x [0, 4], , [0, 2] [2, 4]. - , 1, [pi * 999999 / 2000000, pi / 2], x . . - , , , . [0, 1], , . "". , , , , . : sin([-pi, pi]) = [-1, 1]. , , , , . : [-3, 6] - [-12, 7] = [-10, 18]. , [3, 3]. ? , , , , . feedforward :





  • - ,





  • fintess





  • 2 , , . , fitness . fitness ,









  • ,









. , . , , - fitness , , , , - . , , , , .





, , , . , . : [1, 2] [4, 5], , [5, 7], 5 1 4, 6 , 6 , 5. , . , , 0, . , [a, b] x , n , x , . f ( 0 1) , x. f f1, f1(x) = f(x) * n. n , f1 , , x . f1 0, , , , , . , f1. , f1 , , youtube (, ), , , - . ( x) , [0, 1], , , .





fitness , . , , , . , , , , , . , , ? ? , , , , . :





  • - , y(x) = 1





  • fintess





  • 2 , , . , fitness . fitness ,









  • ,









  • ,





  • 2 , , . , fitness . fitness ,





  • ,









  • 4





  • 5- , 5





, (: 3 ([0, 1], [20, 40], [100, 101]) ), , , 1 2- . , . [1, 2, y(x) = 1], [4, 5, y(x) = 1], [5, 7, y(x) = 1 - |0.5 - x| * 2]. y(x) = 1 - |0.5 - x| * 2? , , , . y(x) = x, , 2 . , , 2- , , . , , , .. [a1, b1, y1(x) = f1(x)] + [a2, b2, y2(x) = f2(x)] = [a3, b3, y3(x) = f3(x)], f3 a1, b1, a2, b2, f1 f2, , . , , .





P. S. , . , . , , . , 80%. , , ( , , ). ( ), - ( ), , . , () , - , , . , , . 200 , . , ( ""). .








All Articles