Pregunta

Actualmente estoy trabajando en un prototipo de una aplicación que debería poder interactuar con las interfaces de usuario.

Ahora cada interfaz de usuario tiene algunos elementos comunes, como botones, barras de desplazamiento, campos de entrada, etc.

Me gustaría usar el aprendizaje automático para "interpretar" tales interfaces de usuario de una manera, en la que luego puedo ingresar una interfaz de usuario como una imagen, por ejemplo, y dejar que el prototipo "pruebe" la interfaz, lo que significa, haciendo clic en los botones , Uso de barras de desplazamiento que ingresa algún texto en campos de entrada, etc.

Sé que esto tendría que hacerse usando el reconocimiento de imágenes, ya que hay muchas UI diferentes.

Estoy específicamente interesado en sitios web, Adobe Reader con un PDF abierto (que a su vez puede ser un formulario, etc.) y palabra con un documento abierto (nuevamente esto puede contener formularios, etc.).

Ahora mi pregunta principal es si ya hay alguna investigación en este campo que puedo usar, o incluso una herramienta existente para partes del proceso.

Se agradece cualquier ayuda :)

¿Fue útil?

Solución

Intentaría experimentar con redes neuronales recurrentes: http://karpathy.github.io/2015/05/21/rnn-effectivity/. Las redes neuronales recurrentes pueden generar secuencias de longitud variable dadas de entradas de longitud variable. En su caso, una red neuronal recurrente podría generar una secuencia como la siguiente, cuando se le da una interfaz de usuario: haga clic en un botón, seleccione un campo, escriba algún texto, presione Enter. Para otra interfaz, la red solo podría emitir: haga clic en un botón, haga clic en otro botón, y eso es todo. Esto sería útil para usted porque la secuencia y la longitud de las acciones de la interfaz a la interfaz podrían cambiar mucho.

También puede experimentar con el aprendizaje de refuerzo y construir un algoritmo que tenga un objetivo (alcance una página final en la menor cantidad de acciones posible). El algoritmo comenzaría haciendo cosas aleatorias (como hacer clic en el mismo botón un montón de veces), y luego aprender gradualmente con el tiempo para tomar las medidas apropiadas. Si sigue esa ruta, podría usar el aprendizaje profundo y la búsqueda de árboles de Monte Carlo (MCT) como lo que Alpha Go hizo.

En cualquier caso, necesitará un marco que pueda entrenar un algoritmo rápidamente porque es probable que tenga que pasar por muchas iteraciones. Tensorflow (https://www.tensorflow.org/) es una opción (comencé a usarla recientemente, y me gusta mucho por su uso fácil). TensorFlow es capaz de construir redes neuronales recurrentes y redes neuronales profundas.

Licenciado bajo: CC-BY-SA con atribución
scroll top