なぜ機械学習は素数を認識できないのですか?


13

大きさn、V_nの任意の整数のベクトル表現があるとします

このベクトルは、機械学習アルゴリズムへの入力です。

最初の質問:どのタイプの表現に対して、ニューラルネットワークまたは他のベクトルからビットへのMLマッピングを使用して、nの素数性/複合性を学習することができます。これは純粋に理論的なものです-ニューラルネットワークのサイズには制限がない可能性があります。

次のような素数性テストにすでに関連している表現を無視しましょう。nの因子のヌル区切りリスト、またはMiller Rabinなどの複合性証人の存在。代わりに、異なる基数の表現、または(多変量)多項式の係数ベクトルとしての表現に注目しましょう。または他のエキゾチックなものが想定されています。

2番目の質問:表現ベクトルの詳細に関係なく、MLアルゴリズムの種類があれば、これを学習することは不可能ですか?繰り返しますが、上記の例が示されている「自明では禁止されている」表現は省略しましょう。

機械学習アルゴリズムの出力は、1ビット、素数の場合は0、複合の場合は1です。

この質問のタイトルは、質問1のコンセンサスが「不明」であり、質問2のコンセンサスが「おそらくほとんどのMLアルゴリズム」であるという私の評価を反映しています。これ以上のことは分からないので、私はこれを求めています。

この質問の主な動機は、ある場合、特定のサイズのニューラルネットワークでキャプチャできる素数のセットの構造に「情報理論」の制限があるかどうかです。私はこの種の用語の専門家ではないので、この考えを何度か言い直し、概念のモンテカルロ近似を得るかどうかを確認します。素数の集合のアルゴリズムの複雑さは何ですか?素数がディオファントイン再帰的に列挙可能であるという事実(および特定の大きなディオファントス方程式を満たすことができる)を使用して、上記の入力と出力を使用してニューラルネットワークの同じ構造をキャプチャできます。


12
理論的には、問題は明確に定義されていません。機械学習アルゴリズムへの入力は何ですか?それらはどのように生成されますか?アルゴリズムは学習タスクの前に何を知っていますか?
レフReyzin

3
このサイトの現在の形式では、これは良い質問ではないと思います。
カベ

4
できる。しかし、機械学習では、テストデータセットのエラーを最小限に抑える必要があります。ここで、トレーニングするとを学習することになり、未満の数で完全に機能します。しかし、その後、そのパフォーマンスは良くありません。人々はこれを(手動で:-))試みましたが、これまでのところあまり成功していません。MLではパターンを見つけようとしますが、パターンがない場合はどうでしょうか?[1,20]fn=n2n+4141
プラティックデオガレ

1
自然数の有限シーケンスから自然数の述語への関数を与え、素数のシーケンスを与えられた素数述語をアルゴリズムに追加の制約に従って正しく出力できるアルゴリズムがあるかどうかを尋ねているようです。可能な限り、制限をさらに明確にすることは重要です。正確にしようとすると、表示される場合があります。
ビジェイD

1
単純な答え。探している素数関数の探索空間を近似するのが難しいためです(つまり、は、が素数の場合は1を返し、そうでない場合はごとに0を返します)。@PratikDeoghareコメントに関連して、パターンを見つけるのは難しいSffnnnSです。
-AJed

回答:


-8

これは古くからある質問/問題であり、数論、数学、TCS、特に自動定理証明に深く関わっています。[5]

古い、ほぼ古代の質問は、「素数を計算するための式があります」

答えは、はい、ある意味で、それを計算するためのさまざまなアルゴリズムがあります。

リーマンのゼータ関数は、素数を見つけるための「アルゴリズム」として再指向できます。

GAの遺伝的アルゴリズムによるアプローチは、いつか独創的な設定でこの問題に成功する可能性があります。つまり、GAは成功する可能性が最も高い既知の技術です。[6] [7] 例の有限セットからアルゴリズムを見つける問題、つまり機械学習は、数学的帰納法に非常に似ています。ただし、これまでのところ、数論におけるGAの適用に関する研究はあまり行われていないようです。

既存の文献でこれに最も近いのは、例えば[8]であるようであり、自動化された方法で双子素数予想を開発すること、すなわち「自動予想作成」について議論しています。

もう1つのアプローチは、標準整数シーケンスを認識するための高度な変換ロジックに加えて、標準関数のテーブルの大きなセットを持つプログラムです。これはMathematicaに組み込まれたfindsequence[3] という新しい関数です

また、「実験数学」と呼ばれる比較的新しい分野[9,10]またはTCSで「経験的」研究とも呼ばれる分野にも関連しています。

