The Many Faces of Optimal Weak-to-Strong Learning

Authors: mikael møller høgsgaard
kasper  green larsen
markus engelund mathiasen
Venue: NeurIPS_cc_2024_Conference
Published: 2024-05-14 09:08:51

Abstract: Boosting is an extremely successful idea, allowing one to combine multiple low accuracy classifiers into a much more accurate voting classifier. In this work, we present a new and surprisingly simple Boosting algorithm that obtains a provably optimal sample complexity. Sample optimal Boosting algorithms have only recently been developed, and our new algorithm has the fastest runtime among all such algorithms and is the simplest to describe: Partition your training data into 5 disjoint pieces of equal size, run AdaBoost on each, and combine the resulting classifiers via a majority vote. In addition to this theoretical contribution, we also perform the first empirical comparison of the proposed sample optimal Boosting algorithms. Our pilot empirical study suggests that our new algorithm might outperform previous algorithms on large data sets.

Main paper: 
 introduction: 
 Boosting is one of the most powerful machine learning ideas, allowing one to improve the accuracy of a simple base learning algorithm A. The main idea in Boosting, is to iteratively invoke the base learning algorithm A on modified versions of a training data set. Each invocation of A returns a classifier, and these classifiers are finally combined via a majority vote or averaging. Variations of Boosting, including Gradient Boosting [10, 16, 7] , are often among the best performing classifiers in practice, especially when data is tabular. Furthermore, when combined with decision trees or regressors as the base learning algorithm, these algorithms are independent of scaling of data features and provides impressive out-of-the-box performance. See the excellent survey [22] for further details.The textbook Boosting algorithm for binary classification, AdaBoost [9] , works by maintaining a weighing D t = (D t (1), . . . , D t (m)) of a training set S = (x 1 , y 1 ), . . . , (x m , y m ) with (x i , y i ) ∈ X × {-1, 1} for an input domain X and labels {-1, 1}. In each Boosting iteration t, a classifier h t : X → {-1, 1} is trained to minimize the 0/1-loss on S, but with samples weighed according to D t . The weights are then updated such that samples (x i , y i ) misclassified by h t have a larger weight under D t+1 and correctly classified samples have a smaller weight. Finally, after a sufficient number of iterations T , AdaBoost combines the classifiers h 1 , . . . , h T into a voting classifier f (x) = sign( t α t h t (x)) taking a weighted majority vote among the predictions made by the h t 's. Here the α t 's are real-valued weights depending on the accuracy of h t on D t .Weak-to-Strong Learning. Boosting was originally introduced to address a theoretical question asked by Kearns and Valiant [17, 18] on weak-to-strong learning. A learning algorithm A is called a weak learner if, for any distribution D over X × {-1, 1}, when given some m 0 i.i.d. training samples S from D, it produces with probability at least 1 -δ 0 , a classifier/hypothesis h S ∈ H with er D (h S ) ≤ 1/2 -γ, where er D (h) = Pr (x,y)∼D [h(x) ̸ = y] and H ⊆ X → {-1, 1} is a predefined hypothesis set used by A. A weak learner thus produces, for any distribution D, a hypothesis that performs slightly better than random guessing when given enough samples from D. The parameter γ is called the advantage of the weak learner and we refer to the weak learner as a γ-weak learner. We think of δ 0 and m 0 as constants that may depend on H, but not D. A strong learner in contrast, is an algorithm that for any distribution D, and any parameters (ε, δ) with 0 < ε, δ < 1, when given m(ε, δ) i.i.d. samples S from D, produces with probability at least 1 -δ a hypothesis h S : X → {-1, 1} with er D (h S ) ≤ ε. Here m(ε, δ) is the sample complexity of the strong learner. A strong learner thus obtains arbitrarily high accuracy when given enough training samples. With these definitions in place, Kearns and Valiant asked whether it is always possible to produce a strong learner from a weak learner. This was indeed shown to be the case [25] , and AdaBoost is one among many examples of algorithms producing a strong learner from a weak learner.Sample Complexity. Given that weak-to-strong learning is always possible, a natural question is "what is the best possible sample complexity m(ε, δ) of weak-to-strong learning?". This is known to depend on the VC-dimension d of the hypothesis set H used by the weak learner, as well as the advantage γ of the weak learner. In particular, the best known analysis [27] of AdaBoost shows that it achieves a sample complexity m Ada (ε, δ) of m Ada (ε, δ) = O d ln(1/(εγ)) ln(d/(εγ))EQUATIONLarsen and Ritzert [20] were the first to give an algorithm improving over AdaBoost. Their algorithm has a sample complexity m LR (ε, δ) ofm LR (ε, δ) = O d γ 2 ε + ln(1/δ) ε .They further complemented their algorithm with a lower bound proof showing that any weak-to-strong learning algorithm must have a sample complexity m(ε, δ) ofm(ε, δ) = Ω d γ 2 ε + ln(1/δ) ε .The optimal sample complexity for weak-to-strong learning is thus fully understood from a theoretical point of view.Other Performance Metrics. Sample complexity is however not the only interesting performance metric of a weak-to-strong learner. Furthermore, O(•)-notation may hide constants that are too large for practical purposes. It is thus worthwhile to develop alternative optimal weak-to-strong learners and compare their empirical performance.The algorithm of Larsen and Ritzert for instance has a rather slow running time as it invokes the weak-learner a total of O(m lg 4 3 γ -2 ln m) = O(m 0.8 γ -2 ) times on a training set of m samples. This should be compared to AdaBoost that only invokes the weak learner O(γ -2 ln m) times to achieve the sample complexity stated in (1) .An alternative sample optimal weak-to-strong learner was given by Larsen [19] as a corollary of a proof that Bagging [5] is an optimal PAC learner in the realizable setting. Concretely, his work gives a weak-to-strong learner with an optimal sample complexity while only invoking the weak-learner a total of O(γ -2 ln(m/δ) ln m) times on a training set of m samples.A natural question is whether the sample complexity of AdaBoost shown in (1) can be improved to match the optimal sample complexity by a better analysis. Since AdaBoost only invokes its weak learner O(γ -2 ln m) times on m samples, this would be an even more efficient optimal weakto-strong learner. Unfortunately, work by Høgsgaard et al. [15] shows that AdaBoost's sample complexity is sub-optimal by at least a ln(1/ε) factor, i.e.EQUATIONIt thus remains an intriguing task to design weak-to-strong learners that have an optimal sample complexity and yet match the runtime guarantees of AdaBoost. Furthermore, do the theoretical improvements translate to practice? Or are there large hidden constant factors in the O(•)-notation? And how does it vary among the different weak-to-strong learners?In this work, we first present a new weak-to-strong learner with an optimal sample complexity (at least in expectation). The algorithm, called MAJORITY-OF-5 and shown as Algorithm 1, is extremely simple: Partition the training set into 5 disjoint pieces of size m/5 and run AdaBoost on each to produce voting classifiers f 1 , . . . , f 5 . Finally, combine them by taking a majority vote g(x) = sign(5 t=1 f t (x)). This simple algorithm only invokes the weak learner O(γ -2 ln m) times, asymptotically matching AdaBoost and improving over previous optimal weak-to-strong learners. Furthermore, since each invocation of AdaBoost is on a training set of only m/5 samples, it is at least as fast as AdaBoost, even when considering constant factors. It is even trivial to parallelize the algorithm among up to 5 machines/threads. In particular, Theorem 1 implies that E[er D (g)] ≤ ε when given m = Θ(d/(γ 2 ε)) samples. This is a slightly weaker guarantee than the alternative optimal weak-to-strong learners in the sense that we do not provide high probability guarantees (i.e. with probability 1 -δ). On the other hand, our algorithm is extremely simple and has a running time comparable to AdaBoost. Furthermore, the proof that AdaBoost is sub-optimal (see ( 2)) shows that even the expected error of AdaBoost is sub-optimal by a logarithmic factor. It is interesting that combining a constant number of voting classifiers trained by AdaBoost makes it optimal when a single AdaBoost is provably sub-optimal. Let us also comment that the analysis of Algorithm 1 is based on recent work by Aden-Ali et al. [1] on optimal PAC learning in the realizable setting, demonstrating new applications of their techniques. Furthermore, we believe the number 5 is an artifact of our proof and we conjecture that it can be replaced with 3 by giving a better generalization bound for large margin voting classifiers. See Section 3 for further details.Empirical Comparison. Our second contribution is a pilot empirical study, which gives the first empirical comparison between the alternative optimal weak-to-strong learners, both the algorithm of Larsen and Ritzert [20] , the Bagging+Boosting based algorithm [19] , our new MAJORITY-OF-5 algorithm, as well as classic AdaBoost. We give the full details of the alternative algorithms in Section 2. In our experiments, we compare their performance both on real-life data as well as the data distribution used by Høgsgaard et al. [15] in their proof that AdaBoost is sub-optimal as shown in (2) .Our pilot empirical study give an indication that our new algorithm MAJORITY-OF-5 may outperform previous algorithms on large data sets, whereas Bagging+Boosting performs best on small data sets. See Section 4 for further details and the results of these experiments.Question: Do the main claims made in the abstract and introduction accurately reflect the paper's contributions and scope? Answer: [Yes] Justification: The theoretical claim is stated in the introduction together with a description of the indications found in the experiments. Guidelines:• The answer NA means that the abstract and introduction do not include the claims made in the paper. • The abstract and/or introduction should clearly state the claims made, including the contributions made in the paper and important assumptions and limitations. A No or NA answer to this question will not be perceived well by the reviewers. • The claims made should match theoretical and experimental results, and reflect how much the results can be expected to generalize to other settings. • It is fine to include aspirational goals as motivation as long as it is clear that these goals are not attained by the paper. 
