Fractional modeling for simulation-based reasoning

By using score generation neural network to model and update the posterior distribution of simulator parameters, the problem of inefficiency in the processing of multiple observations is solved, efficient and accurate simulation-based inference is achieved, and computing needs are reduced.

CN119547076APending Publication Date: 2025-02-28GDM HOLDINGS LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380051438.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-01-26
Filing Date
2023-09-26
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

Existing simulation-based inference techniques are inefficient when processing multiple observations and are susceptible to limitations of previous techniques, increasing simulation costs and potentially introducing approximate errors and failure modes.

Method used

A score generation neural network is used to model the posterior distribution of simulator parameters based on the product of the posterior distribution caused by individual observations. By summing the observed scores, the update value of the simulator parameters is determined, reducing training costs and improving the robustness of the model.

Benefits of technology

This technology is able to handle observation sets of arbitrary sizes naturally without increasing simulation costs, reducing the limitations of previous technologies, improving the efficiency and accuracy of inference, and reducing computational requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119547076A_ABST
    Figure CN119547076A_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for reasoning a set of parameters, such as measurements, from observations (e.g., real-world observations) using simulation-based reasoning. The method uses a score generation neural network to determine scores for individual observations or groups of observations that are combined and used to iteratively adjust the value of the parameter.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Application No. 63 / 410,158 filed on September 26, 2022 and No. 63 / 441,403 filed on January 26, 2023. The disclosure of the prior application is considered part of the disclosure of the present application and is incorporated by reference into the disclosure of the present application. Background Art

[0003] This specification relates to simulation-based reasoning using neural networks.

[0004] A neural network is a machine learning model that uses one or more layers of nonlinear units to predict outputs for received inputs. Some neural networks include one or more hidden layers in addition to the output layer. The output of each hidden layer is used as the input to the next layer in the network (i.e., the next hidden layer or output layer). Each layer of the network generates an output from the received input according to the current values ​​of the corresponding set of parameters. Summary of the invention

[0005] This specification describes a system for simulation-based reasoning that is implemented as a computer program on one or more computers in one or more locations. For example, given a black-box simulator of a physical process that uses a set of input parameters to generate simulated outputs, the described techniques can reverse the process to reason about the set of input parameters, i.e., measurements, from real-world observations. The described techniques have a wide range of applications across science, medicine, and engineering fields.

[0006] In one aspect, a method and corresponding system implemented by one or more computers in one or more locations is described for determining a set of simulator parameters for a simulator, such as one or more measurements representing a real-world physical system. The simulator is configured to generate, for example, simulated observations of the real-world physical system based on the set of simulator parameters.

[0007] The method includes receiving a set of one or more observations, such as of a real-world physical system, and sampling initial values ​​of a set of simulator parameters from a reference distribution (e.g., a Gaussian distribution). The method updates the current values ​​of the set of simulator parameters at each of a series of time (update) steps.

[0008] In an embodiment, updating involves determining, for each of the simulator parameters, a current value for the simulator parameter and a corresponding parameter adjustment value for the set of observations. The updated value for each of the simulator parameters may then be determined using the corresponding parameter adjustment value for the current value of the simulator parameter.

[0009] In an embodiment, determining a corresponding parameter adjustment value for each of the simulator parameters uses a score generating neural network (trained using the simulator) to process, for each observation, i) an embedding of the current value of the simulator parameter, ii) an embedding of the observation, in particular an embedding of one or more of the observations in the observation, and iii) an embedding of the index (e.g., time or count) of the current time step to generate a score for the observation. The scores of the observations may then be summed to determine a corresponding parameter adjustment value for the current value of the simulator parameter.

[0010] In some implementations, the score-generating neural network processes only one observation at a time. In some implementations, the score-generating neural network processes groups of two or more observations at a time. That is, the score-generating neural network can process one or more observations (and can generate scores for one or more observations).

[0011] In an embodiment, the score generating neural network processes the embedding of the current value of each of the simulator parameters and generates an output including a score for each of the simulator parameters (all simulator parameters). In an embodiment, the simulator parameters are processed in parallel by the score generating neural network, and the scores and corresponding parameter adjustment values ​​are also determined in parallel.

[0012] The subject matter described in this specification can be implemented in specific embodiments to realize one or more of the following advantages.

[0013] In general, simulation-based reasoning allows reasoning about the properties of a real-world physical system in situations where it is possible to simulate observations of the system based on its properties, but where the inverse problem is difficult to solve. For example, one benchmark is the Weinberg simulator (Louppe et al., arXiv:1707.07113), which simulates electron-positron collisions, where the angular distribution of the particles can be used to infer (i.e., measure) the Fermi constant.

[0014] One drawback of simulation-based inference is that an exact approximation may require many simulator invocations, which can be problematic for expensive simulators. Neural Posterior Estimation (NPE) is efficient for a single observation but inefficient for multiple observations because the simulator then needs to be called several times at each setting of the simulator parameters to generate each training case. Neural likelihood estimation methods require only a single call to the simulator per training case, but their performance is hampered by their reliance on the underlying inference method, which can introduce additional approximation errors and additional failure modes, e.g., struggling with the multimodal distribution of simulator parameters.

[0015] In contrast, the described techniques can naturally handle sets of observations of arbitrary size without increasing simulation costs, and may also be less limited by previous techniques. In an embodiment, the described techniques use a score generative neural network that models the posterior distribution over simulator parameters based on the product of posterior distributions caused by (i.e., conditioned on) individual observations. In an embodiment, the same score generative neural network is used to model the posterior distributions of all parameters and all observations, thereby reducing training costs. In an embodiment, the score generative neural network models gradients with respect to simulator parameters, for example, the gradient of the log probability density function (log likelihood function) of the simulator parameters, which is used to gradually adjust the simulator parameters; this approach helps model complex distributions.

[0016] Factoring the posterior distribution is effective, but in some cases summing the fractions of observations can accumulate errors. An extension to the described technique factors the posterior distribution using a small subset of observations rather than individual observations, i.e. the posterior distribution is only partially factorized. This involves more simulator calls during training, but can potentially provide better accuracy.

[0017] In general, the described techniques are robust to design choices such as the size and architecture of the score-generating neural network and, where applicable, to the choice of hyperparameters of the system.

[0018] The system's ability to handle varying numbers of observations at inference time and to efficiently sample from multimodal posteriors facilitates its use in scientific and engineering applications that require complex simulation systems. The described techniques are effective in such settings and can significantly reduce the computation required when applying simulation-based reasoning to real-world applications in science, medicine, and mechanical, electrical, chemical, and software engineering.