ここでのもう1つの基本的なポイントは、素数のシーケンスが「滑らか」ではなく、非常に不規則で、カオス的、フラクタル、標準的な機械学習アルゴリズムが歴史的に数値最適化に基づいており、エラー(勾配降下など)を最小化することです。離散的な問題に対する正確な答えを見つけるのに十分です。しかし、GAは成功する可能性があり、この分野/体制で成功することが示されています。

[1] n番目の素数、 math.seの数学eqnがあります

[2] 素数の式、ウィキペディア

[3] wolfram findsequence関数

[4] リーマンゼータ関数

[5] 自動定理証明の最大の成功

[6] 実世界での遺伝的アルゴリズムの応用

[7] Wangによる自動thm証明への遺伝的アルゴリズムの適用

[8] HR、Otter、Maple colton を使用した数論の自動推測作成

[9] TCSに実験数学の応用はありますか?

[10] 実験アルゴリズムのリーディングリスト


1
これは素晴らしい答えです。サイトが同意するかどうかはわかりませんが、探していたものでした。古い接続を探索し、古くするための新しい方向の束。ありがとう、本当に感謝します。特にGA。また、行間を読み、機械学習から「素数の公式」に一般化します。それはとても助かります。
クリスストリングフェロー

11
@クリス、この答えには機械学習に関するものはほとんどありません。Aryehの答えに対するあなたのコメントから、機械学習に慣れていないように思われます(機械のどこで、例のリストから素数テストのようなアルゴリズムを学習しましたか?)
Kaveh

6
GAは、ことわざの無限の猿が一日はシェークスピアの完全な作品を入力しますのと同じ意味で素数判定アルゴリズム「学習」することができます
Sashoニコロフ

@sasho、まだ実証されていませんが、(はい、私見)おそらく技術の制限ではなく、むしろ試みの不足によるものです。kozaは、ビデオゲーム用のGAの「解決/学習」複雑なアルゴリズム、たとえばpacman(プリミティブのLispツリーを使用)、およびサブコンポーネントを使用して回路を構築する方法を示しました。少なくとも素数を見つけるのと同じくらい難しいですか?本当の問題は、システムにどのような種類のプリミティブがあり、どの程度プリミティブであり、解決策を見つけることができるかということです。
vzn

19

私の意見では、質問はかなり曖昧で誤解を伴うので、この答えは正しい語彙を提供し、正しい方向に向けるだけです。

このような問題を直接研究するコンピューターサイエンスには2つの分野があります。帰納的推論計算学習理論。2つの分野は非常に密接に関連しており、その区別は正式なものではなく、社会的で美的なものです。

APAAAFPA

fNA

Nf=T いくつかのための T に F

したがって、肯定的なデータのプレゼンテーションは、ターゲットコンセプトの列挙であり、多くの場合、いくつかの追加の公正条件がスローされます。同様に、言語にあるかどうかに応じて単語にラベルを付けるプレゼンテーションを要求できます。ここでも、条件を追加して、すべての単語の公平性と範囲を確保できます。

RepMRepLM

pNRepLpfjjkjkLpj=Lpj+1

これは、特定の学習モデルの特定の形式化にすぎないことを強調しておきます。しかし、これは、興味のある質問をしたり勉強したりする前のステップ0です。学習者と教師の相互作用を可能にすることで、学習モデルを充実させることができます。任意の言語ファミリではなく、非常に特定の言語、または特定の表現(単調なブール関数など)を考慮することができます。各モデルで学習できることと学習の複雑さには違いがあります。基本的な不可能性の結果の一例を次に示します。

ゴールド[1967]すべての有限言語と少なくとも1つの超有限言語を含む言語ファミリは、ポジティブデータのみから受動的に学習できません。

この結果の解釈には非常に注意する必要があります。たとえば、Dana Angluinは80年代に次のことを示しました。

k

k

Angluin [1987]通常の言語は、同等の質問に答え、反例を提供する教師から学習可能です。アルゴリズムは、最小DFAの状態と最大反例の長さのセットの多項式です。

これは非常に強力で肯定的な結果であり、最近いくつかのアプリケーションが見つかりました。ただし、以下の論文のタイトルがすでに示唆しているように、常に詳細が重要です。

一貫性のある最小のDFA問題は、多項式、Pitt and Warmuth、1989 内では近似できません