previous optimal weak-to-strong learners: 
 In this section, we present the two previous optimal weak-to-strong learners. The first such algorithm, by Larsen and Ritzert [21] , builds on a sub-sampling technique due to Hanneke [14] Run AdaBoost on S t with W to obtain f t : X → {-1, 1}. 4 g ← sign( t f t ).Question: Does the paper discuss the limitations of the work performed by the authors? Answer: [Yes] Justification: We have included a Limitations section, discussing limitations of our work. Guidelines:• The answer NA means that the paper has no limitation while the answer No means that the paper has limitations, but those are not discussed in the paper. • The authors are encouraged to create a separate "Limitations" section in their paper.• The paper should point out any strong assumptions and how robust the results are to violations of these assumptions (e.g., independence assumptions, noiseless settings, model well-specification, asymptotic approximations only holding locally). The authors should reflect on how these assumptions might be violated in practice and what the implications would be. • The authors should reflect on the scope of the claims made, e.g., if the approach was only tested on a few datasets or with a few runs. In general, empirical results often depend on implicit assumptions, which should be articulated. • The authors should reflect on the factors that influence the performance of the approach.For example, a facial recognition algorithm may perform poorly when image resolution is low or images are taken in low lighting. Or a speech-to-text system might not be used reliably to provide closed captions for online lectures because it fails to handle technical jargon. • The authors should discuss the computational efficiency of the proposed algorithms and how they scale with dataset size. • If applicable, the authors should discuss possible limitations of their approach to address problems of privacy and fairness. • While the authors might fear that complete honesty about limitations might be used by reviewers as grounds for rejection, a worse outcome might be that reviewers discover limitations that aren't acknowledged in the paper. The authors should use their best judgment and recognize that individual actions in favor of transparency play an important role in developing norms that preserve the integrity of the community. Reviewers will be specifically instructed to not penalize honesty concerning limitations. 