[0019] The 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, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 is a block diagram of an example simulation-based inference neural network system and training engine.

[0021] Figure 2 Shows Figure 1 Specific example implementations of a simulation-based inference neural network system and training engine.

[0022] Figure 3is a flow chart of an example process for determining a set of simulator parameters using a simulation-based inference neural network system.

[0023] Figure 4 It is available for Figure 3 Flowchart of the preprocessing process.

[0024] Figure 5 is a flowchart of an example process for training a score-generating neural network.

[0025] Figure 6 The performance of some example implementations of the described system is shown.

[0026] Like reference numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION

[0027] Figure 1 An example simulation-based inference neural network system 100 and training engine 150 are shown. The simulation-based inference neural network system 100 is an example of a system implemented as one or more computer programs on one or more computers in one or more locations in which the systems, components, and techniques described below are implemented.

[0028] System 100 is configured to receive a set of observations 102 and process the observations to determine values ​​for a set of simulator parameters 104. The observations may include observations of a physical system, and the parameters may characterize the physical system. For example, observations 102 may be observations of a physical reality, such as from one or more sensors, and system 100 may be used as part of a measurement method for measuring the values ​​of the set of parameters. Some specific examples are given later.

[0029] The system 100 includes a score generating neural network 110 for determining a set of simulator parameters 104. The score generating neural network 110 is configured to process embeddings 112 of one or more observations in the set of observations 102, embeddings 114 of current values ​​of one or more of each parameter in the set of simulator parameters 104, and embeddings of current time step index 116 according to learnable score neural network parameters (e.g., weights) to generate scores 118 for the one or more observations. The scores 118 are used to determine parameter adjustment values ​​for the current values ​​of each simulator parameter.

[0030] In this specification, an "embedding" of an entity may refer to a representation of the entity as an ordered set of numerical values, such as a vector or matrix of numerical values. An embedding of an entity may be generated, for example, as the output of a neural network processing data representing the entity, or as the result of some other encoding process.

[0031] The score generating neural network 110 may have any suitable architecture, such as a feedforward neural network architecture, for example an MLP (multi-layer perceptron) architecture, or a recursive neural network architecture, or an attention-based neural network architecture. The neural network may include any suitable type of neural network layers connected in any suitable number and in any suitable configuration (e.g., as a linear sequence of layers or as a directed graph of layers), for example, one or more convolutional layers, or self-attention layers, or fully connected layers, or recursive layers, etc.

[0032] The training engine 150 is used to train the score generating neural network 110, i.e., to update the learnable score neural network parameters. The training uses training data items obtained from the simulator 160 (e.g., a simulator of a physical system). Typically, the simulator 160 is only used during training. An example process for training the score generating neural network 110 is described later.

[0033] The simulator 160 may be implemented as one or more computer programs on one or more computers in one or more locations, and may be viewed as a black box. The simulator 160 is used to generate synthetic, i.e., simulated observations 164, x, controlled by a set θ of simulator parameters 162. Typically, the simulator 160 comprises a probabilistic model, i.e., it has a stochastic element, e.g., involving random sampling to generate simulated observations.

[0034] Figure 2 Shows Figure 1 A specific example implementation of the simulation-based reasoning neural network system 100 and the training engine 150. Figure 2 , an embedding for each observation can be generated by processing each of the observations using an observation embedding neural network 122 (e.g., a feed-forward neural network such as an MLP).

[0035] In general, a set of n observations 102 {x1,…,x n The observation x in} may be a multidimensional vector, where each component represents a value associated with the observation. In some embodiments, embedding 112 is the embedding x of an individual (ie, a single) observation in the set of observations 102. emb , and can be obtained as the output of the observation embedding neural network 122.

[0036] In some implementations, embedding 112 is an embedding X of a group of observations in the set of observations 102. emb , and the score 118 can then depend on the group of observations. For example, embedding 112X emb This can be accomplished by applying a permutation invariant transformation to the group (e.g., from the observation embedding neural network 122), such as by embedding x of the individual observations in the group embSumming or averaging is performed to obtain.

[0037] Processing of embeddings 112x of groups of observations in score generating neural network 110 emb In the case where the number of observations in a group is variable, the score generating neural network 110 may also be configured to process embeddings n that count the number of embeddings in the group. emb , where n emb Define a number ranging from 1 to m, where m is the maximum number of observations in a group. As an example n emb A 1-hot encoding of the number of observations in the group may be included.

[0038] The embedding of the current value of the simulator parameter may be obtained from a parameter embedding neural network 124 (e.g., a feed-forward neural network such as an MLP), in particular by processing the current value of the simulator parameter using the parameter embedding neural network 124. In general, a set of simulator parameters may be defined by a multidimensional vector θ of parameters, where each component represents a value of one of the simulator parameters. The parameter embedding neural network 124 may be configured to process the vector θ of parameters to determine a parameter embedding 114θ of the set of simulator parameters emb .

[0039] In an embodiment, the embedding t of the index at the current time step is determined by encoding the index as a d-dimensional vector emb The index of the current time step t emb Typically an integer. Any suitable encoding may be used, i.e. the system may generate an embedding of the index of the current time step as any suitable function of the index; or the embedding may be learned. As just one example, the value of each dimension i of the embedding may be sin(ωt) for even i and cos(ωt) for odd i, where ω = N -2i / d , where N is an integer, usually a large number such as 10000.

[0040] The score generating neural network 110 may generate a score 118 for a current value of a simulator parameter or a set of simulator parameters θ. In some embodiments, the score generating neural network 110 may directly generate the score 118. In some embodiments, the score generating neural network 110 may generate the score 118 by generating one or more parameters of a distribution from which the scores 118 are sampled. In embodiments, the observed scores are summed to determine a corresponding parameter adjustment value for the current value of each simulator parameter.

[0041] exist Figure 2 In the example, the score generation neural network system 130 includes a score generation neural network 110, an observation embedding neural network 122, and a parameter embedding neural network 124. As an example, the score generation neural network 110 may include a neural network configured to process θemb ,t emb and x emb or X emb and optionally n emb MLPs.