今、あなたは疑問に思うかもしれませんが、これはあなたの質問どのように関連していますか?私の答えは、あなたの問題の数学的定義のデザインスペースは非常に大きく、このスペースで選択する特定のポイントは、あなたが得る答えの種類に影響を与えるということです。上記は、学習問題を形式化する方法の包括的な調査を意図したものではありません。これは、調査したい方向を示すためのものです。私が引用するすべての参照と結果は非常に古いものであり、それ以来、この分野は多くのことをしています。質問を正確に定式化し、求めている答えがすでに存在するかどうかを判断するのに十分な背景を得るために参照できる基本的な教科書があります。


@Vijay Dは素晴らしいです、ありがとうございます。
クリスストリングフェロー

これは、不適切な形式の質問です。以下の私の答え(およびコメント)はその理由を示しています。MLは素数を認識できますが、実際的な意味では、時間がかかりすぎます。これがその特定の怪物の性質です。
ドミニクチェリサーノ

12

学習アルゴリズムの成功は、表現に大きく依存します。アルゴリズムへの入力をどのように提示しますか?極端な場合、数値を素因数列として提示すると仮定します。この場合、学習は非常に簡単です。別の極端な例では、数値をバイナリ文字列として表現することを検討してください。私が知っているすべての標準学習アルゴリズムはここで失敗します。これが機能するものです。すべての肯定的な例を受け入れ、すべての否定的な例を拒否する最小のチューリングマシンを見つけます。[演習:これが普遍的な学習者であることを証明してください。]それに関する1つの問題は、タスクがチューリング計算可能でないことです。物事を視野に入れるために、バイナリ表現のみに基づいて素数性を認識すること学ぶことができますか?


Miller Rabinアルゴリズムを「学習」すると、バイナリrepに基づいた素数性を認識することができます。しかし、私はそのようなことを超えて、何か他のものがあるかどうかを見たいです。あなたが言及したタスクがチューリング計算可能でないのはなぜですか?
クリスストリングフェロー

6
ここでは、たとえば、関数のターゲットクラスを参照せずに、ここで学習問題について話すことができる方法を理解していません。
レフレイジン

1
もちろん、Levは正しい-しかし、関数クラスの議論は質問の範囲を超えると思った... :)
Aryeh

-1

この問題は現代の研究の一部です。入力データと出力データが与えられると、入力から出力を生成する最も単純なアルゴリズムを見つけます。RNNネットワークはチューリング完全であるため、理論的には無限のSGDにより、このコードと同等のRNNになります。

bool isPrime(int n, int d) {
    if(n<2)
        return 0;
    if(d == 1)
        return true;
    else 
    {
        if(n % d == 0) 
            return false;
        else
            return isPrime(n, d - 1);
    }
}

このデータセット:0 => 0、1 => 0、2 => 1、3 => 1、4 => 0、5 => 1、...など

問題は、SGDの収束に関する実際に信頼できる理論も、収束に必要な時間の推定値もニューラルネットワークの深さもないということです。しかし、最新の調査では、同様の問題を解決できることが示されています。

https://en.wikipedia.org/wiki/Neural_Turing_machine

https://www.microsoft.com/en-us/research/wp-content/uploads/2017/10/curr_opin_sys_biol_17.pdf

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/cav13.pdf

Google奨学生を使用してキーワードを検索...


-3

機械学習は、計算の複雑さの法則に従います。

素因数分解の問題はNP複雑度クラスにあり、おそらくNP困難(証明されていない)にさえあります。

そのため、素数の検出は機械学習で最も困難な問題の1つであり、そのアプローチではまったく不可能な場合があります。

量子コンピューター(QC)は多項式時間でそれを行うことができますが、ショールは機械学習ではなくブルートフォース決定論です。

ショアに基づいたQC学習アルゴリズムがアプローチである可能性があります。私は本当にそれを提案することで岩を一緒に叩いています。


1
PRIMESはPであるため、「素数を検出する」ことはMLで最も難しい問題の1つではありません。その点については、コンピューターサイエンスのその他の分野です。私の答えとその下のコメントで説明されているように、「表現はすべて表現」です。
Aryeh

すみません、P≠NP!PRIMESはco-NPであり、Pでそれを解決するには、現在どのコンピューティングパラダイムにも完全に不適切な銀河アルゴリズムが必要です。実用的な意味では、NPであり、NP困難かもしれません。
ドミニクチェリサーノ

1
@Birkensocksは素数テストとファクタリングを混同しているようです。「PRIMESはPにあります」は、実際には、最初に素数をチェックする多項式時間アルゴリズムen.wikipedia.org/wiki/AKS_primality_testを提供した論文の名前です。また、ファクタリングはNPおよびco-NPで行われるため、NP困難になることはほとんどありません。たとえば、blog.computationalcomplexity.org / 2002/09
Rahul

ええ、私はすでに言っていたと思います...
ドミニク・チェリサーノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.