Скажем, у нас есть векторное представление любого целого числа n, V_n
Этот вектор является входом в алгоритм машинного обучения.
Первый вопрос: для какого типа представлений можно узнать первичность / составность n, используя нейронную сеть или какое-либо другое ML-отображение векторов в биты. Это чисто теоретически - нейронная сеть может быть неограниченной по размеру.
Давайте проигнорируем представления, которые уже связаны с проверкой простоты, такие как: список факторов n, разделенных нулем, или наличие свидетеля композитности, такого как у Миллера Рабина. Вместо этого давайте сконцентрируемся на представлениях в разных направлениях или представлениях как векторы коэффициентов (возможно, многомерных) полиномов. Или другие экзотические, как положено.
Второй вопрос: для каких, если таковые имеются, типов алгоритма ML будет учиться это невозможно независимо от специфики вектора представления? Опять же, давайте оставим «запрещенные тривиальностью» представления, примеры которых приведены выше.
Выход алгоритма машинного обучения - один бит, 0 для простого, 1 для составного.
Название этого вопроса отражает мою оценку того, что консенсус по вопросу 1 «неизвестен», а консенсус по вопросу 2 - «вероятно, большинство алгоритмов ОД». Я спрашиваю об этом, потому что я не знаю больше, чем это, и я надеюсь, что кто-то может указать путь.
Основная мотивация, если таковая имеется, в этом вопросе: существует ли «информационный теоретический» предел для структуры набора простых чисел, который может быть захвачен в нейронной сети определенного размера? Поскольку я не специалист в такого рода терминологии, позвольте мне несколько раз перефразировать эту идею и посмотреть, получу ли я приближение Монте-Карло к понятию: какова алгоритмическая сложность множества простых чисел? Может ли тот факт, что простые числа являются рекурсивно перечислимым диофантовым (и может удовлетворять конкретному большому диофантовому уравнению ), использоваться для захвата той же структуры в нейронной сети с входами и выходами, описанными выше.
источник
Ответы:
это старый вопрос / проблема со многими, многими связями, которые глубоко связаны с теорией чисел, математикой, TCS и, в частности, с автоматическим доказательством теорем. [5]
старый, почти древний вопрос: есть ли формула для вычисления простых чисел?
Ответ, да, в некотором смысле, есть различные алгоритмы для его вычисления.
дзета-функция Римана может быть переориентирована как «алгоритм» для поиска простых чисел.
Мне кажется возможным, что подход ГА, основанный на генетическом алгоритме, может когда-нибудь преуспеть в этой проблеме с оригинальной установкой, то есть ГА являются ближайшей известной технологией, у которой больше всего шансов на успех. [6] [7] Это проблема поиска алгоритма из конечного набора примеров, то есть машинного обучения, которое очень похоже на математическую индукцию. однако до сих пор, кажется, нет большого исследования применения GA в теории чисел.
Наиболее близким к этому в существующей литературе является, например, [8], в котором обсуждается автоматическая разработка гипотезы о двойном простом, то есть «автоматическое построение гипотез».
Другой подход - это программа, которая имеет большой набор таблиц стандартных функций, а также сложную логику преобразования для распознавания стандартных целочисленных последовательностей. это новая функция, встроенная в Mathematica под названием
findsequence
[3]он также связан с относительно новой областью, называемой «экспериментальной математикой» [9,10] или тем, что также называют «эмпирическими» исследованиями в TCS.
Еще один основной момент, который следует здесь подчеркнуть, состоит в том, что последовательность простых чисел не является «гладкой», сильно нерегулярные, хаотические, фрактальные и стандартные алгоритмы машинного обучения исторически основаны на численной оптимизации и минимизации ошибок (например, градиентного спуска) и не делают этого хорошо на поиске точных ответов на дискретные проблемы. но опять же ГА могут преуспеть, и было доказано, что они преуспевают в этой области / режиме.
[1] есть математическое уравнение для n-го простого числа, math.se
[2] формула для простых чисел , википедия
[3] функция поиска последовательности Вольфрама
[4] дзета-функция Римана
[5] главные успехи автоматического доказательства теорем
[6] применения генетических алгоритмов в реальном мире
[7] применение генетических алгоритмов к автоматическому доказательству Ван
[8] Автоматизированное построение гипотез в теории чисел с использованием HR, Otter и Maple colton.
[9] Есть ли приложения экспериментальной математики в TCS?
[10] Список чтения по экспериментальной алгоритмике
источник
Вопрос, на мой взгляд, довольно расплывчатый и подразумевает некоторое недопонимание, поэтому в этом ответе делается попытка лишь дать правильный словарный запас и указать вам верное направление.
Есть две области информатики, которые непосредственно изучают такие проблемы. Индуктивный вывод и теория компьютерного обучения . Эти две области очень тесно связаны, и различие является скорее социальным и эстетическим, чем формальным.
Таким образом, представление позитивных данных - это перечисление целевой концепции, часто с добавлением некоторых дополнительных условий справедливости. Вы также можете запросить презентацию, которая помечает слова в зависимости от того, присутствуют они на языке или нет. Опять же, вы можете добавить дополнительные условия, чтобы обеспечить справедливость и охват всех слов.
Позвольте мне подчеркнуть, что это только одна конкретная формализация одной конкретной модели обучения. Но это нулевой шаг, прежде чем вы сможете начать задавать и изучать интересующие вас вопросы. Модель обучения можно обогатить, допуская взаимодействие между учеником и учителем. Вместо произвольных семейств языков мы можем рассматривать очень специфические языки или даже конкретные представления (например, монотонные булевы функции). Существует разница между тем, что вы можете выучить в каждой модели, и сложностью обучения. Вот один из примеров принципиального невозможного результата.
Нужно быть очень очень осторожным в интерпретации этого результата. Например, Дана Англуин в 80-х годах показала, что
Это довольно сильный и положительный результат и в последнее время нашел несколько применений. Тем не менее, как всегда, важны детали, как уже предполагает название статьи ниже.
Теперь вы можете задаться вопросом, какое отношение это имеет к вашему вопросу? На что я отвечаю, что пространство для математического определения вашей проблемы очень велико, и конкретная точка, которую вы выберете в этом пространстве, повлияет на то, какие ответы вы получите. Вышесказанное не является всеобъемлющим обзором того, как формализовать проблему обучения. Это просто для того, чтобы продемонстрировать направление, которое вы можете исследовать. Все ссылки и результаты, которые я цитирую, чрезвычайно устарели, и с тех пор эта область многое сделала. Существуют основные учебники, с которыми вы могли бы ознакомиться, чтобы получить достаточную справочную информацию для точной формулировки вашего вопроса и определения, существует ли уже найденный ответ.
источник
Успех алгоритма обучения в решающей степени зависит от представления. Как вы представляете вход для алгоритма? В крайнем случае, предположим, что вы представляете числа как последовательности простых факторов - в этом случае обучение довольно тривиально. В другом крайнем случае рассмотрим представление чисел в виде двоичных строк. Все стандартные алгоритмы обучения, которые я знаю, потерпят неудачу здесь. Вот тот, который будет работать: найдите самую маленькую машину Тьюринга, которая принимает все положительные примеры и отвергает все отрицательные. [Упражнение: докажите, что это универсальный ученик.] Одна из проблем заключается в том, что задача не является вычислимой по Тьюрингу. Можно ли научиться распознавать первичность на основе только двоичного представления?
источник
Эта проблема является частью современного исследования: с учетом входных и выходных данных найти простейший алгоритм, который производит выходные данные из входных данных. Сети RNN полны по Тьюрингу, поэтому теоретически с помощью бесконечной SGD вы можете оказаться в RNN, что эквивалентно следующему коду:
в этом наборе данных: 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 ученый для поиска по ключевым словам ...
источник
Машинное обучение подчиняется законам вычислительной сложности.
Основная проблема факторизации находится в классе сложности NP, возможно, даже NP-hard (не доказано).
Вот почему обнаружение простых чисел является одной из самых сложных проблем в машинном обучении и может оказаться невозможным при таком подходе.
Квантовые компьютеры (КК) могут делать это за полиномиальное время, но Шора - это детерминизм грубой силы, а не машинное обучение.
Возможно, алгоритм обучения КК на основе Шора является подходом. Я на самом деле просто стучу по камням, предлагая это.
источник