머신 러닝이 소수를 인식하지 못하는 이유는 무엇입니까?


13

n, V_n의 정수로 구성된 벡터 표현이 있다고 가정 해보십시오.

이 벡터는 기계 학습 알고리즘에 대한 입력입니다.

첫 번째 질문 : 어떤 유형의 표현에 대해 신경망 또는 다른 벡터 대 비트 ML 매핑을 사용하여 n의 원시성 / 복합성을 배울 수 있습니다. 이것은 순전히 이론적입니다. 신경망의 크기는 제한이 없습니다.

다음과 같이 우선 순위 테스트와 관련이있는 표현은 무시하십시오. n으로 구분 된 n 개의 요인 목록 또는 Miller Rabin과 같은 복합성 감시의 존재. 대신 다른 근사법의 표현이나 (다변량) 다항식의 계수 벡터로서의 표현에 초점을 맞추겠습니다. 또는 다른 이국적인 것들도 포지셔닝됩니다.

두 번째 질문 : 표현 벡터의 세부 사항에 관계없이 ML 알고리즘의 어떤 유형이 이것을 학습하는 것이 불가능할까요? 다시, 위에서 언급 한 예에 대한 '사소한 금지'표현을 생략합시다.

기계 학습 알고리즘의 출력은 단일 비트, 0은 소수, 1은 복합입니다.

이 질문의 제목은 질문 1에 대한 합의가 '알 수 없음'이고 질문 2에 대한 합의가 '아마도 대부분의 ML 알고리즘'이라는 나의 평가를 반영합니다. 나는 이것보다 더 이상 몰라서 이것을 요구하고 있으며 누군가 누군가가 길을 가리킬 수 있기를 바랍니다.

이 질문에 대한 주요 동기는 다음과 같다 : 특정 크기의 신경망에서 포착 될 수있는 소수 세트의 구조에 대한 '정보 이론적'한계가 있는가? 이런 종류의 용어에 대해 전문가가 아니기 때문에이 아이디어를 몇 번 바꿔서 개념에 대한 Monte-Carlo 근사값을 얻었는지 확인해 보겠습니다. 소수 집합의 알고리즘 복잡도는 무엇입니까? 소수가 재귀 적으로 열거 가능한 Diophantine이라는 사실 (및 특정 큰 디오 판틴 방정식을 만족시킬 수 있음)을 위에서 설명한 입력 및 출력으로 신경 네트워크에서 동일한 구조를 캡처하는 데 사용할 수 있습니까 ?


12
이론적 인 관점에서, 문제는 잘 정의되어 있지 않습니다. 머신 러닝 알고리즘의 입력은 무엇입니까? 그것들은 어떻게 생성됩니까? 알고리즘은 학습 과제에 앞서 무엇을 알고 있습니까?
Lev Reyzin

3
나는 이것이이 사이트의 현재 형태에서 좋은 질문이라고 생각하지 않습니다.
Kaveh

4
할 수 있습니다. 그러나 머신 러닝에서는 데이터 세트 테스트시 오류를 최소화하려고합니다. 이제 을 훈련 하면 f ( n ) = n 2 - n + 41을 배우게 되며 41 보다 작은 수에 대해 완벽하게 작동합니다 . 그러나 그 후에는 성능이 좋지 않습니다. 사람들은 이것을 (수동으로 :-) 시도했지만 지금까지 큰 성공을 거두지 못했습니다 . ML에서 패턴을 찾으려고하는데 패턴이 없으면 어떻게합니까? [1,20]f(n)=n2n+4141
Pratik Deoghare

1
유한 한 자연수의 시퀀스에서 자연수의 술어에 함수를 제공하고 알고리즘에 대한 추가 제한 조건에 따라 소수의 소수를 제공하는 프리미티브 술어를 올바르게 출력 할 수있는 알고리즘이 있는지 묻는 것 같습니다. 가능한 한 제한을 분명히 표현하는 것은 쉽지 않습니다. 당신이 그것을 정확하게하려고하면 볼 수 있습니다.
Vijay D