[0042] Figure 3 is a neural network system for using simulation-based inference (e.g. Figure 1 or Figure 2 Flowchart of an example process for determining a set of simulator parameters using a simulation-based inference neural network system 100. Figure 3 The process can be used, for example, to make measurements of a real-world physical system (simulated by the simulator 160 on which the system is trained), the measurements being defined by a set of one or more simulator parameters. Broadly speaking, a score generating neural network is used to determine scores for individual observations or groups of observations, which scores are combined and used to iteratively adjust the values ​​of the simulator parameters.

[0043] At step 302, the process receives a set of n observations. In an embodiment, a set c of a plurality of observations 102, c = {x1, ..., x n}.

[0044] At step 304, the initial values ​​of the simulator parameter set θ are obtained from the reference distribution p T (θ) samples. The subscript T refers to the initial time step, and with this notation, the time steps are considered to count down, e.g. from T towards zero. The reference distribution can be, for example, a Gaussian distribution, e.g. where I is the identity matrix (with ), or some other distribution, such as a Beta distribution or a uniform distribution. In some embodiments, the (simulator) model can be reparameterized so that the prior becomes a standard Gaussian.

[0045] At each of a series of time steps, the process is based on a collection of more observations {x1,…,x n} to determine the corresponding parameter adjustment value for the current value of each simulator parameter.

[0046] exist Figure 3 In one embodiment of the process, this involves processing the observations one at a time using the score generating neural network 110. Figure 4 When preprocessing the observations, the score generating neural network 110 is used to process the observations in groups.

[0047] More specifically, in Figure 3At step 306 of the example process of , the score generating neural network 110 processes the embedding of the current value of the simulator parameter θ, the embedding of one or more observations, and the embedding of the index of the current time step t to generate a score 118 for the embedding of the one or more observations. In some embodiments, the score generating neural network 110 processes one observation x in the observation j to generate the score 118 of this observation, s(θ,t,x j ). In some implementations, the score generating neural network 110 processes the embeddings of the group of observations to generate a score 118 for the group of observations.

[0048] Then the scores of the observations are summed, for example, the score s(θ,t,x j ) are summed (in some embodiments as a weighted sum) to determine a corresponding parameter adjustment value for the current value of each simulator parameter (step 308).

[0049] An updated value for each of the simulator parameters is then determined using the corresponding parameter adjustment value for the current value of each simulator parameter (step 310). In some embodiments, the simulator parameters are adjusted by their corresponding parameter adjustment values. In some embodiments, the updated simulator parameter values ​​are sampled from a distribution parameterized by the corresponding parameter adjustment values.

[0050] In some embodiments, determining an updated value for each of the simulator parameters includes adding noise to the updated value for each of the simulator parameters, for example, by explicitly adding noise values, or by sampling each of the simulator parameters from a distribution, or by corrupting the updated value for each of the simulator parameters.

[0051] In some embodiments, the process reduces the level of the added noise over a series of time steps, for example according to a noise (variance) reduction schedule. That is, the level of the added noise may be gradually reduced as t decreases from the total number of time steps T toward 1. In general, any noise reduction schedule may be applied.

[0052] Determining a corresponding parameter adjustment value for the current value of each simulator parameter may include adding a time step dependent correction term to the summed score of observations. For example, in some embodiments, an a priori correction term may be added to correct for a prior distribution of the parameter, p(θ), such as a Gaussian distribution. For example, the a priori correction term may be determined as (in can be accurately assessed).

[0053] In some embodiments, determining the updated value of each of the simulator parameters uses a method based on Langevin dynamics. Determining the updated value of each of the simulator parameters may include adjusting each of the simulator parameters using a current value for the simulator parameter and a corresponding parameter adjustment value for the set of observations, for example, by adding the corresponding parameter adjustment value.

[0054] For example, the approximate score of a set of observations, s(θ, t, c), can be obtained by summing the scores of n individual observations, for example by determining s(θ, t, c) as Optionally, a time step dependent correction term, such as an a priori correction term as described above, e.g. can be added to the sum. The approximation scores for the set of observations, s(θ, t, c), can be used to determine corresponding parameter adjustment values ​​for each of the simulator parameters, which are then used to determine updated values ​​for each of the simulator parameters, such as by adding the corresponding parameter adjustment values.

[0055] As a specific example, determining updated values ​​for each of the simulator parameters uses a "Langevin step" which involves updating a set of simulator parameters θ such that in And δ t is the step size, where t generally varies with time step t, and specifically decreases as t decreases from T towards 1. In an embodiment, a plurality (L) of such Langevin steps are performed at each time step to update a set of simulator parameters.

[0056] Continuing with the specific example, determining the set of simulator parameters may involve sampling the initial values ​​of the set of simulator parameters as p~p at t=T. T (θ), and then for each successive time step t = T-1, T-2, ..., 1, perform L Langevin steps, s, each according to The noise is sampled and a set of simulator parameters are updated. The number of time steps and Langevin steps will typically vary with the application and can be determined by routine experimentation. By way of illustration only, in one example, T may be 400 and L may be 5. By way of illustration only, in one example, δ t can be determined as where for t = 2, ..., T-1, α1 = γ1 and α t =γ t / γ t-1 , and where 0≈γ T <γ T-1<…<γ1<1 (where the value of γ defines a certain step size schedule).

[0057] In some implementations, determining the updated value for each of the simulator parameters uses a method based on a back diffusion process.Determining the updated value for each of the simulator parameters may include sampling from a probability density distribution parameterized by corresponding parameter adjustment values ​​for current values ​​of the simulator parameters.

[0058] As an example, the probability density distribution may comprise a (multivariate) Gaussian distribution, and for the current value of each simulator parameter and the corresponding parameter adjustment value for the set of observations (at time step ) a mean μ of the Gaussian distribution (at time step ) may be defined. t In an embodiment, the variance of the Gaussian distribution may be determined based on the time step In particular, the variance (noise level) is reduced for successive time steps. Then, the distribution can be obtained by drawing from a (multivariate) Gaussian distribution (e.g., ) to determine the updated value of each of the simulator parameters.

[0059] Summing the scores for the observations may include, for each observation, summing a linear combination of a current value of the simulator parameter and the score for the observation.

[0060] As a specific example implementation, for the case of a Gaussian distribution, and for the example timetable α1=γ1 and α t =γ t / γ t-1 (for t = 2, ..., T-1), where 0 ≈ γ T <γ T-1 <…<γ1<1, the current values ​​of the simulator parameters and the observed x j The linear combination of the fractions μ jt can be determined as

[0061] Determining the current value of the simulator parameter and the corresponding parameter adjustment value for the set of observations may include determining a linear combination of the current value of the simulator parameter and a summed linear combination of the current value of the simulator parameter and the fraction of observations. As previously described, this may also include adding a time step dependent correction term to the determined linear combination.

[0062] Continuing with the previous example, for the case of a Gaussian distribution and for the particular example timetable, the linear combination μ t can be determined as μ on n jt More specifically, by determining

[0063] Thus, for a particular example embodiment, determining a set of simulator parameters can involve sampling an initial value of the set of simulator parameters as p~p T (θ), and then for each successive time step t = T-1, T-2, …, 1, updating the set of simulator parameters by sampling from the distribution wherein, and and wherein optionally, a prior correction term can be added to μ t .

[0064] As described above, determining an updated value of the simulator parameters by summing the scores of individual observations can accumulate errors. One way to address this problem is to train a single score generation neural network on different numbers of observations, but this is inefficient in a system designed to handle varying numbers of individual observations because the neural network needs to be trained on a series of different numbers of observations, thus requiring a large number of simulator calls. This can be addressed by grouping the observations into small subsets of observations to be processed together.

[0065] Figure 4 is a flowchart of a preprocessing of a process that can be used for Figure 3 . In Figure 4 , at step 400, the process receives a set c of a plurality of observations 102, c = {x1, …, x n}.

[0066] The process groups the plurality of observations into groups of observations (step 402). More specifically, subsets of observations are grouped into groups of observations, e.g., groups of sets of observations with varying numbers of observations. A group can have a set of observations with a varying number of observations, where the number of observations in the set of observations is not limited to an integer multiple of the group (subset) size. In an embodiment, the groups are disjoint groups of disjoint subsets of observations.

[0067] As an example, a set c of a plurality of observations 102, {x1, …, x n} can be partitioned into disjoint subsets of at most m size, where m ≥ 1, more specifically, where m > 1 and, in an embodiment, where, m < n, i.e., where the number of observations in the group of observations is less than the number of observations in the set of observations. denotes the ceiling function, i.e., the smallest integer equal to or greater than n / m. The disjoint subsets can be denoted as X1, …, X k . Generally, each subset X j can have a size that varies between 1 and m, i.e., the number of observations.

[0068] Then, the process can be as previously referenced Figure 3Continue as described, starting from step 304, but with X j Replace x j And replace n with k and n emb is the embedding of k, i.e., processing a subset of observations rather than individual observations. For example, the process uses the score generation neural network 110 to process the embedding of the group of observations together, i.e., processing the embedding of the group of observations, X emb is not the embedding x of the individual observations emb , to generate the score 118.

[0069] The score generating neural network 110 may process embeddings for groups or subsets of observations together, for example, by averaging the individual observation embeddings to obtain a final embedding X for the group. emb , which is processed by the score generating neural network 110 to generate the score 118.

[0070] For example, for each of the observations, generating an embedding of the neural network processing the current value of the simulator parameter(s), the embedding of the observation, and the embedding of the index of the current time step using the trained scores to generate the score for the observation may include generating an embedding of the neural network processing the current value of the simulator parameter(s), the embedding of the group of observations X using the trained scores emb and the embedding of the index of the current time step to generate the score of the observation.

[0071] Optionally, the score generating neural network 110 processes the embedding X of the group emb and the count of the number of embeddings in the group n emb (=k emb ) as well as an embedding of the simulator parameters and the index of the current time step.

[0072] The maximum size of the group, i.e., the value of m, controls the trade-off between computational resources (particularly sample efficiency, i.e., how many observations, i.e., simulator calls, are needed to train the score generating neural network 110) and the accuracy of the parameter estimates (i.e., the error accumulation when summing the scores of the observations). In some embodiments, m can be relatively small, e.g., 1. <m≤10。

[0073] Typically, the score generating neural network 110 is trained to approximate the scores of a noisy or "diffused" version of an individual observation x or a group x of observations.

[0074] Figure 5 is a flow chart of an example process for training a score-generating neural network to generate scores. Figure 5 The process may be performed by a system of one or more computers located in one or more locations, for example, by Figure 1 or Figure 2For convenience, reference will be made to Figure 1 and Figure 2 The score generating neural network 110 is used to describe this process.

[0075] This process involves obtaining a set of training examples. The set of simulator parameters θ can be obtained by sampling from a prior distribution p(θ) over the simulator parameters i The value of (for each of) is used to obtain training examples (step 502).

[0076] Then use the simulator to generate at least one simulated observation x i (Step 504), by using the set θ of simulator parameters i The process may also involve determining (eg, sampling) the value of a time step, ie, the index of the time step.

[0077] The score generating neural network 110 is trained using the set of simulated observations and sampled simulator parameters (and in some embodiments, the index of the time step) in each training example (step 506). The observation embedding neural network 122 and the parameter embedding neural network can be trained simultaneously with the score generating neural network 110.

[0078] Typically, training the score generating neural network 110 includes back-propagating the gradient of the objective function based on the scores 118 generated by the score generating neural network 110 for (multiple) simulated observations to update the score neural network parameters. The score neural network parameters can be updated using any suitable gradient descent optimization algorithm (e.g., Adam or another optimization algorithm).

[0079] In some embodiments, the score generating neural network is trained to approximate the scores of the distribution caused by individual observations. At inference time, the scores from the score generating neural network 110 can be aggregated as described above to sample the target posterior score distribution. When only a single simulator call is required at each sample (θ i , x i ), such methods can aggregate any number of observations at inference time, where (θ i , x i ) represents the i-th training example.

[0080] In some embodiments, the simulator parameter set θ i Sampling multiple simulated observations, e.g., Where 1≤n i ≤m and the number of n for the u-th training example iThe observations are sampled from a uniform distribution. Thus, subsets of observations may be grouped, for example, into groups of sets with varying numbers of observations, such as disjoint groups of sets of disjoint observations. The training process may involve partitioning the set of training examples into a plurality of groups of training examples, each group comprising one or more sets (subsets) of the observations (for the same set of simulator parameters). In an embodiment, the groups comprise different numbers of training examples. The uth such group of training examples may be denoted as and can therefore be considered as a single training example consisting of multiple observations.

[0081] The groups of observations may be used to train the score generating neural network 110. That is, the score generating neural network 110 may be used to process the set (subset) of observations in each group together to generate scores for training the score generating neural network. At inference time, the observations may be grouped and processed together by the score generating neural network 110 as previously described.

[0082] In some embodiments, the score generating neural network 110 is configured to process the embeddings of the simulator parameters, the embeddings of each of the observations in the group of training examples (combined, e.g., averaged), the count of the number of sets of observations in the group (more specifically the embeddings, e.g., one-hot encoding of the counts), and the embedding of the index of the current time step to generate a score 118 for the observation.

[0083] Training may involve applying a permutation invariant transformation to the set of observations in each group, such as by summing or averaging them. Each group of training examples may then be processed using a score generating neural network 110, with the count of the number of observations equal to the number of training examples in the subset. The scores of the groups of observations may then be generated based on (e.g., based on the scores generated by processing The obtained score) uses the objective function to train the score generation neural network 110.

[0084] In more detail, training the score generating neural network may include, for each of the simulator parameters, and for each of the sequence of one or more training time steps, processing the embeddings of sampled values ​​of the simulator parameters, the embeddings of the simulated observations, and the embeddings of the indexes of the time steps using the score generating neural network 110 according to the current values ​​of the score neural network parameters to generate a score 118 for the observation. Typically, the score generating neural network 110 processes the simulator parameters together as a set of parameters, θ i .

[0085] As described below, although in inference, the index of the current time step processed by the score generative neural network 110 can be considered to define the sequence t=T-1, T-2, ..., 1, when the generative neural network 110 is trained, it is not necessary to train using a sequence of increasing or decreasing time steps. That is, during training, the generative neural network 110 can be presented with the embedding of the index of any time step t.

[0086] The method can determine the gradient of an objective function (with respect to the fractional neural network parameters) that depends on the difference between the observed scores and the scores determined from the sampled values ​​of the set of simulator parameters. This can, but need not, be summed over one or more training time steps. The gradient can then be used (e.g., by backpropagation) to update the current values ​​of the fractional neural network parameters.

[0087] In an embodiment, the method includes adding noise to each sampled value of a set of simulator parameters at one or more training time steps (e.g., at each training time step of a sequence of training time steps). As a specific example, if the training time step is in the range of t=1 and t=T-1 or t=T, the added noise can be such that there is less noise when t is closer to 1.

[0088] As an example, the objective function, such as the loss function l t , can depend on where ‖·‖2 represents the 2-norm, is the disturbance θ ′ to the noise distribution of θ, and where, as mentioned above, 0 ≈ γ T <γ T-1 <…<γ1<1 (equivalent to α defined above t Can be used instead of γ t ). This is one example of a choice of noise distribution (there are other noise distributions that could be used), where can be evaluated in closed form as where σ 2 =(1-γ t ).generally, can be evaluated for any t. In some embodiments, but not essentially, the loss can be evaluated as a sum (optionally, but not essentially, a weighted sum) over t, for example or where λ(t) defines the non-negative weights.

[0089] Typically, the scores 118 of one or more observations generated by the score generation neural network 110 are defined by the gradient of the log probability density (log likelihood) of the simulator parameters with respect to the simulator parameters, and thus the scores can define a "direction" in which to move to increase the likelihood of the set of simulator parameters. That is, the scores can define a "direction" in which to move to increase the likelihood of the set of simulator parameters.

[0090] Typically, the score generation neural network 110 described herein can be trained using techniques for training so-called diffusion models, such as those described in Song et al. arXiv:1907.05600, Ho et al. arXiv:2006.11239, or Luo, arXiv:2208.11970.

[0091] Figure 6 Illustrates the performance of some example implementations of the described simulation-based inference neural network system 100. In Figure 6 the illustration, the task is to determine parameters representing the contact rate and recovery rate characterizing the evolution of a disease from noisy observations. The observations include observations of the number of individuals in the susceptible state (S), infected state (I), and recovered state (R) at different times. The simulator models S, I, and R based on the contact rate and recovery rate.

[0092] In Figure 6 the y-axis represents the measure of the error in the determined parameters (lower is better). Curves 610, 612, 614, 616, and 618 are for observations conditioned on n = 1, 8, 14, 22, 30 during inference, respectively. Curve 602 shows the performance of a system that groups observations into groups of observations to determine scores as described herein, where m < n. Curve 600 shows the performance of a system that determines scores by summing the scores of individual observations as described herein. Curve 604 shows the performance of a system that groups observations into groups of observations to determine scores, where m = n. Curve 606 shows the performance of a system using neural posterior estimation (NPE) as described in Dinh et al. arXiv:1605.08803. Curve 608 shows the performance of a system using neural ratio estimation (NRE) as described in Hermans et al. arXiv:1903.04057. The x-axis shows the simulator budget used to train the system.

[0093] Several example applications of the simulation-based inference neural network system 100 will now be described.

[0094] In some embodiments, simulator 160 is configured to simulate the response of the measurement system. Then, a set of simulator parameters can characterize one or more real-world entities sensed by the measurement system or signals associated with one or more real-world entities. Observations can include sensed signals provided by the measurement system, which are associated with real-world entities or signals. These can be derived from any type of sensor, including but not limited to light, electricity (including electromagnetic radiation), magnetism, radiation, chemistry / biochemistry, machinery (including movement, force and sound / vibration), flow, environment (including temperature and pressure). As just one example, observations can be derived from image sensors (as used herein, "images" include video and LIDAR).

[0095] Then, a method of determining a set of simulator parameters as described herein may include capturing a set of observations using a measurement system (which may include or be coupled to one or more such sensors), and using the determined set of simulator parameters to characterize one of a plurality of real-world entities or signals associated with the real-world entities. Optionally, one or more of the determined set of simulator parameters may then be used to control an object of the measurement system, or to diagnose a fault in the object of the measurement system. Typically, the object of the measurement system may be a physical object, or an electrical, optical, or mechanical system including, for example, a computing system.

[0096] As examples, real-world entities may include engines or motors, such as internal combustion engines, gas turbines, or electric motors; or fluid flow systems or fluidized beds; or mixing systems of components in mixing vessels; or manufacturing plants; or power plants. Observations may include any observable quantity related to operation or performance; and the determined parameters may characterize operation or performance, such as for fault finding or diagnosis, or for optimizing the performance of an entity, such as the output (quantity or quality) of a manufacturing facility.

[0097] In the case where the real-world entity comprises a manufacturing facility (large-scale or laboratory-scale) or a power station, the determined parameters may be used to control the performance of a task, e.g., manufacturing a product or controlling (e.g., minimizing) the use of a resource such as electricity or water or consumables. Controlling performance may include controlling the use of a machine or manufacturing unit used to process solid or liquid materials to manufacture a product or an intermediate or component thereof, e.g., controlling the movement of an intermediate version of a product or component within a manufacturing environment, or adjusting the physical or chemical conditions of a manufacturing unit. Controlling a power station may include controlling the power generated by the facility, e.g., controlling the voltage, current, frequency, or phase, or controlling the delivery of power to a distribution network, e.g., controlling the electrical or mechanical configuration of one or more generating elements.

[0098] In some embodiments, the simulator 160 is configured to simulate the response of a scientific or medical instrument. The set of simulator parameters can characterize a real-world entity or a signal associated with the real-world entity sensed by the scientific or medical instrument. The observation can be an observation related to the real-world entity (of the real-world entity) or related to a signal related to the real-world entity (of the signal related to the real-world entity). The observation can be obtained from one or more sensors associated with the scientific or medical instrument (e.g., as described above). Then, the method of determining a set of simulator parameters as described herein may include capturing a set of observations using a scientific or medical instrument (which may include or be coupled to one or more such sensors), and using the determined set of simulator parameters to characterize one of a plurality of real-world entities or signals associated with the real-world entity.

[0099] As an example, a scientific instrument may include a microscope. A simulation of a microscope may include a simulation of an object of the microscope, e.g., a single emitter or multiple emitters in a single molecule localization microscope. The simulation may, for example, include a simulation of a point spread function of the microscope; the observation may include an image captured by the microscope, and the determined parameters may characterize the object, e.g., localizing an emitter in one, two, or three dimensions.

[0100] As another example, a scientific instrument may include a telescope or a gravitational wave observatory. Observations may include images captured by a telescope or strain data from a gravitational wave observatory. The determined parameters may characterize the object, for example, the type, number, and arrangement of stars in a galaxy observed by a telescope, or the location, mass, and spin of a merging black hole.

[0101] As another example, a scientific instrument may include a particle physics detector, the observations may include observables of the detector, such as collisions, radiation patterns, decays, and various sensor readouts, and the determined parameters may define or characterize the (elementary) particles and their interactions.

[0102] As another example, the scientific instrument may include a DNA or RNA sequencing machine, the observations may include observations of DNA or RNA sequences from one or more physical (biological) sources (such as cells), for example, observations of SNPs (single nucleotide polymorphisms); and the determined parameters may relate to properties or characteristics of the observed sequences or populations of sequences (e.g., recombination hotspots).

[0103] As another example, the medical instrument may include a medical "body scanner" such as an MRI (magnetic resonance imaging) or CT (computed tomography) or PET (positron emission tomography) machine, for example for scanning the human or animal body, and the observations may include magnetic resonance signals or x-ray detection signals or radiation signals from the machine, and the parameters determined may include parameters characterizing the imaged body or part of the body or function of the body part.

[0104] As another example, the medical instrument may include an EEG (electroencephalogram), MEG (magnetoencephalogram), EMG (electromyogram), or ECG (electrocardiogram) machine, the observations may include electrical or magnetic signals from the machine (i.e., from a human or animal body and captured using the machine), and the determined parameters may include parameters characterizing the object of the machine, such as brain / neuronal circuits, muscle, or heart function.

[0105] In some embodiments, the simulator 160 is configured to simulate the operation or performance of a physical object or an electrical, optical, mechanical, chemical, or biological system. The set of simulator parameters can characterize the operation or performance of the physical object or the electrical, optical, mechanical, chemical, or biological system. The observations can include observations derived from sensed signals related to the operation or performance of the physical object or the electrical, optical, mechanical, chemical, or biological system. Then, the method of determining a set of simulator parameters as described herein can include obtaining sensed signals from one or more sensors, obtaining a set of observations from the sensed signals, and using the determined set of simulator parameters to characterize the operation or performance of the physical object or the electrical, optical, mechanical, chemical, or biological system.

[0106] For example, simulator 160 may include a biological model, such as a model of a biological system, such as a system biology-based model or a model of ligand-receptor interactions. The observation may include any observable quantity of a particular biological system, and the determined parameters may include parameters of a biological model of a particular biological system. Such embodiments may be used, for example, to screen for potential ligands for biological activity to identify a drug, or, where the observation is a patient, to determine one or more parameters for diagnosing a medical condition of the patient.

[0107] As another example, the simulator 160 may include an epidemiological model, the observations may include infection counts, and the determined parameters may include contact rates and / or average recovery rates.

[0108] In some embodiments, the simulator 160 is configured to simulate the operation or performance of a computer system or network. A set of simulator parameters can characterize the operation or performance of a computer system or network. Observations can include observations derived from signals or data related to the operation or performance of a computer system or network. Then, a method for determining a set of simulator parameters as described herein can include obtaining a set of observations including signals or data related to the operation or performance of a computer system or network, and using the determined set of simulator parameters to characterize the operation or performance of a computer system or network. The determined parameters can be used to configure a computer system or network, for example, for more efficient operation, such as faster processing or reduced memory requirements, or for correcting defects in operation or performance.

[0109] For example, the simulator 160 may comprise a model describing, for example, the processing of a queue of consecutively arriving tasks or jobs by a (single) server. The observations may comprise observations of, for example, the departure times of consecutive tasks or jobs or the time intervals between the departures of consecutive tasks or jobs. The determined parameters may comprise, for example, parameters defining: the time taken by the server to process each task or job, such as the start and end of a time range; and / or the arrival times of two consecutive tasks or jobs or the time intervals between arrivals. Optionally, the determined parameters may then be used to control the server queue, for example, to manage the tasks or jobs.

[0110] As another example, simulator 160 may include a model representing the operation of a computer system or network, observations may include any observations that characterize the operation, and the determined parameters may characterize possible or abnormal operation, e.g., due to the presence of a virus or other security vulnerability. Optionally, the determined parameters may then be used to control the operation of the computer system or network, e.g., to inhibit the execution of code that has a virus or other security vulnerability.

[0111] Some embodiments of the simulation-based reasoning neural network system 100 can be used to design a physical object or an electrical, optical, or mechanical system. This can include: iteratively manufacturing a prototype of the physical object or electrical, optical, mechanical, chemical, or biological system for one or more iterations; configuring the simulator 160 to simulate the operation or performance of the prototype; obtaining observations related to the operation or performance of the prototype; and determining a set of simulator parameters that characterize the operation or performance of the prototype using the process as described above. The prototype can then be modified or updated based on the characterization of the operation or performance to improve the design. The process can include iteratively manufacturing the physical object or electrical, optical, mechanical, chemical, or biological system according to the final design.

[0112] As some examples, this approach can be used to design medical devices, such as stents or inhalers, which may involve complex simulations; or to design integrated circuits, such as microprocessors or RFICs (radio frequency integrated circuits); or to design RF antennas; or to design optical systems; or to design fusion-based generators; or to design engines, such as electric motors or gas turbines.

[0113] This specification uses the term "configuration" in conjunction with system and computer program components. For a system of one or more computers configured to perform a specific operation or action, it means that the system has installed thereon software, firmware, hardware, or a combination thereof, which enables the system to perform an operation or action in operation. For one or more computer programs configured to perform a specific operation or action, it means that one or more programs include instructions that enable the device to perform an operation or action when executed by a data processing device. The embodiments of the subject matter and functional operations described in this specification can be implemented in digital electronic circuits, in tangibly embodied computer software or firmware, in computer hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them. The embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-temporary storage medium, for execution by a data processing device or control of the operation of the data processing device. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. Alternatively or additionally, program instructions may be encoded on an artificially generated propagated signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to appropriate receiver apparatus for execution by data processing apparatus.

[0114] The term "data processing apparatus" refers to data processing hardware and covers all kinds of apparatus, devices and machines for processing data, including, for example, a programmable processor, a computer or a plurality of processors or computers. The apparatus may also be or further include special-purpose logic circuits, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the apparatus may optionally include code that creates an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[0115] A computer program may also be referred to or described as a program, software, software application, app, module, software module, script, or code, and may be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may, but need not, correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data, such as one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, such as files that store one or more modules, subroutines, or code portions. A computer program may be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a data communications network.

[0116] In this specification, the term "database" is used broadly to refer to any collection of data: the data need not be structured in any particular way, or at all, and it may be stored on a storage device in one or more locations. Thus, for example, an index database may include multiple collections of data, each of which may be organized and accessed differently.

[0117] Similarly, in this specification, the term "engine" is used broadly to refer to a software-based system, subsystem, or process that is programmed to perform one or more specific functions. Typically, an engine will be 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 will be dedicated to a specific engine; in other cases, multiple engines can be installed and run on the same one or more computers.

[0118] The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by a special purpose logic circuit (e.g., an FPGA or ASIC) or a combination of a special purpose logic circuit and one or more programmed computers.

[0119] A computer suitable for executing a computer program can be based on a general or special microprocessor or both, or any other kind of central processing unit. Typically, the central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a central processing unit for executing or running instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by or incorporated into a special logic circuit. Typically, the computer will also include one or more large-capacity storage devices (such as magnetic disks, magneto-optical disks, or optical disks) for storing data, or be operably coupled to receive data from one or more large-capacity storage devices or to transmit data or both. However, the computer does not need to have such a device. In addition, the computer can be embedded in another device, such as 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, to name a few.

[0120] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks.

[0121] To provide interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other kinds of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, 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 documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's device in response to a request received from the web browser. In addition, the computer may interact with the user by sending text messages or other forms of messages to a personal device (e.g., a smart phone running a messaging application) and receiving a response message from the user in return.

[0122] The data processing apparatus for implementing a machine learning model may also include, for example, dedicated hardware accelerator units for processing the common and computationally intensive parts of machine learning training or production, i.e., inference, workloads.

[0123] Machine learning models can be implemented and deployed using a machine learning framework (e.g., the TensorFlow framework).

[0124] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes a back-end component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification), or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (LANs) and wide area networks (WANs), such as the Internet.

