-
GEBIET
-
Die vorliegende Offenbarung bezieht sich allgemein auf das Maschinenlernen. Insbesondere bezieht sich die vorliegende Offenbarung auf das tiefe Maschinenlernen zum Ausführen einer Nutzereingabe-Bewegungsvorhersage.
-
In Übereinstimmung mit den Anforderungen des Gebrauchsmustergesetzes als Gebrauchsmuster zu schützen und Gegenstand des Gebrauchsmusters sind nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, aber keine Verfahren. Falls in der Beschreibung auf Verfahren Bezug genommen ist, dienen diese Bezugnahmen lediglich zur Veranschaulichung der Vorrichtung oder Vorrichtungen, für die mit den beigefügten Ansprüchen Schutz begehrt wird.
-
HINTERGRUND
-
Ein Nutzer kann eine Nutzereingabe in eine Computervorrichtung unter Verwendung eines Nutzereingabeobjekts wie etwa z. B. eines oder mehrerer Finger, eines Eingabestifts, der durch den Nutzer betätigt wird, oder anderer Nutzereingabeobjekte bereitstellen. Insbesondere kann ein Nutzer in einem Beispiel ein Nutzereingabeobjekt verwenden, um einen berührungsempfindlichen Anzeigebildschirm oder eine andere berührungsempfindliche Komponente zu berühren. Die Interaktion des Nutzereingabeobjekts mit dem berührungsempfindlichen Anzeigebildschirm ermöglicht, dass der Nutzer eine Nutzereingabe in die Computervorrichtung bereitstellt.
-
Allerdings muss ein durch einen berührungsempfindlichen Anzeigebildschirm detektiertes Berührungsereignis in bestimmten vorhandenen Computervorrichtungen einen erheblich großen Verarbeitungsstapel durchlaufen, bevor das Ergebnis des Berührungsereignisses auf dem Bildschirm angezeigt wird. Ein Berührungseingabe-Verarbeitungsstapel kann z. B. für einen Flüssigkristallanzeigebildschirm (LCD-Bildschirm) eine Kombination aus Firmware, Kernel, Rendering und vertikaler Synchronisation (V-Sync) enthalten. Außerdem kann der Verarbeitungsstapel die Softwareverarbeitung enthalten, die durch jeweilige Programme erfolgt, die die Berührungseingabe verarbeiten.
-
Die Größe und die Komplexität des Verarbeitungsstapels führen das Problem der "Berührungslatenzzeit" ein, in dem zwischen dem Zeitpunkt, zu dem das Berührungsereignis stattfindet, und dem, zu dem die Vorrichtung auf das Berührungsereignis anzusprechen scheint, eine Verzögerung auftritt. Die Berührungslatenzzeit ist eine erhebliche Herausforderung, die sich auf die Vorrichtungsleistung auswirkt.
-
Obgleich ein Teil der Berührungslatenzzeit mit besserer Softwareplanung verringert werden könnte, gibt es unabhängig davon, wie gut der Verarbeitungsstapel organisiert worden ist, eine minimale Zeitdauer dafür, dass ein Berührungsereignis verarbeitet wird und daraufhin auf dem Bildschirm ankommt.
-
ZUSAMMENFASSUNG
-
Aspekte und Vorteile von Ausführungsformen der vorliegenden Offenbarung werden teilweise in der folgenden Beschreibung dargelegt oder können aus der Beschreibung gelernt werden oder können durch die Praxis der Ausführungsformen gelernt werden.
-
Ein beispielhafter Aspekt der vorliegenden Offenbarung ist auf ein computerimplementiertes Verfahren zum Vorhersagen der Bewegung von Nutzereingabeobjekten gerichtet. Das Verfahren enthält das Erhalten einer ersten Menge von Bewegungsdaten, die einem Nutzereingabeobjekt zugeordnet sind, durch eine oder mehrere Computervorrichtungen. Die erste Menge von Bewegungsdaten beschreibt einen Ort des Nutzereingabeobjekts im Zeitverlauf. Das Verfahren enthält das Eingeben der ersten Menge von Bewegungsdaten in ein rekurrentes neuronales Netz eines maschinengelernten Bewegungsvorhersagemodells durch die eine oder die mehreren Computervorrichtungen. Das Verfahren enthält das Empfangen eines Bewegungsvorhersagevektors, der einen oder mehrere vorhergesagte künftige Orte des Nutzereingabeobjekts jeweils für einen oder mehrere künftige Zeitpunkte beschreibt, durch die eine oder die mehreren Computervorrichtungen als eine Ausgabe des Bewegungsvorhersagemodells.
-
Ein anderer beispielhafter Aspekt der vorliegenden Offenbarung ist auf eine Computervorrichtung gerichtet, die die Bewegung von Nutzereingabeobjekten vorhersagt. Die Computervorrichtung enthält wenigstens einen Prozessor. Die Computervorrichtung enthält ein maschinengelerntes Bewegungsvorhersagemodell, das ein rekurrentes neuronales Netz enthält. Das Bewegungsvorhersagemodell wird trainiert, um Bewegungsdaten zu empfangen, die die Bewegung eines Nutzereingabeobjekts angeben, und in Ansprechen auf den Empfang der Bewegungsdaten vorhergesagte künftige Orte des Nutzereingabeobjekts auszugeben. Die Computervorrichtung enthält wenigstens ein konkretes nicht transitorisches computerlesbares Medium, das Anweisungen speichert, die, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass der wenigstens eine Prozessor eine erste Menge von Bewegungsdaten, die dem Nutzereingabeobjekt zugeordnet sind, erhält. Die erste Menge von Bewegungsdaten beschreibt einen Ort des Nutzereingabeobjekts im Zeitverlauf. Die Ausführung der Anweisungen veranlasst, dass die wenigstens einen Prozessoren die erste Menge von Bewegungsdaten in das rekurrente neutrale Netz des Bewegungsvorhersagemodells eingeben. Die Ausführung der Anweisungen veranlasst, dass die wenigstens einen Prozessoren einen Bewegungsvorhersagevektor, der den einen oder die mehreren vorhergesagten künftigen Orte des Nutzereingabeobjekts jeweils für einen oder mehrere künftige Zeitpunkte beschreibt, als eine Ausgabe des Bewegungsvorhersagemodells empfangen. Die Ausführung der Anweisungen veranlasst, dass die wenigstens einen Prozessoren eine oder mehrere Tätigkeiten ausführen, die den einen oder mehreren vorhergesagten künftigen Orten, die durch den Bewegungsvorhersagevektor beschrieben sind, zugeordnet sind.
-
Ein anderer beispielhafter Aspekt der vorliegenden Offenbarung ist auf ein Computersystem gerichtet, das eine Nutzercomputervorrichtung enthält. Die Nutzercomputervorrichtung enthält wenigstens einen Prozessor und wenigstens ein nicht transitorisches computerlesbares Medium. Das wenigstens eine nicht transitorische computerlesbare Medium speichert ein maschinengelerntes Bewegungsvorhersagemodell, das dafür konfiguriert ist, Bewegungsdaten zu empfangen, die eine Bewegung eines Nutzereingabeobjekts angeben, und in Ansprechen auf den Empfang der Bewegungsdaten vorhergesagte künftige Orte des Nutzereingabeobjekts auszugeben. Das Bewegungsvorhersagemodell wurde durch Rückwärtsfortpflanzung einer Verlustfunktion über das Bewegungsvorhersagemodell trainiert. Die Verlustfunktion enthält ein Fehlerverhältnis, das eine erste Summe einer oder mehrerer Längen jeweils eines oder mehrerer Fehlervektoren, dividiert durch eine zweite Summe einer oder mehrerer Längen jeweils eines oder mehrerer Ground-Truth-Vektoren, beschreibt. Das wenigstens eine nicht transitorische computerlesbare Medium speichert Anweisungen, die, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die Nutzercomputervorrichtung das maschinengelernte Bewegungsvorhersagemodell verwendet, um die vorhergesagten künftigen Orte des Nutzereingabeobjekts zu erhalten.
-
Weitere Aspekte der vorliegenden Offenbarung sind auf verschiedene Systeme, Vorrichtungen, nicht transitorische computerlesbare Medien, Nutzerschnittstellen und elektronische Vorrichtungen gerichtet.
-
Diese und weitere Merkmale, Aspekte und Vorteile verschiedener Ausführungsformen der vorliegenden Offenbarung werden besser verständlich mit Bezug auf die folgende Beschreibung und auf die beigefügten Ansprüche. Die beigefügten Zeichnungen, die in diese Gebrauchsmusterschrift integriert sind und einen Bestandteil von ihr bilden, stellen beispielhafte Ausführungsformen der vorliegenden Offenbarung dar und dienen zusammen mit der Beschreibung zur Erläuterung der zugehörigen Prinzipien.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine an den Durchschnittsfachmann auf dem Gebiet gerichtete ausführliche Diskussion von Ausführungsformen ist in der Beschreibung dargelegt, die auf die beigefügten Figuren Bezug nimmt, in denen:
-
1 einen Blockschaltplan eines beispielhaften Computersystems in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
2 einen Blockschaltplan eines beispielhaften Bewegungsvorhersagemodells in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
3 einen Blockschaltplan eines beispielhaften Bewegungsvorhersagemodells in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
4 einen Blockschaltplan eines beispielhaften Bewegungsvorhersagemodells in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
5 einen Ablaufplan eines beispielhaften Verfahrens zum Vorhersagen der Bewegung von Nutzereingabeobjekten in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
6 einen Ablaufplan eines beispielhaften Verfahrens zum Trainieren eines Bewegungsvorhersagemodells in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
7 eine graphische Darstellung beispielhafter Bewegungsvektoren in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
8 eine graphische Darstellung beispielhafter Bewegungsvektoren in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Übersicht
-
Allgemein ist die vorliegende Offenbarung auf Systeme und Verfahren gerichtet, die das Maschinenlernen wirksam einsetzen, um eine Nutzereingabebewegungsvorhersage auszuführen. Insbesondere können die Systeme und Verfahren der vorliegenden Offenbarung ein maschinengelerntes Bewegungsvorhersagemodell enthalten und verwenden, das dafür trainiert ist, Bewegungsdaten zu empfangen, die die Bewegung eines Nutzereingabeobjekts angeben, und in Ansprechen auf den Empfang der Bewegungsdaten vorhergesagte künftige Orte des Nutzereingabeobjekts auszugeben. Das Nutzereingabeobjekt kann z. B. ein Finger eines Nutzers oder ein durch den Nutzer betätigter Eingabestift sein.
-
Insbesondere kann das Bewegungsvorhersagemodell in Übereinstimmung mit einem Aspekt der vorliegenden Offenbarung ein rekurrentes neuronales Netz (z. B. ein tief rekurrentes neuronales Netz) enthalten. In einem Beispiel kann eine Nutzercomputervorrichtung Bewegungsdaten erhalten, die einen Ort eines Nutzereingabeobjekts im Zeitverlauf beschreiben. Die Computervorrichtung kann die Bewegungsdaten in das rekurrente neuronale Netz des Bewegungsvorhersagemodells eingeben und als eine Ausgabe des Bewegungsvorhersagemodells einen Bewegungsvorhersagevektor empfangen. Der Bewegungsvorhersagevektor kann einen oder mehrere vorhergesagte künftige Orte des Nutzereingabeobjekts jeweils für einen oder mehrere künftige Zeitpunkte beschreiben.
-
Die Computervorrichtung kann den durch das Bewegungsvorhersagemodell ausgegebenen Bewegungsvorhersagevektor verwenden, um die Berührungslatenzzeit zu verringern oder sogar zu beseitigen. Insbesondere kann die Computervorrichtung in Ansprechen auf oder auf andere Weise auf den vorhergesagten künftigen Orten des Nutzereingabeobjekts basierend Operationen ausführen und dadurch die Notwendigkeit, auf den Empfang des Rests der Nutzereingabetätigkeit zu warten und den Rest der Eingabetätigkeit über einen großen Verarbeitungsstapel zu verarbeiten, beseitigen.
-
Um ein Beispiel zu geben, kann eine Computervorrichtung der vorliegenden Offenbarung Bewegungsdaten, die eine Fingerbewegung/Fingerorte, die dem Anfangsabschnitt einer Nutzerberührungstätigkeit (z. B. einem Anfangsabschnitt einer Tätigkeit des Wischens nach links) zugeordnet sind, beschreiben, in ein rekurrentes neuronales Netz eines Bewegungsvorhersagemodells eingeben. In Ansprechen auf den Empfang der Bewegungsdaten kann das Bewegungsvorhersagemodell die Fingerbewegung/die Fingerorte, die dem Rest der Nutzerberührungstätigkeit (z. B. dem Rest einer Tätigkeit des Wischens nach links) zugeordnet sind, vorhersagen. Die Computervorrichtung kann in Ansprechen auf die vorhergesagte Fingerbewegung/die vorhergesagten Fingerorte Tätigkeiten ausführen (z. B. einen Anzeigebildschirm rendern, in dem das angezeigte Objekt nach links gewischt worden ist). Somit ist es nicht erforderlich, dass die Computervorrichtung auf den Rest der Nutzerberührungstätigkeit wartet und ihn daraufhin verarbeitet. Somit kann die Computervorrichtung auf Berührungsereignisse schneller ansprechen und die Berührungslatenzzeit verringern. Zum Beispiel können hochwertige Bewegungsvorhersagen ermöglichen, dass die Berührungslatenzzeit auf Niveaus verringert wird, die durch menschliche Nutzer nicht wahrnehmbar sind.
-
Aspekte der vorliegenden Offenbarung sind insbesondere auf Computervorrichtungen anwendbar, die eine Nutzereingabe über eine Bewegung eines Nutzereingabeobjekts empfangen. Beispielhafte Nutzereingabeobjekte enthalten einen oder mehrere Finger eines Nutzers, einen durch den Nutzer betätigten Eingabestift oder andere Nutzereingabeobjekte. Insbesondere kann der Nutzer in einem Beispiel ein Nutzereingabeobjekt nutzen, um einen berührungsempfindlichen Anzeigebildschirm oder eine andere berührungsempfindliche Komponente der Computervorrichtung zu berühren. Die Bewegung des Nutzereingabeobjekts in Bezug zu dem berührungsempfindlichen Anzeigebildschirm ermöglicht, dass der Nutzer eine Nutzereingabe in die Computervorrichtung bereitstellt.
-
Insbesondere kann die Computervorrichtung eine Menge von Bewegungsdaten, die einen Ort des Nutzereingabeobjekts im Zeitverlauf beschreiben, erzeugen oder auf andere Weise erhalten. Zum Beispiel können Daten, die von verschiedenen Sensoren (z. B. von dem berührungsempfindlichen Anzeigebildschirm oder von anderen Nutzereingabekomponenten) empfangen werden, erhoben und verarbeitet werden, um eine Menge von Bewegungsdaten zu erzeugen. Als ein Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge eines Objektorts und einer Objektzeit enthalten. Zum Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge enthalten, die den Ort des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und außerdem einen jedem Ort zugeordneten Zeitstempel bereitstellen.
-
Als ein anderes Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge enthalten, die eine Änderung des Orts des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und außerdem einen Zeitstempel oder eine Änderung der Zeit, die jedem Paar der Änderung des x- und der Änderung des y-Werts zugeordnet ist, beschreiben. In einigen Implementierungen wird die Menge von Bewegungsdaten iterativ aktualisiert, aufgefrischt oder erzeugt, während eine zusätzliche Bewegung des Nutzereingabeobjekts detektiert wird. Wie oben beschrieben wurde, kann die Menge von Bewegungsdaten in ein Bewegungsvorhersagemodell eingegeben werden, um Vorhersagen über den künftigen Ort des Nutzereingabeobjekts zu einem oder mehreren künftigen Zeitpunkten zu erhalten.
-
In abermals weiteren Implementierungen kann die Computervorrichtung zusätzliche Daten erheben, die das Nutzereingabeobjekt beschreiben, und kann sie diese Daten zusammen mit der Menge von Bewegungsdaten in das Bewegungsvorhersagemodell eingeben. Zum Beispiel können Informationen (z. B. Sensordaten) über den Nutzereingabeobjektdruck auf den berührungsempfindlichen Anzeigebildschirm, den Nutzereingabeobjektradius auf dem berührungsempfindlichen Anzeigebildschirm oder andere Nutzerobjektparameter erhoben werden und zur Verwendung bei der Vorhersage des künftigen Orts des Nutzereingabeobjekts für das Bewegungsvorhersagemodell bereitgestellt werden.
-
In Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung enthält das Bewegungsvorhersagemodell in einigen Implementierungen zwei Phasen. In einer ersten Phase gibt die Computervorrichtung die Menge von Bewegungsdaten in ein rekurrentes neuronales Netzwerk (z. B. in ein neuronales Long-Short-Term-Memory-Netz (LSTM-Netz), in ein neuronales Gated-Recurrent-Unit-Netz (GRU-Netz) oder in andere Formen rekurrenter neuronaler Netze) ein. Das rekurrente neuronale Netz gibt in Ansprechen auf den Empfang der Menge von Bewegungsdaten einen hochdimensionalen Kontextvektor aus.
-
In einer zweiten Phase des Bewegungsvorhersagemodells wird der hochdimensionale Kontextvektor in ein vorwärtsgekoppeltes neuronales Netz eingegeben. Außerdem gibt die Computervorrichtung in einigen Implementierungen zusammen mit dem hochdimensionalen Kontextvektor einen Zeitvektor in das vorwärtsgekoppelte neuronale Netz ein. Der Zeitvektor kann eine Liste von Zeitdauern (z. B. 10 ms, 20 ms usw.) bereitstellen, von denen gewünscht ist, dass sie durch das Bewegungsvorhersagemodell vorhergesagt werden. Somit kann der Zeitvektor einen oder mehrere künftige Zeitpunkte beschreiben, zu denen der Ort des Nutzereingabeobjekts vorhergesagt werden soll. Das vorwärtsgekoppelte Netz kann in Ansprechen auf den Empfang des hochdimensionalen Kontextvektors und des Zeitvektors einen Bewegungsvorhersagevektor ausgeben, der für jeden Zeitpunkt oder für jede Zeitdauer, der bzw. die durch den Zeitvektor beschrieben wird, einen vorhergesagten künftigen Ort des Nutzereingabeobjekts beschreibt. Zum Beispiel kann der Bewegungsvorhersagevektor für jeden künftigen Zeitpunkt ein Paar von Werten für den Ort in der x- und in der y-Dimension oder für jeden künftigen Zeitpunkt ein Paar von Werten für die Änderung der x- und der y-Dimension enthalten.
-
Die Verwendung eines wie oben beschriebenen Zweiphasen-Bewegungsvorhersagemodells kann eine Anzahl von Vorteilen schaffen. Als ein Beispiel beseitigt die Verwendung eines Zweiphasen-Bewegungsvorhersagemodells Probleme im Zusammenhang mit einer Diskrepanz zwischen Angaben der Zeit (z. B. Zeitstempeln), die in Trainingsdaten enthalten sind, gegenüber Angaben der Zeit, die durch das Modell während der tatsächlichen Feldverwendung beobachtet werden.
-
In einigen Implementierungen kann das vorwärtsgekoppelte Netz der zweiten Phase durch ein rekurrentes neuronales Decodernetz ersetzt sein. In anderen Implementierungen kann das oben beschriebene Zweiphasen-Hybrid-Bewegungsvorhersagemodell durch ein einzelnes gestapeltes rekurrentes neuronales Netz (z. B. ein neuronales LSTM-Netz) ersetzt sein. Insbesondere können in solchen Implementierungen sowohl der Zeitvektor als auch die Menge von Bewegungsdaten in das rekurrente neuronale Netz eingegeben werden. Das rekurrente neuronale Netz kann den Bewegungsvorhersagevektor in Ansprechen auf den Empfang des Zeitvektors und die Menge von Bewegungsdaten ausgeben.
-
In einigen Implementierungen kann die Computervorrichtung die Bewegungsdaten für das Nutzereingabeobjekt auf Online-Art in das rekurrente neuronale Netz einspeisen. Zum Beispiel kann während der Verwendung im Feld in jedem Fall, in dem eine Nutzereingabeobjekt-Bewegungsaktualisierung von dem einen oder den mehreren relevanten Sensoren (z. B. von dem berührungsempfindlichen Anzeigebildschirm) empfangen wird, die jüngste Bewegungsdatenaktualisierung (z. B. Werte für Änderungen von x, y und der Zeit) in das rekurrente neuronale Netz eingespeist werden. Somit können die Bewegungsdatenerhebung und die Bewegungsvorhersage iterativ ausgeführt werden, während zusätzliche Bewegungsdaten für das Nutzereingabeobjekt erhoben werden. Somit ist ein durch die Verwendung rekurrenter neuronaler Netze geschaffener Vorteil die Fähigkeit, den Kontext von vorhergehenden Aktualisierungen aufrechtzuerhalten, während neue Bewegungsaktualisierungen in der oben beschriebenen Online-Art eingegeben werden.
-
In Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung kann das hier beschriebene Bewegungsvorhersagemodell unter Verwendung einer neuen Verlustfunktion an Ground-Truth-Bewegungsdaten trainiert werden. Insbesondere kann ein Trainingscomputersystem die Bewegungsvorhersagemodelle unter Verwendung eines Trainingsdatensatzes, der eine Anzahl von Mengen von Ground-Truth-Bewegungsdaten für Nutzereingabeobjekte enthält, trainieren. Zum Beispiel kann der Trainingsdatensatz Bewegungsdaten enthalten, die eine große Anzahl zuvor beobachteter Bewegungstrajektorien von Nutzereingabeobjekten beschreiben.
-
In einigen Implementierungen wird ein erster Teil einer Menge von Ground-Truth-Bewegungsdaten in das Bewegungsvorhersagemodell eingegeben, um trainiert zu werden, um das Bewegungsvorhersagemodell zu trainieren. In Ansprechen auf den Empfang dieses ersten Teils gibt das Bewegungsvorhersagemodell einen Bewegungsvorhersagevektor aus, der den Rest der Menge von Ground-Truth-Bewegungsdaten vorhersagt.
-
Nach einer solchen Vorhersage kann das Trainingscomputersystem eine Verlustfunktion, die den durch das Bewegungsvorhersagemodell ausgegeben Bewegungsvorhersagevektor mit dem Rest der Ground-Truth-Bewegungsdaten, die das Bewegungsvorhersagemodell vorherzusagen versucht hat, vergleicht, anwenden oder auf andere Weise bestimmen. Das Trainingscomputersystem kann die Verlustfunktion über das Bewegungsvorhersagemodell (z. B. durch Ausführen einer abgeschnittenen Rückwärtsfortpflanzung über die Zeit) rückwärts fortpflanzen.
-
Insbesondere kann die Verlustfunktion in Übereinstimmung mit einem Aspekt der vorliegenden Offenbarung in einigen Implementierungen die Form eines neuen Fehlerverhältnisses annehmen oder es auf andere Weise enthalten. Das Fehlerverhältnis kann als eine Summe der Längen eines oder mehrerer Fehlervektoren, dividiert durch eine Summe der Längen eines oder mehrerer Ground-Truth-Vektoren, die vorherzusagen versucht wurden, definiert werden. In anderen Implementierungen können anstelle der Summen selbst die Quadrate der Summen verwendet werden. In einigen Implementierungen kann das Trainingscomputersystem die Verlustfunktion für einen gesamten Ministapel von Trainingsdaten auf einmal bestimmen.
-
Die Verwendung eines Fehlerverhältnisses, das sich wie hier beschrieben auf das "Verhältnis von Durchschnitten" oder auf den "Durchschnitt von Summationen" stützt, verhindert Fehler der Division durch null, die auftreten würden, falls jede Fehlervektor/Ground-Truth-Vektor-Kombination getrennt betrachtet würde, da es einige Fälle (z. B. die Bewegung null des Nutzereingabeobjekts) gibt, in denen der Ground-Truth-Vektor null ist.
-
Außerdem verbessert die Verwendung des wie hier beschriebenen Fehlerverhältnisses die Skaleninvarianz des Bewegungsvorhersagemodells. Zum Beispiel können einige oder alle Trainingsdaten und/oder Feldverwendungsdaten dafür formatiert werden, die Bewegung oder den Ort in Einheiten von Pixeln zu beschreiben, die üblicherweise auflösungsabhängig sind. Somit ermöglicht die Verwendung des Fehlerverhältnisses ein Einheits-agnostisches Training. Allerdings kann die Verlustfunktion in anderen Implementierungen zusätzlich oder alternativ zu dem hier beschriebenen Fehlerverhältnis andere Fehlermaße enthalten. Alternative Fehlermaße enthalten z. B. den mittleren quadratischen Fehler, den L1-Verlust, den L2-Verlust oder andere Maße.
-
In Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung kann die Computervorrichtung in einigen Implementierungen für jedes von zwei oder mehr Nutzereingabeobjekten, die gleichzeitig eine Eingabe in die Vorrichtung bereitstellen, getrennte Instanzen von Bewegungsvorhersagemodellen implementieren. Als ein Beispiel können für jeden der zwei Finger jeweils in zwei getrennte parallele Bewegungsverarbeitungsmodelle getrennte Bewegungsdaten eingegeben werden, falls ein Nutzer zwei Finger nutzt, um mit dem berührungsempfindlichen Bildschirm zu interagieren. Zum Beispiel kann jedes Modell für jede ankommende Ortsaktualisierung für sein entsprechendes Nutzereingabeobjekt (z. B. den Finger) eine Vorhersage bereitstellen.
-
Außerdem kann in einigen Implementierungen jedes Bewegungsvorhersagemodell so lange aufrechterhalten werden, wie Ortsaktualisierungen für sein entsprechendes Nutzereingabeobjekt empfangen werden. Mit anderen Worten, für jedes Nutzereingabeobjekt kann für die Lebensdauer eines solchen Nutzereingabeobjekt ein rekurrentes neuronales Netz aufrechterhalten werden. Zum Beispiel kann sich die "Lebensdauer" eines bestimmten Fingers über die Zeitdauer erstrecken, für die der Finger mit dem berührungsempfindlichen Bildschirm in Kontakt ist. Nach der Lebensdauer des Nutzereingabeobjekts kann die Computervorrichtung einen Cache, der dem rekurrenten neuronalen Netz des Bewegungsvorhersagemodells für das Nutzereingabeobjekt zugeordnet ist, löschen. Auf diese Weise kann ein rekurrentes neuronales Netz seinen internen Arbeitsspeicher verwenden, um die Bewegung eines Nutzereingabeobjekts über die Lebensdauer des Nutzereingabeobjekts besser vorherzusagen.
-
In Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung kann eine Anwendung, ein Programm oder eine andere Komponente der Computervorrichtung (z. B. eine Handschrifterkennungsanwendung) den Bewegungsvorhersagevektor verarbeiten oder auf andere Weise bereitgestellt bekommen. Die Anwendung kann die vorhergesagten künftigen Orte des Nutzereingabeobjekts so behandeln, als ob sich das Nutzereingabeobjekt bereits zu diesen vorhergesagten Orten bewegt hätte. Zum Beispiel kann die Handschrifterkennungsanwendung die Handschrift auf der Grundlage der vorhergesagten künftigen Orte, die durch den Bewegungsvorhersagevektor bereitgestellt werden, erkennen. Somit braucht die Anwendung nicht zu warten, damit der Rest der Nutzereingabetätigkeit über einen großen Verarbeitungsstapel empfangen und verarbeitet wird, wodurch die Latenzzeit verringert wird.
-
Somit schafft die vorliegende Offenbarung auf dem Maschinenlernen beruhende technische Lösungen für das technische Problem der Berührungslatenzzeit. Ein beispielhafter Vorteil der vorliegenden Offenbarung ist die verbesserte Vorhersagequalität. Insbesondere sind die hier beschriebenen neuronalen Netze ausgezeichnete Funktionsapproximatoren und bieten sie im Vergleich zu Polynomen eine weitaus reichhaltigere Vorhersagefähigkeit. Somit können die Bewegungsvorhersagemodelle der vorliegenden Offenbarung eine bessere Vorhersagegenauigkeit bereitstellen, falls sie geeignet trainiert werden.
-
Zusätzlich zur verringerten Berührungslatenzzeit kann die vorliegende Offenbarung in Szenarien, in denen die Nutzerbewegungseingabe für die Computervorrichtung bereitgestellt wird, zu einer Anzahl zusätzlicher technischer Vorteile einschließlich z. B. ruhigerer Fingernachführung, verbesserter Handschrifterkennung, schnellerer und genauerer Nutzersteuerung nutzermanipulierbarer virtueller Objekte (z. B. Objekte innerhalb eines Spiels) und zu vielen weiteren Vorteilen führen.
-
Ein weiterer beispielhafter technischer Vorteil der vorliegenden Offenbarung ist die verhältnismäßig niedrige Arbeitsspeichernutzung/Arbeitsspeicheranforderung. Insbesondere summieren die hier beschriebenen neuronalen Netze effektiv die Trainingsdaten und komprimieren sie zu einer kompakten Form (z. B. zu dem neuronalen Netz selbst). Dies verringert stark die Menge an Arbeitsspeicher, der notwendig ist, um den Vorhersagealgorithmus zu speichern und zu implementieren.
-
Ein anderer beispielhafter technischer Vorteil der vorliegenden Offenbarung ist die verbesserte Skalierbarkeit. Insbesondere verringert die Modellierung der Bewegungsdaten durch neuronale Netze stark die Recherchezeit, die in Bezug auf die Entwicklung eines von Hand gefertigten Bewegungsvorhersagealgorithmus notwendig ist. Zum Beispiel müsste der Entwickler für von Hand gefertigte Bewegungsvorhersagealgorithmen den Algorithmus an Daten iterieren und eindeutige Vorgehensweisen zur Behandlung verschiedener Szenarien entwerfen. Demgegenüber kann das Netz an geeigneten Trainingsdaten trainiert werden, was in einem massiven Maßstab erfolgen kann, falls es das Trainingssystem zulässt, um wie hier beschriebene neuronale Netze zu verwenden. Außerdem können neuronale Netze leicht überarbeitet werden, während neue Trainingsdaten verfügbar gemacht werden.
-
Nunmehr anhand der Figuren werden beispielhafte Ausführungsformen der vorliegenden Offenbarung ausführlicher diskutiert.
-
Beispielhafte Vorrichtungen und Systeme
-
1 zeigt ein beispielhaftes Computersystem 100 zur Vorhersage der Bewegung von Nutzereingabeobjekten in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Das System 100 enthält eine Nutzercomputervorrichtung 102, ein Maschinenlerncomputersystem 130 und ein Trainingscomputersystem 150, die über ein Netz 180 kommunikationstechnisch gekoppelt sind.
-
Die Nutzercomputervorrichtung 102 kann irgendein Typ einer Computervorrichtung wie etwa z. B. eine Personal-Computer-Vorrichtung (z. B. Laptop oder Desktop), eine Mobilcomputervorrichtung (z. B. Smartphone oder Tablet), eine Spielekonsole oder ein Spielecontroller, eine am Körper tragbare Computervorrichtung, eine eingebettete Computervorrichtung oder irgendein anderer Typ einer Computervorrichtung sein.
-
Die Nutzercomputervorrichtung 102 enthält einen oder mehrere Prozessoren 112 und einen Arbeitsspeicher 114. Der eine oder die mehreren Prozessoren 112 können irgendeine geeignete Verarbeitungsvorrichtung (z. B. ein Prozessorkern, ein Mikroprozessor, eine ASIC, ein FPGA, ein Controller, ein Mikrocontroller usw.) sein und können ein Prozessor oder mehrere Prozessoren, die funktional verbunden sind, sein. Der Arbeitsspeicher 114 kann ein oder mehrere nicht transitorische computerlesbare Speichermedien wie etwa RAM, ROM, EEPROM, EPROM, Flash-Arbeitsspeichervorrichtungen, Magnetplatten usw. und Kombinationen davon enthalten. Der Arbeitsspeicher 114 kann Daten 116 und Anweisungen 118 speichern, die durch den Prozessor 112 ausgeführt werden, um zu veranlassen, dass die Nutzercomputervorrichtung 102 Operationen ausführt.
-
Die Nutzercomputervorrichtung 102 kann ein oder mehrere Bewegungsvorhersagemodelle 120 speichern oder enthalten. Zum Beispiel können das eine oder die mehreren Bewegungsvorhersagemodelle 120 von dem Maschinenlerncomputersystem 130 über das Netz 180 empfangen werden, in dem Nutzercomputervorrichtungs-Arbeitsspeicher 114 gespeichert werden und daraufhin durch den einen oder die mehreren Prozessoren 112 verwendet oder auf andere Weise implementiert werden. In einigen Implementierungen kann die Nutzercomputervorrichtung 102 mehrere parallele Instanzen eines einzelnen Bewegungsvorhersagemodells 120 implementieren (um z. B. für mehrere Nutzereingabeobjekte eine parallele Bewegungsvorhersage auszuführen).
-
Außerdem kann die Nutzercomputervorrichtung 102 eine Nutzereingabekomponente 122 enthalten, die eine Nutzereingabe über Bewegung eines Nutzereingabeobjekts empfängt. Die Nutzereingabekomponente 122 kann z. B. eine berührungsempfindliche Komponente (z. B. ein berührungsempfindlicher Anzeigebildschirm oder ein berührungsempfindliches Touchpad) sein, die empfindlich für die Berührung eines Nutzereingabeobjekts (z. B. eines Fingers oder eines Eingabestifts) ist. Allerdings kann die Nutzereingabekomponente 122 andere Komponenten enthalten, die in der Lage sind, eine Nutzereingabe durch Bewegung eines Nutzereingabeobjekts zu empfangen. Zum Beispiel kann die Nutzereingabekomponente 122 die Bewegung eines Nutzereingabeobjekts durch Computersichtsysteme, die durch eine Kamera der Vorrichtung 102 erhobene Bilder analysieren, oder durch Verwendung von Radar (z. B. Miniaturradar), um eine berührungslose gestenbasierte Nutzereingabe zu detektieren, nachführen. Somit ermöglicht die Bewegung eines Nutzereingabeobjekts in Bezug zu der Nutzereingabekomponente 122, dass der Nutzer eine Nutzereingabe in die Computervorrichtung 102 bereitstellt.
-
Das Maschinenlerncomputersystem 130 enthält einen oder mehrere Prozessoren 132 und einen Arbeitsspeicher 134. Der eine oder die mehreren Prozessoren 132 können irgendeine geeignete Verarbeitungsvorrichtung (z. B. ein Prozessorkern, ein Mikroprozessor, eine ASIC, eine FPGA, ein Controller, ein Mikrocontroller usw.) sein und können ein Prozessor oder mehrere Prozessoren, die funktional verbunden sind, sein. Der Arbeitsspeicher 134 kann ein oder mehrere nicht transitorische computerlesbare Speichermedien wie etwa RAM, ROM, EEPROM, EPROM, Flash-Arbeitsspeichervorrichtungen, Magnetplatten usw. und Kombinationen davon enthalten. Der Arbeitsspeicher 134 kann Daten 136 und Anweisungen 138, die durch den Prozessor 132 ausgeführt werden, um zu veranlassen, dass das Maschinenlerncomputersystem 130 Operationen ausführt, speichern.
-
In einigen Implementierungen enthält das Maschinenlerncomputersystem 130 eine oder mehrere Servercomputervorrichtungen oder ist es auf andere Weise durch solche implementiert. In Fällen, in denen das Maschinenlerncomputersystem 130 mehrere Servercomputervorrichtungen enthält, können diese Servercomputervorrichtungen in Übereinstimmung mit sequentiellen Computerarchitekturen, parallelen Computerarchitekturen oder einigen Kombinationen davon arbeiten.
-
Das Maschinenlerncomputersystem 130 speichert oder enthält auf andere Weise ein oder mehrere maschinengelernte Bewegungsvorhersagemodelle 140. Die Bewegungsvorhersagemodelle 140 können z. B. verschiedene maschinengelernte Modelle wie etwa neuronale Netze (z. B. tief rekurrente neuronale Netze) oder andere nichtlineare Mehrschichtmodelle sein oder auf andere Weise enthalten. Beispielhafte Bewegungsvorhersagemodelle 140 sind anhand von 2–4 diskutiert.
-
Das Maschinenlerncomputersystem 130 kann die Bewegungsvorhersagemodelle 140 über Interaktion mit dem Trainingscomputersystem 150, das über das Netz 180 kommunikationstechnisch gekoppelt ist, trainieren. Das Trainingscomputersystem 150 kann getrennt von dem Maschinenlerncomputersystem 130 sein oder kann ein Teil des Maschinenlerncomputersystems 130 sein.
-
Das Trainingscomputersystem 150 enthält einen oder mehrere Prozessoren 152 und einen Arbeitsspeicher 154. Der eine oder die mehreren Prozessoren 152 können irgendeine geeignete Verarbeitungsvorrichtung (z. B. ein Prozessorkern, ein Mikroprozessor, eine ASIC, eine FPGA, ein Controller, ein Mikrocontroller usw.) sein und können ein Prozessor oder mehrere Prozessoren, die funktional verbunden sind, sein. Der Arbeitsspeicher 154 kann ein oder mehrere nicht transitorische computerlesbare Speichermedien wie etwa RAM, ROM, EEPROM, EEPROM, Flash-Arbeitsspeichervorrichtungen, Magnetplatten usw. und Kombinationen davon enthalten. Der Arbeitsspeicher 154 kann Daten 156 und Anweisungen 158, die durch den Prozessor 152 ausgeführt werden, um zu veranlassen, dass das Trainingscomputersystem 150 Operationen ausführt, speichern. In einigen Implementierungen enthält das Trainingscomputersystem 150 ein oder mehrere Servercomputervorrichtungen oder ist es auf andere Weise als diese implementiert.
-
Das Trainingscomputersystem 150 kann einen Modelltrainer 160 enthalten, der die in dem Maschinenlerncomputersystem 130 gespeicherten maschinengelernten Modelle 140 unter Verwendung verschiedener Trainings- oder Lerntechniken wie etwa z. B. Rückwärtsfortpflanzung (z. B. abgeschnittene Rückwärtsfortpflanzung über die Zeit) trainiert. Der Modelltrainer 160 kann eine Anzahl von Verallgemeinerungstechniken (z. B. Weight Decays, Dropouts usw.) ausführen, um die Verallgemeinerungsfähigkeit der Modelle, die trainiert werden, zu verbessern.
-
Insbesondere kann der Modelltrainer 160 ein Bewegungsvorhersagemodell 140 auf der Grundlage einer Menge von Trainingsdaten 142 trainieren. Die Trainingsdaten 142 können Ground-Truth-Bewegungsdaten (z. B. Ground-Truth-Vektoren, die aufgezeichnete Nutzereingabeobjektwege, Trajektorien, Orte oder andere Bewegungsdaten beschreiben) enthalten. In einigen Implementierungen können die Trainingsbeispiele durch die Nutzercomputervorrichtung 102 (z. B. auf der Grundlage von Nutzereingabetätigkeiten, die durch den Nutzer der Nutzercomputervorrichtung 102 ausgeführt werden) bereitgestellt werden. Somit kann das für die Nutzercomputervorrichtung 102 bereitgestellte Modell 120 in solchen Implementierungen durch das Trainingscomputersystem 150 an nutzerspezifischen Bewegungsdaten trainiert werden, die von der Nutzercomputervorrichtung 102 empfangen werden.
-
Der Modelltrainer 160 enthält eine Computerlogik, die genutzt wird, um eine gewünschte Funktionalität bereitzustellen. Der Modelltrainer 160 kann in Hardware, in Firmware und/oder in Software, die einen Universalprozessor steuert, implementiert werden. Zum Beispiel enthält der Modelltrainer 160 in einigen Implementierungen Programmdateien, die in einer Speichervorrichtung gespeichert sind, in einen Arbeitsspeicher geladen werden und durch einen oder mehrere Prozessoren ausgeführt werden. In anderen Implementierungen enthält der Modelltrainer 160 einen oder mehrere Sätze durch einen Computer ausführbarer Anweisungen, die in einem konkreten computerlesbaren Speichermedium wie etwa in einer RAM-Festplatte oder in optischen oder magnetischen Medien gespeichert sind.
-
Das Netz 180 kann irgendein Typ eines Kommunikationsnetzes wie etwa ein lokales Netz (z. B. ein Intranet), ein Weitverkehrsnetz (z. B. das Internet) oder eine Kombination davon sein und kann irgendeine Anzahl verdrahteter oder drahtloser Übertragungsstrecken enthalten. Allgemein kann die Kommunikation über das Netz 180 unter Verwendung einer breiten Vielfalt von Kommunikationsprotokollen (z. B. TCP/IP, HTTP, SMTP, FTP), Codierungen oder Formaten (z. B. HTML, XML) und/oder Schutzschemata (z. B. VPN, sicheres HTTP, SSL) über irgendeinen Typ einer verdrahteten und/oder drahtlosen Verbindung ausgeführt werden.
-
1 stellt ein beispielhaftes Computersystem dar, das zum Implementieren der vorliegenden Offenbarung verwendet werden kann. Andere Computersysteme können ebenfalls verwendet werden. Zum Beispiel kann die Nutzercomputervorrichtung in einigen Implementierungen den Modelltrainer und den Trainingsdatensatz enthalten. In diesen Implementierungen können die Bewegungsvorhersagemodelle lokal bei der Nutzercomputervorrichtung sowohl trainiert als auch verwendet werden.
-
Beispielhafte Bewegungsvorhersagemodelle
-
2 zeigt ein beispielhaftes Bewegungsvorhersagemodell 200 in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Das Bewegungsvorhersagemodell 200 enthält ein rekurrentes neuronales Netz 202. Das rekurrente neuronale Netz 202 kann z. B. ein tief rekurrentes neuronales Netz sein. Das rekurrente neuronale Netz 202 kann z. B. ein neuronales Mehrschicht-LSTM-Netz oder ein neuronales Mehrschicht-GRU-Netz sein.
-
Das rekurrente neuronale Netz 202 kann eine jüngste Bewegungshistorie 206 eines Nutzereingabeobjekts als eine Eingabe empfangen. Die jüngste Bewegungshistorie 206 kann z. B. die Form einer Ortsaktualisierung annehmen. Die jüngste Bewegungshistorie 206 kann den Ort des Nutzereingabeobjekts im Zeitverlauf beschreiben.
-
Als ein Beispiel kann die Bewegungshistorie 206 einen oder mehrere Einträge des Objektorts und der Zeit enthalten. Die Menge von Bewegungsdaten kann z. B. einen oder mehrere Einträge enthalten, die den Ort des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und ebenfalls einen jedem Ort zugeordneten Zeitstempel bereitstellen.
-
Als ein anderes Beispiel kann die Bewegungstrajektorie 206 einen oder mehrere Einträge enthalten, die eine Änderung des Orts des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und außerdem einen Zeitstempel oder eine Änderung der Zeit, der bzw. die jedem Paar der Änderung des x-Werts und der Änderung des y-Werts zugeordnet ist, beschreiben.
-
In einigen Implementierungen wird die Bewegungshistorie 206 auf Online-Art in das rekurrente neuronale Netz 202 eingegeben. Zum Beispiel können während der Verwendung im Feld in jedem Fall, in dem von dem relevanten Sensor bzw. von den relevanten Sensoren (z. B. von dem berührungsempfindlichen Anzeigebildschirm) eine Nutzereingabeobjekt-Bewegungsaktualisierung 206 empfangen wird, die jüngste Bewegungsdatenaktualisierung 206 (z. B. die Werte für Änderungen von x, y und für die Zeit) in das rekurrente neuronale Netz 202 eingespeist werden. Somit ist ein durch das rekurrente neuronale Netz 202 geschaffener Vorteil die Fähigkeit, Kontexte von vorhergehenden Aktualisierungen 206 aufrechtzuerhalten, während neue Bewegungsaktualisierungen 206 auf die oben beschriebene Online-Art eingegeben werden.
-
In abermals weiteren Implementierungen können in das rekurrente neuronale Netz 202 zusammen mit der Bewegungshistorie 206 zusätzliche Daten eingegeben werden, die das Nutzereingabeobjekt beschreiben. Zum Beispiel können Informationen (z. B. Sensordaten) über den Nutzereingabeobjektdruck auf den berührungsempfindlichen Anzeigebildschirm, den Nutzereingabeobjektradius auf dem berührungsempfindlichen Anzeigebildschirm oder andere Nutzereingabeobjektparameter erhoben und für das rekurrente neuronale Netz 202 bereitgestellt werden.
-
In Ansprechen auf den Empfang der Bewegungshistorie 206 kann das rekurrente neuronale Netz 202 einen hochdimensionalen Kontextvektor 210 ausgeben. Der hochdimensionale Kontextvektor 210 kann z. B. Merkmale für über einhundert Dimensionen besitzen.
-
Außerdem enthält das Bewegungsvorhersagemodell 200 ein vorwärtsgekoppeltes neuronales Netz 204. Das vorwärtsgekoppelte neuronale Netz 204 empfängt den hochdimensionalen Kontextvektor 210. Außerdem empfängt das vorwärtsgekoppelte neuronale Netz 204 Informationen, die wenigstens einen künftigen Zeitpunkt 208 beschreiben. Die Informationen 208 können z. B. ein Zeitvektor sein, der eine Liste von Zeitdauern (z. B. 10 ms, 20 ms, 30 ms usw.). bereitstellt, von denen gewünscht ist, dass sie durch das Bewegungsvorhersagemodell 200 vorhergesagt werden
-
In Ansprechen auf den Empfang des hochdimensionalen Kontextvektors 210 und des wenigstens einen künftigen Zeitpunkts 208 gibt das vorwärtsgekoppelte neuronale Netz 204 einen Bewegungsvorhersagevektor 212 aus. Der Bewegungsvorhersagevektor 212 kann für jeden der wenigstens einen künftigen Zeitpunkte 208 einen vorhergesagten künftigen Ort des Nutzereingabeobjekts beschreiben.
-
Als ein anderes Beispiel zeigt 3 ein anderes beispielhaftes Bewegungsvorhersagemodell 300 in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Das Bewegungsvorhersagemodell 300 enthält ein rekurrentes neuronales Netz 302. Das rekurrente neuronale Netz 302 kann ähnlich dem rekurrenten neuronalen Netz 202 aus 2 sein.
-
Allerdings enthält das rekurrente neuronale Netz 302 in dem Modell 300 aus 3 sowohl eine jüngste Bewegungshistorie eines Nutzereingabeobjekts 304 als auch Informationen, die wenigstens einen künftigen Zeitpunkt 306 beschreiben. In Ansprechen auf den Empfang der Bewegungshistorie 304 und des wenigstens einen künftigen Zeitpunkts 306 gibt das rekurrente neuronale Netz 302 einen Bewegungsvorhersagevektor 308 aus. Der Bewegungsvorhersagevektor 308 kann für jeden der wenigstens einen künftigen Zeitpunkte 306 einen vorhergesagten künftigen Ort des Nutzereingabeobjekts beschreiben.
-
Als ein abermals anderes Beispiel zeigt 4 ein anderes beispielhaftes Bewegungsvorhersagemodell 400 in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Wie durch gleiche Bezugszeichen für verschiedene sowohl in 2 als auch in 4 dargestellte Komponenten und Daten angegeben ist, ist das Modell 400 sehr ähnlich dem Modell 200 aus 2. Allerdings enthält das Modell 400 anstelle des vorwärtsgekoppelten Netzes 204 des Modells 200 aus 2 eine rekurrentes neuronales Decodernetz 404.
-
Beispielhafte Verfahren
-
5 zeigt einen Ablaufplan eines beispielhaften Verfahrens 500 zum Vorhersagen der Bewegung von Nutzereingabeobjekten in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung.
-
Bei 502 erhält eine Computervorrichtung eine erste Menge von Bewegungsdaten, die einem Nutzereingabeobjekt zugeordnet sind. Die erste Menge von Bewegungsdaten können einen Ort des Nutzereingabeobjekts im Zeitverlauf beschreiben. Zum Beispiel können von verschiedenen Sensoren (z. B. von einem berührungsempfindlichen Anzeigebildschirm oder von anderen Nutzereingabekomponenten) empfangene Daten erhoben und verarbeitet werden, um die Menge von Bewegungsdaten zu erzeugen. Als ein Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge des Objektorts und der Zeit enthalten. Zum Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge enthalten, die den Ort des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und außerdem einen jedem Ort zugeordneten Zeitstempel bereitstellen.
-
Als ein anderes Beispiel kann die Menge von Bewegungsdaten einen oder mehrere Einträge enthalten, die eine Änderung des Orts des Nutzereingabeobjekts sowohl in der x- als auch in der y-Dimension und außerdem einen Zeitstempel oder eine Änderung der Zeit, die jedem Paar der Änderung des x- und der Änderung des y-Werts zugeordnet ist, beschreiben. In einigen Implementierungen wird die Menge von Bewegungsdaten iterativ aktualisiert, aufgefrischt oder erzeugt, während eine zusätzliche Bewegung des Nutzereingabeobjekts detektiert wird. Somit kann das Verfahren 500 z. B. auf iterative Weise ausgeführt werden, während Ortsaktualisierungen empfangen werden.
-
Bei 504 gibt die Computervorrichtung die erste Menge von Bewegungsdaten in ein rekurrentes neuronales Netz eines Bewegungsvorhersagemodells ein. In einigen Implementierungen kann die Computervorrichtung zusätzliche Daten erheben, die das Nutzereingabeobjekt beschreiben, und diese Daten zusammen mit der Menge von Bewegungsdaten bei 504 in das Bewegungsvorhersagemodell eingeben. Zum Beispiel können Informationen (z. B. Sensordaten) über den Nutzereingabeobjektdruck auf den berührungsempfindlichen Anzeigebildschirm, den Nutzereingabeobjektradius auf dem berührungsempfindlichen Anzeigebildschirm oder andere Nutzereingabeobjektparameter erhoben und zur Verwendung bei der Vorhersage des künftigen Orts des Nutzereingabeobjekts für das Bewegungsvorhersagemodell bereitgestellt werden.
-
In einigen Implementierungen enthält das Bewegungsvorhersagemodell zwei Phasen. In einer ersten Phase gibt die Computervorrichtung die Menge von Bewegungsdaten in ein rekurrentes neuronales Netz (z. B. ein neuronales Long-Short-Term-Memory-Netz (LSTM-Netz), in ein neuronales Gated-Recurrent-Unit-Netz (GRU-Netz) oder in andere Formen rekurrenter neuronaler Netze ein. Das rekurrente neuronale Netz gibt in Ansprechen auf den Empfang der Menge von Bewegungsdaten einen hochdimensionalen Kontextvektor aus.
-
In einer zweiten Phase des Bewegungsvorhersagemodells wird der hochdimensionale Kontextvektor in ein vorwärtsgekoppeltes neuronales Netz eingegeben. Außerdem gibt die Computervorrichtung in einigen Implementierungen zusammen mit dem hochdimensionalen Kontextvektor einen Zeitvektor in das vorwärtsgekoppelte neuronale Netz ein. Der Zeitvektor kann eine Liste von Zeitdauern (z. B. 10 ms, 20 ms usw.) bereitstellen, von denen gewünscht ist, dass sie durch das Bewegungsvorhersagemodell vorhergesagt werden. Somit kann der Zeitvektor einen oder mehrere künftige Zeitpunkte beschreiben, zu denen der Ort des Nutzereingabeobjekts vorhergesagt werden soll.
-
In Ansprechen auf den Empfang des hochdimensionalen Kontextvektors und des Zeitvektors kann das vorwärtsgekoppelte Netz für jeden Zeitpunkt oder für jede Zeitdauer, der bzw. die durch den Zeitvektor beschrieben ist, einen Bewegungsvorhersagevektor ausgeben, der einen vorhergesagten künftigen Ort des Nutzereingabeobjekts beschreibt. Insbesondere empfängt die Computervorrichtung wieder anhand von 5 bei 506 als eine Ausgabe des Bewegungsvorhersagemodells den Bewegungsvorhersagevektor, der jeweils für einen oder mehrere künftige Zeitpunkte einen oder mehrere vorhergesagte künftige Orte des Nutzereingabeobjekts beschreibt.
-
In einigen Implementierungen kann das vorwärtsgekoppelte Netz der zweiten Phase durch ein rekurrentes neuronales Decodernetz ersetzt sein. In anderen Implementierungen kann das oben beschriebene Zweiphasen-Hybrid-Bewegungsvorhersagemodell durch ein einzelnes gestapeltes rekurrentes neuronales Netz (z. B. ein neuronales LSTM-Netz) ersetzt sein. Insbesondere in solchen Implementierungen können sowohl der Zeitvektor als auch die Menge von Bewegungsdaten bei 504 in das rekurrente neuronale Netz eingegeben werden. Bei 506 kann das rekurrente neuronale Netz den Bewegungsvorhersagevektor in Ansprechen auf den Empfang des Zeitvektors und der Menge von Bewegungsdaten ausgeben.
-
In einigen Implementierungen kann die Computervorrichtung die Bewegungsdaten für das Nutzereingabeobjekt in das rekurrente neuronale Netz bei 504 auf Online-Art einspeisen. Zum Beispiel kann während der Verwendung im Feld in jedem Fall, in dem bei 502 von dem relevanten Sensor bzw. von den relevanten Sensoren (z. B. von dem berührungsempfindlichen Anzeigebildschirm) eine Nutzereingabeobjekt-Bewegungsaktualisierung empfangen wird, bei 504 die letzte Bewegungsdatenaktualisierung (z. B. Werte für Änderungen von x, y und der Zeit) in das rekurrente neuronale Netz eingespeist werden. Somit können die Bewegungsdatenerhebung bei 502 und die Bewegungsvorhersage bei 504–506 iterativ ausgeführt werden, während zusätzliche Bewegungsdaten für das Nutzereingabeobjekt erhoben werden. Somit ist ein Vorteil, der durch die Verwendung rekurrenter neuronaler Netze geschaffen wird, die Fähigkeit, den Kontext von vorhergehenden Aktualisierungen aufrechtzuerhalten, während neue Bewegungsaktualisierungen in der oben beschriebenen Online-Art eingegeben werden.
-
Bei 508 führt die Computervorrichtung eine oder mehrere Tätigkeiten aus, die durch eine Eingabeoption angefordert werden, die einen oder mehrere durch den Bewegungsvorhersagevektor beschriebene vorhergesagte künftige Orte enthält. Zum Beispiel können die vorhergesagten künftigen Orte des Nutzereingabeobjekts so behandelt werden, als ob sie durch die Nutzereingabekomponente (z. B. durch den berührungsempfindlichen Anzeigebildschirm) empfangen würden. Somit kann der vorhergesagte Ort des Nutzereingabeobjekts dazu verwendet werden, eine Nutzereingabetätigkeit (z. B. eine Tätigkeit des Wischens nach links), deren Anfangsteil durch die bei 502 erhaltene Menge von Bewegungsdaten beschrieben ist, abzuschließen. Somit können vorhergesagte künftige Nutzereingabeobjektorte einer angeforderten Tätigkeit (z. B. Berechnungstätigkeiten, die durch das Wischen nach links angefordert werden) entsprechen und kann die angeforderte Tätigkeit bzw. können die angeforderten Tätigkeiten (z. B. Rendern des Anzeigebildschirms in der Weise, dass ein zuvor auf dem Bildschirm angezeigtes Element nach link gewischt worden ist) bei 508 ausgeführt werden.
-
6 zeigt einen Ablaufplan eines beispielhaften Verfahrens 600 zum Trainieren eines Bewegungsvorhersagemodells in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Insbesondere können die hier beschriebenen Bewegungsvorhersagemodelle in Übereinstimmung mit einem anderen Aspekt der vorliegenden Offenbarung unter Verwendung einer neuen Verlustfunktion an Ground-Truth-Bewegungsdaten trainiert werden. Ein Trainingscomputersystem kann die Bewegungsvorhersagemodelle unter Verwendung eines Trainingsdatensatzes trainieren, der eine Anzahl von Mengen von Ground-Truth-Bewegungsdaten für Nutzereingabeobjekte enthält. Der Trainingsdatensatz kann z. B. Bewegungsdaten enthalten, die eine große Anzahl zuvor beobachteter Bewegungstrajektorien von Nutzereingabeobjekten beschreiben.
-
Als ein Beispiel zeigt 7 eine graphische Darstellung beispielhafter Bewegungsvektoren in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Insbesondere stellt 7 eine Menge von Ground-Truth-Bewegungsdaten dar, die vier Ground-Truth-Bewegungsvektoren enthält: 700, 702, 704 und 706. Diese Ground-Truth-Bewegungsvektoren 700, 702, 704 und 706 können eine Menge von Ground-Truth-Bewegungsdaten bilden, die für das Training des Modells verwendbar sind. Die Ground-Truth-Bewegungsvektoren 700, 702, 704 und 706 können eine zuvor beobachtete Nutzereingabeobjekttrajektorie/Nutzereingabeobjektspur beschreiben. 7 ist als ein vereinfachtes Beispiel zur Erläuterung gegeben und die vorliegende Offenbarung ist nicht auf das in 7 gezeigte Beispiel beschränkt.
-
Wieder anhand von 6 gibt die Computervorrichtung bei 602 einen ersten Teil einer Menge von Ground-Truth-Bewegungsdaten in ein Bewegungsvorhersagemodell ein. Zum Beispiel kann die Computervorrichtung bei 602 den ersten Ground-Truth-Bewegungsvektor 700 in das Bewegungsvorhersagemodell eingeben. Die Eingabe des ersten Ground-Truth-Bewegungsvektors 700 ist nur als ein Beispiel gegeben. In anderen Fällen können bei 602 mehr als ein Ground-Truth-Bewegungsvektor eingegeben werden.
-
In Ansprechen auf den Empfang dieses ersten Teils gibt das Bewegungsvorhersagemodell einen Bewegungsvorhersagevektor aus, der den Rest der Menge von Ground-Truth-Bewegungsdaten vorhersagt. Somit empfängt die Computervorrichtung bei 604 einen Bewegungsvorhersagevektor als eine Ausgabe des Bewegungsvorhersagemodells.
-
Als ein Beispiel kann wieder anhand von 7 das Bewegungsvorhersagemodell in Ansprechen auf den Empfang des ersten Ground-Truth-Bewegungsvektors 700 einen Bewegungsvorhersagevektor ausgeben, der drei vorhergesagte künftige Orte für das Nutzereingabeobjekt identifiziert. Dieser Bewegungsvorhersagevektor ist durch die vorhergesagten Vektoren 722, 724 und 726 zusammen graphisch dargestellt. Zum Beispiel verläuft der erste vorhergesagte Vektor 722 von dem letzten bekannten Ort des Nutzereingabeobjekts zu dem ersten vorhergesagten künftigen Ort des Nutzereingabeobjekts; verläuft der zweite vorhergesagte Vektor 724 von dem ersten vorhergesagten künftigen Ort zu dem zweiten vorhergesagten künftigen Ort; und verläuft der dritte vorhergesagte Vektor 726 von dem zweiten vorhergesagten künftigen Ort zu dem dritten vorhergesagten künftigen Ort. Die Aufnahme dreier vorhergesagter künftiger Orte in den Bewegungsvorhersagevektor ist nur als ein Beispiel gegeben. Der Bewegungsvorhersagevektor kann irgendeine Anzahl (z. B. einen oder mehrere) vorhergesagte künftige Orte (z. B. wie durch den Eingabezeitvektor geführt) enthalten.
-
Wieder anhand von 6 bestimmt die Computervorrichtung bei 606 eine Verlustfunktion, die eine Differenz zwischen dem Bewegungsvorhersagevektor und einem zweiten Teil der Menge von Ground-Truth-Bewegungsdaten beschreibt. Die Verlustfunktion kann z. B. in Übereinstimmung mit einem Aspekt der vorliegenden Offenbarung in einigen Implementierungen die Form eines neuen Fehlerverhältnisses annehmen oder es auf andere Weise enthalten. Das Fehlerverhältnis kann als eine Summe von Längen eines oder mehrerer Fehlervektoren, dividiert durch eine Summe der Längen eines oder mehrerer Ground-Truth-Vektoren, die vorherzusagen versucht wurden, definiert sein. In anderen Implementierungen können anstelle der Summen selbst die Quadrate der Summen verwendet werden. In einigen Implementierungen kann das Trainingscomputersystem die Verlustfunktion für einen gesamten Ministapel von Trainingsdaten auf einmal bestimmen.
-
Als ein Beispiel können wieder anhand von 7 auf der Grundlage einer Differenz zwischen den vorhergesagten Vektoren 722, 724, 726 und in dieser Reihenfolge entsprechenden Ground-Truth-Bewegungsvektoren 702, 704 und 706 in dieser Reihenfolge eine Menge von Fehlervektoren 742, 744 und 746 definiert werden. Um das Beispiel fortzusetzen, kann das Fehlerverhältnis als die Summe der Längen der Vektoren 742, 744 und 746, dividiert durch die Summe der Längen der Vektoren 702, 704 und 706, definiert sein. In einigen Implementierungen wird dieses Fehlerverhältnis für einen gesamten Stapel von Trainingsdaten, nicht nur für ein einzelnes Paar von Ground-Truth-Daten und Bewegungsvorhersagevektoren, bestimmt.
-
Die Verwendung eines Fehlerverhältnisses, das sich auf das "Verhältnis von Durchschnitten" oder "den Durchschnitt von Summationen" wie hier beschrieben stützt, verhindert Fehler der Division durch null, die auftreten würden, falls jede Fehlervektor/Ground-Truth-Vektor-Kombination getrennt betrachtet würde, da es dort einige Fälle (z. B. die Bewegung null des Nutzereingabeobjekts) gibt, in denen der Ground-Truth-Vektor null ist.
-
Außerdem verbessert die Verwendung des Fehlerverhältnisses wie hier beschrieben die Skaleninvarianz des Bewegungsvorhersagemodells. Zum Beispiel können einige oder alle der Trainingsdaten und/oder der Feldverwendungsdaten dafür formatiert werden, die Bewegung oder den Ort in Einheiten von Pixeln zu beschreiben, die üblicherweise auflösungsabhängig sind. Somit ermöglicht die Verwendung des Fehlerverhältnisses ein Einheits-agnostisches Training. Allerdings kann die Verlustfunktion in anderen Implementierungen zusätzlich oder alternativ zu dem hier beschriebenen Fehlerverhältnis andere Fehlermaße enthalten. Alternative Fehlermaße enthalten z. B. den mittleren quadratischen Fehler, den L1-Verlust, den L2-Verlust oder andere Maße.
-
Wieder anhand von 6 trainiert die Computervorrichtung bei 608 das Bewegungsvorhersagemodell auf der Grundlage der Verlustfunktion. Die Computervorrichtung kann z. B. eine abgeschnittene Rückwärtsfortpflanzung über die Zeit ausführen, um die Verlustfunktion über das Bewegungsvorhersagemodell rückwärts fortzupflanzen. Optional können bei 608 eine Anzahl von Verallgemeinerungstechniken (z. B. Weight Decays, Dropouts usw.) ausgeführt werden, um die Verallgemeinerungsfähigeit der Modelle, die trainiert werden, zu verbessern.
-
Nachdem das Modell bei 608 trainiert worden ist, kann es für eine Nutzercomputervorrichtung zur Verwendung beim Vorhersagen der Bewegung eines Nutzereingabeobjekts bei der Nutzercomputervorrichtung bereitgestellt und in ihr gespeichert werden. Insbesondere kann die in 602–608 beschriebene Trainingsprozedur mehrmals (z. B. bis sich eine Zielverlustfunktion nicht verbessert) wiederholt werden, um das Modell zu trainieren.
-
Als ein anderes Beispiel zeigt 8 eine graphische Darstellung beispielhafter Bewegungsvektoren in Übereinstimmung mit beispielhaften Ausführungsformen der vorliegenden Offenbarung. Insbesondere stellt 8 eine Menge von Ground-Truth-Bewegungsdaten dar, die vier Ground-Truth-Bewegungsvektoren enthält: 800, 802, 804 und 806. Diese Ground-Truth-Bewegungsvektoren 800, 802, 804 und 806 können eine Menge von Ground-Truth-Bewegungsdaten bilden, die für das Training des Modells geeignet sind. Die Ground-Truth-Bewegungsvektoren 800, 802, 804 und 806 können eine zuvor beobachtete Nutzereingabeobjekttrajektorie/Nutzereingabeobjektspur beschreiben. 8 ist als ein vereinfachtes Beispiel zur Erläuterung gegeben und die vorliegende Offenbarung ist nicht auf das in 8 gezeigte Beispiel beschränkt.
-
Um das Beispiel fortzusetzen, kann ein Bewegungsvorhersagemodell in Ansprechen auf den Empfang des ersten Ground-Truth-Bewegungsvektors 800 einen Bewegungsvorhersagevektor ausgeben, der für das Nutzereingabeobjekt drei vorhergesagte künftige Orte identifiziert. Die Bewegungsvorhersagevektoren sind zusammen durch vorhergesagte Vektoren 822, 824 und 826 graphisch dargestellt. Zum Beispiel verläuft der erste vorhergesagte Vektor 822 von dem letzten bekannten Ort des Nutzereingabeobjekts zu dem ersten vorhergesagten künftigen Ort des Nutzereingabeobjekts; verläuft der zweite vorhergesagte Vektor 824 von dem letzten bekannten Ort des Nutzereingabeobjekts zu dem zweiten vorhergesagten künftigen Ort; und verläuft der dritte vorhergesagte Vektor 826 von dem letzten bekannten Ort des Nutzereingabeobjekts zu dem dritten vorhergesagten künftigen Ort. Die Aufnahme dreier vorhergesagter künftiger Orte in den Bewegungsvorhersagevektor ist nur beispielhaft gegeben. Der Bewegungsvorhersagevektor kann irgendeine Anzahl (z. B. einen oder mehrere) vorhergesagte künftige Orte (z. B. wie durch den Eingabezeitvektor geführt) enthalten.
-
Außerdem kann eine Menge von Fehlervektoren 842, 844 und 846 in dieser Reihenfolge auf der Grundlage einer Differenz zwischen den vorhergesagten Vektoren 822, 824 und 826 und jeweils den entsprechenden Orten, die durch die Ground-Truth-Bewegungsvektoren 802, 804 und 806 bereitgestellt werden, definiert werden. Um das Beispiel fortzusetzen, kann das Fehlerverhältnis als die Summe der Längen der Vektoren 842, 844 und 846, dividiert durch die Summe der Länge des Vektors 802, der Länge der Vektoren 802 + 804 und der Länge der Vektoren 802 + 804 + 806, definiert werden. In einigen Implementierungen wird dieses Fehlerverhältnis für einen gesamten Stapel von Trainingsdaten, nicht nur für ein einzelnes Paar von Ground-Truth-Daten und Bewegungsvorhersagevektoren, bestimmt.
-
Zusätzliche Offenbarung
-
Die hier diskutierte Technologie nimmt Bezug auf Server, Datenbanken, Softwareanwendungen und andere computergestützte Systeme sowie Tätigkeiten, die ausgeführt werden, und Informationen, die zu und von diesen Systemen gesendet werden. Die inhärente Flexibilität computergestützter Systeme ermöglicht eine große Vielfalt möglicher Konfigurationen, Kombinationen und Teilungen von Aufgaben und der Funktionalität zwischen und unter Komponenten. Zum Beispiel können hier diskutierte Prozesse unter Verwendung einer einzelnen Vorrichtung oder Komponente oder mehrerer Vorrichtungen oder Komponenten, die zusammenarbeiten, implementiert werden. Datenbanken und Anwendungen können in einem einzelnen System oder verteilt über mehrere Systeme implementiert werden. Verteilte Komponenten können sequentiell oder parallel arbeiten.
-
Obgleich der vorliegende Gegenstand in Bezug auf verschiedene spezifische beispielhafte Ausführungsformen davon ausführlich beschrieben worden ist, ist jedes Beispiel beispielhaft und nicht zur Beschränkung der Offenbarung gegeben. Der Fachmann auf dem Gebiet kann beim Erreichen eines Verständnisses des Vorstehenden leicht Änderungen, Varianten und Entsprechungen solcher Ausführungsformen erzeugen. Dementsprechend schließt der Gegenstand die Aufnahme solcher Änderungen, Varianten und/oder Hinzufügungen zu dem vorliegenden Gegenstand, wie sie dem Durchschnittsfachmann auf dem Gebiet einfallen, nicht aus. Zum Beispiel können Merkmale, die als Teil einer Ausführungsform dargestellt oder beschrieben sind, mit einer anderen Ausführungsform verwendet werden, um eine abermals weitere Ausführungsform zu liefern. Somit soll die vorliegende Offenbarung solche Änderungen, Varianten oder Entsprechungen enthalten.
-
Obgleich 5 bzw. 6 zur Veranschaulichung und Diskussion Schritte zeigen, die in einer bestimmten Reihenfolge ausgeführt werden, sind die Verfahren der vorliegenden Offenbarung insbesondere nicht auf die besondere dargestellte Reihenfolge oder Anordnung beschränkt. Die verschiedenen Schritte der Verfahren 500 und 600 können auf verschiedene Arten weggelassen, umgestellt, kombiniert und/oder angepasst werden, ohne von dem Schutzumfang der vorliegenden Offenbarung abzuweichen.