1
찾고자 하는 소수 함수 f 의 검색 공간 를 근사하기가 어렵 기 때문에 간단한 대답 입니다. 즉, n 이 소수 이면 f ( n ) 은 1을 반환 하고 그렇지 않으면 n 마다 0을 반환합니다 . @PratikDeoghare 주석과 관련하여 S 에서 패턴을 찾기가 어렵습니다 . Sff(n)nnS
AJed

답변:


-8

이것은 수 이론, 수학, TCS, 특히 자동 정리 증명과 관련이있는 많은 관계가있는 오래된 질문 / 문제입니다. [5]

오래되고 거의 고대인의 질문은 "프라임 계산을위한 공식이 있습니까?"입니다.

대답은, 어떤 의미에서, 그것을 계산하는 다양한 알고리즘 이 있다는 것입니다.

리만 제타 함수는 소수를 찾기 위해 "알고리즘"으로 방향을 바꿀 수 있습니다.

GA, 유전자 알고리즘 접근법이 독창적 인 설정으로 언젠가이 문제에 성공할 수있을 것 같습니다. 즉, GA는 가장 성공할 가능성이 가장 높은 알려진 기술입니다. [6] [7] 유한 한 예제 세트, 즉 기계 학습과 같은 알고리즘을 찾는 문제는 수학적 유도와 매우 유사합니다. 그러나 지금까지 숫자 이론에서 GA를 적용하는 것에 대한 연구는 많지 않은 것으로 보인다.

기존의 문헌에서 이것에 가장 가까운 것은 예를 들어 [8]처럼 자동화 된 방식으로 쌍둥이 프라임 추측을 개발하는 것을 논의하는 [8] 것으로 보인다.

또 다른 접근법은 표준 정수 시퀀스를 인식하기 위해 정교한 변환 논리와 함께 표준 표준 테이블 세트가있는 프로그램입니다. 이것은 Mathematica에 내장 된 새로운 기능입니다 findsequence[3]

그것은 또한 "실험 수학"[9,10] 또는 TCS에서 "임시"연구라고 불리는 비교적 새로운 분야와 관련이있다.

여기서의 또 다른 기본 요점은 소수 시퀀스가 ​​"부드럽 지 않다"고, 매우 불규칙하고, 혼란스럽고, 프랙탈이며, 표준 기계 학습 알고리즘은 역사적으로 수치 최적화 및 오류 최소화 (예 : 경사 하강)를 기반으로하므로 그렇지 않습니다. 이산 문제에 대한 정확한 답을 찾는 데 도움이됩니다. 그러나 다시 GA는 성공할 수 있으며이 지역 / 정권에서 성공한 것으로 나타났습니다.

[1] n 번째 소수 인 math.se에 대한 수학 방정식이 있습니까?

[2] wikipedia 소수를위한 공식

[3] 볼프람 찾기 시퀀스 기능

[4] 리만 제타 기능

[5] 자동 정리 증명의 성공

[6] 현실 세계에서 유전자 알고리즘의 응용

[7] Wang의 입증 된 자동 알고리즘에 유전자 알고리즘 적용

[8] HR, Otter 및 Maple colton을 이용한 수 이론에서의 자동 추측 만들기

[9] TCS에 실험 수학의 응용이 있습니까?

[10] 실험 알고리즘에 대한 읽기 목록


1
이것은 좋은 대답입니다. 사이트가 동의하는지 확실하지 않지만 내가 찾고있는 사이트였습니다. 오래된 연결을 탐색하고 노화시키는 새로운 방향. 정말 고마워요 특히 GA. 또한 라인 사이를 읽고 기계 학습에서 '공식에 대한 공식'까지 일반화했습니다. 감사합니다.
Cris Stringfellow

