Чому машинне навчання не може розпізнати прості числа?


13

Скажімо, у нас є векторне подання будь-якого цілого числа величини n, V_n

Цей вектор є входом до алгоритму машинного навчання.

Перше запитання: Для якого типу представлень можна дізнатися первинність / композитність n за допомогою нейронної мережі або якогось іншого векторного бітового відображення ML. Це суто теоретично - нейронна мережа може бути, можливо, не обмеженою розмірами.

Нехай ігнорують уявлення, які вже пов’язані з тестуванням на первинність, такими як: нульовий перелік факторів n або існування свідка сумісності, наприклад у Міллера Рабіна. Давайте замість цього зосередимось на уявленнях у різних радикусах, або на уявленнях як векторах коефіцієнтів (можливо, багатоваріантних) многочленів. Або інші екзотичні, як їм належить.

Друге питання: для чого, якщо такі є, типи алгоритму ML вивчать це неможливо, незалежно від специфіки вектора представлення? Знову ж таки залишимо «заборонені тривіальністю» уявлення про приклади, наведені вище.

Вихід алгоритму машинного навчання - це один біт, 0 для простих, 1 для композитного.

Заголовок цього питання відображає мою оцінку того, що консенсус щодо питання 1 "невідомий", а консенсус щодо питання 2 - "ймовірно, більшість алгоритмів МС". Я запитую це, оскільки я не знаю більше цього, і сподіваюся, що хтось може вказати шлях.

Основною мотивацією цього питання є: чи існує «теоретично-теоретична» межа щодо структури безлічі праймів, які можна захопити в нейронну мережу певного розміру? Оскільки я не знаю цю термінологію, дозвольте мені кілька разів перефразувати цю думку і побачити, чи отримую наближення Монте-Карло до поняття: у чому полягає алгоритмічна складність набору простих чисел? Чи може той факт, що праймери є діофантиновими рекурсивно переліченими (і можуть задовольнити певне велике діофантинове рівняння ), використовуватися для захоплення тієї самої структури в нейронній мережі з описаними вище входами та виходами.


12
З точки зору теорії, ваша проблема недостатньо чітко визначена. Які входи в алгоритм машинного навчання? Як вони генеруються? Що алгоритм знає заздалегідь у своєму навчальному завданні?
Лев Рейзін

3
Я не думаю, що це хороше питання в його теперішній формі для цього сайту.
Каве

4
Це може. Але в машинному навчанні ми хочемо мінімізувати помилки на тестуванні набору даних. Тепер, якщо ви тренуєтесь на ви можете закінчити навчання f ( n ) = n 2 - n + 41, і це ідеально підходить для чисел, менших ніж 41 . Але після цього його продуктивність не приносить користі. Люди спробували це (вручну :-)) і поки що без особливого успіху . У ML ми намагаємося знайти шаблони, але що робити, якщо немає жодної моделі? [1,20]f(n)=n2n+4141
Pratik Deoghare

1
Ви, здається, запитуєте, чи існує алгоритм, який надає функцію від кінцевих послідовностей натуральних чисел до предикатів на натуральних числах, може правильно вивести предикат первинності, заданий послідовністю простих чисел, за умови додаткових обмежень алгоритму. Сформулювати своє обмеження далі, якщо це можливо, нетривіально. Якщо ви спробуєте зробити це точно, ви можете побачити.
Vijay D

1
Sff(n)nnS

Відповіді:


-8

це старе питання / проблема з багатьма, багатьма зв’язками вглиб теорії чисел, математики, TCS і, зокрема, автоматизованого доведення теореми. [5]

старе, майже давнє питання: "чи існує формула для обчислення простих чисел"

відповідь - так, у певному сенсі існують різні алгоритми для його обчислення.

Зета-функція Рімана може бути переорієнтована як "алгоритм" для пошуку простих чисел.

мені здається можливим, що GA, генетично-алгоритмний підхід може досягти успіху в цій проблемі одного дня з геніальною установкою, тобто GA - це найближча відома технологія, яка має найбільші шанси на успіх. [6] [7] її проблема пошуку алгоритму з кінцевого набору прикладів, тобто машинного навчання, що дуже схоже на математичну індукцію. однак, схоже, поки що недостатньо досліджень щодо застосування ГА в теорії чисел.

