Pull to refresh

Comments 6

Далее следует научить программы понимать другие программы.

У нас нет формально верифицируемых, функционально полных, языков что бы можно было нормально "обучить". ProbQA — это довольно поверхностный алгоритм, он не оптимизирует уточняющие вопросы что бы упростить сложность своего обучения.

Вы неявно (на самом деле вполне явно) закодировали алгоритм двоичного поиска, который «учится» быть двоичным поиском.
Казалось бы — для побочного хобби-проекта — вполне неплохо. Я когда-то квадратичные/кубические функции нейросетями аппроксимировал. Вполне расширяющий сознание опыт, особенно если на промежуточные результаты (по эпохам) глазами смотреть.
Сделал только что применение для этого движка: probqa.com. Сайт служит как система рекомендации игр для пользователей, которые слабо представляют, во что они следующее хотели бы поиграть. Не зная ключевых слов для поиска и описаний тысяч существующих игр, пользователь всё ещё может отвечать на вопросы путём кликанья на один из 5 вариантов ответа, и на каждом шаге получать список наиболее вероятных для него игр, исходя из ранее полученных программой ответов.
Насколько я понял, алгоритм кодируется чем-то типа матрицы переходов. Скрытая марковская модель, или что-то довольно похожее.
Не могли бы вы чуть подробнее рассказать о том, как ваша модель реализует алгоритм в смысле машины Тьюринга?
Ну, то есть, допустим, я задал в качестве обучающей выборку несколько пар массивов вида:
[5, 2, 1, 7] -> [1, 2, 5, 7], а в результате должен сформироваться алгоритм сортировки. Промежуточные итерации в качестве входных данных не подаются (или подаются, но изредка и описывают хорошо, если 1% всех шагов)
Ну или на входе коэффициенты квадратного уравнения, а на выходе его корни, а посередине формируется алгоритм решения.
Можно привести такие примеры? Я некоторое время работал над подобными задачами и упёрся в комбинаторный взрыв, но, может, вы придумали что-то лучше
Sign up to leave a comment.

Articles