[0125] The computing system may include a client and a server. The client and the server are usually remote from each other and usually interact through a communication network. The relationship between the client and the server is generated by means of computer programs that run on the respective computers and have a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to a user device, for example, 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 at the user device, such as the result of a user interaction, can be received from the device at the server.

[0126] Although this specification contains many specific implementation details, 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 a separate embodiment may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations and even initially claimed as such, one or more features from the claimed combination may be deleted from the combination in some cases, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.

[0127] Similarly, although operations are described in the accompanying drawings and in the claims in a particular order, this should not be understood as requiring that the operations be performed in the particular order shown or in sequence, or that all of the operations shown be performed, to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system modules and components in the above-described embodiments 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.

[0128] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results. As an example, the corresponding processes in the accompanying drawings do not necessarily require the specific order shown or sequential order to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous.

Claims

1. A computer-implemented method of determining a set of simulator parameters for a simulator, wherein the simulator is configured to generate simulated observations according to the set of simulator parameters, the method comprising: Receive a collection of observations; sampling initial values ​​for the set of simulator parameters from a reference distribution; and At each of a series of time steps, the current values ​​of the set of simulator parameters are updated by: for each of the simulator parameters, determining a current value for the simulator parameter and a corresponding parameter adjustment value for the set of observations; and determining an updated value for each of the simulator parameters using the corresponding parameter adjustment value for the current value of the simulator parameter; Wherein, for each of the simulator parameters, determining a current value for the simulator parameter and the corresponding parameter adjustment value for the set of observations comprises: for each of the observations: using a trained score-generating neural network to process i) the embedding of the current value of the simulator parameter, ii) the embedding of the observation, and iii) the embedding of the index of the current time step to generate a score for the observation; and The scores for the observations are summed to determine the corresponding parameter adjustment value for the current value of the simulator parameter.

