Training our humans on the wrong dataset
I really don’t want to say that I’ve figured out the majority of what’s wrong with modern education and how to fix it, BUT
1. We train ML models on the tasks they are meant to solve
When we train (fit) any given ML model for a specific problem, on which we have a training dataset, there are several ways we go about it, but all of them involve using that dataset.
Say we’re training a model that takes a 2d image of some glassware and turn it into a 3d rendering. We have images of 2000 glasses from different angles and in different lighting conditions and an associated 3d model.
How do we go about training the model? Well, arguable, we could start small then feed the whole dataset, we could use different sizes for test/train/validation, we could use cv to determine the overall accuracy of our method or decide it would take to long… etc
But I’m fairly sure that nobody will ever say:
I know, let’s take a dataset of 2d images of cars and their 3d rendering and train the model on that first.
If you already have a trained model that does some other 2d image processing or predicts 3d structure from 2d images, you might try doing some weight transfer or using part of the model as a backbone. But that’s just because the hard part, the training, is already done.
To have a very charitable example, maybe our 3d rendering is not accurate enough and we’ve tried everything but getting more data is too expensive. At that point, we could decide to bring in other 2d to 3d datasets and also train the model on that and hope there’s enough similarity between the two datasets that the model will get better at the glassware task.
One way or another, we’d try to use the most relevant dataset first.
2. We don’t do this with humans
I’m certain some % of the people studying how to implement basic building blocks (e.g. allocators, decision trees, and vectors) in C during a 4-year CS degree end up becoming language designers or kernel developers and are glad they took the time to learn those things.
But the vast majority of CS students go on to become frontend developer or full-stack developers where all the “backend”…