Найбільш близьким до цього в існуючій літературі є, наприклад, [8], де обговорюється автоматична розробка гіпотези з подвійним простуванням, тобто "автоматизована гіпотеза".

інший підхід - це програма, яка має великий набір таблиць стандартних функцій, поряд з деякою складною логікою перетворення, для розпізнавання стандартних цілих послідовностей. це нова функція, вбудована в Mathematica під назвою findsequence[3]

його також пов'язане з відносно новим полем, яке називається "експериментальна математика" [9,10], або що також називається "емпіричним" дослідженням в TCS.

Іншим основним моментом, який слід зробити тут, є те, що послідовність праймерів не "гладка", сильно нерегулярні, хаотичні, фрактальні та стандартні алгоритми машинного навчання історично засновані на чисельній оптимізації та мінімізації помилок (наприклад, спуск градієнта), і не роблять цього добре знаходити точні відповіді на дискретні проблеми. але знову ж таки ГС може досягти успіху, і було показано, що він успішний у цій галузі / режимі.

[1] чи існує математичний еквівалент для n-го простого, math.se

[2] формула для прайметів , wikipedia

[3] функція пошуку наслідків вольфрама

[4] зета функція Рімана

[5] основні успіхи автоматизованого доведення теореми

[6] застосування генетичних алгоритмів у реальному світі

[7] застосування генетичних алгоритмів для автоматизованого доказування thm Вангом

[8] Автоматизоване створення теорій чисел у теорії чисел за допомогою кольтону HR, Otter та Maple

[9] Чи існують програми експериментальної математики в TCS?

[10] Список читання експериментальної алгоритміки


1
це чудова відповідь. Не впевнений, чи згоден сайт, але це було те, що я шукав. Купа нових напрямків для вивчення та вікових зв’язків. Дякую, дуже ціную це. Особливо ГА. Крім того, ви читаєте між рядками та узагальнюєте від машинного навчання до "формулу для простих". Це дуже корисно дякую.
Cris Stringfellow

11
@Cris, у цій відповіді майже нічого немає, що стосується машинного навчання. З вашого коментаря до відповіді Ар'є мені здається, що ви не знайомі з машинним навчанням (чи можу я запитати, де ви бачили, як машина вивчає алгоритм, як тестування первинності зі списку прикладів?)
Kaveh,

6
GA може "вивчити" алгоритм тестування на первинність у тому ж сенсі, коли поговорна нескінченна мавпа одного дня набере повний твір Шекспіра
Сашо Ніколов

@sasho, це ще не було продемонстровано, але (так, imho) його, ймовірно, не через обмеження в технології, а, скоріше, відсутність спроб. koza продемонстрував GAs "вирішення / навчання" складних алгоритмів для відеоігор, наприклад, 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))

Дозвольте підкреслити, що це лише одна конкретна формалізація однієї конкретної моделі навчання. Але це крок нульовий, перш ніж ви можете почати задавати та вивчати питання, які вас цікавлять. Замість довільних сімей мов ми можемо розглянути дуже специфічні мови або навіть конкретні уявлення (наприклад, монотонні булеві функції). Існує різниця між тим, чого можна дізнатися у кожній моделі, та складністю навчання. Ось один приклад принципового результату неможливості.

Золото [1967] Жодна сім'я мов, яка містить усі кінцеві мови та принаймні одну надто обмежену мову, не може пасивно вивчатися лише з позитивних даних.

Слід бути дуже обережним при тлумаченні цього результату. Наприклад, Дана Англуйн показала у 80-х роках, що

k

k

Angluin [1987] Регулярні мови вивчаються у вчителя, який відповідає на запити еквівалентності та надає контрприклади. Алгоритм є многочленом у безлічі станів мінімальної DFA та довжині максимального контрприкладу.

Це досить сильний і позитивний результат, і останнім часом знайшли кілька застосувань. Однак, як завжди, важливі деталі, як випливає з назви статті нижче.