11
@Cris,이 답변에는 머신 러닝에 관한 내용이 거의 없습니다. Aryeh의 답변에 대한 귀하의 의견에서 당신은 기계 학습에 익숙하지 않은 것 같습니다 (기계가 어디에서 예제 목록에서
우선 순위

6
GA는 속담 무한 원숭이가 언젠가 셰익스피어의 전체 작품을 입력하는 것과 같은 의미에서 원시성 테스트 알고리즘을 "학습"할 수있다
Sasho Nikolov

@sasho, 그것은 아직 입증되지 않았지만 (예, imho) 아마도 기술의 한계 때문이 아니라 시도의 부족 때문일 것입니다. koza는 비디오 게임에 대한 GA의 "해결 / 학습"복잡한 알고리즘, 예를 들어 pacman (원시의 lisp 트리를 통해)과 하위 구성 요소를 사용하여 회로를 구성하는 것을 보여주었습니다. 적어도 소수를 찾는 것만 큼 어렵지 않습니까? 실제 질문은 시스템에 어떤 유형의 기본 요소가 있고, 어떻게 기본 요소가 솔루션을 찾을 수 있는가?
vzn

19

내 생각에 문제는 상당히 모호하고 약간의 오해가 포함되어 있기 때문에이 답변은 올바른 어휘를 제공하고 올바른 방향으로 당신을 가리 키려고합니다.

이러한 문제를 직접 연구하는 컴퓨터 과학 분야는 두 가지가 있습니다. 귀납 추론전산 학습 이론 . 두 분야는 매우 밀접한 관련이 있으며 구별은 공식적인 분야가 아니라 사회적이고 미적인 분야입니다.

AP(A)AAFP(A)

f:NA

iNf(i)=T, for some T in F.

따라서 긍정적 인 데이터의 표현은 종종 추가적인 공평성 조건이 포함 된 목표 개념의 열거입니다. 언어의 유무에 따라 단어를 표시하는 표현을 유사하게 요청할 수 있습니다. 다시 말하지만, 모든 단어의 공정성과 적용 범위를 보장하기 위해 추가 조건을 추가 할 수 있습니다.

RepMRepL(M)

p:NRepL(p(i))f(j)jikjkL(p(j))=L(p(j+1))

이것이 하나의 특정 학습 모델에 대한 하나의 특정 형식 화일뿐임을 강조하겠습니다. 그러나 이것은 관심있는 질문을하고 공부하기 전에 제로 단계입니다. 학습 모델은 학습자와 교사 간의 상호 작용을 허용함으로써 강화 될 수 있습니다. 임의의 언어 군이 아닌 매우 특정한 언어 또는 특정 표현 (예 : 모노톤 부울 함수)을 고려할 수 있습니다. 각 모델에서 배울 수있는 것과 학습의 복잡성에는 차이가 있습니다. 다음은 기본적인 불가능 결과의 한 예입니다.

Gold [1967] 모든 유한 언어를 포함하는 언어 군은없고 긍정적 인 데이터만으로도 적어도 하나의 초 유한 언어를 수동적으로 배울 수 있습니다.

이 결과를 해석 할 때는 매우주의해야합니다. 예를 들어 Dana Angluin은 80 년대에

k

k

Angluin [1987] 정규 언어는 동등성 질문에 답하고 이에 대한 반례를 제공하는 교사로부터 배울 수 있습니다. 알고리즘은 최소 DFA의 상태 세트와 최대 반례의 길이에서 다항식입니다.

이것은 매우 강력하고 긍정적 인 결과이며 최근 몇 가지 응용 프로그램을 발견했습니다. 그러나 아래 논문의 제목에서 이미 제안했듯이 항상 세부 사항이 중요합니다.

일관된 최소 DFA 문제는 1989 년 Pitt and Warmuth 내에서 그리고 다항식으로 근사 할 수 없습니다 .

궁금한 점이있을 수 있습니다. 이 중 어떤 것이 귀하의 질문과 관련이 있습니까? 내 대답은 문제의 수학적 정의를위한 디자인 공간이 매우 커서이 공간에서 선택한 특정 지점이 얻을 수있는 답변의 종류에 영향을 미친다는 것입니다. 위의 내용은 학습 문제를 공식화하는 방법에 대한 포괄적 인 조사가 아닙니다. 조사하려는 방향을 보여주기위한 것입니다. 내가 인용 한 모든 참고 문헌과 결과는 매우 오래된 일이며 그 이후로 그 분야는 많은 일을 해왔습니다. 질문을 정확한 방법으로 공식화하고 원하는 답변이 이미 존재하는지 확인하기 위해 충분한 배경 ​​지식을 얻기 위해 상담 할 수있는 기본 교과서가 있습니다.


@Vijay D가 훌륭합니다. 감사합니다.
Cris Stringfellow

잘못된 질문입니다. 아래의 답변 및 의견은 이유를 보여줍니다. ML은 소수를 인식 할 수 있지만 실제 의미로는 너무 오래 걸릴 수 있습니다. 그것은 그 특별한 야수의 본질입니다.
도미니크 세리 사노

12

학습 알고리즘의 성공은 표현에 크게 좌우됩니다. 알고리즘에 입력을 어떻게 제시합니까? 극단적 인 경우, 숫자를 주요 요소의 순서로 제시한다고 가정합니다.이 경우 학습은 매우 사소합니다. 다른 극단적 인 경우에는 숫자를 이진 문자열로 나타내는 것을 고려하십시오. 내가 아는 모든 표준 학습 알고리즘은 여기서 실패합니다. 다음은 작동하는 것입니다. 모든 긍정적 인 예를 받아들이고 모든 부정적인 것을 거부하는 가장 작은 Turing 기계를 찾으십시오. [운동 : 이것이 보편적 인 학습자임을 증명하십시오.] 이것의 한 가지 문제는 과제가 Turing-computable이 아니라는 것입니다. 관점에 물건을 넣어하려면 수 있습니다 당신은 이진 표현에만 기반 소수성을 인식입니까?


Miller Rabin 알고리즘을 '학습'하면 이진 rep를 기반으로 기본 성을 인식하는 방법을 배울 수 있습니다. 그러나 나는 그런 것을 넘어 다른 것이 있는지 확인하고 싶습니다. 언급 한 작업이 Turing-computable이 아닌 이유는 무엇입니까?
Cris Stringfellow

6
예를 들어 목표 함수 클래스를 참조하지 않고 학습 문제에 대해 이야기 할 수있는 방법을 이해하지 못합니다.
Lev Reyzin

1
물론 Lev는 옳습니다. 그러나 함수 클래스에 대한 토론은 문제의 범위를 넘어서는 것이라고 생각했습니다. : :)
Aryeh