analysis of majority-of-5: 
 In this section, we give the proof of Theorem 1, showing that our new algorithm MAJORITY-OF-5 has an optimal expected error. Before giving the formal details, we present the main ideas in our proof. Our analysis is at a high level inspired by recent work of Aden-Ali et al. [1] for realizable PAC learning. The first ingredient we need is the notion of margins. For a voting classifier f (x) = sign( h∈H α h h(x)) with α h ≥ 0 for all h, consider the function f′ (x) = h∈H α ′ h h(x) with α ′ h = α h / h α h .That is, f ′ is simply the voting classifier f without the sign(•) and normalized to have coefficients summing to 1. The margin of f on a sample(x, c(x)) is then c(x)f ′ (x) ∈ [-1, 1].The margin is 1 if all hypotheses combined by f agree and are correct. It is 0 if half of the mass is on hypothesis that are correct and half of the mass is on the hypothesis that are wrong. We can thus think of the margin as a confidence of the voting classifier. Margins have been extensively studied in the context of boosting and were originally introduced to give theoretical justification for the impressive practical performance of AdaBoost [2] . In particular, there are strong generalization bounds for voting classifiers with large margins [2, 6, 11] . Indeed, the best known sample complexity bound for AdaBoost, as stated in (1) , is derived by showing that AdaBoost produces a voting classifier with margins Ω(γ).Returning to our outline of the proof of Theorem 1, recall that the optimal error for weak-to-strong learning as a function of the number of samples m is O(d/(γ 2 m)). Now assume we can prove that for a set of m i.i.d. samples from a distribution D, the expected maximum error under D of any voting classifier that has margins Ω(γ) on all the samples, is no more than O( d/(γ 2 m)). This fact follows from previous work on Rademacher complexity. Note that this is sub-optimal compared to our target error by a polynomial factor since √ x ≥ x for x between 0 and 1. We want to argue that combining 5 instantiations of AdaBoost on disjoint training sets reduces this expected error to optimal O(d/(γ 2 m)).For this argument, consider running AdaBoost on n = m/5 samples. For any x ∈ X , consider the probabilityp x = Pr S∼D n [f S (x) ̸ = c(x)]where f S is the hypothesis produced by AdaBoost on S and c(x) is the correct label of x. Inspired by Aden-Ali et al. [1] , we now partition the input domainX into sets R i , such that R i contains all x for which p x ∈ (2 -i , 2 -i+1 ].The crucial observation is that if we consider k independently trained AdaBoosts, then the probability they all err on x is precisely p kx . Since a majority vote among 5 classifiers only fails when at least 3 of the involved classifiers fail, combining 5 AdaBoosts intuitively reduces the contribution to the expected error from pointsx ∈ R i to Pr X∼D [X ∈ R i ]2 -3i . What remains is thus to argue that Pr[X ∈ R i ] is small.This last step is done by considering the distribution D i , which is D conditioned on receiving a sample from R i . The expected number of samples we see from R i is m i = Pr[X ∈ R i ]m. Furthermore, since AdaBoost obtains margins Ω(γ) on all its training data, it in particular obtains margins Ω(γ) on all its samples from D i . This leads to an error probability ofp i = O( d/(γ 2 m i )) under D i . But the definition of R i implies p i ≥ 2 -i . Hence d/(γ 2 m i ) = Ω(2 -i ) ⇒ m i = O(2 2i d/γ 2 ) ⇒ Pr[X ∈ R i ] = O(2 2i d/(γ 2 m)). By summing over all R i , the final expected error is hence∞ i=1 2 2i d2 -3i γ 2 m = O(d/(γ 2 m)).This completes the proof overview. Let us end by making a few remarks. First, it is worth noting that the generalization bound O( d/(γ 2 m)) seems much worse than the bound in (1) claimed for AdaBoost and other voting classifiers with large margins. Unfortunately, if we examine (1) carefully and state ε as a function of m, we getε = O(d ln(m/d) ln m/(γ 2 m)).The problem is that the two log-factors are not bounded by a polynomial in d/(γ 2 m). In particular for m = Cd/γ 2 with C > 0 a constant, any polynomial in d/(γ 2 m) must be constant. But ln m = ln(Cd/γ 2 ) is not a constant independent of d and γ. Thus we have to use the generalization bound with √ • that fortunately is within a polynomial factor of optimal for the full range of m. Let us also comment that if the lower bound for AdaBoost stated in (2) is tight also for γ-margin voting classifiers, i.e. matched by an upper bound, then it suffices to take a majority of 3 AdaBoosts for optimal sample complexity. This concludes the description of the high level ideas in our proof.We now give the formal details of the proof. We start by introducing some notation.Preliminaries. For a hypothesis set H, we let ∆(H) denote the set of linear classifiers using hypothesis from H that is∆(H) = f ∈ {-1, 1} X : f = h∈H α f h h, ∀h ∈ H, α f h ≥ 0, h∈H α f h = 1 .Note that we have termed these linear classifiers rather than voting classifier, to distinguish that wehave not yet applied a sign(•) and insist on normalizing the coefficients so they sum to 1. We define the sign function as being 1 when the value is non-negative (so also 1 when x = 0) and -1 when negative.We let c ∈ {-1, 1} X be a true labeling that we are trying to learn. For a distribution D over X , we define the expected loss of f ∈ [-1, 1] X as er D (f ) := E X∼D [1{sign(f )(X) ̸ = c(X)}] and we will use S ∈ X m to denote a point set of m i.i.d. samples from D i.e. S ∼ D m (we see the point set as a vector so we allow repetition of points). Define for any k ∈ N the majority ofk linear classifiers f 1 , . . . , f k ∈ [-1, 1] X as M aj(f 1 , . . . , f k )(x) = sign( i sign(f i (x))). Let s be a set of points, i.e. s ∈ ∪ ∞ i=1 X i and c(s) ∈ {-1, 1} |s| the labeling of the points that s contains with c, that is c(s) i = c(s i ). We define a γ-margin classifier algorithm f : ∪ ∞ i=1 (X × {-1, 1}) i ⇒ [-1, 1]X to be a mapping that takes as input a point set with labels (s, c(s)) ∈ ∪ ∞ i=1 (X × {-1, 1}) i and outputs a function f (s, c(s))(•) from X to the interval [-1, 1], where f (s, c(s))(•) is such that for x ∈ s, f (s, c(s))(x)c(x) ≥ γ.In the following we will use f s to denote f (s, c(s)) and writef ∈ ∆(H) if for any (s, c(s)) ∈ ∪ ∞ i=1 (X × {-1, 1}) i we have that the output of the γ-margin classifier algorithm f (s, c(s)) is in ∆(H).Analysis. We now prove Theorem 1, which is a direct consequence of the following Corollary 2. Corollary 2 states that running a γ-margin classifier algorithm on 5 disjoint training sets of size m and forming the majority vote of the produced 5 classifiers, has the optimal O(d/(γ 2 m)) expected error. Since AdaBoost, after O(ln(m)/γ 2 ) iterations, has Ω(γ) margins on all points [26] [Section 5.4.1], Corollary 2 gives the claim in Theorem 1. Alternatively one could run AdaBoost * v [24] instead of AdaBoost. The proof of Corollary 2 follows the method used in [1] where the authors show a similar bound for PAC learning in the realizable setting. We now state Corollary 2. Corollary 2. For any distribution D over X , hypothesis set H with VC-dimension d, i.i.d. point sets S 1 , . . . , S 5 from D m , margin 0 < γ ≤ 1 and f ∈ ∆(H) being a γ-margin classifier algorithm, we have thatE S1,...,S5∼D m [er D (M aj(f S1 , . . . , f S5 ))] = O d γ 2 m .The result in Corollary 2 is primarily a consequence of the following Lemma 3, which says that, in expectation, the probability that f S1 , f S2 , f S3 all misclassifying a sample from D is O(d/(γ 2 m)).We now state Lemma 3 and give the proof of Corollary 2. We postpone the proof of Lemma 3 to later in this section. Lemma 3. For any distribution D over X , hypothesis set H with VC-dimension d, i.i.d. point sets S 1 , S 2 , S 3 from D m , margin 0 < γ ≤ 1 and f ∈ ∆(H) being a γ-margin classifier algorithm we have thatE S1,S2,S3∼D m P X∼D ∩ 3 i=1 {sign(f Si (X)) ̸ = c(X)} = O d γ 2 m .Proof of Corollary 2. For the majority of f S1 , . . . , f S5 to fail on an x ∈ X , it must be the case that at least 3 of the trained γ-margin classifiers f Si have sign(f Si (x)) ̸ = c(x). Using this combined with the S i 's being i.i.d. we get that E S1,...,S5∼D m [er D (M aj(f S1 , . . . , f S5 ))] ≤ 1≤j1<j2<j3≤5 E Sj 1 ,Sj 2 ,Sj 3 ∼D m P X∼D ∩ 3 i=1 {sign(f Sj i (X)) ̸ = c(X)} ≤E S1,S2,S3∼D m P X∼D ∩ 3 i=1 {sign(f Si (X)) ̸ = c(X)} 1≤j1<j2<j3≤5 1.E S [E X∼D R [1{f S (X) ̸ = c(X)}]] = E S [er DR (f S )] ≤ ad P [R] γ 2 m .where we use D R to denote the conditional distribution on the subset R. That is, for any measurable function g,E X∼D R [g(X)] := E X∼D [g(X)1{X ∈ R}] /P X∼D [X ∈ R]. Proof of Lemma 3. For x ∈ X let p x = E S∼D m [1{f S (x) ̸ = c(x)}] and define for i = 1, . . . the sets R i = {x ∈ X : p x ∈ 2 -i , 2 -i+1}. Now using Tonelli, and that S 1 , S 2 , S 3 are i.i.d. with distribution D m , and that p x ≤ 2 -i+1 for x ∈ R i we get thatE S1,...,S3∼D m P X∼D ∩ 3 i=1 {f Si (X) ̸ = c(X)} =E X∼D E S1,...,S3∼D m 1{∩ 3 i=1 {f Si (X) ̸ = c(X)}} =E X∼D p 3 X = ∞ i=1 E X∼D p 3 X | X ∈ R i P [X ∈ R i ] ≤ 2 3 ∞ i=1 2 -3i P [X ∈ R i ] ,thus if we can show that there exists a universal constant c ′ > 0 such thatP X∼D [X ∈ R i ] ≤ c ′ d2 2i γ 2 mwe get thatE S1,...,S3 P X∼D ∩ 3 i=1 {f Si (X) ̸ = c(X)} ≤ 2 3 c ′ d γ 2 m ∞ i=1 2 -i = O d γ 2 m ,and we are done. Thus assume for contradiction thatP X∼D [X ∈ R i ] > c ′ d2 2i γ 2 m, for c ′ > 1 to be chosen large enough. Using Lemma 4 we have that there exist a universal constant a > 1 such thatE S∼D m er DR i (f S ) ≤ ad P [R i ] γ 2 m .By Tonelli, the definition of p x and that for x ∈ R i we have p x ∈ 2 -i , 2 -i+1 we get thatE S∼D m er DR i (f S ) = E X∼D R i [E S∼D m [1{f S (X) ̸ = c(X)}]] = E X∼D R i [p X ] ≥ 2 -i .Combining the above lower and upper bound on E S∼D m er DR i andP X∼D [X ∈ R i ] > c ′ d2 2i γ 2 m we get that 1 ≤ 2 i ad P [R i ] γ 2 m ≤ 2 i ad c ′ d2 2i γ 2 m γ 2 m ≤ a c ′ ,which for c ′ sufficiently large is strictly less than 1, thus we reached a contradiction. Hence it must be the case thatP X∼D [X ∈ R i ] ≤ c ′ d2 2i γ 2 m, which concludes the proof of Lemma 3.Question: For each theoretical result, does the paper provide the full set of assumptions and a complete (and correct) proof? Answer: [Yes] Question: Does the paper provide open access to the data and code, with sufficient instructions to faithfully reproduce the main experimental results, as described in supplemental material?Answer: [Yes]Justification: We have provided the code, and a README file explaining how to reproduce the experiments.Guidelines:• The answer NA means that paper does not include experiments requiring code.• Please see the NeurIPS code and data submission guidelines (https://nips.cc/ public/guides/CodeSubmissionPolicy) for more details. • While we encourage the release of code and data, we understand that this might not be possible, so "No" is an acceptable answer. • Providing as much information as possible in supplemental material (appended to the paper) is recommended, but including URLs to data and code is permitted. 