Мінімально узгоджена проблема DFA не може бути наближена в поліномах , Пітт і Вармут, 1989.

Тепер вам може бути цікаво, як це стосується вашого питання? На що я відповів, що проектний простір для математичного визначення вашої проблеми дуже великий, і конкретна точка, яку ви обрали в цьому просторі, впливатиме на тип відповідей, які ви отримаєте. Сказане не має на меті бути всебічним опитуванням того, як формалізувати навчальну проблему. Це просто призначено продемонструвати напрямок, який ви хочете дослідити. Усі посилання та результати, які я цитую, надзвичайно датовані, і поле зробило багато з того часу. Існують основні підручники, з якими можна проконсультуватися, щоб отримати достатню основу, щоб сформулювати своє питання точно і визначити, чи існує відповідь, яку ви шукаєте.


Це чудово @Vijay D, дякую за це.
Cris Stringfellow

Це неправильно сформоване питання. Моя відповідь (та коментарі) нижче показують, чому. ML може розпізнавати праймери, але не в будь-якому практичному сенсі це займе занадто довго. Така природа цього конкретного звіра.
Домінік Серісано

12

Успіх алгоритму навчання критично залежить від представлення. Як ви представляєте вхід до алгоритму? В крайньому випадку, припустимо, ви представляєте числа як послідовності простих факторів - у цьому випадку навчання досить тривіально. В іншому випадку розглянемо представлення чисел як двійкових рядків. Усі стандартні алгоритми навчання, які я знаю, тут не зможуть. Ось один, який би спрацював: знайдіть найменшу машину Тьюрінга, яка приймає всі позитивні приклади і відкидає всі негативні. [Вправа: доведіть, що це універсальний учень.] Одна з проблем полягає в тому, що завдання не є Тьюрінгом-обчислювальним. Щоб поставити речі в перспективу, чи можете ви навчитися розпізнавати первинність, базуючись лише на бінарному поданні?


Я можу навчитися розпізнавати первинність, засновану на двійковій повторності, якщо 'вивчу', скажімо, алгоритм Міллера Рабіна. Але я хочу вийти за рамки подібних речей і подивитися, чи є ще щось. Чому завдання, яке ви згадуєте, не є Тюрінгом?
Cris Stringfellow

6
Я не розумію, як тут можна говорити про проблему навчання, не звертаючись, наприклад, до цільового класу функцій.
Лев Рейзін

1
Лев, правда, звичайно, - але я думав, що обговорення функціональних класів вийде за рамки питання ... :)
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-важкий (не доведено).

Ось чому виявлення праймерів є однією з найважчих проблем у машинному навчанні, і може бути зовсім неможливим при такому підході.

Квантові комп'ютери (КК) можуть це робити в поліноміальний час, але Шор є грубим детермінізмом, а не машинним навчанням.

Можливо, алгоритм навчання QC, заснований на Shor's, є підходом. Я дійсно просто стукаю скелі разом, пропонуючи це.


1
PRIMES - це P, тож я б не сказав, що «виявлення праймес» є однією з найскладніших проблем ML - чи будь-якої іншої галузі інформатики. "Це все про представництво" потрапляє набагато ближче до дому - як пояснено у моїй відповіді та коментарях під нею.
Ар'є

Вибачте, P ≠ NP! PRIMES є спільним NP, і для її вирішення в P зараз потрібно алгоритм Галактики, повністю не підходить до будь-якої обчислювальної парадигми - особливо машинного навчання, незалежно від того, як ви її представляєте. У будь-якому практичному сенсі це NP, а можливо і NP-важкий, дякую yoo.
Домінік Серісано

1
@Birkensocks, здається, ви співставили тестування на первинність з факторингом. "PRIMES знаходиться в P" - це фактично назва статті, яка вперше представила алгоритм поліноміального часу для перевірки первинності, en.wikipedia.org/wiki/AKS_primality_test . Також зауважте, що факторинг є NP та co-NP, тому дуже малоймовірно, що це буде NP-важко, див., Наприклад, blog.computationalcomplexity.org/2002/09/…
Рахул Савані

Так, я думаю, я вже сказав це ...
Домінік Серісано
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.