2. The method according to claim 1, further comprising: Grouping subsets of multiple observations into groups of observations; and The embeddings of the group of observations are jointly processed using the score generating neural network to generate the score. 3 . The method of claim 1 , wherein determining the updated value for each of the simulator parameters comprises adding noise to the updated value for each of the simulator parameters. The method of claim 3 , comprising reducing the level of added noise over the series of time steps.

5. A method according to any one of claims 1-4, wherein determining the updated value of each of the simulator parameters using the current value of the simulator parameter and the corresponding parameter adjustment value for the observed set includes adjusting each of the simulator parameters using the current value of the simulator parameter and the corresponding parameter adjustment value for the observed set.

6. The method of any one of claims 1-5, wherein determining the corresponding parameter adjustment value for the current value of the simulator parameter further comprises adding a time step dependent correction term to the summed score of the observations.

7. A method according to any one of claims 1-4, wherein determining an updated value for each of the simulator parameters using the current value of the simulator parameter and the corresponding parameter adjustment value for the set of observations includes sampling from a probability density distribution parameterized by the corresponding parameter adjustment value for the current value of the simulator parameter.

8. The method according to claim 7, wherein: Summing the scores for the observations includes, for each observation, summing a linear combination of a current value of the simulator parameter and the score for the observation.

9. The method of claim 8, wherein determining the current value of the simulator parameter and the corresponding parameter adjustment value for the set of observations further comprises determining a linear combination of i) the current value of the simulator parameter and ii) the summed linear combination of the current value of the simulator parameter and the scores of the observations.