experiments: 
 In this section, we present the results of our pilot empirical study between the different sample optimal weak-to-strong learners. We compare the algorithms on five different data sets. The first four are standard binary classification data sets and are the same data sets used in [12] , whereas the last is a synthetic binary classification data set developed from the lower bound [15] showing that AdaBoost is sub-optimal. For all real world data sets, we have shuffled the samples and randomly set aside 20% to use as test set. The weak learner we use for these is the scikit-learn DecisionTreeClassifier with max_depth=1. This is default for the implementation of AdaBoost in scikit-learn, which is the implementation used in our experiments. We describe the data sets in greater detail below.• Higgs [29] : This data set represents measurements from particle detectors, and the labels tells whether they come from a process producing Higgs bosons or if they were a background process. The data set consists of 11 million labeled samples. However, we focus on the first 300,000 samples. Each sample consists of 28 features, where 7 of these are derived from the other 21. • Boone [23] : In this data set, we try to distinguish electron neutrinos from muon neutrinos.The data set consists of 130,065 labeled samples. Each sample consists of 50 features. • Forest Cover [4] : In this data set, we try to determine the forest cover type of 30 x 30 meter cells. The data set actually has 7 different forest cover types, so we have removed all samples of the 5 most uncommon to make it into a binary classification problem. This leaves us with 495,141 samples. Each sample consists of 54 features such as elevation, soil-type and more. • Diabetes [28] : In this data set, we try to determine whether a patient has diabetes or not from features such as BMI, insulin level, age and so on. This is the smallest real-world data set, consisting of only 768 samples. Each sample consists of 8 features. • Adversarial [15] : This data set, as well as the weak learner, have been developed using the lower bound instance in [15] . Concretely, the data set consists of 1024 uniform random samples from the universe X = {1, . . . , 350}. Every element of the input domain has the label 1, but all weak-to-strong learners are run simply by giving them access to a weak learner. The weak learner is adversarially designed. When it is queried with a weighing of the training data set, it computes the set T containing the first 20 points from the input domain that receive zero mass under the query weighing. It then searches through a set of hypotheses (chosen randomly) and returns the hypothesis with the worst performance on T , while respecting that it must have error no more than 1/2 -γ under the query weighing and having at least 1/2 + γ error on T . Finally, the hypothesis set contains an additional special hypothesis h 0 that is correct (returns 1) on all but the last 20 points of the input domain. This hypothesis is used to handle queries where none of the randomly chosen hypotheses have advantage γ. We refer the reader to [15] for further details and intuition on why this construction is hard for AdaBoost.The data sets represent both large and small training sets. For each data set, we run simple AD-ABOOST (accuracy shown as a blue horizontal line in the plots), BAGGEDADABOOST (Algorithm 4), LARSENRITZERT (Algorithm 3), and our new MAJORITY-OF-X (for X varying from 3 to 29). In our experiments, we vary the number of AdaBoosts trained by each weak-to-strong learner from 3 to 29, instead of merely following the theoretical suggestions. Each of these voting classifiers is then trained for 300 rounds on its respective input. This has been repeated 5 times with different random seeds, so the plots indicate the average accuracy across these 5 runs. For Algorithm 3 that creates m lg 4 3 sub-samples, we use the full set of sub-samples on the two small data sets Diabetes and Adversarial.For the three large data sets Higgs, Boone and Forest Cover, this creates a huge overhead in running time and we instead randomly sample without replacement from among the sub-samples resulting from the SUBSAMPLE procedure (Algorithm 2). This is the reason for the non-constant behavior of this algorithm in the corresponding experiments. For BAGGEDADABOOST, we have chosen to sample 95% of the samples (with replacement) in our experiments. The results of the experiments on the three large data sets are shown in Fig. 1 .The results in Fig. 1 gives an initial suggestion that our new algorithm with disjoint training sets might have an advantage on large data sets. Quite surprisingly, we see that the two other optimal weak-to-strong learners perform no better, or even worse, than standard AdaBoost. Experiments on the small Diabetes data set, as well as the Adversarially designed data set, are shown in Fig. 2 .The results in Fig. 2 suggest that our new algorithm may perform poorly on small training sets. This makes sense, as the training data for each weak learner is extremely small on these data sets. Instead, we find that the Bagging based variant outperforms classic AdaBoost. Since Bagging has a relative small overhead compared to simple AdaBoost, this suggests running both our new algorithm MAJORITY-OF-X and BAGGEDADABOOST and using a validation set to pick the best classifier. We hope these first experiments may inspire future and more extensive empirical comparisons between the various weak to strong learners.  
