SYNCHRONIZED INPUT FEEDBACK FOR MACHINE LEARNING
1. A method for providing synchronized input feedback;
- a) receiving an input event;
b) encoding the input event in an output stream wherein the encoding of the input event is synchronized to a specific event;
c) reproducing the output stream through an output device, wherein the encoded input event in the reproduced output stream is imperceptible to the user, when reproduced through the output device.
A method and system for providing synchronized input feedback, comprising receiving an input event, encoding the input event in an output stream wherein the encoding of the input event is synchronized to a specific event and reproducing the output stream through an output device whereby the encoded input event in the reproduced output stream is imperceptible to the user
- 1. A method for providing synchronized input feedback;
a) receiving an input event; b) encoding the input event in an output stream wherein the encoding of the input event is synchronized to a specific event; c) reproducing the output stream through an output device, wherein the encoded input event in the reproduced output stream is imperceptible to the user, when reproduced through the output device.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
- 19. Instructions embedded in a non-transitory computer readable medium that when executed to enact the method comprising:
a) receiving an input event; c) reproducing the output stream through an output device whereby the encoded input event in the reproduced output stream is undetectable to the user.
- 20. A system comprising:
a processor; memory; non-transitory instruction in the memory that when executed cause the processor to enact the method comprising; a) receiving an input event;
- 21. A method for improved machine learning training comprising;
a) receiving an output stream comprising an encoded input event wherein the encoded input event is undetectable to the user; b) filtering the output stream to recover the encoded input event wherein the encoded input event is synchronized to a specific event; c) training a neural network to associate the encoded input event with the specific event.
The present disclosure relates to producing datasets for machine learning. Specifically the present disclosure relates producing datasets with synchronized input feedback for training neural networks.
Quality assurance and release testing of software typically requires several people working many days to discover bugs and ensure that content meets quality standards. Machine learning has been proposed as a way to reduce the amount of workers and time required to perform the quality assurance and release testing tasks. A current difficulty in using machine learning for this field is that training the machines requires workers to repeat the testing procedure a huge number of times while the machine is receiving tester inputs.
It is within this context that embodiments of the present disclosure arise.
The aspects of the present disclosure can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
Although the following detailed description contains many specific details for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the disclosure. Accordingly, examples of embodiments of the disclosure described below are set forth without any loss of generality to, and without imposing limitations upon, the claimed disclosure.
While numerous specific details are set forth in order to provide a thorough understanding of embodiments of the disclosure, it will be understood by those skilled in the art that other embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present disclosure. Some portions of the description herein are presented in terms of algorithms and symbolic representations of operations on data bits or binary digital signals within a computer memory. These algorithmic descriptions and representations may be the techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art.
An algorithm, as used herein, is a self-consistent sequence of actions or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
Unless specifically stated or otherwise as apparent from the following discussion, it is to be appreciated that throughout the description, discussions utilizing terms such as “processing”, “computing”, “converting”, “reconciling”, “determining” or “identifying,” refer to the actions and processes of a computer platform which is an electronic computing device that includes a processor which manipulates and transforms data represented as physical (e.g., electronic) quantities within the processor'"'"'s registers and accessible platform memories into other data similarly represented as physical quantities within the computer platform memories, processor registers, or display screen.
A computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks (e.g., compact disc read only memory (CD-ROMs), digital video discs (DVDs), Blu-Ray Discs™, etc.), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories, or any other type of non-transitory media suitable for storing electronic instructions.
The terms “coupled” and “connected,” along with their derivatives, may be used herein to describe structural relationships between components of the apparatus for performing the operations herein. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. In some instances, “connected”, “connection”, and their derivatives are used to indicate a logical relationship, e.g., between node layers in a neural network (NN). “Coupled” may be used to indicated that two or more elements are in either direct or indirect (with other intervening elements between them) physical or electrical contact with each other, and/or that the two or more elements co-operate or communicate with each other (e.g., as in a cause an effect relationship).
Currently training artificial agents for video game and other software testing requires many workers performing and repeating testing protocols to generate a sufficient amount of training data. Synchronization is major issue, with the current methods all training must be performed live with the machine-learning algorithm receiving tester inputs while the tester is performing their testing protocol. Testing cannot be performed on recorded testing performances because there is currently no way for the machine to synchronize input from the user with specific events occurring within the software environment. Thus, aspects of present disclosure aim to create a system and method for encoding the input events from the user into an output stream so that machine learning will be able to synchronize inputs with specific events occurring in the software environment. In some implementations, synchronization of timing of the inputs with the resulting output can be greatly simplified by combining the input and output timing information into a single output file.
[(f(a)+f(b1)+ . . . f(bn))/(n+1)]t Eq1.
As shown in
Generally, a large amount of training data is required to train a machine learning system, such as a NN, to test software. A key component of software testing is ensuring that the input events correspond to proper software behavior and do not result in crashes or other adverse events that are deleterious to the user experience. As discussed above, current training methods for software testing NNs require testers to perform testing protocols while the NN is learning. This live testing data is used as a labeled dataset. Testing must be performed live as currently there is no easy way of providing synchronized input event information in software environments that are not configured to provide such information to NNs. Such software environments include videogames and user interfaces.
According to aspects of the present disclosure, an input feedback mechanism may improve training of Neural Networks (NN) by providing input event information synchronized to specific events occurring within the audio output stream or video output stream of the system. The follow diagram shown in
Once the encoded input event is separated the from the output stream the NN can be trained using the encoded input event to represent a real input event 303. This method is advantageous because the encoded input event is synchronized with a specific event. This synchronization may be between events in the output stream or events in a different output stream than the output stream comprising the encoded input events. For example and without limitation, the synchronization may between an input event encoded as a tone in the audio stream and the activation of a user interface element in a video stream. Maintenance of this synchronization in an easy to access medium such as an output stream improves training of NN because it allows training with recorded data sets without major changes to the configuration of host systems. As used herein, the term “host system” refers to the device on which the output streams are reproduced and the NN is trained. By way of example, and not by way of limitation, the NN may be trained for software testing according to the methods discussed below.
The neural networks, deep learning or other machine learning that implement the software testing may include one or more of several different types of neural networks and may have many different layers. By way of example and not by way of limitation neural networks may include one or more of convolutional neural networks (CNN), recurrent neural networks (RNN) and/or dynamic neural networks (DNN).
There are a number of ways in which the weights, U, W, V may be configured. The input weight U, for example, may be applied based on video pixel values, sound sample values, input event values or similar. The weights for these different inputs could be stored in a lookup table and applied as needed. There could be default values that the system applies initially. These may then be modified manually by the user or automatically by machine learning.
In some embodiments, a convolutional RNN (CRNN) may be used. Another type of RNN that may be used is a Long Short-Term Memory (LSTM) Neural Network which adds a memory block in a RNN node with input gate activation function, output gate activation function and forget gate activation function resulting in a gating memory that allows the network to retain some information for a longer period of time as described by Hochreiter & Schmidhuber “Long Short-term memory” Neural Computation 9 (8):1735-1780 (1997), which is incorporated herein by reference.
As seen in
where n is the number of inputs to the node.
After initialization the activation function and an optimizer are defined. The NN is then provided with a feature or input dataset 542. In some implementations, the software testing NN may be provided with feature vectors that correspond to inputs having known labeling. The NN then predicts a label or classification for the feature or input 543. The predicted label or class is compared to the known label or class (also known as ground truth) and a loss function measures the total error between the predictions and ground truth over all the training samples 544. By way of example and not by way of limitation the loss function may be a cross entropy loss function, quadratic cost, triplet contrastive function, exponential cost, etc. Multiple different loss functions may be used depending on the purpose. The NN is then optimized and trained, using the result of the loss function and using known methods of training for neural networks such as backpropagation with stochastic gradient descent etc. 545. In each training epoch, the optimizer tries to choose the model parameters (i.e., weights) that minimize the training loss function (i.e. total error). Data is partitioned into training, validation, and test samples.
During training, the Optimizer minimizes the loss function on the training samples. After each training epoch, the mode is evaluated on the validation sample by computing the validation loss and accuracy. If there is no significant change, training may stop and the resulting trained model may be used to predict the labels of the test data.
Thus, the software testing neural network may be trained from audio, video and encoded input event streams having known labels or classifications to identify and classify anomalous software activity by minimizing the cross entropy loss given known target labels.
The computing device 600 may include one or more processor units 603, which may be configured according to well-known architectures, such as, e.g., single-core, dual-core, quad-core, multi-core, processor-coprocessor, cell processor, and the like. The computing device may also include one or more memory units 604 (e.g., random access memory (RAM), dynamic random access memory (DRAM), read-only memory (ROM), and the like).
The processor unit 603 may execute one or more programs, portions of which may be stored in the memory 604 and the processor 603 may be operatively coupled to the memory, e.g., by accessing the memory via a data bus 605. The programs may be configured to implement filters 608 to a separate input event from an output stream. Additionally the memory 604 may contain programs that implement training of a NN 621. The memory 604 may also contain software modules such as the encoding module 610, which implements encoding an input event from a user input device 602 into an output stream. The output stream may be generated by execution of programs 617 in the mass store 615 or received from the network 620 and may be held in a buffer in memory 604 before or after encoding an input event.
The overall structure and probabilities of the NNs may also be stored as data 618 in the Mass Store 615. The processor unit 603 is further configured to execute one or more programs 617 stored in the mass store 615 or in memory 604 which cause processor to carry out the method 100 of encoding input events from an input device 602 into an output stream 610. Additionally the processor unit 604 may be configured to carry out the method for training a NN according to methods 300 and 500 discussed above. The system may generate Neural Networks as part of the NN training process. These Neural Networks may be stored in memory 604 in the sound categorization NN module 621. Completed NNs may be stored in memory 604 or as data 618 in the mass store 615. The programs 617 (or portions thereof) may also be configured, e.g., by appropriate programming, to apply appropriate filters 608 to output streams to generate encoded input events and a separate output stream, train a NN 621 with an encoded input event and encode input events into output streams 610 in a synchronized fashion.
The computing device 600 may also include well-known support circuits, such as input/output (I/O) 607, circuits, power supplies (P/S) 611, a clock (CLK) 612, and cache 613, which may communicate with other components of the system, e.g., via the bus 605. The computing device may include a network interface 614. The processor unit 603 and network interface 614 may be configured to implement a local area network (LAN) or personal area network (PAN), via a suitable network protocol, e.g., Bluetooth, for a PAN. The computing device may optionally include a mass storage device 615 such as a disk drive, CD-ROM drive, tape drive, flash memory, or the like, and the mass storage device may store programs and/or data. The computing device may also include a user interface 616 to facilitate interaction between the system and a user. The user interface may include a monitor, Television screen, speakers, headphones or other devices that communicate information to the user.
The computing device 600 may include a network interface 614 to facilitate communication via an electronic communications network 620. The network interface 614 may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The device 600 may send and receive data and/or requests for files via one or more message packets over the network 620. Message packets sent over the network 620 may temporarily be stored in a buffer 609 in memory 604. An output stream may be received over the network 620 or generated from programs 617 locally.
While the above is a complete description of the preferred embodiment of the present disclosure, it is possible to use various alternatives, modifications and equivalents. It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, while the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the disclosure, it should be understood that such order is not required (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.). Furthermore, many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. Although the present disclosure has been described with reference to specific exemplary embodiments, it will be recognized that the disclosure is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The scope of the disclosure should therefore be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. Any feature described herein, whether preferred or not, may be combined with any other feature described herein, whether preferred or not. In the claims that follow, the indefinite article “A”, or “An” refers to a quantity of one or more of the item following the article, except where expressly stated otherwise. The appended claims are not to be interpreted as including means-plus-function limitations, unless such a limitation is explicitly recited in a given claim using the phrase “means for.”