Determining principal components using multi-agent dialogue
By modeling principal component analysis as a multi-agent interactive system and utilizing multi-agent dialogue to compute principal components in parallel, the problems of long processing time and high resource consumption in existing technologies are solved, achieving more efficient and accurate principal component determination. This method is suitable for data storage and data dimensionality reduction in machine learning.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-02-07
- Publication Date
- 2026-03-26
AI Technical Summary
Existing principal component analysis methods are time-consuming, resource-intensive, and prone to errors when calculating principal components, making it difficult to efficiently and accurately determine the top k principal components of a dataset.
The principal component analysis model is modeled as a multi-agent interactive system. The top k principal components of the dataset are determined step by step through multi-agent dialogue. Multiple agents are used to perform parallel computation on multiple processing devices, and the principal component estimation is optimized through a defined utility function.
It improves the efficiency and accuracy of principal component calculation, reduces the consumption of computing and storage resources, and can determine the top k principal components faster and more accurately. It is suitable for data storage and data dimensionality reduction in machine learning.
Smart Images

Figure 0007836321000113 
Figure 0007836321000114 
Figure 0007836321000115
Abstract
Description
Technical Field
[0001] This specification relates to principal component analysis. Principal component analysis (PCA) is a process that calculates the principal components of a dataset and uses the calculated principal components to perform a change of basis in the dataset. PCA is used in exploratory data analysis and to create predictive models. PCA is generally used to reduce the dimensionality by projecting each data point onto only the first few principal components in order to obtain low-dimensional data while maintaining as much of the data variance as possible.
Summary of the Invention
Problems to be Solved by the Invention
[0002] This specification describes a system implemented as a computer program on one or more computers in one or more locations that determines the top k principal components of a dataset X by modeling principal component analysis as a multi-agent interaction.
Means for Solving the Problems
[0003] The subject matter described in this specification can be implemented in certain embodiments to achieve one or more of the following advantages.
[0004] Using the techniques described in this specification, the system can efficiently and accurately estimate the top k principal components of dataset X using, for example, less time and / or fewer computational resources and / or memory resources than existing techniques for performing principal component analysis.
[0005] By parallelizing the calculations of agents across multiple processing devices, the system can further improve the efficiency of determining the principal components. Using the techniques described in this specification, the system can further remove the bias in the calculations that is inherently present in a simple parallelization implementation.
[0006] For example, using the techniques described herein, a system can determine the top k principal components of data and use the top k principal components of the dataset to reduce the dimensionality of the dataset for storage or further processing, improving the computational and memory efficiency of storing the dataset.
[0007] As another example, using the techniques described herein, a system can determine the top k principal components of a dataset and use the top k principal components of the dataset to reduce the dimensionality of the dataset for performing machine learning on the dataset, improving the computational and memory efficiency of the machine learning process.
[0008] Using the techniques described herein, a system can determine the top k principal components of a dataset more quickly and accurately than some other existing techniques. For example, the system can achieve a longer "longest correct eigenvector streak" (measuring the number of eigenvectors determined in order within an angular threshold of the ground-truth eigenvectors) (e.g., a streak longer than 10%, 50%, or 100%) than existing techniques more quickly (e.g., in fewer seconds than 10%, 15%, or 25%).
[0009] Details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Brief Description of the Drawings
[0010] [Figure 1A] It is a diagram of an exemplary principal component analysis system for sequentially determining the principal components of a dataset. [Figure 1B] It is a flowchart of an exemplary process for sequentially determining the principal components of a dataset. [Figure 2A]This is a diagram illustrating an exemplary principal component analysis system for determining the principal components of a dataset in parallel. [Figure 2B] This is a flowchart illustrating an exemplary process for determining the principal components of a dataset in parallel. [Figure 3] This is a diagram illustrating an exemplary system including a principal component analysis system. [Figure 4] This is a flowchart illustrating an exemplary process for determining the top k principal components of a dataset. [Figure 5] This diagram shows the performance of different principal component analysis systems for determining the principal components of a dataset. [Modes for carrying out the invention]
[0011] Similar reference numbers and names in various drawings refer to the same elements.
[0012] This specification describes a system implemented as a computer program on one or more computers in one or more locations, configured to determine the top k principal components of a dataset X by modeling principal component analysis as a multi-agent interaction. The dataset X may contain (or be composed of) multiple data elements, such as text terms, images, audio samples, or other items of sensor data.
[0013] Figure 1A is a diagram of an exemplary principal component analysis system 100. The principal component analysis system 100 is an example of a system implemented as a computer program on one or more computers in one or more locations, in which the systems, components, and techniques described below may be implemented.
[0014] The principal component analysis system 100 is configured to determine the top k principal components 122a~k of the dataset 112, where k≧1. The dataset 112 has a dimension n, where n>k. That is, each element of the dataset 112 has a dimension n such that, for example, each element can be represented by a vector of length n.
[0015]
number
[0016] The principal components of dataset X are aligned in the direction of the maximum variance of dataset X and are orthogonal to each other.
[0017]
number
[0018] This is a vector in [the specified region]. The top k principal components are sometimes collectively denoted by v.
[0019] The principal component analysis system 100 is configured to sequentially determine the top k principal components 122a to k in descending order of principal components (i.e., first determining the first principal component, then the second principal component, and so on).
[0020] In this specification, the nth principal component of a dataset is the principal component that identifies the direction of the nth largest variance within the dataset (equivalently, the principal component corresponding to the nth largest eigenvalue of the dataset's covariance matrix, which is a square matrix that identifies the covariances between each pair of elements in the dataset).
[0021] In this specification, the “parent” principal component of a particular principal component is a principal component that ranks higher than the particular principal component in the principal component rankings; that is, the parent principal component specifies a direction of variance that is greater than the direction specified by the particular principal component (equivalently, the parent principal component has a corresponding eigenvalue that is greater than the eigenvalue of the particular principal component). The “child” principal component of a particular principal component is a principal component that ranks lower than the particular principal component in the principal component rankings.
[0022] The principal component analysis system 100 determines the top k principal components 122a to k by modeling principal component analysis as a multi-agent dialogue. The multi-agent dialogue includes k agents, and each agent corresponds to its respective principal component 122a to k.
[0023] In a multi-agent dialogue, each agent takes action by selecting an estimate of the corresponding principal components 122a~k, and receives a reward for the action that motivates the agent to select the true corresponding principal components 122a~k. In particular, the principal component analysis system 100 defines a utility function for each agent that is a function of (i) the estimate of the corresponding principal components 122a~k identified by the agent's action and (ii) the parent principal components 122a~k of the corresponding principal components identified by the respective actions of the other corresponding agents in the multi-agent dialogue. Each utility function for each agent can reward an action by an agent that identifies an estimated principal component 122a~k that (i) is orthogonal to the parent principal components 122a~k (identified by the actions of the other corresponding agents) and (ii) identifies the direction of the maximum variance in the dataset 112 (among the directions available given the parent principal components). An exemplary utility function is discussed in more detail below with reference to Figure 1B.
[0024] Since the utility function of each agent corresponding to a specific principal component 122a to k depends only on the action of the agent corresponding to the parent principal component for that specific principal component 122a to k, the principal component analysis system 100 can determine the principal components 122a to k sequentially, that is, by determining the action of the agent corresponding to the first principal component 122a, then the action of the agent corresponding to the second principal component 122b, and so on.
[0025] The principal component analysis system 100 includes a data store 110 and k agent engines 120a to k.
[0026] The data store 110 is configured to store the dataset 112 and the principal components 122a to k generated so far as the principal component analysis system 100 sequentially generates the principal components 122a to k. The data store 110 may be distributed across multiple different logical and physical data storage locations.
[0027] Each agent engine 120a to k is configured to determine the respective principal components 122a to k of the dataset 112 by selecting actions related to the corresponding agent in the multi-agent interaction defined by the principal component analysis system 100. That is, the first agent engine 120a is configured to determine the first principal component 122a of the dataset 112, the second agent engine 120b is configured to determine the second principal component 122b of the dataset 112, and so on.
[0028] First, the data store 110 provides the dataset 112 to the first agent engine 120a. The first agent engine 120a processes the dataset 112 to generate the first principal component 122a, as will be described in more detail below. In particular, the first agent engine 120a processes the dataset 112 to maximize the engine's utility function in the multi-agent interaction corresponding to the first principal component 122a and selects the action that represents the first principal component 122a. The first agent engine 120a then provides the first principal component 122a to the data store 110.
[0029] In several implementations, as will be described in more detail below, the first agent engine 120a repeatedly selects an action (i.e., an estimate of the first principal component 122a) and updates the action according to the reward received for the action, as defined by the utility function. That is, the first agent engine 120a can run for multiple iterations in which the first agent 120a selects an action relating to the corresponding agent, and after multiple iterations, provides the data store 110 with an estimate of the first principal component 122a identified by the action selected in the last iteration.
[0030] After receiving the first principal component 122a from the first agent engine 120a, the data store 110 provides the dataset 112 and the first principal component 122a to the second agent engine 120b. The second agent engine 120b processes the dataset 112 and the first principal component 122a to generate the second principal component 122b, as will be described in more detail below. In particular, given an agent action corresponding to the first principal component 122a, the second agent engine 120b processes the dataset 112 to maximize the agent utility function in the multi-agent interaction corresponding to the second principal component 122b and selects an action that represents the second principal component 122b. The second agent engine 120b then provides the second principal component 122b to the data store 110.
[0031] Similar to the first agent engine 120a, in some implementations, the second agent engine 120b runs through multiple iterations in which the second agent engine 120b selects an action relating to the corresponding agent, and after the multiple iterations, provides the data store 110 with an estimate of the second principal component 122b identified by the action selected in the last iteration.
[0032] Agent engines 120a to k continue to sequentially generate the corresponding principal components 122a to k as described above until the k-th agent engine 120k determines the k-th principal component 122k from (i) the dataset 112 and (ii) the first k-1 principal components 122a to 122(k-1), and provides the k-th principal component 122k to the data store 110.
[0033] After determining the top k principal components 122a to k, the principal component analysis system can provide the principal components 122a to k to an external system for storage or further processing. An exemplary technique for using the principal components 122a to k of dataset 112 is described below with reference to Figure 3.
[0034] In some implementations, each agent engine 120a-k is implemented on a different processing device ("device") within a system of multiple communicably coupled devices. For example, each agent engine 120a-k may be implemented on a parallel processing device, such as a graphics processing unit (GPU), a tensor processing unit (TPU), or a central processing unit (CPU). In some other implementations, one or more of the agent engines 120a-k are implemented on the same device.
[0035] In some implementations, the operations performed by the agent engines 120a to k described above are performed by the same components of the principal component analysis system 100, for example, by a single agent engine. That is, in some implementations, the principal component analysis system 100 includes a single agent engine (for example, implemented on a single device) that determines each of the top k principal components 122a to k.
[0036] Figure 1B is a flowchart of an exemplary process 130 for sequentially determining the principal components of a dataset. For convenience, process 130 is described as being performed by one or more computer systems located in one or more locations. For example, a principal component analysis system appropriately programmed according to this specification, such as the principal component analysis system 100 shown in Figure 1A, can perform process 130.
[0037] The system can sequentially repeat process 130, described below, for each of the top k principal components of the dataset. That is, the system can first run process 130 to determine the final estimate for the first principal component of the dataset, then run process 130 to determine the final estimate for the second principal component of the dataset, and so on. In the following description, the system will be described as running process 130 to determine a specific principal component.
[0038] The system obtains the dataset, the parent principal component for a particular principal component (if any, the parent principal component does not exist for the first principal component (top-level principal component)), and initial estimates for that particular principal component (step 132). The parent principal component may have been determined during a previous execution of process 130.
[0039] The system can determine any suitable initial estimate for a particular principal component. For example, the system can randomly select the initial estimate, for instance, by uniformly and randomly sampling tensors with the same number of dimensions as the dataset. Alternatively, the system can select the initial estimate for a particular principal component by sampling tensors orthogonal to each of the parent principal components.
[0040] The system may perform step 134 in each of multiple iterations to update the estimate for a particular principal component.
[0041] The system processes the dataset, the parent principal component, and the current estimate for that particular principal component according to the utility function in order to update the estimate for that particular principal component (step 134).
[0042] The system models the determination of a particular principal component as a multi-agent interaction, where a specific agent performs an action to identify an estimate for that particular principal component, and each other agent in the multi-agent interaction performs an action to identify the parent principal component for that particular principal component. The system can update the selected action of a particular agent to update the estimate for that particular principal component.
[0043] The utility function defines the reward for a particular agent, and a higher reward indicates that the action chosen by that agent identifies an estimate of a particular principal component that is closer to the true value for that principal component.
[0044] The utility function may include one or more first terms that reward a particular agent for selecting an estimate for a specific principal component that captures more variance in the dataset. That is, if the estimate for a particular principal component captures more variance in the dataset, one or more first terms will be larger.
[0045] For example, the first term of the utility function is,
[0046]
number
[0047] It is equal to or proportional to, where X is the dataset.
[0048]
number
[0049] This is an estimate of a specific principal component identified by the action of a particular agent (i.e., the i-th principal component, where i is a positive integer).
[0050] Alternatively, or in addition to that, the utility function may include one or more second terms that penalize a particular agent for choosing an estimate for a particular principal component that is not orthogonal to the parent principal component (if any) of that particular principal component. For example, the utility function may include one such second term for each parent principal component.
[0051] For example, the second term of the utility function corresponding to a particular parent principal component (the j-th principal component, where j is a positive integer less than i) for a particular principal component is:
[0052]
number
[0053] It is equal to or proportional to, where,
[0054]
number
[0055] is a specific parent principal component (i.e., an estimated value for a specific parent principal component determined during a previous execution of process 130), and <a,b> represents the dot product (also called the inner product) between a and b.
[0056] The system, for example, totals,
[0057] [Number]
[0058] By determining, for example, the sum, each respective second term corresponding to a parent principal component can be combined to generate a combined second term, where j < i identifies all principal components of the dataset that are parent principal components for a particular principal component.
[0059] The utility function can be equal to or proportional to the difference between the first term and the combined second term. That is, u i The utility function, which can be denoted as,
[0060] [Number]
[0061] can be equal to or proportional to.
[0062] To determine an update to the current estimated value for a particular principal component, the system can determine the gradient of the utility function. For example, the gradient of the above utility function is
[0063] [Number]
[0064] is.
[0065] The left-hand term in parentheses (i.e., the gradient of the first term of the utility function) is sometimes called the “reward estimate,” and the right-hand term in parentheses (i.e., the gradient of the combined second term of the utility function) is sometimes called the “combined penalty estimate,” where each term in the sum is the “penalty estimate” corresponding to its respective parent principal component.
[0066] In various implementations, the system can use various approximations of the gradient described above, for example, to improve efficiency or eliminate bias.
[0067] The gradient of the utility function represents the direction in which the value of the utility function increases most (i.e., the reward for a particular agent increases most) when the estimate for a particular principal component is updated in that direction. Therefore, the system can then use the gradient of the utility function to update the current estimate for a particular principal component. For example, the system can,
[0068]
number
[0069] We can calculate this, and here,
[0070]
number
[0071] is the gradient of the utility function, α is a hyperparameter representing the step size, and the final calculation is performed such that the updated estimates for the principal components are unit vectors (i.e., vectors of length 1).
[0072] In some implementations, the system does not actually calculate values related to the utility function in step 134, but rather only calculates the gradient of the utility function. That is, since only the gradient of the utility function is used to update the estimates for the principal components, the system can save computational resources and improve efficiency by not calculating values related to the utility function itself.
[0073] The system can repeat step 134 until it determines a final estimate for a particular principal component.
[0074] In some implementations, the system performs a predetermined number of iterations of step 134. For example, the system performs step 134 for the i-th principal component. i We can decide to perform a certain number of iterations, where,
[0075]
number
[0076] And here,
[0077]
number
[0078] ρ is an initial estimate for a specific principal component obtained in step 132, where ρ i This is a hyperparameter that represents the tolerance,
[0079]
number
[0080] This is the utility function u evaluated in the initial estimates for a particular principal component. iThis is the gradient. As explained above, the goal of the agent corresponding to a particular principal component is to adjust the estimate for that particular principal component in order to maximize the utility function, and in some implementations, this utility function can take the shape of a sine wave. If the agent happens to initialize the estimate for a particular principal component near the "bottom" ("trough") of the sine wave, the initial gradient for updating the estimated principal component is...
[0081]
number
[0082] The initial gradient is relatively small, and therefore, the increase in gradient can slow down the progression from the bottom of the sine wave, thus requiring more iterations. In other words, the initial gradient
[0083]
number
[0084] The smaller the value, the more iterations may be required to climb from the bottom of the sine wave.
[0085] In some other implementations, the system iteratively performs step 134 for a predetermined period of time. In some other implementations, the system performs step 134 until the magnitude of the update to the estimate for a particular principal component falls below a predetermined threshold.
[0086] After determining the top k principal components of the dataset using each execution of process 130, the system can provide the principal components to an external system for storage or further processing. Exemplary techniques for using the principal components of a dataset are described below with reference to Figure 3.
[0087] Figure 2A is a diagram of an exemplary principal component analysis system 200 for determining the principal components of a dataset in parallel. The principal component analysis system 200 is an example of a system implemented as a computer program on one or more computers in one or more locations, in which the systems, components, and techniques described below may be implemented.
[0088] The principal component analysis system 200 is configured to determine the top k principal components of a dataset, where k ≥ 1. The dataset has dimensions n, where n ≥ k.
[0089] The principal component analysis system 200 is configured to determine the top k principal components of a dataset in parallel by iteratively updating the current estimates 222a to k for each particular principal component using the current estimates 222a to k for other principal components (in particular, using the current estimates 222a to k for the parent principal components of a particular principal component).
[0090] As explained above with reference to Figure 1A, the principal component analysis system 200 determines the top k principal components of the dataset by modeling principal component analysis as a multi-agent dialogue. The multi-agent dialogue includes k agents, each agent corresponding to a specific principal component. In the multi-agent dialogue, each agent takes action by selecting an estimate 222a~k of its corresponding principal component and receives a reward for the action that motivates the agent to select the true corresponding principal component.
[0091] In particular, the principal component analysis system 200 defines a utility function for each agent, which is a function of (i) the estimated values 222a~k of the corresponding principal components identified by the agent's actions and (ii) the estimated values 222a~k of the parent principal components identified by the respective actions of the other corresponding agents in a multi-agent interaction. Each utility function for each agent can reward actions by agents that identify the estimated principal components 222a~k that (i) are orthogonal to the estimated values 222a~k of the parent principal components (identified by the actions of the other corresponding agents) and (ii) identify the direction of the maximum variance in the dataset (among the directions available given the estimated values 222a~k of the parent principal components). An example utility function is discussed in more detail below with reference to Figure 2B.
[0092] The principal component analysis system 200 includes a data store 210, a distribution engine 230, and k agent engines 220a to k. As described below, the k agent engines 220a to k may be configured to operate in parallel.
[0093] Each agent engine 220a to k is configured to determine estimates 222a to k for each principal component of the dataset by selecting actions related to the corresponding agent in the multi-agent dialogue defined by the principal component analysis system 200. That is, the first agent engine 220a is configured to determine an estimate 222a for the first principal component of the dataset, the second agent engine 220b is configured to determine an estimate 222b for the second principal component of the dataset, and so on.
[0094] In particular, agent engines 220a to k are configured to iteratively update the corresponding principal component estimates 222a to k across multiple iterations of the principal component analysis system 200.
[0095] The data store 210 is configured to store the dataset and, in each iteration of the principal component analysis system 200, to provide a new batch 212 of the dataset to the agent engines 220a-k. In this specification, a data batch of the dataset is any (appropriate) subset of the elements of the dataset.
[0096] The distribution engine 230 is configured to maintain the current estimates 222a~k of the principal components of the dataset and distribute the current estimates 222a~k to the agent engines 220a~k. That is, in each iteration of the principal component analysis system 200, the distribution engine 230 (i) obtains the latest updated estimates 222a~k for the principal components and (ii) distributes the latest updated estimates 222a~k to the required agent engines 220a~k. In particular, in each iteration, for each estimate 222a~k of a particular principal component, the distribution engine 230 distributes the estimates 222a~k to the agent engines 220a~k corresponding to the child principal components of that particular principal component.
[0097] In each iteration of the principal component analysis system 200, each agent engine 220a-k is configured to retrieve a new data batch 212 from the data store 210 and obtain current estimates 222a-k for the parent principal components of the principal components corresponding to agent engine 220a-k. The agent engines 220a-k then use the retrieved data batch 212 and the parent principal component estimates 222a-k to update the estimates 222a-k for their respective principal components and return the updated estimates 222a-k to the distribution engine.
[0098] Since the first principal component has no parent principal component, the first agent engine 220a processes only the data batch 212, as will be described in more detail below, in order to generate an updated estimate 222a of the first principal component. Specifically, the first agent engine 220a processes the data batch 212 to maximize the agent utility function in the multi-agent interaction corresponding to the first principal component and selects an action that represents the updated estimate 222a of the first principal component.
[0099] In some implementations, as will be described in more detail below, the first agent engine 220a determines multiple updates to the estimate of the first principal component 222a (e.g., sequentially) and combines these updates to generate the updated estimate of the first principal component 222a. For example, the first agent engine 220a can divide batch 212 into m subbatches, where m > 1, and use each subbatche to determine each update to the estimate of the first principal component 222a. In some such implementations, the first agent engine 220a can determine each of the multiple updates using different devices, i.e., the first agent engine 220a may be implemented on multiple different devices, each configured to determine each update to the estimate of the first principal component 222a.
[0100] The second agent engine processes the data batch 212 and the estimate 222a for the first principal component, as will be described in more detail below, in order to generate an updated estimate 222b for the second principal component. In particular, given an agent action corresponding to the first principal component (represented by the estimate 222a for the first principal component), the second agent engine 220b processes the data batch 212 to maximize the agent utility function in the multi-agent interaction corresponding to the second principal component and selects an action that represents the updated estimate 222b for the second principal component.
[0101] Similar to the first agent engine 220a, in some implementations, the second agent engine 220b determines multiple updates to the estimate 222b of the second principal component (for example, using different devices) and combines these updates to generate the updated estimate 222b of the second principal component.
[0102] Each agent engine 220a to k generates updated estimates 222a to k of the corresponding principal components as described above, up to the kth agent engine 220k, and the kth agent engine 220k processes the data batch 212 and the estimates 222a to 222(k-1) of the first k-1 principal components in order to update the estimate 222k of the kth principal component.
[0103] In some implementations, agent engines 220a~k do not broadcast the updated estimates 222a~k to each principal component in each iteration of the principal component analysis system. For example, agent engines 220a~k can broadcast the current estimates 222a~k only every n updates to the estimates 222a~k, where n≧1. That is, for each particular principal component, agent engines 220a~k can process multiple different batches 212 using the same estimates 222a~k for the parent principal component of that particular principal component, and decide on multiple updates for each of those principal components before providing the latest estimates 222a~k for that particular principal component to the distribution engine 230.
[0104] In some implementations, the principal component analysis system 200 does not include a distribution engine 230; instead, agent engines 220a to k directly broadcast their respective principal component estimates 222a to k to each other.
[0105] In some other implementations, the operation of the data store 210 and the distribution engine 230 may be performed by the same components of the principal component analysis system 200. For example, the data store 210 may store the current estimates 222a~k of the principal components and provide the current estimates 222a~k to the agent engines 220a~k.
[0106] After determining the final estimates 222a~k of the top k principal components of the dataset, the principal component analysis system 200 can provide the principal components to an external system for storage or further processing. Exemplary techniques for using the principal components of a dataset are described below with reference to Figure 3.
[0107] In some implementations, each agent engine 220a-k is implemented on a different device (or multiple different devices, as described above) within a system of multiple communicably coupled devices. Multiple processing devices may be configured to operate in parallel (i.e., simultaneously). For example, each agent engine 220a-k may be implemented on one or more parallel processing devices, such as a GPU. In some other implementations, one or more of the agent engines 220a-k are implemented on the same device.
[0108] A parallel processing device may include multiple processing cores, and these multiple processing cores themselves may be considered as a (single-core) processing device. In some implementations, each agent engine 220a~k is implemented by one of the multiple processing cores, where the multiple processing cores are provided by a single parallel processing device, such as a GPU, or collectively by multiple parallel processing devices. In other implementations, the agent engines 220a~k are divided into groups, each containing multiple agent engines 220a~k, and each group of agent engines is implemented by one of the multiple processing cores.
[0109] In all these cases, multiple processing devices (which may be multiple CPUs, GPUs, or TPUs, or multiple cores provided by a single multi-core processing device, or multiple cores provided collectively by multiple multi-core processing devices) generate continuous estimates 222a to k for the principal component v, and in particular operate in parallel with the corresponding principal component v to generate the final estimate for the principal component v. As a specific example, the principal component analysis system 200 can run one or more sets of agent engines 220a to k on each different processing device (for example, each device can run one, two, five, ten, or 100 agent engines 220a to k).
[0110] In some implementations, the operations performed by the agent engines 220a to k described above are performed by the same components of the principal component analysis system 200, for example, by a single agent engine. That is, in some implementations, the principal component analysis system 200 includes a single agent engine (implemented on a single device, for example) that determines estimates 222a to k for each of the top k principal components.
[0111] Figure 2B is a flowchart of an exemplary process 240 for determining the principal components of a dataset in parallel. For convenience, process 240 is described as being performed by a system of one or more computers located in one or more locations. For example, a principal component analysis system appropriately programmed according to this specification, such as the principal component analysis system 200 shown in Figure 2A, can perform process 240.
[0112] The system can run process 240, described below, in parallel for each of the top k principal components of the dataset. In the following description, the system will be described as running process 240 to determine a particular principal component.
[0113] The system may perform steps 242 and 244 in each of multiple iterations to update the estimates for a particular principal component.
[0114] The system obtains (i) a new batch of data from the dataset, (ii) the current estimate of the parent principal component for a particular principal component, and (iii) the current estimate for the particular principal component (step 242). The current estimate for the parent principal component may have been determined during the concurrent execution of process 240.
[0115] In the first iteration of process 240 for a particular principal component, the system can determine any suitable initial estimates for that particular principal component and its parent principal component. For example, the system can randomly select initial estimates for each principal component, for instance, by uniformly and randomly sampling tensors having the same number of dimensions as the dataset. Alternatively, the system can sequentially sample initial estimates for each principal component so that each newly sampled initial estimate is orthogonal to the previously sampled initial estimate of the parent principal component.
[0116] The system processes the data batch, the current estimate for the parent principal component, and the current estimate for the specific principal component according to the utility function in order to update the estimate for the specific principal component (step 244).
[0117] The system models the determination of a particular principal component as a multi-agent dialogue, where a specific agent performs an action to identify an estimate for that particular principal component, and each other agent in the multi-agent dialogue performs an action to identify the current estimate for the parent principal component for that particular principal component. The system can update the selected action of a particular agent to update the estimate for that particular principal component.
[0118] As explained above with reference to Figure 1B, the utility function defines a reward for a particular agent, where a higher reward indicates that the action chosen by the particular agent identifies an estimate of a particular principal component that is closer to the true value for that particular principal component. In particular, the utility function may include one or more first terms that reward the particular agent for (i) selecting an estimate of a particular principal component that captures more variance in the data batch, or (ii) one or more second terms that penalize the particular agent for selecting an estimate of a particular principal component that is not orthogonal to the current estimate of the parent principal component of that particular principal component.
[0119] As a specific example, the utility function u with respect to the i-th principal component i teeth,
[0120] [Number]
[0121] It may be equal to or proportional to, where X is the data batch of the dataset,
[0122]
number
[0123] This is the current estimate for a specific principal component,
[0124]
number
[0125] These are the current estimates for each principal component.
[0126] To determine an update to the current estimate for a particular principal component, the system can determine the gradient of the utility function or the estimated gradient. For example, the system can determine the same gradient described above with reference to Figure 1B.
[0127] As another example, a system can use an approximation of the gradient of the utility function. Using an approximation of the gradient instead of the true gradient can improve the system's efficiency when the principal components are determined in parallel and / or remove bias from updates to estimates of particular principal components. In particular, since parallel updates to estimates of principal components depend on estimates for each of their parent principal components rather than the true values for those parent principal components, in some implementation forms, using the true gradient when deciding on parallel updates can introduce a bias that may prevent the estimates of principal components from converging to their respective true values, or cause them to converge to their respective true values very slowly. Thus, a system can use an approximation gradient of the utility function that is not necessarily equal to the derivative of the utility function with respect to the estimates for particular principal components, but does not introduce bias into its updates. Thus, using an approximation gradient allows the system to determine the principal components of the dataset in parallel and significantly improves the system's efficiency. In other words, an approximation gradient can allow the system to perform the techniques described here on parallel processing hardware.
[0128] As a specific example, the system can calculate the following approximate gradient:
[0129]
number
[0130] The term on the left in parentheses is sometimes called the “reward estimate,” and the term on the right is sometimes called the “combined penalty estimate,” where each term in the sum is the “penalty estimate” corresponding to its respective parent principal component.
[0131] The approximate gradient of the utility function represents an approximation of the direction in which the value of the utility function increases the most (i.e., the reward for a particular agent increases the most) when the current estimate for a particular principal component is updated in that direction. Thus, the system can then use the approximate gradient of the utility function to update the current estimate for a particular principal component. For example, the system can
[0132] [Number]
[0133] calculate, where
[0134] [Number]
[0135] is the approximate gradient of the utility function, η t is a hyperparameter representing the step size, and the final calculation is performed such that the updated estimate for the principal component becomes a unit vector (i.e., a vector of length 1).
[0136] In some implementations, the hyperparameter η<统一编号 t depends on the iteration t of process 240. That is, different executions of step 244 can use different values for η<统一编号 t . For example, the value of η<统一编号 t can decay over iterations such that later executions of step 244 use a smaller step size. As a specific example,
[0137] [Number] <00B0601>
[0138] is.
[0139] In some implementations, in each run of step 244, the system determines several different updates to the current estimate of a particular principal component. For example, the system may generate several different minibatches from a data batch (e.g., each minibatch contains a different (appropriate) subset of the elements of the data batch), and use each minibatch to determine its respective different update. The system may then combine the several different updates to generate a final update, and use the final update to generate an updated estimate for the particular principal component.
[0140] In other words, the system uses, for example, the approximate gradient defined above to perform M different updates.
[0141] [Number]
[0142] We can determine that M is a positive integer (M>1) and m is an integer variable that takes values of m=1, ..., M. Then the system is
[0143]
number
[0144] By calculating this, M updates can be combined.
[0145] In some implementations, the system can improve its efficiency by distributing the generation of multiple different updates to different devices. That is, different devices in the system can process their own mini-batches to generate their respective updates for estimates of a particular principal component.
[0146] As explained above, in some implementations, the system does not actually calculate a value for the utility function in step 244, but rather only calculates the gradient or approximate gradient of the utility function.
[0147] The system can repeat steps 242 and 244 until it determines a final estimate for a particular principal component.
[0148] In some implementations, the system performs a predetermined number of iterations of step 134. For example, the system may determine the number of iterations based on the size of the dataset, such that the system processes each element of the dataset a specific number of times. In some other implementations, the system iteratively performs steps 242 and 244 for a predetermined period of time. In some other implementations, the system performs steps 242 and 244 until the magnitude of the update to the estimate for a particular principal component falls below a predetermined threshold.
[0149] After determining the top k principal components of the dataset using parallel execution of each of the 240 processes, the system can provide the principal components to an external system for storage or further processing. Exemplary techniques for using the principal components of a dataset are described below with reference to Figure 3.
[0150] Figure 3 shows an exemplary system 300, which includes a principal component analysis system 320. System 300 is an example of a system implemented as a computer program on one or more computers in one or more locations, in which the systems, components, and techniques described below may be implemented.
[0151] The system includes a data store 310, a principal component analysis system 320, and a machine learning system 330.
[0152] The data store 310 is configured to maintain a data set 312 having a dimensionality n. The data set 312 can include data objects of any suitable type. For example, the elements of the data set 312 can represent text data, image data (e.g., one or more images collected by a camera, e.g., a still camera), audio data (e.g., one or more audio signals collected by a microphone), or actually any type of sensor data.
[0153] The principal component analysis system 320 is configured to determine the top k principal components of the data set 312, where k < n. In some implementations, the principal component analysis system 320 sequentially determines the top k principal components. For example, the principal component analysis system 320 can be configured similarly to the principal component analysis system 100 described above with reference to FIG. 1A. In some other implementations, the principal component analysis system 320 determines the top k principal components in parallel. For example, the principal component analysis system 320 can be configured similarly to the principal component analysis system 200 described above with reference to FIG. 2A.
[0154] After generating the principal components of the data set 312, the principal component analysis system 320 can use the principal components to reduce the dimensionality of the data set 312. That is, for each element of the data set 312, the principal component analysis system 320 can project the element into the coordinate space defined by the top k principal components, i.e., project the element from dimensionality n to dimensionality k. Thus, the system can generate a reduced set 322 that includes the projected version of each element of the data set 312.
[0155] Next, the principal component analysis system 320 can provide the reduced dataset 322 to the data store 310 for storage. In some implementations, the data store 310 maintains the reduced dataset 322 instead of the dataset 312, i.e., the data store 312 deletes the dataset 312 after the generation of the reduced dataset 322. Thus, the reduced dataset 322 is approximately
[0156]
number
[0157] Because of its size, the data store 310 can save computational and memory resources by replacing the dataset 312 with the reduced dataset 322. Thus, the principal component analysis system 320 (for example, in the form of principal component analysis system 100 or principal component analysis system 200) can be used to directly obtain useful data from the dataset 312 (for example, principal components that show objects present in at least some of the images of the dataset 312, or objects present in some of the images of the dataset 312 but not in the other images).
[0158] Instead of providing the reduced dataset 322 to the data store 310, or in addition to providing it to the data store 310, the principal component analysis system 320 may provide the reduced dataset 322 to a machine learning system 330 configured to perform machine learning using the reduced dataset 322.
[0159] For example, instead of directly clustering all dimensional elements of dataset 312, machine learning system 330 can process projected elements of a reduced dataset 322 by using a clustering machine learning model (e.g., k-nearest neighbors) to cluster the projected elements. Thus, the system can significantly improve the time and computational efficiency of the clustering process. Once trained, the clustering machine learning model can be used to classify datasets (e.g., newly generated or received datasets) such as one or more images, one or more audio signals, or any other items of sensor data. Classification is based on multiple clusters obtained from the clustering machine learning model and multiple classifications corresponding to each cluster. Classification can be carried out by determining the size of each of the top k principal components in the dataset, and then determining one of the clusters corresponding to one of the classes.
[0160] As another example, the system can use a reduced dataset 322 to train a machine learning model. Since the principal components represent the direction of the greatest variance in dataset 312, by projecting the elements of dataset 312 onto a coordinate space defined by the principal components and training the machine learning model using the projected elements, the machine learning system 330 can distinguish the projected elements to the greatest extent possible while improving the memory and computational efficiency of training. That is, since the projected elements have a smaller number of dimensions (in some cases, much smaller, e.g., 1%, 5%, or 10% of the number of dimensions), the efficiency of training is improved while still allowing the machine learning model to learn the differences between elements. In some cases, projecting the data points can further prevent the machine learning model from overfitting to dataset 312.
[0161] The system can use the reduced dataset 322 to train any suitable type of machine learning model. For example, the system can use the reduced dataset 322 to train one or more of the following: neural networks, linear regression models, logistic regression models, support vector machines, or random forest models. The trained machine learning model can be used to classify datasets (e.g., newly generated or received datasets), such as images, audio signals, and other items of sensor data. Classification can be carried out by determining the magnitude of each of the top k principal components in the dataset, inputting the data characterizing those magnitudes into the trained machine learning model, and then determining the classification of the dataset based on the output of the machine learning model.
[0162] Figure 4 is a flowchart of an exemplary process 400 for determining the top k principal components of a dataset. For convenience, process 400 is described as being performed by a system of one or more computers located in one or more locations. For example, a principal component analysis system appropriately programmed according to this specification, such as the principal component analysis system 100 described above with reference to Figure 1A, or the principal component analysis system 200 described above with reference to Figure 2A, can perform process 400.
[0163] The system obtains initial estimates for the principal components v of the dataset X (step 402).
[0164] The system can perform steps 404, 406, 408, and 410 for each of the top k principal components, for example, sequentially or in parallel across the principal components, to update the current estimate for each respective principal component. For each principal component, the system can iteratively perform steps 404, 406, 408, and 410 to generate a final estimate for the principal component. The following description applies to a specific principal component v iThis refers to updating the current estimates regarding [the subject].
[0165] The system uses dataset X and a specific principal component v i Current estimate
[0166] [Number]
[0167] Using this, generate a reward estimate (step 404). The reward estimate is a specific principal component v i Current estimate
[0168]
number
[0169] The reward estimate will be larger if it captures more variance within dataset X.
[0170] The system has a specific principal component v i Each parent principal component v j For each of the following, generate an estimated penalty value (step 406). Specific principal component v i Current estimate
[0171]
number
[0172] And the principal component v j Current estimate
[0173]
number
[0174] If the two points are not orthogonal, the penalty estimate will be larger.
[0175] The system consists of each parent principal component v jBy combining the respective penalty estimates of the specific principal component v i Generate an estimate of the combined penalty for (step 408).
[0176] The system determines a specific principal component v according to the difference between the reward estimate and the combined penalty estimate. i Current estimate
[0177]
number
[0178] Generate an update for (step 410).
[0179] Figure 5 shows the performance of different principal component analysis systems for determining the principal components of a dataset.
[0180] Figure 5 shows the performance of five different principal component analysis (PCA) systems: (i) a first PCA system labeled "μ-EG" that uses the technique described herein to determine the top k principal components of a dataset in parallel; (ii) a second PCA system labeled "α-EG" that uses the technique described herein to determine the top k principal components of a dataset sequentially; (iii) a third PCA system labeled "Ojas" that uses an existing technique to determine the top k principal components of a dataset; (iv) a fourth PCA system labeled "GHA" that uses an existing technique to determine the top k principal components of a dataset; and (v) a fifth PCA system labeled "Krasulinas" that uses an existing technique to determine the top k principal components of a dataset.
[0181] Figure 5 shows two graphs 510 and 520, which represent the different performance metrics for each of the five principal component analysis systems.
[0182] The first graph, 510, shows the "longest correct eigenvalue streak" for each principal component analysis system in each of the multiple iterations during the execution of that system. The "longest correct eigenvalue streak" in a particular iteration for a particular principal component analysis system identifies the number of estimated eigenvectors of the dataset's covariance matrix (corresponding to each estimated principal component) that have been estimated in order of principal components up to an angular threshold of ground truth eigenvectors of the dataset's covariance matrix. That is, in a particular iteration, a particular principal component analysis system produces a set of k estimated principal components, and the "longest correct eigenvalue streak" for s, where s ≤ k, indicates that the first s estimated principal components (i.e., principal components 1 through s) correspond to correct eigenvectors up to an angular threshold (e.g., π / s).
[0183] As shown in the first graph 510, the principal component analysis system that has the best “longest correct eigenvalue streak” for most of the iterations is the “μ-EG” system, i.e., a principal component analysis system that uses the technique described herein to determine the top k principal components of a dataset in parallel. As described above with reference to Figures 2A and 2B, the μ-EG principal component analysis system can include multiple agents corresponding to each principal component of the dataset, each agent iteratively updating its estimate for the corresponding principal component using its respective current estimated principal component generated by the other agents. Thus, the μ-EG principal component analysis system can generate accurate estimates for the top k principal components even in relatively early iterations.
[0184] The second graph, 520, shows the "subspace distance" for each principal component analysis (PCA) system in each of the multiple iterations during the execution of that PCA system. The "subspace distance" in a particular iteration for a particular PCA system uses the normalized subspace distance to determine how well the estimated eigenvectors of the dataset's covariance matrix (corresponding to each estimated principal component) capture the top k subspaces of the dataset. That is, in a particular iteration, a particular PCA system produces a set of k estimated principal components, and a shorter "subspace distance" indicates that the estimated eigenvectors corresponding to the estimated principal components define subspaces that are closer to the top k ground truth subspaces of the dataset. In other words, a shorter "subspace distance" indicates that the estimated principal components are more accurate.
[0185] The top k eigenvectors v of the dataset i k estimated eigenvectors, which are estimates of the result.
[0186]
number
[0187] Given a set of , the normalized subspace distance is:
[0188]
number
[0189] This can be determined by calculating U, where U * =VV † Therefore, V=[v1,...,v k ] and
[0190]
number
[0191] And,
[0192]
number
[0193] A † is the conjugate transpose of matrix A, and Tr(A) is the trace of matrix A.
[0194] As shown in the second graph 520, "μ-EG" (i.e., a principal component analysis system using the techniques described herein to determine the top k principal components of a dataset in parallel) and "α-EG" (i.e., a principal component analysis system using the techniques described herein to determine the top k principal components of a dataset sequentially) achieve relatively short "subspatial distances" after relatively few iterations, particularly compared to existing techniques used by the "GHA" and "Krasulinas" principal component analysis systems. In other words, using the techniques described herein, principal component analysis systems can rapidly generate highly accurate estimates of the top k principal components of a dataset.
[0195] This specification uses the term “configured” in relation to system and computer program components. For one or more computer systems, being configured to perform a particular operation or action means that the system has software, firmware, hardware, or a combination thereof installed that causes the system to perform the operation or action when it is running. For one or more computer programs, being configured to perform a particular operation or action means that the program, when executed by a data processing device, contains instructions that cause the device to perform the operation or action.
[0196] The embodiments and functional operations of the subject matter described herein may be implemented in digital electronic circuits, in tangibly embodied computer software or firmware, in computer hardware including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. The embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., as one or more modules of computer program instructions encoded on a tangible non-temporary storage medium for execution by a data processing device or for controlling the operation of a data processing device. The computer storage medium may be a machine-readable storage device, a machine-readable storage board, a random or serial access memory device, or one or more combinations thereof. Alternatively, or in addition, the program instructions may be encoded on artificially generated propagating signals, such as machine-generated electrical signals, optical signals, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device for execution by a data processing device.
[0197] The term "data processing device" refers to data processing hardware and encompasses all types of devices, machines, and equipment for processing data, including, for example, programmable processors, computers, or multiple processors or computers. A device may also be a dedicated logic circuit, such as an FPGA (Field-Programmable Gate Array) or ASIC (Application-Specific Integrated Circuit), or may further include them. In addition to hardware, a device may optionally include code that creates an execution environment for computer programs, such as processor firmware, protocol stacks, database management systems, operating systems, or code that constitutes one or more of these.
[0198] Computer programs, also called or sometimes written as programs, software, software applications, apps, modules, software modules, scripts, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Programs may, though not required, correspond to files in a file system. Programs may be stored in part of files that hold other programs or data, for example, in one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple collaborative files, for example, in files that store one or more modules, subprograms, or parts of code. Computer programs can be deployed to run on one computer, or on multiple computers located in one site or distributed across multiple sites and interconnected by a data communication network.
[0199] In this specification, the term “database” is used broadly to refer to any collection of data, which does not need to be organized in any particular way, or not at all, and may be stored on storage devices in one or more locations. Thus, for example, an index database may contain multiple collections of data, each of which may be organized and accessed differently.
[0200] Similarly, in this specification, the term “engine” is used broadly to refer to a software-based system, subsystem, or process programmed to perform one or more specific functions. Generally, an engine is implemented as one or more software modules or components installed on one or more computers in one or more locations. In some cases, one or more computers may be dedicated to a particular engine, while in other cases, multiple engines may be installed and run on the same computer.
[0201] The processes and logic flows described herein may be executed by one or more programmable computers that execute one or more computer programs to perform a function by acting on input data and producing outputs. The processes and logic flows may also be executed by dedicated logic circuits, such as FPGAs or ASICs, or by a combination of dedicated logic circuits and one or more programmed computers.
[0202] A computer suitable for running computer programs can be based on a general-purpose microprocessor, a dedicated microprocessor, or both, or any other type of central processing unit. Generally, the central processing unit receives instructions and data from read-only memory, random-access memory, or both. Essential elements of a computer are the central processing unit for executing or performing instructions and one or more memory devices for storing instructions and data. The central processing unit and memory may be complemented by or incorporated into dedicated logic circuits. Generally, a computer may also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operablely coupled for receiving data from them, transmitting data to them, or both. However, a computer is not required to have such devices. Furthermore, a computer may be incorporated into another device, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, such as a Universal Serial Bus (USB) flash drive.
[0203] Computer-readable media suitable for storing computer program instructions and data include, for example, all forms of non-volatile memory, media, and memory devices, such as semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
[0204] To provide user interaction, embodiments of the subject matter described herein may be implemented on a computer having a display device for displaying information to the user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, and a keyboard and pointing device, such as a mouse or trackball, on which the user can provide input to the computer. Other types of devices may be used similarly to provide user interaction; for example, feedback provided to the user may be any form of sensory feedback, such as visual, auditory, or tactile feedback, and input from the user may be received in any form, including acoustic, voice, or tactile input. In addition, the computer may interact with the user by sending and receiving documents from a device used by the user, for example, by sending a web page to a web browser in response to a request received from a web browser on the user's device. The computer may also interact with the user by sending text messages or other forms of messages to a personal device, such as a smartphone running a messaging application, and receiving response messages from the user in return.
[0205] A data processing device for implementing a machine learning model may, for example, include a dedicated hardware accelerator unit for handling the training or fabrication of the machine learning model, i.e., inference, the common parts of the workload, and the computationally intensive parts.
[0206] Machine learning models can be implemented and deployed using machine learning frameworks, such as the TensorFlow framework.
[0207] Embodiments of the subject matter described herein may be implemented in a computing system that includes, for example, a data server as a backend component, or a middleware component, for example, an application server, or a client computer having a frontend component, for example, a graphical user interface, a web server, or an application that allows a user to interact with an implementation of the subject matter described herein, or one or more such backend components, middleware components, or frontend components in any combination thereof. The components of the system may be interconnected by digital data communication in any form or medium, for example, a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), for example, the Internet.
[0208] A computing system can include a client and a server. The client and server are generally geographically separated and typically interact via a communication network. The client-server relationship arises from computer programs running on each computer that have a client-server relationship with each other. In some embodiments, the server sends data, such as an HTML page, to a user device for the purpose of displaying data to a user interacting with a device acting as a client and receiving user input from the user. Data generated on the user device, such as the results of user interaction, may be received from the device to the server.
[0209] Embodiment 1 is a method for determining multiple principal components v of a dataset X, and the method is: The steps include obtaining initial estimates for multiple principal components v, Each specific principal component v i Regarding this, by repeatedly performing the action, the principal component v i Steps to generate the final estimate regarding and The operation includes, Dataset X and a specific principal component v i The current estimated value of
[0210]
Number
[0211] An operation of generating a reward estimate using, the specific principal component v i The current estimated value of
[0212]
Number
[0213] When captures more variance within dataset X, the reward estimate is larger, the operation, and The specific principal component v i For each parent principal component v of j An operation of generating a respective penalty estimate, the specific principal component v i The current estimated value of
[0214]
Number
[0215] And the parent principal component v j The current estimated value of
[0216]
Number
[0217] When they are not orthogonal, the penalty estimate is larger, the operation, and Each parent principal component v j By combining the respective penalty estimates of, generating a combined penalty estimate for the specific principal component v i The operation of, and According to the difference between the reward estimate and the combined penalty estimate, the current estimated value of the specific principal component v i The current estimated value of
[0218]
number
[0219] The operation of generating updates for Includes.
[0220] Embodiment 2 is the method of Embodiment 1, in which the final estimates for the principal component v are generated sequentially in descending order of the principal components.
[0221] Embodiment 3 is a specific principal component v i Regarding the specific principal component v i Current estimate
[0222] [Number]
[0223] The number of iterations to update is
[0224]
number
[0225] Equivalent to,
[0226]
number
[0227] However, a specific principal component v i This is an initial estimate regarding u i However, initial estimate
[0228]
number
[0229] The specific principal component v calculated using i This is a utility estimate relating to ρ i However, a specific principal component vi The method of Embodiment 2, which is the maximum allowable error of the final estimated value regarding
[0230] Embodiment 4 has the utility estimated value u i being
[0231]
Number
[0232] <000098l>equal to
[0233]
Number
[0234] each being the final estimated value regarding a specific principal component v i of each parent principal component v j The method of Embodiment 3
[0235] Embodiment 5 is the method of Embodiment 1, in which the final estimated value regarding the principal component v is generated in parallel across the principal component v
[0236] Embodiment 6, for each specific principal component v i performs the calculation for generating the final estimated value regarding the principal component v i is assigned to each of a plurality of first processing devices, and the current estimated value of the specific principal component v i is broadcast at regular intervals to every other first processing device of the plurality of first processing devices
[0237]
Number
[0238] This is the method of Embodiment 5 The method of Embodiment 5
[0239] Embodiment 7 is a method that provides a subset X of multiple data elements within a dataset X. t This further includes the step of obtaining, Dataset X and specific principal component v i Current estimate
[0240]
number
[0241] The operation of generating a reward estimate using and subset X t and specific principal component v i Current estimate
[0242]
number
[0243] This includes the operation of generating a reward estimate using and a specific principal component v i Current estimate
[0244]
number
[0245] is subset X t If you capture more of the variance within, the reward estimate will be larger. This is either one of Embodiments 5 or 6.
[0246] Embodiment 8 is a specific principal component v i Regarding the estimated reward,
[0247]
number
[0248] or
[0249]
number
[0250] This is the method of Embodiment 7, which is proportional to [the given value].
[0251] Embodiment 9 is a specific principal component v i Regarding Each parent principal component v j The direction of the penalty estimate corresponding to the parent principal component v j Initial estimate
[0252]
number
[0253] Equal to the direction This is either one of the methods in Embodiment 7 or 8.
[0254] Embodiment 10 is one in which each parent principal component v j The penalty estimate for this is,
[0255]
number
[0256] This is the method of Embodiment 9, which is proportional to [the given value].
[0257] Embodiment 11 is a specific principal component v i Regarding each parent principal component v j The corresponding penalty estimate is,
[0258]
number
[0259] This is one of the methods of Embodiment 7 or 8, which is proportional to the given value.
[0260] Embodiment 12 is a specific principal component v i Regarding Specific principal component v iThe operation of generating a combined penalty estimate for each parent principal component v j This includes an operation to determine the sum of the respective penalty estimates, This is one of the methods from Embodiments 1 to 11.
[0261] Embodiment 13 is a specific principal component v i For this, according to the difference between the reward estimate and the combined punishment estimate, a specific principal component v i Current estimate
[0262]
number
[0263] The action of generating an update for Using the difference between the reward estimate and the combined penalty estimate, a specific principal component v i Estimated gradient of the utility function
[0264]
number
[0265] The action of determining,
[0266]
number
[0267] Intermediate updates proportional to
[0268]
number
[0269] The operation of generating, Intermediate update
[0270]
number
[0271] Using the current estimate
[0272]
number
[0273] The operation of generating updates for including, This is one of the methods from Embodiments 1 to 12.
[0274] Embodiment 14 is the current estimate
[0275]
number
[0276] The action of generating an update for
[0277]
number
[0278] This includes the operation of calculating η t However, the hyperparameter representing the step size is This is the method of Embodiment 13.
[0279] Embodiment 15 is, Specific principal component v i Current estimate
[0280]
number
[0281] The operation to generate updates for each different subset X of dataset X is performed in parallel across multiple second processing devices. m Multiple intermediate updates using
[0282]
number
[0283] This further includes the operation of generating, Current estimate
[0284]
number
[0285] The action of generating an update for Multiple intermediate updates are generated to create a combined intermediate update.
[0286]
number
[0287] The operation of combining and Using a combined intermediate update, the current estimate
[0288]
number
[0289] The operation of generating updates for including, This is the method of Embodiment 13.
[0290] Embodiment 16 uses the difference between the reward estimate and the combined penalty estimate to estimate the gradient
[0291]
number
[0292] The action that makes the decision is To generate the difference, the operation involves subtracting the combined penalty estimate from the reward estimate,
[0293]
number
[0294] The operation involves left multiplying the difference by a coefficient proportional to it. This is one of the methods from Embodiments 13 to 15, including the method described above.
[0295] Embodiment 17 is a specific principal component v i Regarding Specific principal component v i Current estimate
[0296]
number
[0297] The operation that generates an update for the current estimate is
[0298]
number
[0299] Update and normalize to achieve this.
[0300]
number
[0301] Actions that include performing This is one of the methods from Embodiments 1 to 16.
[0302] Embodiment 18 is, The step further involves using multiple principal components v to reduce the dimensionality of dataset X. This is one of the methods described in Embodiments 1 to 17.
[0303] Embodiment 19 is, The process of processing dataset X using a machine learning model further includes the step of using multiple principal components v. This is one of the methods from Embodiments 1 to 18.
[0304] Embodiment 20 is one of the methods of Embodiments 1 to 19, wherein the dataset X includes one or more of a set of images collected by a camera or a set of text data.
[0305] Embodiment 21 is a system comprising one or more computers and one or more storage devices that, when executed by one or more computers, store instructions causing one or more computers to execute any one of the methods of Embodiments 1 to 20.
[0306] Embodiment 22 is a system according to Embodiment 21, dependent on Embodiment 5, comprising multiple processing devices configured to operate in parallel with corresponding principal components v in order to generate a final estimate of the principal components v.
[0307] Embodiment 23 is one or more computer storage media that, when executed by one or more computers, store instructions causing one or more computers to execute any one of the methods of Embodiments 1 to 20.
[0308] This specification includes many details of specific implementations, but these should not be interpreted as limitations on the scope of any invention or the scope that may be claimed, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may be implemented separately in multiple embodiments or in any suitable partial combination. Furthermore, features may be described above as acting in a particular combination, and may even be initially claimed as such, but one or more features from a claimed combination may, in some cases, be removed from the combination, and the claimed combination may be directed towards a partial combination or a variation of a partial combination.
[0309] Similarly, although the operations are depicted in the drawings in a specific order and enumerated in the claims, this should not be understood as requiring that such operations be performed in a specific or sequential order shown, or that all shown operations be performed, in order to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0310] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. For example, the actions enumerated in the claims may be performed in a different order and still achieve the desired results. As an example, the process depicted in the appended drawings does not necessarily require the specific order or sequential order shown to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous. [Explanation of symbols]
[0311] 100 Principal Component Analysis System 110 Datastores 112 datasets 120a~k Agent Engine 122a~k Principal components 200 Principal Component Analysis System 210 datastores 212 batches, data batches 220a~k Agent Engine 222a~k Estimated values, estimated principal components 230 distribution engine 300 Systems 310 Datastores 312 datasets 320 Principal Component Analysis System 322 reduced sets, reduced datasets 330 Machine Learning Systems 510 Graph 520 Graphs
Claims
1. A computer-based method for determining multiple principal components v of a dataset X, wherein the method is The steps include obtaining initial estimates for the multiple principal components v, Specific principal component v i For each of these, the specific principal component v is obtained by repeatedly performing the operation. i Steps to generate the final estimate regarding and The operation includes, The dataset X and the specific principal component v i Current estimate [Math 1] An operation to generate a reward estimate using the particular principal component v i The current estimate of the above [Math 2] If it captures more variance within the dataset X, the reward estimate will be larger, and the behavior will be greater. The aforementioned specific principal component v i The parent principal component v j For each of the above, the current estimates of the dataset X and the parent principal component vj [Math 3] An operation to generate each penalty estimate using and the particular principal component v i The current estimate of the above [Math 4] and the aforementioned principal component v j The current estimate of the above [Math 5] If the two are not orthogonal, the generated penalty estimate is greater, and Each parent principal component v j By combining the respective penalty estimated values of the above, the specific principal component v i The operation of generating a combined penalty estimated value related to and, According to the difference between the reward estimate and the combined penalty estimate, the specific principal component v i The current estimate of the above [Math 6] The operation of generating updates for Methods that include...
2. The method according to claim 1, wherein the final estimate for the principal component v is generated sequentially in descending order of the principal components.
3. Each specific principal component v i Regarding the aforementioned specific principal component v i The current estimate of the above [Number 7] The number of iterations to update is [Number 8] Equivalent to, [Number 9] However, the aforementioned specific principal component v i This is an initial estimate regarding u i However, the initial estimated value [Number 10] The specific principal component v calculated using i This is a utility estimate relating to ρ i However, the aforementioned specific principal component v i The method according to claim 2, wherein the maximum permissible error of the final estimate relating to the said.
4. The aforementioned utility estimate u i but, [Math 11] Equal to each [Math 12] However, the aforementioned specific principal component v i Each of the parent principal components v j The method according to claim 3, which is the final estimated value relating to the above.
5. The method according to claim 1, wherein the final estimate with respect to the principal component v is generated in parallel over the principal component v.
6. Each specific principal component v i Regarding The principal component v i The calculation for generating the aforementioned final estimate is assigned to each of the multiple first processing devices, The aforementioned specific principal component v i The current estimate of the above [Number 13] The method according to claim 5, wherein the information is broadcast at regular intervals to each of the plurality of first processing devices to other first processing devices.
7. The method involves a subset X of multiple data elements within the dataset X. t This further includes the step of obtaining, The dataset X and the specific principal component v i The current estimate of the above [Number 14] The operation of generating a reward estimate using the subset X t and the aforementioned specific principal component v i The current estimate of the above [Number 15] The operation includes generating a reward estimate using the particular principal component v i The current estimate of the above [Number 16] is the subset X t The method according to claim 5 or 6, wherein the reward estimate is larger when capturing more of the variance within.
8. Each specific principal component v i Regarding the aforementioned reward estimate, [Number 17] or [Number 18] The method according to claim 7, which is proportional to [the specified value].
9. Each specific principal component v i Regarding Each parent principal component v j The direction of the penalty estimate corresponding to the parent principal component v j Initial estimate [Number 19] The method according to claim 7 or 8, which is equal to the direction of.
10. Each parent principal component v j The aforementioned penalty estimate is, [Number 20] The method according to claim 9, which is proportional to [the specified value].
11. Each specific principal component v i Regarding each parent principal component v j The penalty estimate corresponding to this is [Math 21] The method according to claim 7 or 8, which is proportional to [the specified value].
12. Each specific principal component v i Regarding The aforementioned specific principal component v i The operation of generating a combined penalty estimate for each parent principal component v j The method according to any one of claims 1 to 11, comprising the operation of determining the sum of the respective penalty estimates.
13. Each specific principal component v i Regarding this, according to the difference between the reward estimate and the combined penalty estimate, the specific principal component v i The current estimate of the above [Number 22] The action of generating an update for Using the difference between the reward estimate and the combined penalty estimate, the specific principal component v i Estimated gradient of the utility function [Number 23] The action of determining, [Number 24] Intermediate updates proportional to [Number 25] The operation of generating, The aforementioned intermediate update [Number 26] Using the current estimate [Number 27] The operation of generating the aforementioned update for The method according to any one of claims 1 to 12, including the method described in any one of claims 1 to 12.
14. The current estimated value [Number 28] The operation that generates the aforementioned update for is [Number 29] This includes the operation of calculating η t The method according to claim 13, wherein the hyperparameter is a step size.
15. The aforementioned specific principal component v i The current estimate of the above [Number 30] The operation to generate updates for each different subset X of the dataset X is performed in parallel across multiple second processing devices. m Multiple intermediate updates using [Number 31] The operation of generating further includes, The current estimated value [Number 32] The operation that generates the aforementioned update for is To generate a combined intermediate update, the multiple intermediate updates [Number 33] The operation of combining and Using the aforementioned combined intermediate update, the current estimate [Number 34] The operation of generating the aforementioned update for The method according to claim 13, including the method described in claim 13.
16. Using the difference between the reward estimate and the combined penalty estimate, the estimated gradient [Number 35] The action that makes the decision is To generate the difference, the operation involves subtracting the combined penalty estimate from the reward estimate, [Number 36] The operation involves multiplying the difference by a coefficient proportional to the difference. The method according to any one of claims 13 to 15, including the method described in any one of claims 13 to 15.
17. Each specific principal component v i Regarding The aforementioned specific principal component v i The current estimate of the above [Number 37] The action of generating an update for [Number 38] The current estimate is updated and normalized so that, [Number 39] The method according to any one of claims 1 to 16, including an action to perform.
18. The method according to any one of claims 1 to 17, further comprising the step of using the plurality of principal components v to reduce the dimensionality of the dataset X.
19. The method according to any one of claims 1 to 18, further comprising the step of using the plurality of principal components v to process the dataset X using a machine learning model.
20. The method according to any one of claims 1 to 19, wherein the dataset X includes one or more of a set of images collected by a camera or a set of text data.
21. One or more computers, When executed by the one or more computers, one or more storage devices storing instructions causing the one or more computers to perform the method according to any one of claims 1 to 20, A system equipped with these features.
22. The system according to claim 21, as dependent on claim 5, comprising a plurality of processing devices configured to operate in parallel with respect to corresponding principal components v, in order to generate the final estimate with respect to the principal component v.
23. One or more computer storage media that, when executed by one or more computers, store instructions causing the one or more computers to perform the method according to any one of claims 1 to 20.
Citation Information
Patent Citations
Method of processing signal data on the basis of prinicipal component transform, apparatus for performing the method
EP0448890A1
Signal data processing method and apparatus
JP1992330556A
Method for controlling a laser processing operation by means of a reinforcement learning agent and laser material processing head using the same
WO2012000649A1