Интерпретация пользовательских интерфейсов с помощью машинного обучения

datascience.stackexchange https://datascience.stackexchange.com/questions/11701

Вопрос

В настоящее время я работаю над прототипом приложения, которое должно иметь возможность взаимодействовать с пользовательскими интерфейсами.

Теперь каждый пользовательский интерфейс имеет некоторые общие элементы, такие как кнопки, полосы прокрутки, поля ввода и т. д.

Я хотел бы использовать машинное обучение для «интерпретации» таких пользовательских интерфейсов таким образом, чтобы позже я мог ввести пользовательский интерфейс, например, в виде изображения, а затем позволить прототипу «опробовать» интерфейс, то есть нажимать на кнопки. , использование полос прокрутки, ввод текста в поля ввода и т. д.

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

Меня особенно интересуют веб-сайты, Adobe Reader с открытым PDF-файлом (который, в свою очередь, может быть формой и т. д.) и Word с открытым документом (опять же, он может содержать формы и т. д.).

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

Любая помощь приветствуется :)

Это было полезно?

Решение

Я бы попробовал поэкспериментировать с рекуррентными нейронными сетями: http://karpathy.github.io/2015/05/21/rnn-efficiency/.Рекуррентные нейронные сети могут выводить последовательности переменной длины при наличии входных данных переменной длины.В вашем случае рекуррентная нейронная сеть может выводить следующую последовательность при наличии пользовательского интерфейса:нажмите кнопку, выберите поле, введите текст, нажмите Enter.Для другого интерфейса сеть может выводить только:нажми одну кнопку, нажми другую кнопку и все.Это будет для вас полезно, поскольку последовательность и длительность действий от интерфейса к интерфейсу могут сильно меняться.

Вы также можете поэкспериментировать с обучением с подкреплением и создать алгоритм, имеющий цель (достигнуть конечной страницы за как можно меньшее количество действий).Алгоритм начнет с выполнения случайных действий (например, многократного нажатия одной и той же кнопки), а затем постепенно научится предпринимать соответствующие действия.Если вы пойдете по этому пути, вы можете использовать глубокое обучение и поиск по дереву Монте-Карло (MCTS), как это сделала Alpha Go.

В любом случае вам понадобится платформа, которая сможет быстро обучить алгоритм, поскольку вам, вероятно, придется пройти множество итераций.ТензорФлоу (https://www.tensorflow.org/) — один из вариантов (я начал использовать его недавно, и он мне очень нравится из-за простоты использования).TensorFlow способен создавать как рекуррентные нейронные сети, так и глубокие нейронные сети.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top