Comments 6
Далее следует научить программы понимать другие программы.
У нас нет формально верифицируемых, функционально полных, языков что бы можно было нормально "обучить". ProbQA — это довольно поверхностный алгоритм, он не оптимизирует уточняющие вопросы что бы упростить сложность своего обучения.
Рекуррентные нейросети полны по Тьюрингу, вот, например, подробности: https://stats.stackexchange.com/questions/220907/meaning-and-proof-of-rnn-can-approximate-any-algorithm.
Вы неявно (на самом деле вполне явно) закодировали алгоритм двоичного поиска, который «учится» быть двоичным поиском.
Сделал только что применение для этого движка: probqa.com. Сайт служит как система рекомендации игр для пользователей, которые слабо представляют, во что они следующее хотели бы поиграть. Не зная ключевых слов для поиска и описаний тысяч существующих игр, пользователь всё ещё может отвечать на вопросы путём кликанья на один из 5 вариантов ответа, и на каждом шаге получать список наиболее вероятных для него игр, исходя из ранее полученных программой ответов.
Насколько я понял, алгоритм кодируется чем-то типа матрицы переходов. Скрытая марковская модель, или что-то довольно похожее.
Не могли бы вы чуть подробнее рассказать о том, как ваша модель реализует алгоритм в смысле машины Тьюринга?
Ну, то есть, допустим, я задал в качестве обучающей выборку несколько пар массивов вида:
[5, 2, 1, 7] -> [1, 2, 5, 7], а в результате должен сформироваться алгоритм сортировки. Промежуточные итерации в качестве входных данных не подаются (или подаются, но изредка и описывают хорошо, если 1% всех шагов)
Ну или на входе коэффициенты квадратного уравнения, а на выходе его корни, а посередине формируется алгоритм решения.
Можно привести такие примеры? Я некоторое время работал над подобными задачами и упёрся в комбинаторный взрыв, но, может, вы придумали что-то лучше
Не могли бы вы чуть подробнее рассказать о том, как ваша модель реализует алгоритм в смысле машины Тьюринга?
Ну, то есть, допустим, я задал в качестве обучающей выборку несколько пар массивов вида:
[5, 2, 1, 7] -> [1, 2, 5, 7], а в результате должен сформироваться алгоритм сортировки. Промежуточные итерации в качестве входных данных не подаются (или подаются, но изредка и описывают хорошо, если 1% всех шагов)
Ну или на входе коэффициенты квадратного уравнения, а на выходе его корни, а посередине формируется алгоритм решения.
Можно привести такие примеры? Я некоторое время работал над подобными задачами и упёрся в комбинаторный взрыв, но, может, вы придумали что-то лучше
Sign up to leave a comment.
Машинное обучение алгоритмам