return g: 
 Finally, the algorithm by Larsen [19] based on Bagging (a.k.a. Bootstrap Aggregation) by Breiman [5] , combines AdaBoost with sampling subsets of the training data with replacement. Unlike the algorithm above by Larsen and Ritzert, it requires a target failure probability δ as input. The algorithm is shown as Algorithm 4. Run AdaBoost on S t with W to obtain f t : X → {-1, 1}. 4 g ← sign( t f t ). 5 return gOur main results are proved under the theoretical assumption of i.i.d. training samples as well as access to a weak-learner that always obtains an advantage of γ over random guessing. Since these might not be realistic assumptions, we also performed an empirical evaluation of our algorithm. Due to computational constraints, we have only been able to run experiments on 5 data sets. We have thus been careful not to over-emphasize the practical implications of our results. In all circumstances, we view the theoretical contributions as the main novelty of this work.We now give the proof of Lemma 4. For this we need the following Corollary 5 that gives a high probability bound on the error for all classifiers in ∆(H) that have γ margins on a training set S. Corollary 5. Let C > 1 denote a universal constant. For hypothesis set H with VC-dimension d, distribution D, margin 0 < γ ≤ 1, failure probability 0 < δ < 1, and a point set S ∼ D m , we have with probability at least 1 -δ over S, that any f ∈ ∆(H) such that f (x)c(x) ≥ γ for all x ∈ S satisfieser D (f ) ≤ 2Cd γ 2 m + 2 ln (2/δ) m .Corollary 5 follows for instance by a modification of [26] [page 107-111] due to [3] and using the stronger bound on the Rademacher Complexity of O( d/m) due to [8] [See e.g. theorem 7.2 [13] ]. With Corollary 5 in place we now give the proof of Lemma 4.Proof of Lemma 4.If P [R] m ≤ d/γ 2 we have that d γ 2 P [R] m ≥ 1,and the claim holds since er DR (f S ) is always less than 1. Thus we assume from now on that P [R] m > d/γ 2 . We now define the eventsE i := {|{S ∩ R}| = i} for m ≥ i ≥ P [R] m/2 and E = ∪ i≥P[R]m/2 E i = {|S ∩ R| ≥ P [R] m/2}.We further define X j = 1{S j ∈ R} for j = 1, . . . , m and notice that these are i.i.d. {0, 1}-random variables where X = j X j has expectation P [R] m and the event j X j ≥ P [R] m/2 is contained in E. Thus by a Chernoff bound and that exp(-x) ≤ 1/x for x > 0, we get thatP S [E] ≥ 1 -exp (-P [R] m/8) ≥ 1 - 8 P [R] m .We thus have P S Ē ≤ 8/ (P [R] m). Since we assumed that P [R] m ≥ d/γ 2 ≥ 1 and using 0 ≤ x ≤ √ x for x ≤ 1, this further implies thatP S Ē ≤ 8 • d γ 2 P [R] m .We will soon show thatE S [er DR (f S )|E i ] ≤ 16 • 16Cd γ 2 P[R]m for m ≥ i ≥ P [R] m/2for a universal constant C ≥ 1. Now using these two relations combined with the law of total expectation on the partition Ē, E P[R]m/2 , . . . , E m and that er DR ≤ 1, we get thatE S [er DR (f S )] = i≥P[R]m/2 E S [er DR (f S )|E i ] P S [E i ] + E S er DR (f S )| Ē P S Ē ≤ 16 • 16Cd γ 2 P [R] m P [E] + 8 • d γ 2 P [R] m ≤ 24 • 16Cd γ 2 P [R] m ,as claimed in Lemma 4 with the universal constant a = 24 2 • 16C. Thus we have to show thatE S [er DR (f S )|E i ] ≤ 16 • 16Cd γ 2 P[R]m for m ≥ i ≥ P [R] m/2.So consider such an i. Since er DR (f S ) is a non-negative random variable, we have thatE S [er DR (f S ) | E i ] = ∞ 0 P S [er DR (f S ) ≥ x | E i ] dxWe will thus upper bound this integral. Now conditioned on E i , we know that S contains i points that are samples according to D R and that f S on these examples has all margins at least γ. Thus we have by Corollary 5 that with probability at least 1 -δ over S, it holds thatEQUATIONwhere C ≥ 1 is a universal constant. For ease of notation let r i = 8Cd γ 2 i . We notice that r i ≤ 16Cd γ 2 P[R]m since i is assumed to be greater than P [R] m/2. Using this, we get thatEQUATIONEQUATION)Thus if we can show that∞ ri P S [er DR (f S ) ≥ x] dx ≤ 15 • d γ 2 P[R]m ,we get by combining this with Eq. ( 4) thatE S [er DR (f S ) | E i ] ≤ 16 • 16Cd γ 2 P[R]mwhich would conclude the proof. Thus we now show∞ ri P S [er DR (f S ) ≥ x] dx ≤ 15 • d γ 2 P[R]m .For this, we do the following non-trivial rewriting of x to make it resemble the second term in the max appearing in (3)x = 8 ln 2 2 exp -x 2 i 8 i -1 .Now for any x ≥ r i we have thatP S [er DR (f S ) ≥ x | E i ] = P S [er DR (f S ) ≥ max(r i , x) | E i ] ,which combined with the rewriting of x and Eq. ( 3) with δ = 2 exp -x 2 i 8 and noticing r i is the first argument of the max in Eq. ( 3), we get thatP S [er DR (f S ) ≥ x | E i ] = P S [er DR (f S ) ≥ max(r i , x) | E i ] ≤ 2 exp -x 2 i 8 ,for any x ≥ r i . Now using the density function of a normal distribution with mean 0 and standard deviation σ is equal to exp(-1 2 (x/σ) 2 )/(σ √ 2π), and letting N (0, σ) denote a normal random variable with mean 0 and standard deviation σ, we get that∞ ri P S [er DR (f S ) ≥ x | E i ] dx ≤ ∞ ri 2 exp -x 2 i 8 dx ≤ 2 8/(2i) √ 2π ∞ ri 1 8/(2i) √ 2π exp   - 1 2 x 8/(2i) 2   dx ≤ 2 8π/i • P N 0, 8 2i ≥ r i ≤ 8 π/(P [R] m) ≤ 15 • d γ 2 P [R] m ,where the second to last inequality follows from i ≥ P [R] m/2 and the last inequality byP [R] m ≥ d/γ 2 ≥ 1.NeurIPS Paper Checklist 
