Regarding boosting in the context of machine learning. One definition I have encountered talks about turning multiple weak learners into one strong learner, and another talks about starting with a prediction and iteratively improving it by learning predictors for residuals (such as gradient boosting).
The questions I have are:
Which definition is more accurate? (or are they equivalent?)
Does the second simply implement the first?
What is the formal definition in the literature?