CROSS-REFERENCE TO RELATED APPLICATIONSThis application is a continuation under 35 U.S.C. §120 of U.S. application Ser. No. 14/451,859 filed on Aug. 5, 2014. U.S. application Ser. No. 14/451,859 claims priority to U.S. Provisional Application No. 62/015,133 filed Jun. 20, 2014 and U.S. Provisional Application No. 61/907,504 filed Nov. 22, 2013. The disclosure of these applications is hereby incorporated herein by reference in its entirety. U.S. application Ser. No. 14/451,859 is related to U.S. application Ser. No. 14/451,870 filed Aug. 5, 2014 entitled GENERATION OF WEIGHTS IN MACHINE LEARNING, U.S. application Ser. No. 14/451,899 filed Aug. 5, 2014 entitled WEIGHT GENERATION IN MACHINE LEARNING, and U.S. application Ser. No. 14/451,935 filed Aug. 5, 2014 entitled ALTERNATIVE TRAINING DISTRIBUTION DATA IN MACHINE LEARNING.
BACKGROUNDIn machine learning environments, training data, including training inputs and training labels, may be used to determine a learned function. The learned function may be effective to indicate a relationship between the training inputs and training labels. The learned function may be deployed in a machine learning system. The machine learning system may receive test inputs and may apply the learned function to the test inputs to produce test labels, where the test inputs and the test labels may be formed into test data.
SUMMARYIn some examples, methods to determine a weight benefit associated with training data in a machine learning environment are generally described. The methods may include determining, by a device, a first function based on the training data, wherein the training data may include training inputs and training labels. The methods may also include applying, by the device, a set of weights to the training data to generate weighted training data. The methods may also include determining, by the device, a second function based on the weighted training data. The methods may also include generating, by the device, target data based on a target function. The target data may include target labels different from the training labels. The methods may also include determining, by the device, a third function based on the target data. The methods may also include applying, by the device, the set of weights to the target data to generate weighted target data. The methods may also include determining, by the device, a fourth function based on weighted target data. The methods may also include determining, by the device, the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.
In some examples, systems effective to determine a weight benefit associated with training data in a machine learning environment are generally described. The systems may include a memory. The memory may be configured to store the training data. The training data may include training inputs and training labels. The memory may also be configured to store a set of weights. The systems may also include a target function generation module configured to be in communication with the memory. The target function generation module may be configured to generate target data based on a target function. The target data may include target labels different from the training labels. The target function generation module may also be configured to store the target data in the memory. The systems may also include a processing module configured to be in communication with the target function generation module and the memory. The processing module may be configured to apply the set of weights to the training data to generate weighted training data. The processing module may also be configured to apply the set of weights to the target data to generate weighted target data. The processing module may also be configured to store the weighted training data and the weighted target data in the memory. The systems may also include a machine learning module configured to be in communication with the target function generation module, the processing module, and the memory. The machine learning module may be configured to determine a first function based on the training data. The machine learning module may also be configured to determine a second function based on the weighted training data. The machine learning module may also be configured to determine a third function based on the target data. The machine learning module may also be configured to determine a fourth function based on weighted target data. The systems may also include an evaluation module configured to be in communication with the target function generation module, the processing module, the machine learning module, and the memory. The evaluation module may be configured to determine the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.
In some examples, methods to determine a weight benefit associated with training data in a machine learning environment are generally described. The methods may include receiving, by a first device, a first function from a second device. The first function may be based on the training data. The training data may include training inputs and training labels. The methods may also include receiving, by the first device, a set of weights from the second device. The methods may also include receiving, by the first device, a second function from the second device. The second function may be based on weighted training data. The weighted training data may be based on the set of weights. The methods may also include generating, by the first device, target data based on a target function. The target data may include target labels different from the training labels. The methods may also include determining, by the first device, a third function based on the target data. The methods may also include, applying, by the first device, the set of weights to the target data to generate weighted target data. The methods may also include determining, by the first device, a fourth function based on weighted target data. The methods may also include determining, by the first device, the weight benefit based on the first, second, third, and fourth functions. The weight benefit may be associated with a benefit to apply the set of weights to the training data.
The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE FIGURESThe foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings, in which:
FIG. 1 illustrates an example system that can be utilized to implement a weight benefit evaluator for training data;
FIG. 2 illustrates the example system ofFIG. 1 with additional detail relating to determination of an artificial learned function and an artificial weighted function;
FIG. 3 illustrates the example system ofFIG. 1 with additional detail relating to determination of a weight benefit;
FIG. 4 illustrates a flow diagram for an example process to implement a weight benefit evaluator for training data;
FIG. 5 illustrates an example computer program product that can be utilized to implement a weight benefit evaluator for training data; and
FIG. 6 is a block diagram illustrating an example computing device that is arranged to implement a weight benefit evaluator for training data;
all arranged according to at least some embodiments described herein.
DETAILED DESCRIPTIONIn the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.
This disclosure is generally drawn, inter alia, to methods, apparatus, systems, devices, and computer program products related to a weight benefit evaluator for training data.
Briefly stated, technologies are generally described for methods and systems effective to determine a weight benefit associated with an application of a set of weights to training data in a machine learning environment. For example, the weights may be used to cause some points in the training data to contribute more than other points resulting in generation of a different learned function. In an example, a device may determine a first function based on the training data, where the training data includes training inputs and training labels. For example, the training inputs may be a user profile (e.g., age, gender, income) and labels (e.g., a movie rating). The first function may be effective to indicate a relationship between the training inputs and the training labels. For example, the first function may indicate a relationship between a user profile and a movie rating. The device may determine a second function based on weighted training data, which is based on application of weights to the training data. A second function may be generated after weights are applied to the training data. Operation of the second function may be compared to the first function as discussed herein. The device may determine a third function based on target data, where the target data is generated based on a target function. The target function may be used to compare a function generated with weights and without weights. The target data may include target labels different from the training labels. The device may determine a fourth function based on weighted target data, which may be a result of application of weights to the target data. The device may determine the weight benefit based on the first, second, third, and fourth functions. For example, the device may determine whether the weight should be applied.
FIG. 1 illustrates an example system that can be utilized to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein. As will be described in more detail below, asystem100 may be implemented as a machine learning system.System100 may be implemented to determine a learned function162 (denoted as g) based on training data160 (denoted as (xi, yi)). An example oftraining data160 may be a user profile (e.g., age, gender, income) and labels (e.g., a movie rating). An example of a learnedfunction162 may be a function that receives as input a test user profile and generates as output a test movie rating.Training data160 may be associated with a set of paired data including training inputs (xi) and training labels (denoted as yi) at each point i.System100 may be further implemented to determine a weighted function172 (denoted as gw) based on weighted training data180 (denoted as (xwi, ywi)).Weighted training data180 may be a result of an application of a set of weights (“weights”)170 (denoted as wi) totraining data160. Set ofweights170 may weigh certain points (including training inputs and training labels) intraining data160 more than other points different from the certain points intraining data160. For example, certain points may be given a higher weight and so may contribute more to the generation ofweighted function172.System100 may be further implemented to determine aweight benefit152, where weight benefit152 may be associated with a benefit to apply set ofweights170 totraining data160.
In an example,system100 may be implemented withcomputing device102, wherecomputing device102 may be a computer or a server.Computing device102 may include aprocessing module110, amachine learning module120, a targetfunction generation module130, anarithmetic module140, and/or anevaluation module150.Processing module110,machine learning module120, targetfunction generation module130,arithmetic module140, and/orevaluation module150 may be configured to be in communication with each other.Computing device102 may further include amemory104 configured to be in communication withprocessing module110,machine learning module120, targetfunction generation module130,arithmetic module140, and/orevaluation module150. In some examples, each module ofcomputing device102 may be a hardware component or an embedded system including integrated circuits such as FPGA (Field Programmable Gate Array), SoC (System on Chip), etc. In some examples, a first module may be embedded on a second module. For example,arithmetic module140 may be embedded on targetfunction generation module130. In some examples,processing module110,machine learning module120, targetfunction generation module130,arithmetic module140, and/orevaluation module150 may be components of a processor ofcomputing device102.
Memory104 may be configured to storemachine learning instructions122, at least one artificial function166 (denoted as hj),training data160, and/orweights170.Machine learning instructions122 may include instructions effective to facilitate generation of learned functions such as learnedfunction162 and/orweighted function172, etc.Machine learning instructions122 may further include instructions associated with operations of targetfunction generation module130,arithmetic module140, and/orevaluation module150. In some examples,machine learning instructions122 may be stored inmachine learning module120.Artificial function166 may be a function which was previously generated by an implementation ofsystem100 as is described below.
Training data160 may be associated with a set of paired data including training inputs (xi) and training labels (yi). Training inputs (xi) may be a set of vectors, where each vector may correspond to one or more coordinates. Set ofweights170 may be a set of vectors which may be applied, such as by processingmodule110, totraining data160. As a result of the application ofweights170 totraining data160,weighted training data180 may be generated.Weighted training data180 may be associated with a set of paired data including weighted training inputs (xwi) and weighted training labels (ywi). In some examples, set ofweights170 may be received atcomputing device102 from another computing device. In some examples,computing device102 may further include aweight generation module106 configured to generateweights170. In some examples,processing module110 may be further configured to control operations of one or more modules incomputing device102 such asmachine learning module120, targetfunction generation module130,arithmetic module140, andevaluation module150.Processing module110 may be further configured to receiveweight benefit152 fromevaluation module150, and in response, determine whether to applyweights170 totraining data160.Weight benefit152 may be binary data such as “apply” or “do not apply”, or “0” and “1”, or “A” and “not A”, etc.
Targetfunction generation module130 may be configured to generate a target function168 (denoted as fj) with use oftraining data160 and artificial function166 (described below). In some examples,arithmetic module140 may be configured to perform particular operations to facilitate generation oftarget function168 by targetfunction generation module130. For example,arithmetic module140 may be configured to perform complex computations such as comparison of large datasets during implementation ofsystem100.
Machine learning module120 may be configured to determine learnedfunction162 based ontraining data160. Determination of learnedfunction162 may include determining a relationship between training inputs (xi) and training labels (yi). Learnedfunction162 may be effective to indicate the relationship between training inputs (xi) and training labels (yi).Machine learning module120 may be further configured to determineweighted function172 based onweighted training data180. Determination ofweighted function172 may include determining a relationship between weighted training inputs (xwi) and weighted training labels (ywi).Weighted function172 may be effective to indicate the relationship between weighted training inputs (xwi) and weighted training labels (ywi). As will be described in more detail below,machine learning module120 may be configured to determine an artificial learned function164 (denoted as gj) and an artificial weighted function174 (denoted as gwj) based onartificial function166 andtarget function168.Evaluation module150 may determineweight benefit152 based on learnedfunction162,weighted function172, artificial learnedfunction164, and artificialweighted function174.
FIG. 2 illustratesexample system100 ofFIG. 1 with additional detail relating to determination of an artificial learned function and an artificial weighted function, arranged in accordance with at least some embodiments described herein.FIG. 2 is substantially similar tosystem100 ofFIG. 1, with additional details. Those components inFIG. 2 that are labeled identically to components ofFIG. 1 will not be described again for the purposes of clarity.
As will be described in more detail below, targetfunction generation module130 may generate one or more target functions168 based on training data160 (in memory104) and based on artificial function166 (in memory104) (described with reference to operations {210,211,212,213}). After generation oftarget function168, targetfunction generation module130 may generatetarget data230 based ontraining data160 and based ontarget function168.Processing module110 may applyweights170 to targetdata230 to generate weighted target data232 (operations {214,215}).Machine learning module120 may determine artificial learnedfunction164 based on target data230 (operation {216}).Machine learning module120 may further determine artificialweighted function174 based on weighted target data232 (operation {216}).
Atoperation210, targetfunction generation module130 may retrieveartificial function166 frommemory104. In an example,processing module110 may be configured to instruct targetfunction generation module130 to select a number ofartificial functions166 among more than one artificial functions stored inmemory104. Selection ofartificial function166 may be based onmachine learning instructions122. In an example, an output ofmachine learning instructions122, and the final desired learned function, may be a function that follows a model represented by a polynomial of degree four, such as ax3+bx2+cx+d.Processing module110 may randomly select a set of parameters, such as values for coefficients a, b, c, d, based on instructions inmachine learning instructions122. For a particular selection j, ifprocessing module110 selects a=1, b=3, c=7, d=12, then the jthartificial function166 would be x3+3x2+7x+12.
After selection of the number ofartificial functions166, generation oftarget function168 may continue fromoperation210 tooperation211. Atoperation211, targetfunction generation module130 may apply training inputs xioftraining data160 to the selected number ofartificial functions166. Application of training inputs xitoartificial function166 may result in generation ofartificial data220.Artificial data220 may include one or more sets of paired data, denoted by (xi,hj(xi)), where i corresponds to a point oftraining data160 and j corresponds to a selected artificial function. The number of sets of paired data may be equivalent to the number of selectedartificial functions166. The number of points in each set ofartificial data220 may be equal to the number of points intraining data160. For example,training data160 may include one hundred points (e.g., i=1, 2, . . . 100, and (xi, yi)=(x1, y1), (x2, y2), . . . (x100, y100)).Processing module110 may select ten sets of parameters in order to select tenartificial functions166. Targetfunction generation module130 may generate ten sets ofartificial data220 based on the ten corresponding artificial functions, such that each set among the ten sets ofartificial data220 may include one hundred points.
After generation ofartificial data220, generation oftarget function168 may continue fromoperation211 tooperation212. Atoperation212, targetfunction generation module130 may sendtraining data160 andartificial data220 toarithmetic module140.Arithmetic module140 may determine atraining mean240, which may be a mean oftraining data160.Arithmetic module140 may further determine atraining standard deviation242, which may be a standard deviation oftraining data160.Arithmetic module140 may further determine a number of artificial mean250 (denoted as mj), where each artificial mean may be a mean of a particular set ofartificial data220. For example, an artificial mean m1may be an artificial mean of the set ofartificial data220 at j=1.Arithmetic module140 may further determine a number of artificial standard deviation252 (denoted as dj), where each artificial standard deviation may be a standard deviation of a particular set ofartificial data220. For example, an artificial standard deviation d1may be a standard deviation of the set ofartificial data220 at j=1.Arithmetic module140 may send training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252 to targetfunction generation module130. In some examples, wherearithmetic module140 may be a component of targetfunction generation module130, targetfunction generation module130 may determine training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252.
After generation of training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252, generation oftarget function168 may continue fromoperation212 tooperation213. Atoperation213, target function generation module may generate a number of target functions168 based onartificial data220, training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252. The number of target functions168 may be equivalent to the number of selectedartificial functions166 or the number of sets inartificial data220. For example, a target function f2may be based on artificial function h2, or a set ofartificial data220 at j=2. A target function f2may be generated based onartificial data220 at j=2, training mean240, trainingstandard deviation242, an artificial mean250 m2, and an artificial standard deviation252 d2.
In some examples, targetfunction generation module130 may generate the number of target functions168 by applying a sign function to training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252. In some examples, targetfunction generation module130 may generatetarget function168 by applying a round function to training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252. In some examples, targetfunction generation module130 may generatetarget function168 by applying a nearest number function to training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252. Targetfunction generation module130 may generatetarget function168 by applying various other functions, which may be selected based onmachine learning instructions122, to training mean240, trainingstandard deviation242,artificial mean250, and artificialstandard deviation252. In some examples,target function168 may be further based on a noise parameter such as a Gaussian noise.
After generation oftarget function168, targetfunction generation module130 may generatetarget data230 and weighted target data232. Atoperation214, targetfunction generation module130 may apply training inputs xioftraining data160 to eachtarget function168 to generatetarget data230.Target data230 may include one or more sets of paired data, denoted by (xi,fj(xi)), where the number of sets of paired data intarget data230 may be equivalent to the number of target functions168. The number of points in each set oftarget data230 may be equal to the number of points intraining data160. For example, if targetgeneration function module130 generated tentarget functions168, then there are ten sets of target data intarget data230. After generation oftarget data230, atoperation215,processing module110 may apply set ofweights170 totraining data160 to generate weighted target data232. Weighted target data232 may include one or more sets of paired data, denoted by (xi,fwj(xi)), where the number of sets of paired data in weighted target data232 may be equivalent to the number of target functions168. The number of points in each set of weighted target data232 may be equal to the number of points intraining data160.
After generation oftarget data230 and weighted target data232,machine learning module120 may determine a number of artificial learnedfunctions164 and may determine a number of artificialweighted functions174.Machine learning module120 may determine a particular artificial learnedfunction164 based on aparticular target data230. For example,machine learning module120 may determine an artificial learned function g2based on target data (xi,f2(xi)) at set j=2. The number of artificial learnedfunctions164 may be equivalent to the number of sets of target data intarget data230.Machine learning module120 may further determine a particular artificialweighted function174 based on a particular weighted target data232. The number of artificialweighted functions174 may be equivalent to the number of sets of weighted target data in weighted target data232.
FIG. 3 illustratesexample system100 ofFIG. 1 with additional detail relating to determination of the weight benefit, arranged in accordance with at least some embodiments described herein.FIG. 3 is substantially similar tosystem100 ofFIG. 1, with additional details. Those components inFIG. 3 that are labeled identically to components ofFIG. 1 will not be described again for the purposes of clarity.
As will be described in more detail below,machine learning module120 may apply a set oftest inputs302 to learnedfunction162,weighted function172, one or more artificial learnedfunction164, and one or more artificial weighted function174 (operation {310}). As a result of the application,machine learning module120 may generatetest data304,weighted test data305,artificial test data306, and artificial weighted test data307 (operation {310}).Arithmetic module140 may determineevaluation values340 based ontest data304,weighted test data305,artificial test data306, and artificial weighted test data307 (operations {311,312}).Evaluation module150 may generateweight benefit152 based on evaluation values340 (operations {313,314,315}).
Atoperation310,machine learning module120 may applytest inputs302 to learnedfunction162 to generatetest data304.Test inputs302 may be a set of vectors (denoted as s) and may be received from a device outside ofsystem100.Test data304 may be associated with a set of paired data (denoted as (si,g(si)) including test inputs302 siand generated test labels g(si). Learnedfunction162 may be effective to define a relationship betweentest inputs302 and generated test labels g(si).Machine learning module120 may further applytest inputs302 toweighted function172 to generateweighted test data305.Weighted test data305 may be associated with a set of paired data (denoted as (si,gw(si)) including test inputs302 siand generated weighted test labels gw(si).Weighted function172 may be effective to define a relationship betweentest inputs302 and weighted test labels gw(si).
Machine learning module120 may further applytest inputs302 to each artificial learned function gjamong artificial learnedfunction164 to generate one or more sets of artificial test data306 (denoted as (si,gj(si)). Each set ofartificial test data306 may be associated with a set of paired data including test inputs302 siand a corresponding artificial test labels gj(si). For example,machine learning module120 may applytest input302 to an artificial learned function g2to generate a set of artificial test data (si,g2(si)). Artificial learnedfunction164 may be effective to define a relationship betweentest inputs302 and artificial test labels gj(si).Machine learning module120 may further applytest inputs302 to each artificial weighted function among artificialweighted function174 to generate artificial weighted test data307 (denoted as (si,gwj(si)). Each set of artificialweighted test data307 may be associated with a set of paired data including testing inputs302 siand a corresponding artificial weighted test labels gwj(si). Artificialweighted function174 may be effective to define a relationship betweentest inputs302 and artificial weighted test labels gwj(si).
Atoperation311,arithmetic module140 may determine an expectedvalue320 between learnedfunction162 andweighted function172. An example of expectedvalue320 between learnedfunction162 andweighted function172 may be:
E[(g−gw)2]
where g denotes learnedfunction162 and gwdenotesweighted function172.
In an example,arithmetic module140 may determine expectedvalue320 with use oftest inputs302, such as:
E[(g(si)−gw(si))2]
where siistest inputs302, g(si) is test labels ti, and gw(si) is weighted test labels twi.
Similarly,arithmetic module140 may further determine an expectedvalue322 between each jthartificial learnedfunction164 and each jthtarget function168.Arithmetic module140 may further determine an expectedvalue324 between each jthartificialweighted function174 and each jthtarget function168.Arithmetic module140 may further determine an expectedvalue326 between each jthartificial learnedfunction164 and each jthartificialweighted function174.Arithmetic module140 may determine expectedvalues322,324,326 with use oftest inputs302.
Atoperation312,arithmetic module140 may determine a number of evaluation values340 (denoted as Tj). Evaluation values340 may be based on expectedvalues322,324,326, such as:
Tj=E[(gj−fj)2]−E[(gwj−fj)2]−E[(gj−gwj)2]
where E[(gj−fj)2] denotes expectedvalue322, E[(gwj−fj)2] denotes expectedvalue324, and E[(gj−gwj)2] denotes expectedvalue326.
Atoperation313,evaluation module150 may compare each value amongevaluation values340 with expectedvalue320. An example comparison ofevaluation values340 with expectedvalue320 may be based on a condition342:
E[(g−gw)2]+Tj>0
Evaluation module150 may determine acount350 by counting how many values among evaluation values340 meetscondition342. For example, if thirty seven values amongevaluation values340meet condition342, then count350 will be of a value “37”. Atoperation314,evaluation module150 may compare count350 with athreshold360, wherethreshold360 may be defined bymachine learning instructions122 and may be stored inmemory104. In an example,threshold360 may be half of the number of points oftraining data160. For example, when trainingdata160 includes one hundred points,threshold360 may be of a value “50”.
Atoperation315,evaluation module150 may determineweight benefit152 based on the comparison ofcount350 andthreshold360.Evaluation module150 may assign a value to weight benefit152 based on the comparison ofcount350 andthreshold360. In an example, whencount350 is “37” and threshold is “50”,evaluation module150 may assigned to a value of “1”, or “A” (“apply”) toweight benefit152. Similarly, whencount350 is “71” and threshold is “50”,evaluation module150 may assigned to a value of “0”, or “not A” (“do not apply”) toweight benefit152.Evaluation module150 may sendweight benefit152 toprocessing module110.Processing module110, based on the value ofweight benefit152, may determine whether to applyweights170 totraining data160.Processing module110, based on the value ofweight benefit152, may further instructmachine learning module120 whether to deploy learnedfunction162 orweighted function172.
Among other possible benefits, a system in accordance with the disclosure may improve a performance of a machine learning system. In some examples, a weighted function determined from weighted training data may be considered as more accurate than a function determined from an unweighted training data. However, weighted training data may result in sample loss and may unintentionally hurt the generation of the weighted function. A system in accordance with the disclosure may provide a method to determine whether application of weights to training data may benefit or hurt the performance of the machine learning system.
FIG. 4 illustrates a flow diagram for an example process to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments presented herein. The process inFIG. 4 could be implemented using, for example,system100 discussed above. An example process may include one or more operations, actions, or functions as illustrated by one or more of blocks S2, S4, S6, S8, S10, S12, S14, and/or S16. Although illustrated as discrete blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation.
Processing may begin at block S2, “Determine a first function based on training data”. At block S2, a device may determine a first function based on training data. The training data may include training inputs and training labels.
Processing may continue from block S2 to block S4, “Apply a set of weights to the training data to generate weighted training data”. At block S4, the device may apply a set of weights to the training data to generate weighted training data.
Processing may continue from block S4 to block S6, “Determine a second function based on the weighted training data”. At block S6, the device may determine a second function based on the weighted training data.
Processing may continue from block S6 to block S8, “Generate target data based on a target function”. At block S8, the device may generate target data based on a target function. The target function may include target labels different from the training labels. The device may generate the target function. In an example, the device may determine a set of parameters to generate an artificial function. The device may further generate artificial data with use of the training inputs and the artificial function. The artificial data may include the training inputs and artificial labels. The device may further determine a first mean associated with the training data. The device may further determine a first standard deviation associated with the training data. The device may further determine a second mean associated with the artificial data. The device may further determine a second standard deviation associated with the artificial data. The device may further generate the target function based on the first mean, the first standard deviation, the second mean, and the second deviation. In some examples, the target function may be based on a noise parameter.
Processing may continue from block S8 to block S10, “Determine a third function based on the target data”. At block S10, the device may determine a third function based on the target data.
Processing may continue from block S10 to block S12, “Apply the set of weights to the target data to generate weighted target data”. At block S12, the device may apply the set of weights to the target data to generate weighted target data.
Processing may continue from block S12 to block S14, “Determine a fourth function based on weighted target data”. At block S14, the device may determine a fourth function based on weighted target data.
Processing may continue from block S14 to block S16, “Determine the weight benefit based on the first, second, third, and fourth functions”. At block S16, the device may determine the weight benefit based on the first, second, third, and fourth function. The weight benefit may be associated with a benefit to apply the set of weights to the training data. In some examples, the device may determine a first expected value, a second expected value, a third expected value, and a fourth expected value. The first expected value may be an expected value between the first function and the second function. The second expected value may be an expected value between the third function and the target function. The third expected value may be an expected value between the third function and the target function. The fourth expected value may be an expected value between the third function and the fourth function. The determination of the weight benefit may be based on the first, second, third, and fourth expected values. In some examples, the first, second, third, and fourth expected values may be based on an application of test inputs to the first, second, third, and fourth functions.
In some examples, the device may further determine an evaluation value with used of the second, third, and fourth expected values. The device may further compare the evaluation value with the first expected value. The device may further determine a count based on the comparison of the evaluation value with the first expected value. The device may further compare the count with a threshold. The determination of the weight benefit may be first based on the comparison of the count with the threshold.
FIG. 5 illustrates an example computer program product that can be utilized to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein.Program product500 may include a signal bearing medium502. Signal bearing medium502 may include one ormore instructions504 that, when executed by, for example, a processor, may provide the functionality described above with respect toFIGS. 1-4. Thus, for example, referring tosystem100,computing device102 may undertake one or more of the blocks shown inFIG. 5 in response toinstructions504 conveyed to thesystem100 bymedium502.
In some implementations, signal bearing medium502 may encompass a computer-readable medium506, such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Versatile Disk (DVD), a digital tape, memory, etc. In some implementations, signal bearing medium502 may encompass arecordable medium508, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signal bearing medium502 may encompass acommunications medium510, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). Thus, for example,program product500 may be conveyed to one or more modules of thesystem100 by an RF signal bearing medium502, where the signal bearing medium502 is conveyed by a wireless communications medium510 (e.g., a wireless communications medium conforming with the IEEE 802.11 standard).
FIG. 6 is a block diagram illustrating an example computing device that is arranged to implement a weight benefit evaluator for training data, arranged in accordance with at least some embodiments described herein. In a very basic configuration602,computing device600 typically includes one ormore processors604 and asystem memory606. A memory bus608 may be used for communicating betweenprocessor604 andsystem memory606.
Depending on the desired configuration,processor604 may be of any type including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof.Processor604 may include one more levels of caching, such as a level onecache610 and a level twocache612, a processor core614, and registers616. An example processor core614 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. Anexample memory controller618 may also be used withprocessor604, or in someimplementations memory controller618 may be an internal part ofprocessor604.
Depending on the desired configuration,system memory606 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof.System memory606 may include anoperating system620, one ormore applications622, andprogram data624.Application622 may include a weightbenefit evaluation algorithm626 that is arranged to perform the functions as described herein including those described with respect tosystem100 ofFIGS. 1-4.Program data624 may include weightbenefit evaluation data628 that may be useful for implementation of a weight benefit evaluator for training data as is described herein. In some embodiments,application622 may be arranged to operate withprogram data624 onoperating system620 such that implementations of weight benefit evaluator for training data may be provided. This described basic configuration602 is illustrated inFIG. 6 by those components within the inner dashed line.
Computing device600 may have additional features or functionality, and additional interfaces to facilitate communications between basic configuration602 and any required devices and interfaces. For example, a bus/interface controller630 may be used to facilitate communications between basic configuration602 and one or moredata storage devices632 via a storage interface bus634.Data storage devices632 may beremovable storage devices636,non-removable storage devices638, or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDDs), optical disk drives such as compact disc (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
System memory606,removable storage devices636 andnon-removable storage devices638 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by computingdevice600. Any such computer storage media may be part ofcomputing device600.
Computing device600 may also include an interface bus640 for facilitating communication from various interface devices (e.g.,output devices642,peripheral interfaces644, and communication devices646) to basic configuration602 via bus/interface controller630.Example output devices642 include agraphics processing unit648 and anaudio processing unit650, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports652. Exampleperipheral interfaces644 include a serial interface controller654 or aparallel interface controller656, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports658. Anexample communication device646 includes anetwork controller660, which may be arranged to facilitate communications with one or moreother computing devices662 over a network communication link via one ormore communication ports664.
The network communication link may be one example of a communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer readable media as used herein may include both storage media and communication media.
Computing device600 may be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions.Computing device600 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations.
The present disclosure is not to be limited in terms of the particular embodiments described in this application, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It is to be understood that this disclosure is not limited to particular methods, reagents, compounds compositions or biological systems, which can, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting.
With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will also be understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to embodiments containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”
In addition, where features or aspects of the disclosure are described in terms of Markush groups, those skilled in the art will recognize that the disclosure is also thereby described in terms of any individual member or subgroup of members of the Markush group.
As will be understood by one skilled in the art, for any and all purposes, such as in terms of providing a written description, all ranges disclosed herein also encompass any and all possible subranges and combinations of subranges thereof. Any listed range can be easily recognized as sufficiently describing and enabling the same range being broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. As a non-limiting example, each range discussed herein can be readily broken down into a lower third, middle third and upper third, etc. As will also be understood by one skilled in the art all language such as “up to,” “at least,” “greater than,” “less than,” and the like include the number recited and refer to ranges which can be subsequently broken down into subranges as discussed above. Finally, as will be understood by one skilled in the art, a range includes each individual member. Thus, for example, a group having 1-3 cells refers to groups having 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers to groups having 1, 2, 3, 4, or 5 cells, and so forth.
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.