10. The method according to claim 9, wherein: Determining current values ​​for the simulator parameters and the corresponding parameter adjustment values ​​for the set of observations further comprises adding a time step dependent correction term to the determined linear combination.

11. The method according to any one of claims 7 to 10, wherein: The probability density distribution comprises a Gaussian distribution, and wherein a mean of the Gaussian distribution is defined for a current value of the simulator parameter and for the corresponding parameter adjustment value for the set of observations.

12. The method of claim 11, further comprising determining a variance of the Gaussian distribution as a function of the time steps such that the variance decreases for consecutive time steps.

13. A method according to any one of claims 1-12, comprising processing the current value of the simulator parameter using a parameter embedding neural network to generate an embedding of the current value of the simulator parameter.

14. The method of any one of claims 1-13, comprising processing each of the observations using an observation embedding neural network to generate an embedding for each observation.

15. The method according to any one of claims 1-14, comprising determining an embedding of the index of the current time step by encoding the index as a d-dimensional vector.

16. A computer-implemented method of training a score-generating neural network as claimed in any preceding claim, the method comprising: Get the set of training examples by, for each training example: sampling values ​​for a set of simulator parameters from a prior distribution over the simulator parameters; and generating simulated observations using the simulator by operating the simulator according to sampled values ​​of the set of simulator parameters; and The score generating neural network is trained using the simulated observations and sampled values ​​of the set of simulator parameters in each training example.

