Reproducibility in Machine Learning and Deep Reinforcement Learning (RL) in particular has become a serious issue in the recent years. As pointed out in(Islam et al., 2017) and (Henderson et al., 2017), reproducing the results of an RL paper can turn out to be much more complicated than expected. Indeed, codebases are not always released and scientific papers often omit parts of the implementation tricks. Recently, Henderson et al. conducted a thorough investigation of various parameters causing this reproducibility crisis. They used trendy deep RL algorithms such as DDPG (Lillicrap et al., 2015), ACKTR (Wu et al., 2017), TRPO (Schulman et al., 2015) and PPO (Schulman et al., 2017) with OpenAI Gym (Brockman et al., 2016)
popular benchmarks such as Half-Cheetah, Hopper and Swimmer, to study the effects of the codebase, the size of the networks, the activation function, the reward scaling or the random seeds. Among other results, they showed that different implementations of the same algorithm with the same set of hyper-parameters led to drastically different results.
Perhaps the most surprising thing is this: running the same algorithm 10 times with the same hyper-parameters using 10 different random seeds and averaging performance over two splits of 5 seeds can lead to learning curves seemingly coming from different statistical distributions. Notably, all the deep RL papers reviewed by Henderson et al.. (theirs included) used 5 seeds or less. Even worse, some papers actually report the average of the best performing runs. As demonstrated in (Henderson et al., 2017), these methodologies can lead to claim that two algorithms performances are different when they are not. A solution to this problem is to use more random seeds, to average more different trials in order to obtain a more robust measure of the algorithm performance. But how can one determine how many random seeds should be used? Shall we use 5, 10 or 100, as in (Mania et al., 2018)?
This work assumes one wants to test a difference in performance between two algorithms. Section 2 gives definitions and describes the statistical problem of difference testing while Section 3 proposes two statistical tests to answer this problem. In Section 4, we present standard guidelines to choose the sample size so as to meet requirements in the two types of statistical errors
. Finally, we challenge the assumptions made in the previous section and propose guidelines to estimate error rates empirically in Section5. The code is available on Github at https://github.com/flowersteam/rl-difference-testing.
2 Definition of the statistical problem
2.1 First definitions
Two runs of the same algorithm often yield different measures of performance. This might be due to various factors such as the seed of the random generators (called random seed or seed thereafter), the initial state of the agent, the stochasticity of the environment, etc. Formally, the performance of an algorithm can be modeled as a random variable and running this algorithm in an environment results in a realization . Repeating the procedure times, one obtains a statistical sample
. A random variable is usually characterized by itsexpected value or mean and its standard deviation, noted
. While the mean characterizes the expected value of a realization, the standard deviation evaluates the square root of the squared deviations to this mean, or in simpler words, how far from the mean the realization are expected to fall. Of course, the values ofand
are unknown. The only thing one can do is to compute their unbiased estimationsand :
where is called the empirical mean, and is called the empirical standard deviation. The larger the sample size , the more confidence one can be in the estimations.
Here, two algorithms with respective performances and are compared. If and
follow normal distributions, the random variable describing their differencealso follows a normal distribution with parameters and . In this case, the estimator of the mean of is and the estimator of is . The effect size can be defined as the difference between the mean performances of both algorithms: .
Testing for a difference between the performances of two algorithms ( and ) is mathematically equivalent to testing a difference between their difference and 0. The second point of view is considered from now on. We draw a sample from by subtracting two samples and obtained from and .
[colback=blue!10!white]Example 1. To illustrate difference testing, we use two algorithms ( and ) and compare them on the Half-Cheetah environment from the OpenAI Gym framework (Brockman et al., 2016). The algorithms implemented are not so important here and will be revealed later. First, we run a study with random seeds for each. Figure 1 shows the average learning curves with confidence intervals. Each point of a learning curve is the average cumulated reward over evaluation episodes. The measure of performance of is the average performance over the last points (i.e. last evaluation episodes). From Figure 1, it seems that performs better than . Moreover, the confidence intervals do not seem to overlap much. However, we need to run statistical tests before drawing any conclusion.
2.2 Comparing performances with a difference test
In a difference test, statisticians define the null hypothesis and the alternate hypothesis . assumes no difference whereas assumes one:
These hypotheses refer to the two-tail case. When an a priori on which algorithm performs best is available, (say ), one can use the one-tail version:
At first, a statistical test always assumes the null hypothesis. Once a sample is collected from , one can estimate the probability (called -value) of observing data as extreme, under the null hypothesis assumption. By extreme, one means far from the null hypothesis ( far from ). The -value answers the following question: how probable is it to observe this sample or a more extreme one, given that there is no true difference in the performances of both algorithms? Mathematically, we can write it this way for the one-tail case:
and this way for the two-tail case:
When this probability becomes really low, it means that it is highly improbable that two algorithms with no performance difference produced the collected sample . A difference is called significant at significance level when the -value is lower than in the one-tail case, and lower than in the two tail case (to account for the two-sided test222See Wikipedia’s article for more details on one-tail versus two-tail tests: https://en.wikipedia.org/wiki/One-_and_two-tailed_tests). Usually is set to or lower. In this case, the low probability to observe the collected sample under hypothesis results in its rejection. Note that a significance level still results in chance out of to claim a false positive, to claim that there is a true difference when there is not. It is important to note that, when one is conducting experiments, the false positive rate grows linearly with the number of experiments. In this case, one should use correction for multiple comparisons such as the Bonferroni correction (Rice, 1989). This controls the familywise error rate (), the probability of rejecting at least one true null hypothesis (). Its use is discussed in (Cabin and Mitchell, 2000).
Another way to see this, is to consider confidence intervals. Two kinds of confidence intervals can be computed:
: The confidence interval for the mean of the difference given a sample characterized by and .
: The confidence interval for any realization of under (assuming ).
Having that does not include is mathematically equivalent to a -value below . In both cases, it means there is less than chance that under . When does not include , we are also confident that , without assuming . Proving one of these things leads to conclude that the difference is significant at level .
2.3 Statistical errors
In hypothesis testing, the statistical test can conclude or while each of them can be either true or false. There are four cases:
This leads to two types of errors:
The type-I error rejects when it is true, also called false positive
. This corresponds to claiming the superiority of an algorithm over another when there is no true difference. Note that we call both the significance level and the probability of type-I errorbecause they both refer to the same concept. Choosing a significance level of enforces a probability of type-I error , under the assumptions of the statistical test.
The type-II error fails to reject when it is false, also called false negative. This corresponds to missing the opportunity to publish an article when there was actually something to be found.
In the two-tail case, the null hypothesis is . The alternative hypothesis is .
A difference is said statistically significant when a statistical test passed. One can reject the null hypothesis when 1) -value; 2) does not contain ; 3) does not contain .
statistically significant does not refer to the absolute truth. Two types of error can occur. Type-I error rejects when it is true. Type-II error fails to reject when it is false.
The rate of false positive is 1 out of 20 for . It grows linearly with the number of experiment . Correction procedures can be applied to correct for multiple comparisons.
3 Choice of the appropriate statistical test
In statistics, a difference cannot be proven with confidence. To show evidence for a difference, we use statistical tests. All statistical tests make assumptions that allow them to evaluate either the -value or one of the confidence intervals described in the Section 2. The probability of the two error types must be constrained, so that the statistical test produces reliable conclusions. In this section we present two statistical tests for difference testing. As recommended in Henderson et al. (2017), the two-sample t-test and the bootstrap confidence interval test can be used for this purpose333Henderson et al. also advised for the Kolmogorov-Smirnov test which tests whether two samples comes from the same distribution. This test should not be used to compare RL algorithms because it is unable to prove any order relation..
3.1 T-test and Welch’s t-test
We want to test the hypothesis that two populations have equal means (null hypothesis
). A 2-sample t-test can be used when the variances of both populations (both algorithms) are assumed equal. However, this assumption rarely holds when comparing two different algorithms (e.g. DDPG vs TRPO). In this case, an adaptation of the 2-sample t-test for unequal variances called Welch’s-test should be used (Welch, 1947). Both tests are strictly equivalent when the standard deviations are equal. -tests make a few assumptions:
The scale of data measurements must be continuous and ordinal (can be ranked). This is the case in RL.
Data is obtained by collecting a representative sample from the population. This seem reasonable in RL.
Measurements are independent from one another. This seems reasonable in RL.
Data is normally-distributed, or at least bell-shaped. The normal law being a mathematical concept involving infinity, nothing is ever perfectly normally distributed. Moreover, measurements of algorithm performances might follow multi-modal distributions. In Section, 5, we investigate the effects of deviations from normality.
Under these assumptions, one can compute the -statistic
and the degree of freedomfor the Welch’s -test as estimated by the Welch–Satterthwaite equation, such as:
with ; the empirical standard deviations of the two samples, and their sizes. Sample sizes are assumed equal thereafter. The -statistics are assumed to follow a -distribution, which is bell-shaped and whose width depends on the degree of freedom. The higher this degree, the thinner the distribution.
Figure 2 helps making sense of these concepts. It represents the distribution of the -statistics corresponding to , under (left distribution) and under (right distribution). assumes , the distribution is therefore centered on 0. assumes a (positive) difference , the distribution is therefore shifted by the -value corresponding to , . Note that we consider the one-tail case here, and test for a positive difference.
A -distribution is defined by its probability density function (left curve in Figure 2), which is parameterized by . The cumulative distribution function is the function evaluating the area under from to . This allows to write:
In Figure 2, represents the critical -value to satisfy the significance level in the one-tail case. When , -value. When , the -value is lower than and the test rejects . On the other hand, when is lower than , the -value is superior to and the test fails to reject . As can be seen in the figure, setting the threshold at might also cause an error of type-II. The rate of this error () is represented by the dark blue area: under the hypothesis of a true difference (under , right distribution), we fail to reject when is inferior to . can therefore be computed mathematically using the :
Using the translation properties of integrals, we can rewrite as:
The procedure to run a Welch’s -test given two samples is:
Computing the degree of freedom and the -statistic based on , , and .
Looking up the value for the degree of freedom in a -table444Available at http://www.sjsu.edu/faculty/gerstman/StatPrimer/t-table.pdf. or by evaluating the inverse of the function in .
Compare the -statistic to . The difference is said statistically significant ( rejected) at level when .
Note that does not mean there is no difference between the performances of both algorithms. It only means there is not enough evidence to prove its existence with confidence (it might be a type-II error). Noise might hinder the ability of the test to detect the difference. In this case, increasing the sample size could help uncover the difference.
Selecting the significance level of the -test enforces the probability of type-I error to . However, Figure 2 shows that decreasing this probability boils down to increasing , which in turn increases the probability of type-II error . One can decrease while keeping constant by increasing the sample size . This way, the estimation of gets more accurate, which translates in thinner distributions in the figure, resulting in a smaller . The next section gives standard guidelines to select so as to meet requirements for both and .
3.2 Bootstrapped confidence intervals
Bootstrapped confidence interval is a method that does not make any assumption on the distribution of . It estimates the confidence interval for , given a sample characterized by its empirical mean . It is done by re-sampling inside and by computing the mean of each newly generated sample. The test makes its decision based on whether the confidence interval of contains or not. It does not compute a -value as such.
Without any assumption on the data distribution, an analytical confidence interval cannot be computed. Here, follows an unknown distribution . An estimation of the confidence interval can be computed using the bootstrap principle.
Let us say we have a sample made of measures of performance difference. The empirical bootstrap sample of size is obtained by sampling with replacement inside . The bootstrap principle then says that, for any statistic computed on the original sample and computed on the bootstrap sample, variations in are well approximated by variations in 555More explanations and justifications can be found in https://ocw.mit.edu/courses/mathematics/18-05-introduction-to-probability-and-statistics-spring-2014/readings/MIT18_05S14_Reading24.pdf.. Therefore, variations of the empirical mean such as its range can be approximated by variations of the bootstrapped samples. The bootstrap confidence interval test assumes the sample size is large enough to represent the underlying distribution correctly, although this might be difficult to achieve in practice. Deviations from this assumption are discussed in Section 5. Under this assumption, the bootstrap test procedure looks like this:
Generate bootstrap samples of size from the original sample of and samples from from the original sample of .
Compute the empirical mean for each sample: and
Compute the differences
Compute the bootstrapped confidence interval at . This is basically the range between the and
percentiles of the vector(e.g. for , the range between the and the percentiles).
The number of bootstrap samples should be chosen large (e.g. ). If the confidence interval does not contain , it means that one can be confident at that the difference is either positive (both bounds positive) or negative (both bounds negative), thus, that there is a statistically significant difference between the performances of both algorithms666An implementation of the bootstrap confidence interval test can be found at https://github.com/facebookincubator/bootstrapped..
[colback=blue!10!white]Example 1 (continued). Here, the type-I error requirement is set to . Running the Welch’s -test and the bootstrap confidence interval test with two samples () of seeds each leads to a -value of and a bootstrap confidence interval such that . Since the -value is below the significance level and the confidence interval does not include , both test passed. This means both tests found a significant difference between the performances of and with a confidence. There should have been only chance to conclude a significant difference if it did not exist.
In fact, we did encounter a type-I error. We know this for sure because Algo 1 and Algo 2 were the exact same algorithm. They are both the canonical implementation of DDPG (Lillicrap et al., 2015) from the OpenAI baselines (Dhariwal et al., 2017). The first conclusion was wrong, we committed a type-I error, rejecting when it was true. We knew this could happen with probability . Section 5 shows that this probability might have been under-evaluated because of the assumptions made by the statistical tests.
-tests assume -distributions of the -values. Under some assumptions, they can compute analytically the -value and the confidence interval at level .
The Welch’s -test does not assume both algorithms have equal variances but the -test does.
The bootstrapped confidence interval test does not make assumptions on the performance distribution and estimates empirically the confidence interval at level .
Selecting a test with a significance level enforces a type-I error when the assumptions of the test are verified.
4 In theory: power analysis for the choice of the sample size
In the Section 3, we saw that was enforced by the choice of the significance level in the test implementation. The second type of error must now be estimated. is the probability to fail to reject when is true. When the effect size and the probability of type-I error are kept constant, is a function of the sample size . Choosing so as to meet requirements on is called statistical power analysis. It answers the question: what sample size do I need to have chance to detect an effect size , using a test with significance level ? The next paragraphs present guidelines to choose in the context of a Welch’s -test.
As we saw in Section 3.1, can be analytically computed as:
where is the cumulative distribution function of a -distribution centered on , is the critical value for significance level and is the -value corresponding to an effect size . In the end, depends on , , (, ) the empirical standard deviations computed on two samples () and the sample size .
[colback=blue!10!white]Example 2. To illustrate, we compare two DDPG variants: one with action perturbations () (Lillicrap et al., 2015), the other with parameter perturbations () (Plappert et al., 2017). Both algorithms are evaluated in the Half-Cheetah environment from the OpenAI Gym framework (Brockman et al., 2016).
4.1 Step 1 - Running a pilot study
To compute , we need estimates of the standard deviations of the two algorithms (). In this step, the algorithms are run in the environment to gather two samples and of size . From there, we can compute the empirical means and standard deviations .
[colback=blue!10!white]Example 2 (continued). Here we run both algorithms with . We find empirical means and empirical standard deviations for (blue) and (red) respectively. From Figure 3, it seems there is a slight difference in the mean performances .
Running preliminary statistical tests at level lead to a -value of for the Welch’s -test, and a bootstrapped confidence interval of for the value of . The Welch’s -test does not reject (-value) but the bootstrap test does (). One should compute to estimate the chance that the Welch’s -test missed an underlying performance difference (type-II error).
4.2 Step 2 - Choosing the sample size
Given a statistical test (Welch’s -test), a significance level (e.g. ) and empirical estimations of the standard deviations of and (), one can compute as a function of the sample size and the effect size one wants to be able to detect.
[colback=blue!10!white]Example 2 (continued). For in and in , we compute and using the formulas given in Section 3.1, as well as for each . Finally, we compute the corresponding probability of type-II error using Equation 8. Figure 4 shows the evolution of as a function of for the different . Considering the semi-dashed black line for , we find for : there is chance of making a type-II error when trying to detect an effect . To meet the requirement , should be increased to ().
In our example, we find that was enough to be able to detect an effect size with a Welch’s -test, using significance level and using empirical estimations . However, let us keep in mind that these computations use various approximations () and make assumptions about the shape of the -values distribution. Section 5 investigates the influence of these assumptions.
4.3 Step 3 - Running the statistical tests
Both algorithms should be run so as to obtain a sample of size . The statistical tests can be applied.
[colback=blue!10!white]Example 2 (continued). Here, we take and run both the Welch’s -test and the bootstrap test. We now find empirical means and empirical standard deviations for and respectively. Both tests rejected , with a -value of for the Welch’s -test and a confidence interval for the difference for the bootstrap test. Both tests passed. In Figure 5, plots for and can be compared. With a larger number of seeds, the difference that was not found significant with is now more clearly visible. With a larger number of seeds, the estimate is more robust, more evidence is available to support the claim that outperforms , which translates to tighter confidence intervals represented in the figures.
[colback=red!10!white]Message 3: Given a sample size , a minimum effect size to detect and a requirement on type-I error the probability of type-II error can be computed. This computation relies on the assumptions of the -test. The sample size should be chosen so as to meet the requirements on .
5 In practice: influence of deviations from assumptions
Under their respective assumptions, the -test and bootstrap test enforce the probability of type-I error to the selected significance level . These assumptions should be carefully checked, if one wants to report the probability of errors accurately. First, we propose to compute an empirical evaluation of the type-I error based on experimental data, and show that: 1) the bootstrap test is sensitive to small sample sizes; 2) the -test might slightly under-evaluate the type-I error for non-normal data. Second, we show that inaccuracies in the estimation of the empirical standard deviations and due to low sample size might lead to large errors in the computation of , which in turn leads to under-estimate the sample size required for the experiment.
5.1 Empirical estimation of the type-I error
Remember, type-I errors occur when the null hypothesis () is rejected in favor of the alternative hypothesis , being correct. Given the sample size , the probability of type-I error can be estimated as follows:
Run twice this number of trials () for a given algorithm. This ensures that is true because all measurements come from the same distribution.
Get average performance over two randomly drawn splits of size . Consider both splits as samples coming from two different algorithms.
Test for the difference of both fictive algorithms and record the outcome.
Repeat this procedure times (e.g. )
Compute the proportion of time was rejected. This is the empirical evaluation of .
[colback=blue!10!white]Example 3 We use from Example 2. From available measures of performance, the above procedure is run for in . Figure 6 presents the results. For small values of , empirical estimations of the false positive rate are much larger than the supposedly enforced value .
In our experiment, the bootstrap confidence interval test should not be used with small sample sizes (). Even in this case, the probability of type-I error () is under-evaluated by the test (). The Welch’s -test controls for this effect, because the test is much harder to pass when is small (due to the increase of ). However, the true (empirical) false positive rate might still be slightly under-evaluated. In this case, we might want to set the significance level to to make sure the true positive rate stays below . In the bootstrap test, the error is due to the inability of small samples to correctly represent the underlying distribution, which impairs the enforcement of the false positive rate to the significance level . Concerning the Welch’s -test, this might be due to the non-normality of our data (whose histogram seems to reveal a bimodal distribution). In Example 1, we used and encountered a type-I error. We can see on the Figure 6 that the probability of this to happen was around for the bootstrap test and above for the Welch’s -test.
5.2 Influence of the empirical standard deviations
The Welch’s -test computes -statistics and the degree of freedom based on the sample size and the empirical estimations of standard deviations and . When is low, estimations and under-estimate the true standard deviation in average. Under-estimating leads to smaller and lower , which in turn leads to lower estimations of . Finally, finding lower leads to the selection of smaller sample size to meet requirements. Let us investigate how big this effect can be. In Figure 7, one estimates the standard deviation of a normally distributed variable . The empirical estimation is quite variable and underestimates in average.
We consider estimations of the false negative rate as a function of when comparing two normal distributions (), one centered on , the other on . When we select for a preliminary study and compute estimations () from this sample, our average error is mean() (see above Figure 7). One could also make larger errors: mean()std() from the same figure.
Figure 8 shows the effect of an error of on the evaluation of . One can see that, if we want to detect an effect size (green curve) and meet a requirement , one would choose when standard deviations are correctly estimated (left) and when they are under-evaluated. When the number of samples available in the preliminary study to compute grows, the under-estimation reduces in average and in the worst case. This, in turn, reduces the inaccuracy in the estimation of and therefore in the required . Another solution is to systematically choose the sample size larger than what is prescribed by the computation of .
One should not blindly believe in statistical tests results. These tests are based on assumptions that are not always reasonable.
must be empirically estimated, as the statistical tests might underestimate it, because of wrong assumptions about the underlying distributions or because of the small sample size.
The bootstrap test evaluation of type-I error is strongly dependent on the sample size. A bootstrap test should not be used with less than samples.
The inaccuracies in the estimation of the standard deviations of the algorithms (), due to small sample sizes in the preliminary study, lead to under-estimate the sample size required to meet requirements in type-II errors.
In this paper, we outlined the statistical problems that arise when comparing the performance of two RL algorithms. We defined type-I, type-II errors and proposed appropriate statistical tests to test for performance difference. Finally and most importantly, we detailed how to pick the right number of random seeds (the sample size) so as to reach the requirements in both error types.
The most important part is what came after. We challenged the hypotheses made by the Welch’s -test and the bootstrap test and found several problems. First, we showed significant difference between empirical estimations of the false positive rate in our experiment and the theoretical values supposedly enforced by both tests. As a result, the bootstrap test should not be used with less than samples and tighter significance level should be used to enforce a reasonable false positive rate (). Second, we show that the estimation of the sample size required to meet requirements in type-II error were strongly dependent on the accuracy of (). To compensate the under-estimation of , should be chosen systematically larger than what the power analysis prescribes.
Use the Welch’s -test over the bootstrap confidence interval test.
Set the significance level of a test to lower values () so as to make sure the probability of type-I error (empirical ) keeps below .
Correct for multiple comparisons in order to avoid the linear growth of false positive with the number of experiments.
Use at least samples in the pilot study to compute robust estimates of the standard deviations of both algorithms.
Use larger sample size than the one prescribed by the power analysis. This helps compensating for potential inaccuracies in the estimations of the standard deviations of the algorithms and reduces the probability of type-II errors.
This research is financially supported by the French Ministère des Armées - Direction Générale de l’Armement.
- Brockman et al. (2016) Brockman, G., Cheung, V., Pettersson, L., Schneider, J., Schulman, J., Tang, J., Zaremba, W., 2016. Openai gym. arXiv preprint arXiv:1606.01540.
- Cabin and Mitchell (2000) Cabin, R. J., Mitchell, R. J., 2000. To bonferroni or not to bonferroni: when and how are the questions. Bulletin of the Ecological Society of America 81 (3), 246–248.
- Dhariwal et al. (2017) Dhariwal, P., Hesse, C., Klimov, O., Nichol, A., Plappert, M., Radford, A., Schulman, J., Sidor, S., Wu, Y., 2017. Openai baselines. https://github.com/openai/baselines.
- Henderson et al. (2017) Henderson, P., Islam, R., Bachman, P., Pineau, J., Precup, D., Meger, D., 2017. Deep reinforcement learning that matters. arXiv preprint arXiv:1709.06560.
- Islam et al. (2017) Islam, R., Henderson, P., Gomrokchi, M., Precup, D., 2017. Reproducibility of benchmarked deep reinforcement learning tasks for continuous control. In: Proceedings of the ICML 2017 workshop on Reproducibility in Machine Learning (RML).
- Lillicrap et al. (2015) Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., Silver, D., Wierstra, D., 2015. Continuous control with deep reinforcement learning. arXiv preprint arXiv:1509.02971.
- Mania et al. (2018) Mania, H., Guy, A., Recht, B., 2018. Simple random search provides a competitive approach to reinforcement learning. arXiv preprint arXiv:1803.07055.
- Plappert et al. (2017) Plappert, M., Houthooft, R., Dhariwal, P., Sidor, S., Chen, R. Y., Chen, X., Asfour, T., Abbeel, P., Andrychowicz, M., 2017. Parameter space noise for exploration. arXiv preprint arXiv:1706.01905.
- Rice (1989) Rice, W. R., 1989. Analyzing tables of statistical tests. Evolution 43 (1), 223–225.
- Schulman et al. (2015) Schulman, J., Levine, S., Moritz, P., Jordan, M. I., Abbeel, P., 2015. Trust region policy optimization. CoRR, abs/1502.05477.
- Schulman et al. (2017) Schulman, J., Wolski, F., Dhariwal, P., Radford, A., Klimov, O., 2017. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347.
- Welch (1947) Welch, B. L., 1947. The generalization ofstudent’s’ problem when several different population variances are involved. Biometrika 34 (1/2), 28–35.
- Wu et al. (2017) Wu, Y., Mansimov, E., Liao, S., Grosse, R., Ba, J., 2017. Scalable trust-region method for deep reinforcement learning using kronecker-factored approximation. arXiv preprint arXiv:1708.05144.