experimental setting/details: 
 Question: Does the paper specify all the training and test details (e.g., data splits, hyperparameters, how they were chosen, type of optimizer, etc.) necessary to understand the results?Answer: [Yes] Justification: The training and test details are explained along with the parameters used for the algorithms.Guidelines:• The answer NA means that the paper does not include experiments.• The experimental setting should be presented in the core of the paper to a level of detail that is necessary to appreciate the results and make sense of them. • The full details can be provided either with the code, in appendix, or as supplemental material. 
experiment statistical significance: 
 Question: Does the paper report error bars suitably and correctly defined or other appropriate information about the statistical significance of the experiments?Answer: [No] Justification: The experiments do not have statistical significance. We would need to run more iterations of the experiments, which would require more computing power.Guidelines:• The answer NA means that the paper does not include experiments.• The authors should answer "Yes" if the results are accompanied by error bars, confidence intervals, or statistical significance tests, at least for the experiments that support the main claims of the paper.• The factors of variability that the error bars are capturing should be clearly stated (for example, train/test split, initialization, random drawing of some parameter, or overall run with given experimental conditions). • The method for calculating the error bars should be explained (closed form formula, call to a library function, bootstrap, etc.) • The assumptions made should be given (e.g., Normally distributed errors). • It should be clear whether the error bar is the standard deviation or the standard error of the mean. Guidelines:• The answer NA means that there is no societal impact of the work performed.• If the authors answer NA or No, they should explain why their work has no societal impact or why the paper does not address societal impact. • Examples of negative societal impacts include potential malicious or unintended uses (e.g., disinformation, generating fake profiles, surveillance), fairness considerations (e.g., deployment of technologies that could make decisions that unfairly impact specific groups), privacy considerations, and security considerations. • The conference expects that many papers will be foundational research and not tied to particular applications, let alone deployments. However, if there is a direct path to any negative applications, the authors should point it out. For example, it is legitimate to point out that an improvement in the quality of generative models could be used to generate deepfakes for disinformation. On the other hand, it is not needed to point out that a generic algorithm for optimizing neural networks could enable people to train models that generate Deepfakes faster. • The authors should consider possible harms that could arise when the technology is being used as intended and functioning correctly, harms that could arise when the technology is being used as intended but gives incorrect results, and harms following from (intentional or unintentional) misuse of the technology. • If there are negative societal impacts, the authors could also discuss possible mitigation strategies (e.g., gated release of models, providing defenses in addition to attacks, mechanisms for monitoring misuse, mechanisms to monitor how a system learns from feedback over time, improving the efficiency and accessibility of ML). 
