Domanda

Attualmente sto lavorando su un prototipo di un'applicazione che dovrebbe essere in grado di interagire con le interfacce utente.

Ora ogni interfaccia utente ha alcuni elementi comuni, come pulsanti, bobine di scorrimento, campi di input ecc.

Vorrei usare l'apprendimento automatico per "interpretare" tali interfacce utente in un modo, in cui in seguito posso inserire un'interfaccia utente come immagine, ad esempio, e lasciare che il prototipo "provasse" l'interfaccia, il che significa, facendo clic sui pulsanti , usando le barre di scorrimento che inseriscono un po 'di testo nei campi di input ecc.

So che questo dovrebbe essere fatto usando il riconoscimento dell'immagine, poiché ci sono molte UI diverse.

Sono specificamente interessato ai siti Web, Adobe Reader con un PDF aperto (che a sua volta può essere un modulo ecc.) E parola con un documento aperto (di nuovo questo può contenere moduli ecc.).

Ora la mia domanda principale è se ci sono già alcune ricerche in questo campo che posso usare o anche uno strumento esistente per parti del processo.

Qualsiasi aiuto è apprezzato :)

È stato utile?

Soluzione

Proverei a sperimentare reti neurali ricorrenti: http://karpathy.github.io/2015/05/21/rnn-effettività/. Le reti neurali ricorrenti possono emettere sequenze di lunghezza variabile dati input di lunghezza variabile. Nel tuo caso una rete neurale ricorrente potrebbe produrre una sequenza come la seguente quando viene data un'interfaccia utente: fare clic su un pulsante, selezionare un campo, digitare un po 'di testo, premi Invio. Per un'altra interfaccia, la rete potrebbe essere uscita solo: fai clic su un pulsante, fai clic su un altro pulsante e basta. Questo sarebbe utile per te perché la sequenza e la durata delle azioni dall'interfaccia all'interfaccia potrebbero cambiare molto.

Potresti anche sperimentare l'apprendimento del rinforzo e costruire un algoritmo che ha un obiettivo (raggiungere una pagina finale nel minor numero possibile di azioni). L'algoritmo inizierebbe facendo cose casuali (come fare clic sullo stesso pulsante un sacco di volte), quindi imparare gradualmente nel tempo per intraprendere azioni appropriate. Se segui quel percorso potresti usare Deep Learning e Monte Carlo Tree Search (MCTS) come quello che ha fatto Alpha.

In entrambi i casi avrai bisogno di un quadro in grado di addestrare rapidamente un algoritmo perché è probabile che dovrai passare attraverso molte iterazioni. Tensorflow (https://www.tensorflow.org/) è un'opzione (ho iniziato a usarla di recente e mi piace molto a causa della sua facile utilizzo). Tensorflow è in grado di costruire sia reti neurali ricorrenti che reti neurali profonde.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top