17. The method according to claim 16, further comprising: grouping the set of training examples into a plurality of groups of training examples, each group comprising one or more subsets of observations, the groups comprising different numbers of training examples; and A subset of the observations in each group is processed collectively using the score generating neural network to generate scores for training the score generating neural network.

18. The method according to claim 17, wherein: The score generating neural network is configured to process i) the embedding of the simulator parameters, ii) the embedding of each of the observations in the set of training examples, iii) the count of the number of sets of observations in the set, and iv) the embedding of the index of the current time step to generate a score for the observation; the method further comprising: applying a permutation invariant transformation to the set of observations in each group; and processing each set of training examples using the score generating neural network, and wherein the count of the number of observations is equal to the number of training examples in the subset; and The score generating neural network is trained using an objective function based on the scores of the sets of training examples.

19. The method according to any one of claims 16 to 18, wherein: Training the score generating neural network using the simulated observations and the sampled values ​​of the set of simulator parameters in each training example comprises, for each of the simulator parameters and for each of a sequence of one or more training time steps: processing, using the score generating neural network, i) the embeddings of the sampled values ​​of the simulator parameters, ii) the embeddings of the simulated observations, and iii) the embeddings of the indices of the time steps, to generate scores for the observations, based on current values ​​of the score neural network parameters; determining a gradient of an objective function with respect to the fractional neural network parameters, the objective function depending on the difference between the observed fractions over one or more time steps and fractions determined from sampled values ​​of the set of simulator parameters; The gradients are used to update current values ​​of the fractional neural network parameters.