safeguards: 
 Question: Does the paper describe safeguards that have been put in place for responsible release of data or models that have a high risk for misuse (e.g., pretrained language models, image generators, or scraped datasets)?Answer: [NA] Justification: The data used in the experiments are freely available for everyone to use.Guidelines:• The answer NA means that the paper poses no such risks.• Released models that have a high risk for misuse or dual-use should be released with necessary safeguards to allow for controlled use of the model, for example by requiring that users adhere to usage guidelines or restrictions to access the model or implementing safety filters. • Datasets that have been scraped from the Internet could pose safety risks. The authors should describe how they avoided releasing unsafe images. • We recognize that providing effective safeguards is challenging, and many papers do not require this, but we encourage authors to take this into account and make a best faith effort.12. Licenses for existing assets Question: Are the creators or original owners of assets (e.g., code, data, models), used in the paper, properly credited and are the license and terms of use explicitly mentioned and properly respected?Answer: [Yes]Justification: All datasets used in the experiments are properly cited.Guidelines:• The answer NA means that the paper does not use existing assets.• The authors should cite the original paper that produced the code package or dataset.• The authors should state which version of the asset is used and, if possible, include a URL. • The name of the license (e.g., CC-BY 4.0) should be included for each asset.• For scraped data from a particular source (e.g., website), the copyright and terms of service of that source should be provided.• If assets are released, the license, copyright information, and terms of use in the package should be provided. For popular datasets, paperswithcode.com/datasets has curated licenses for some datasets. Their licensing guide can help determine the license of a dataset. • For existing datasets that are re-packaged, both the original license and the license of the derived asset (if it has changed) should be provided. • If this information is not available online, the authors are encouraged to reach out to the asset's creators. 
new assets: 
 Question: Are new assets introduced in the paper well documented and is the documentation provided alongside the assets?Answer: [NA]Justification: The paper does not release new assets.Guidelines:• The answer NA means that the paper does not release new assets.• Researchers should communicate the details of the dataset/code/model as part of their submissions via structured templates. This includes details about training, license, limitations, etc. • The paper should discuss whether and how consent was obtained from people whose asset is used. • At submission time, remember to anonymize your assets (if applicable). You can either create an anonymized URL or include an anonymized zip file. 
crowdsourcing and research with human subjects: 
 Question: For crowdsourcing experiments and research with human subjects, does the paper include the full text of instructions given to participants and screenshots, if applicable, as well as details about compensation (if any)?Answer: [NA]Justification: The paper does not involve crowdsourcing nor research with human subjects.Guidelines:• The answer NA means that the paper does not involve crowdsourcing nor research with human subjects. • Including this information in the supplemental material is fine, but if the main contribution of the paper involves human subjects, then as much detail as possible should be included in the main paper. • According to the NeurIPS Code of Ethics, workers involved in data collection, curation, or other labor should be paid at least the minimum wage in the country of the data collector. 
institutional review board (irb) approvals or equivalent for research with human subjects: 
 Question: Does the paper describe potential risks incurred by study participants, whether such risks were disclosed to the subjects, and whether Institutional Review Board (IRB) approvals (or an equivalent approval/review based on the requirements of your country or institution) were obtained?Answer: [NA]Justification: The paper does not involve crowdsourcing nor research with human subjects.Guidelines:• The answer NA means that the paper does not involve crowdsourcing nor research with human subjects. • Depending on the country in which research is conducted, IRB approval (or equivalent) may be required for any human subjects research. If you obtained IRB approval, you should clearly state this in the paper.• We recognize that the procedures for this may vary significantly between institutions and locations, and we expect authors to adhere to the NeurIPS Code of Ethics and the guidelines for their institution. • For initial submissions, do not include any information that would break anonymity (if applicable), such as the institution conducting the review.38th Conference on Neural Information Processing Systems (NeurIPS 2024). 
 
 Appendix:  


Decision: If there is one thing that boosting teaches us, it is the value of simple and original ideas whose use relies on nice technical tricks. This paper is a good example which deserves to be seen by the NeurIPS audience.

Regarding experiments: those have generated substantial discussion, for a paper which is theoretical in nature. Looking at the paper, one can say that there has been substantial work in polishing the theory while the experiments comparatively look a bit "let down" (it only takes a look at Figs 1 and 2) and their presentation could have been substantially simplified. But the merits of the paper are principally in its theory. I concur with the idea that those experiments could be changed. A suggestion: reduce the 1.5 page to 0.5 page that would take place in a "Discussion" section before conclusion, along with the story around Corollary 5 (below) and the limitations of the work, currently a single section. Put all that is not necessary in Appendix (dataset descriptions, etc.), eventually find a summary plot / table, insist on the fact that the experiments are preliminary / pilot, tone down the narrative. Again, the theory is the message.

Regarding the replacement of Corollary 5, there are two strategies: the first would be to just replace Corollary 5 with its stronger version and change the rest. I do not support this because the change has not been reviewed. Another strategy would be to use the "Discussion" Section (above) to add a subsection on a potential change to Corollary 5, with a new Corollary properly stated and how it changed the 29 -> 5 split. Hopefully both Corollaries have the same backbone. Extensive proof in Appendix required and proofchecked.

With this, make the why "The answer is 29" clear from Section 1.1: write that 29 is an integer that allows for the appropriate convergence of a series handling the algorithm's error, discuss the 29 -> 5, etc. . This allows to install the formal decorum.

Reviews: review: paper_summary: paper_summary: The authors present a new boosting algorithm: partition training data into 29 pieces of equal size, run AdaBoost on each, and output the majority vote over them. The authors prove that the sample complexity of MajorityVote29 is optimal and its running time is the same order as AdaBoost. Experimental results are also attached, which corroborate their theoretical findings.
strength_weakness: strength_weakness: N/A
questions: questions: N/A
limitations: limitations: N/A
paper_summary: paper_summary: This paper introduces a new Boosting algorithm, MAJORITY-OF-29, which achieves provably optimal sample complexity and is remarkably simple to implement. The algorithm partitions the training data into 29 disjoint subsets, applies AdaBoost to each subset, and combines the resulting classifiers through a majority vote. This approach not only matches the asymptotic performance of AdaBoost but also improves upon previous weak-to-strong learners in terms of simplicity and runtime efficiency.
strength_weakness: strength_weakness: 2. Existing experiments fail to demonstrate the effectiveness of the proposed method, and there is a lack of analysis and discussion on current experimental results.
questions: questions: Please see the weakness.
limitations: limitations: Limitations are discussed.
paper_summary: paper_summary: This paper presents an efficient and simple weak-to-strong learner that has optimal in-expectation error. In weak-to-strong learning, we are given a dataset of $m$ points from a distribution, and a $\gamma$-weak learner that returns hypotheses from a class of VC dimension $d$. AdaBoost, which is a textbook weak-to-strong learner, makes $O(\ln(m)/\gamma^2)$ total invokations to the weak learner, and the best-known analysis for it shows that it suffers an in-expectation error $O\left(\frac{d\ln(m/d)\ln(m)}{\gamma^2 m}\right)$. Larsen and Ritzert (2022) constructed a weak-to-strong learner, that has expected error $O(d/\gamma^2 m)$. Furthermore, they showed that this is the optimal error that one can obtain from $m$ training examples and a $\gamma$-weak learner. However, the weak-to-strong learner by Larsen and Ritzert (2022) makes $O(m^{0.8}/\gamma^2)$ invokations to the weak learner --- which is exponentially worse than AdaBoost. Another bagging-based-boosting algorithm due to Larsen (2023), which also achieves the optimal expected error of $O(d/\gamma^2m)$, makes only $O((\ln m)^2/\gamma^2)$ invokations to the weak-learner. This is still a log factor worse than AdaBoost. Could we then hope to obtain a tighter analysis of the error of AdaBoost, and show that it obtains the optimal error with only $O(\ln(m)/\gamma^2)$ invokations to the weak learner? Unfortunately, no. Høgsgaard et al. (2023) showed that AdaBoost necessarily suffers an expected error which is at least $\Omega(d\ln(m)/\gamma^2 m)$.

