「RNNは任意のアルゴリズムを近似できる」の意味(および証明)


28

最近、リカレントニューラルネットワークはどのアルゴリズムにも近似できることを読みました。

だから私の質問は次のとおりです。これは正確に何を意味するのか、そしてこれが証明されている場所を教えてください


Halbert Whiteの作品をご覧ください。ニューラルネットワークが普遍的な近似法であることを証明したのは彼だったと思う。(ただし、リカレントニューラルネットワークについてはわかりません。)
リチャードハーディ

回答:


42

バックグラウンド

まず、計算理論からいくつかの概念を検討する必要があります。このアルゴリズムは、関数を計算するための手順です。入力が与えられると、アルゴリズムは有限数のステップで正しい出力を生成し、終了する必要があります。関数が計算可能であると言うことは、それを計算するためのアルゴリズムが存在することを意味します。すべての関数の無限のセットの中で、ほとんどは計算可能ではありません。チューリングマシンは、計算の概念を形式化する数学モデルです。他の同等のモデルが存在しますが、チューリングマシンは標準の「参照モデル」です。教会チューリングの論文によると、任意のアルゴリズムをチューリングマシンで実装でき、計算可能なすべての関数を計算できます。チューリングマシンの特定のインスタンスは、特定の関数のみを計算します。ただし、任意の入力に対して他のチューリングマシンをシミュレートできるユニバーサルチューリングマシンと呼ばれる特別なクラスのチューリングマシンがあります。これを行うには、シミュレートするマシン(およびその入力)の説明を独自の入力の一部として取得します。したがって、Universal Turingマシンの特定のインスタンスは、任意の計算可能な関数を計算できます(つまり、任意のアルゴリズムを実装できます)。この能力を共有するシステムは、チューリング完全と呼ばれます。システムがチューリング完全であることを証明する1つの方法は、汎用チューリングマシンをシミュレートできることを示すことです。多くのシステムがチューリング完全であることが示されています(たとえば、ほとんどのプログラミング言語、特定のセルオートマトン、および量子力学)。

リカレントニューラルネットワーク

以下の論文は、あらゆる計算可能な関数に対して、それを計算できる有限リカレントニューラルネットワーク(RNN)が存在することを示しています。さらに、チューリング完全な有限RNNが存在するため、任意のアルゴリズムを実装できます。

シーゲルマンとソンタグ(1992)。ニューラルネットの計算能力について

彼らは、各時点で外部入力を受け取る有限数の繰り返し接続されたユニットを含むネットワークを使用します。各ユニットの状態は、その入力の加重和(およびバイアス)によって与えられ、非線形活性化関数を実行します。活性化関数は飽和線形関数で、シグモイドの区分的線形近似です。重みとバイアスは固定されているため、学習は行われません。

ネットワークは、バイナリ入力シーケンスからバイナリ出力シーケンスへのマッピングを実行します。ネットワークへの2つの外部入力があり、それらはすべてのユニットに供給されます:「データライン」と「検証ライン」。データ行にはゼロと1の入力シーケンスが含まれ、入力シーケンスが終了するとゼロになります。検証ラインは、入力シーケンスがいつ発生するかをネットワークに知らせます。入力シーケンスの期間中は1が含まれ、終了後は0が含まれます。1つのユニットは「出力ユニット」と見なされます。任意の遅延に対してゼロを出力し、次にゼロと1の出力シーケンスを出力し、出力シーケンスの終了後にゼロを出力します。別のユニットは「検証ユニット」とみなされ、出力シーケンスがいつ発生するかを知らせます。

これらのRNNはバイナリ入力シーケンスをバイナリ出力シーケンスにマッピングしますが、他のさまざまな数学オブジェクト(他のタイプの数値、ベクトル、画像、グラフなど)で定義された関数に興味があるかもしれません。ただし、任意の計算可能な関数について、これらの他のタイプのオブジェクトはバイナリシーケンスとしてエンコードできます(たとえば、バイナリで表現できる自然数を使用した他のオブジェクトのエンコードの説明については、こちらを参照してください)。

結果

彼らは、計算可能な関数ごとに、それを計算できる有限RNN(上記の形式の)が存在することを示しています。RNNを使用して、2つのスタックを持つプッシュダウンオートマトンを明示的にシミュレートできることを示すことで、これを行います。これは、チューリングマシンと計算上同等の別のモデルです。計算可能な関数は、チューリングマシンで計算できます。任意のチューリングマシンは、2つのスタックを持つプッシュダウンオートマトンによってシミュレートできます。2つのスタックを持つプッシュダウンオートマトンは、RNNによってシミュレートできます。したがって、任意の計算可能な関数はRNNによって計算できます。さらに、一部のチューリングマシンは汎用であるため、それらをシミュレートするRNNはチューリング完全であり、したがって、任意のアルゴリズムを実装できます。特に、1058ユニット以下のチューリング完全RNNが存在することを示しています。

その他の結果

シミュレーション結果の興味深い結果は、RNNの動作に関する特定の質問が決定できないことです。これは、任意のRNNに対してそれらに応答できるアルゴリズムが存在しないことを意味します(ただし、特定の RNNの場合には応答可能かもしれません)。たとえば、与えられたユニットが値0をとるかどうかの問題は決定できません。一般にこの質問に答えることができれば、チューリングマシンの停止問題を解決することは可能ですが、それは決定できません。

計算力

上記の論文では、すべてのネットワークパラメータと状態は有理数です。これは、RNNの能力を制限し、結果のネットワークをより現実的にするため、重要です。理由は、有理数は計算可能な数値であるため、任意の精度でそれらを計算するアルゴリズムが存在することを意味します。ほとんどの実数は計算不可能であり、したがってアクセスできません-最も強力なチューリングマシンでさえそれらを表すことができず、多くの人々は物理的な世界でさえ表現できることを疑っています。デジタルコンピューターで「実数」を扱うときは、さらに小さなサブセット(64ビット浮動小数点数など)にアクセスしています。任意の実数を表現するには、無限の情報が必要です。

この論文は、ネットワークに実数へのアクセスを許可すると、チューリングマシンを超えて、計算能力がさらに向上すると述べています。シーゲルマンは、この「スーパーチューリング」機能を探求する他の多くの論文を執筆しました。ただし、これらは数学的モデルであり、結果は、そのようなマシンが実際に物理的な世界に存在できることを意味するものではないことに注意することが重要です。それはできなかったと考える正当な理由がありますが、それは未解決の質問です。


1
ちょっと、これはとても面白いと思います。この計算理論と、機械学習アルゴリズムや量子計算との関係についてもっと知りたいと思っている人がいるかどうか疑問に思っていました。ありがとう!
user110320

0

これがあなたが探しているものだと思います。この男は、ネットに十分な隠れユニットがあれば、多層、または単層のフィードフォワードネットワークでもあらゆる機能を近似できることを証明しました。

Hornik、K.(1991)。多層フィードフォワードネットワークの近似機能。ニューラルネットワーク、4(2)、251-257。


1
これは私が意図したものではありません。その証拠をすでに読んでいます。質問を編集しました。
user3726947
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.