Simulated data: the great equalizer in the AI race?
medium.com
medium.com
Now turn to the machine learning problem we sought to solve with the new synthetic data: what is the P(y|X1, X2, ..., Xn) where y is usually a class like "bird". In other words given an image predict its label. Since the data was generated knowing only the statistics of the original data, it can add no value beyond plausible examples developed using the original data itself.
Will this improve the accuracy of a model by providing additional edge case examples and filling in gaps? Somewhat. Will it understand data not represented by the original data and substitute for more thorough, diverse datasets? Absolutely not.
In terms of model improvement, yes synthetic data can help. In terms of the arms race? No. True examples provide knowledge that is unique. If one used a physics engine (GTA is popular for self-drivings cars) one can gather truly novel data; this is not the case for GANS.
It's concerning how willing people are to write articles on this subject without understanding the mathematics underlying the technology.
Do your homework and RTFM.
The power of synthesis is not within the GAN or VAE, it is in the outside mechanism that guides the creation of content with specific domain knowledge about the feature space.
This might not replace the value of real data, but it will allow to accelerate bootstrap, improve coverage (at cost of accuracy), or provide free environments for auxiliary processes like CI/CD in many deep learning applications.
There is a lot of published material on synthetic data augmentation if you actually look for it.
"In terms of model improvement, yes synthetic data can help. In terms of the arms race? No. True examples provide knowledge that is unique. "
I do not agree on that because as I explained, with domain knowledge it is very much possible to shape the data generated for augmented learning - beyond the plain statistical variations of GAN and similar, which are obviously of very limited value in training.
And as a followup, if you can generate a synthetic dataset by extrapolating from sufficiently many independent conclusions drawn from the original (as opposed to having access to the original itself), would you still need to use such a dataset for training?
Things like Monte Carlo simulation can be used to approximate real world conditions, but they can't typically capture the full information density of organic data. For example, generating a ton of artificial web traffic for fraud analysis or incident response only captures a few dimensions of what real world user traffic captures.
The author talks about simulating data to focus on edge cases or avoid statistical bias, but I don't see how simulated data actually achieves that.
Information theoretically speaking, this is impossible. The synthetic dataset will always have exploitable mathematical properties in a way non-synthetic dataset will not. It will open up the trained model to easy adversarial attacks.
You don't. It's not useless as a technique, but it is limited. IMO more limited than the article's author presents, but they do touch on some of the useful bits.
"...original dataset without having access to a critical basis set of the original?"
I think that they're not trying to copy existing datasets but are trying to generate new datasets that solve various computer vision use-cases. Looks lke they're using 3D photorealistic models and environments to then generate 2D data. It is a cool idea, if they had the ability to synthesize a large amount of 3D people and objects and insert them into 3D environment in ways that made sense and then run motion simulation, they could hypothetically create an incredible amount of high-quality data. Sounds pretty hard to do honestly...
I think Monte Carlo is used for something very different than computer vision / machine learning. Monte Carlo is usually used to estimate an average result given many dependent variables and a simplified model of the problem. So if I want to estimate how far my paper airplane will fly and I have a simulator, I would vary the paper thickness, folds and wind. Each time I would run the simulator, get a result and then I can estimate the average distance the paper airplane would go! (actually sounds like a fun project lol). Anyway this is just different.
Simulation is good for edge cases because you can simulate them disproportionally to their prevalence in the real world. So let's say that we're in a smart store and we want to recognize when an elderly person falls on the floor to send human help to the correct location. This happens maybe one in 5 year in a given store. If we were to gather data we may get 10 examples. If they can simulate this, they could simulate 100k elderly people falling and then train models to recognize it! Kind of crazy really.
Generating tons of data from simply using decent 3D renderings, made with game engines etc.
It's not perfect. You do need real world data. Synthetic data is great for creating edge cases. Say you want your model to classify more general use cases, but your real world data is limited. You can generate data that fits edge cases with some variance and the model will accept more variety, reducing over fitting.
Now this was for the public good and we were going to fund the technology to display the data, and they would provide the data. This way people could assess how much various drugs could help them and what the outcomes were.
It was also thought that other researchers could find patterns in the data.
Suddenly the not-for-profit institute got cold feet because they would be "giving away" the data they had spent millions to acquire. Meanwhile we, a for-profit institute, were happy to fund our share as a public good.
They decided that, instead of giving away their data, they would give away simulated data. This, it was felt, would benefit the patients and researchers who might draw conclusions from the data.
Now these are phds at the top of their field. But, you know, its sort of obvious that all they would do is reproduce their biases and make it so that no one else could challenge those biases. I mean, for you data science types, this is 101.
Ever since that experience, I have a distrust of simulated data.
Most data is crap. So the mountains of data that are supposedly an advantage, in China or in the vaults of the large corporations, are not fit for purpose without a tremendous amount of data pre-processing, and even then... And that means the real chokepoint is data science talent, not data quantity. In other words, in many cases, the premises of this statement should be questioned.
Secondly, a lot of research is focused on few-shot, one-shot or no-shot learning. That is, the AI industry will make this constraint increasingly obsolete.
Thirdly, with synthetic data, it is only as good as the assumptions you made while creating it. But how did you reach those assumptions? By what argument should they be treated as a source of truth? If you are making those assumptions based on your wide experience with real-world data, well then, we run into the same scarcity, mediated by the mind of the person creating the synthetic data.
Most data is def crap lol.
I don't see few shot, one-shot or no-shot getting anywhere close to standard supervised learning for anything practical. It really doesn't make sense in production settings at all.
You have a function that you want to learn, let's say mapping between an RGB image to a segmentation map. For most applications you're never really in a situation where a production product is dealing with visual scenes/objects it has never seen before. In a factory, in smart stores, in cars, AR scenarios like I just don't see it happening. And then if this case is removed, I'm thinking, ok so when can I get good enough results from a tiny dataset? Machine Learning isn't magic, you're trying to learn a function with 100 million parameters using a dataset, I just don't see the math working out. More data provides better results, it inserts more information to create a more relevant mapping function from input to output.
Third point is great! As long as the models are somehow based on real-world scans I think a lot of good can come from this. The funny thing is, there is so much bias in networks trained today precisely because the data captured is usually small and captured from a specific area/population/setting. If you had a great synthetic data generation engine you could at least generate equal representation of gender, age groups, ethnicities, ... etc.
Overall great points!
1. Totally agree with the point about data science talent being one of the bottlenecks. And in that area, the big tech companies already have the best & brightest workforce. Most data is crap is a bit of a stretch, but agree that a lot of pre-processing is required. But more and more platforms and/or services company are filling this gap.
2. 100%. This is a short term problem.
3. Agree to some extent. You can span latent spaces on top of an initial batch to overcome scarcity and use GANs to scale up. Data augmentation is not perfect but solves a lot of problems in production. Also specifically as it relates to computer vision, it's "easier" to know what the real world looks like and try to replicate it. It's hard in practice but the assumptions are mostly agreed upon.
Anyone in this space is well aware that the benefit of big data isn't just the amount of data, but that's it's a real representative sample of the type of data you are actually going to need to work with. Big data solves the problem of people being bad at creating simulations. To suggest simulations as a solution to big data is kinda getting the relationship backwards.
Why? I think it's strange to believe the opposite: that something as simple as a computer program designed by something as simple as the human mind definitely should be able to adequately simulate the complexity of the real world.
I'm not sure the second is even a logical possibility, never mind a practical one.
* Have a set of data as a "basis"
1. This diminishes the "equalization" factor since you
need a lot of data to get a good approximation of the
distribution anyways.
2. You need to create a model based off of the set,
which mathematically should be close to the same problem
as just building the target model.
* No or small training set to use 1. You need to create a model that probably uses some
stat distribution to generate. Your target model will just
learn that distribution.
2. Your initial assumptions create a distribution, and
that is not going to be the same distro of real-world
data. Maybe painfully off-base. I've worked on this
problem for months and it's fairly difficult to get
perfect in an easy (modeled by simple stat distributions)
scenario.
There are problems where generating data can work, but they're specific problems or can only be used for rare edge-cases that don't show up enough in a dataset. For the most difficult problems it is probably just as difficult to generate "correct" data as it is to generate a model without real-world data.Just a thought, not sure what's really going on there, I just know that they probably have something interesting they're cooking up!
This is a really crazy vision
Assuming those image sets are small they will create a model with a large bias. If you're talking about fine-tuning an existing model with small datasets, this is done already and works fairly well if not overused.
It all comes down to: to create the first "data-generating" model you need a lot of data and compute. Expanding it is a different story, but that isn't where the problem lies. We come full-circle back to the same problem as what we started with: big players can afford to build these models and small players can't.
>For a lot of tasks the performance works well, but for extreme precision it will not fly — yet.
But we all knew that going in, didn't we?
>is not a silver bullet
>opens up a lot of opportunities
>accelerate their R&D efforts
>Imho
>reaching a tipping point
>gap
>starting to disappear.
This is what it reads like:
"we're getting to being able to approach the cusp of potentially honing in on the vicinity of the realization of this technology in the future"
So your entire response doesn't commit to any strong claim at all but it sure sounds like it does!
Incidentally I wonder if you're aware you're doing this or if it comes, subconsciously, from reading lots of writing that's like this.
A good simulation is the holy grail of AI. It solves the data bottleneck once the data can generalize to the real-world. Let's see them prove that!
If you train a model using simulated data, the result you can obtain will be a slightly worse simulation.