20. The method of any of claims 16-19, further comprising adding noise to each of the sampled values ​​of the set of simulator parameters at one or more training time steps.

21. The method according to any one of claims 1 to 20, wherein: The simulator is configured to simulate a response of a measurement system; wherein the set of simulator parameters characterizes one or more real-world entities sensed by the measurement system or signals associated with one or more real-world entities; and wherein the observation comprises a sensed signal provided by the measurement system, the sensed signal being related to the real-world entity or the signal; and the method further comprising: capturing a collection of observations using the measurement system; and The determined set of simulator parameters is used to characterize one of more of the real-world entity or signals associated with the real-world entity.

22. The method of any one of claims 1-20, wherein the simulator is configured to simulate a response of a scientific or medical instrument; wherein the set of simulator parameters characterizes one or more real-world entities sensed by the scientific or medical instrument or signals associated with one or more real-world entities; and wherein, The observation is an observation made by the scientific or medical instrument related to the real-world entity or to a signal related to the real-world entity; the method further comprising: capturing a collection of observations using said scientific or medical instrument; and One of more of the real-world entity or signals associated with the real-world entity is characterized using the determined set of simulator parameters.

23. The method of any one of claims 1-20, wherein the simulator is configured to simulate the operation or performance of a physical object or an electrical, optical, mechanical, chemical or biological system; wherein the set of simulator parameters characterizes the operation or performance of the physical object or the electrical, optical, mechanical, chemical or biological system; and wherein the observation is an observation derived from a sensed signal related to the operation or performance of the physical object or the electrical, optical, mechanical, chemical or biological system; the method further comprising: Obtaining the sensing signal from one or more sensors; obtaining a set of observations from the sensed signals; and The determined set of simulator parameters is used to characterize the operation or performance of the physical object or electrical, optical, mechanical, chemical or biological system.

24. The method of any one of claims 1-20, wherein the simulator is configured to simulate operation or performance of a computer system or network; wherein the set of simulator parameters characterizes the operation or performance of the computer system or network; and wherein the observation is an observation derived from a signal or data related to the operation or performance of the computer system or network; the method further comprising: obtaining a collection of observations including signals or data related to the operation or performance of the computer system or network; and The operation or performance of the computer system or network is characterized using the determined set of simulator parameters.

25. A method of designing a physical object or an electrical, optical or mechanical system, comprising iteratively: Prototype physical objects or electrical, optical, mechanical, chemical, or biological systems; configuring a simulator to simulate the operation or performance of the prototype; obtaining observations related to the operation or performance of the prototype; determining a set of simulator parameters using the method of any one of claims 1-20, wherein the set of simulator parameters characterizes the operation or performance of the prototype; and The prototype is updated based on the characterization of operation or performance.

26. One or more computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the operations of a corresponding method according to any one of claims 1-25.

27. A system comprising: one or more computers; and One or more storage devices, the one or more storage devices being communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform the operations of the corresponding method according to any one of claims 1-25.