Can we then at least shoot for a different weak-to-strong learner that attains the optimal expected error of $O(d/\gamma^2m)$, and also invokes the weak learner only $O(\ln(m)/\gamma^2)$ many times (which is the AdaBoost gold standard)? This paper answers the question in the affirmative, with a remarkably simple weak-to-strong learner that they call Majority-of-29. The algorithm is exceedingly simple to describe: Partition the training dataset into 29 disjoint sub-samples of size $m/29$ each. Run AdaBoost on each subsample, and return the majority vote over the AdaBoosts. Since each AdaBoost makes only $O(\ln(m)/\gamma^2)$ calls to the weak learner, and we run a constant (29) many AdaBoosts, the total number of calls to the weak learner is $O(\ln(m)/\gamma^2)$ as required. Further, using an analysis similar to the recent majority-of-3-ERMs algorithm of Aden-Ali et al. (2023), the authors are able to show that the expected error of Majority-of-29 is $O(d/\gamma^2m)$. The analysis from that work does not extend in a trivial manner, and the authors are required to make appropriate technical modifications and enhancements. The number 29 emerges from the analysis --- the authors require showing a new generalization bound for margin-based classifiers (they show a generalization bound of the order $O((d/\gamma^2m)^{\alpha})$), for $\alpha=1/14$, and this lets them obtain the result for Majority-of-$g(\alpha)$, where $g(\alpha)=2/\alpha+1$. The authors conjecture that the analysis of the generalization bound could be improved, and a Majority-of-3 might well suffice for optimal error.

Finally, the authors also do a (somewhat-limited) empirical comparison of the the performances of the three optimal weak-to-strong learners mentioned above (LarsenRitzert, Bagging-based-boosting, Majority-of-29) as well as AdaBoost. The authors find that for large datasets, Majority-of-29 outperforms the other optimal weak-to-strong learners. On the smaller datasets, the authors find that Bagging-based-boosting outperforms Majority-of-29.
strength_weakness: strength_weakness: While the theoretical contribution is substantial and undeniable, arguably, the experimental section is extremely limited (which is okay, and the authors admit this at the end, but this is still a limitation, especially if we want to draw conclusions about the empirical performance of the different weak-to-strong learners). The authors only perform experiments on 4 real-world datasets---there are admittedly many more out there, even just in the UCI repository. Could the authors at least elaborate on their rationale behind choosing the datasets that they did? (e.g., was it a random subset of 4? was it the first 4? was it the best 4 from 20 that they observed this trend on?) How might one believe that there is no cherry-picking of datasets involved? The authors make two conclusions from their experiments: 1) on larger datasets, Majority-of-29 outperforms both Bagging-based-boosting and LarsenRitzert. 2) on smaller datasets, Bagging-based-boosting outperforms Majority-of-29. Importantly, the former conclusion is drawn from results on just 3 datasets, and the latter is drawn from just 1! This can really make one skeptical about whether they should truly believe these conclusions. It is okay that this is just a pilot empirical study, but such claims call for significantly larger empirical validation. Also, please see the questions below.
questions: questions: 1) Do we have reason to believe that $O(\ln(m)/\gamma^2)$ calls to the weak learner is indeed the best gold standard we can hope for? To my understanding, the reason we need $O(\ln(m)/\gamma^2)$ calls to the weak learner in AdaBoost is because we want to use a margin-based generalization bound that expects a classifier to have at least $\Omega(\gamma)$ margin on every training sample---AdaBoost attains this guarantee only after $O(\ln(m)/\gamma^2)$ iterations. But could it perhaps be possible that there is a weak-to-strong learner out there that attains optimal error of $O(d/\gamma^2m)$ with $o(\ln(m)/\gamma^2)$ calls to the weak learner?

2) In the Experiments section, the x-axis in Figures 1 and 2 varies the number X of AdaBoosts trained on disjoint partitions in the Majority-of-X algorithm. But this is not a parameter in the other algorithms (BaggedAdaboost and LarsenRitzert). Hence, I would have expected to see a constant line for these other algorithms in the plots (like how the red and blue lines are constant in Figure 2). Why are there different numbers corresponding to different number of voting classifiers in BaggedAdaboost and LarsenRitzert in Figure 1 (and also for BaggedAdaboost in Figure 2)? Am I missing something?

Minor/Typos: \
Line 133: It is 0 if half of hypotheses are  correct and half are wrong --- this is only true **in a weighted sense** right? \
Line 299: this suggests*
limitations: limitations: The authors have adequately addressed any limitations that I can foresee.

Comments: title: Response to rebuttal
comment: Thank you for your response. In particular, it is good to know that there was no cherry-picking of datasets involved. I would not argue for removing the experiments section entirely, since there is definitely value in having them; instead, as you say, it would be good to tone down the prose on it.

Thanks also for the clarification about $O(\ln m/\gamma^2)$ being the standard, as well as the discrepancy about the axis in the experiment. I would definitely clarify the latter in the prose, since it was quite confusing for me.

Finally, it is remarkable that you are able to get the number 29 down to 5. Given this, and the updates that you promise about clarifying and toning down experiments, I am happy to increase my score from 7 -> 8. I maintain that this is a strong contribution and deserves to be accepted. Great work!