back to indexBjarne Stroustrup: Deep Learning, Software 2.0, and Fuzzy Programming
00:00:00.000 |
So a crazy question, but I work a lot with machine learning, with deep learning. 00:00:07.080 |
I'm not sure if you touch that world much, but you could think of programming as a thing 00:00:16.520 |
Programming is the task of creating a program, and a program takes some input and produces 00:00:21.880 |
So machine learning systems train on data in order to be able to take in input and produce 00:00:30.480 |
But they're messy, fuzzy things, much like we as children grow up. 00:00:39.200 |
We take some input, we make some output, but we're noisy. 00:00:47.680 |
So there's a sense in which machine learning is a kind of way of programming, but just 00:00:54.560 |
It's very, very, very different than C++, because C++ is, just like you said, it's extremely 00:01:03.560 |
reliable, it's efficient, you can measure, you can test it in a bunch of different ways. 00:01:11.320 |
With biological systems or machine learning systems, you can't say much except sort of 00:01:17.320 |
empirically saying that 99.8% of the time it seems to work. 00:01:24.200 |
What do you think about this fuzzy kind of programming? 00:01:33.240 |
I think it's a different kind of world, and it is fuzzy. 00:01:41.440 |
That is, people say things like they want everybody to be able to program, but I don't 00:01:49.200 |
want everybody to program my airplane controls or the car controls. 00:02:00.400 |
I want that to be done with people that are specifically educated and trained for doing, 00:02:08.640 |
building things, and it is not for everybody. 00:02:11.960 |
Similarly, a language like C++ is not for everybody. 00:02:16.000 |
It is generated to be a sharp and effective tool for professionals, basically, and definitely 00:02:25.560 |
for people who aim at some kind of precision. 00:02:30.680 |
You don't have people doing calculations without understanding math, right? 00:02:36.800 |
Counting on your finger is not going to cut it if you want to fly to the moon. 00:02:41.720 |
And so there are areas where an 84% accuracy rate, 16% false positive rate is perfectly 00:02:55.480 |
acceptable and where people will probably get no more than 70. 00:03:04.160 |
What I have seen is more like 84, and by really a lot of blood, sweat, and tears, you can 00:03:12.800 |
So this is fine if it is, say, pre-screening stuff before the human look at it. 00:03:22.400 |
It is not good enough for life-threatening situations. 00:03:27.400 |
And so there's lots of areas where the fuzziness is perfectly acceptable and good and better 00:03:34.560 |
than humans, cheaper than humans, but it's not the kind of engineering stuff I'm mostly 00:03:42.400 |
I worry a bit about machine learning in the context of cars. 00:03:54.280 |
I've read some of the papers, but I've not ever done it. 00:03:58.600 |
And the idea that scares me the most is the one I have heard, and I don't know how common 00:04:07.280 |
it is, that you have this AI system, machine learning, all of these trained neural nets, 00:04:20.640 |
and when there's something that's too complicated, they ask the human for help. 00:04:27.280 |
But the human is reading a book or asleep, and he has 30 seconds or three seconds to 00:04:35.280 |
figure out what the problem was that the AI system couldn't handle and do the right thing. 00:04:42.040 |
I mean, how do you do the cut over between the machine and the human? 00:04:51.440 |
And for the designer of one of the most reliable, efficient, and powerful programming languages, 00:04:58.640 |
C++, I can understand why that world is actually unappealing. 00:05:07.040 |
To me, it's extremely appealing because we don't know how to get that interaction right, 00:05:23.160 |
If you're driving a nuclear reactor or an autonomous vehicle, it's much better to design 00:05:29.760 |
systems written in C++ that never ask human for help. 00:05:44.880 |
So that's one reason I have to keep a weather eye out on what's going on in that field, 00:05:49.560 |
but I will never become an expert in that area. 00:05:52.560 |
But it's a good example of how you separate different areas of applications and you have 00:05:58.440 |
to have different tools, different principles, and they interact. 00:06:04.440 |
No major system today is written in one language, and there are good reasons for that.