-1

이 문제는 현대 연구의 일부입니다. 입력 및 출력 데이터가 주어지면 입력에서 출력을 생성하는 가장 간단한 알고리즘을 찾으십시오. RNN 네트워크는 Turing-complete이므로 이론적으로 끝없는 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://ko.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-hard (아직 입증되지 않음)에 있습니다.

이것이 프라임을 감지하는 것이 머신 러닝에서 가장 어려운 문제 중 하나이며, 그 접근법으로는 전혀 불가능할 수도 있습니다.

양자 컴퓨터 (QC)는 다항식 시간에이를 수행 할 수 있지만 Shor는 기계 학습이 아니라 무차별 강제 결정입니다.

아마도 Shor를 기반으로 한 QC 학습 알고리즘이 접근 방식 일 것입니다. 나는 그것을 제안함으로써 바위를 두드리고 있습니다.


1
PRIMES는 P에 있으므로 "프라임 검출"이 ML 또는 컴퓨터 과학의 다른 분야에서 가장 어려운 문제 중 하나라고 말하지 않을 것입니다. “대표에 관한 것입니다.”내 대답과 그 아래의 설명에 설명 된 것처럼 가정에 훨씬 더 가깝습니다.
Aryeh

실례합니다, P ≠ NP! PRIMES는 공동 NP이며, P에서이를 해결하려면 현재 컴퓨팅 패러다임, 특히 머신 러닝과 관련하여 어떤 방식 으로든 상관없이 은하계 알고리즘이 필요합니다. 실질적인 의미에서 그것은 NP이며 아마도 NP-hard입니다.
도미니크 세리 사노

1
@Birkensocks는 팩토링을 통해 Primality 테스트를 혼란스럽게하는 것으로 보입니다. "PRIMES is in P"는 실제로 우선 순위를 확인하기 위해 다항식 시간 알고리즘을 제공 한 논문의 이름 인 en.wikipedia.org/wiki/AKS_primality_test 입니다. 또한 팩토링은 NP와 공동 NP에 있으므로 NP-hard 일 가능성이 거의 없습니다 (예 : blog.computationalcomplexity.org/2002/09/…
Rahul Savani

그래, 난 이미 그렇게 말했다 생각 ...
도미니카 Cerisano
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.