back to index

Bjarne Stroustrup: Deep Learning, Software 2.0, and Fuzzy Programming


Whisper Transcript | Transcript Only Page

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:14.000 | that takes some input.
00:00:16.520 | Programming is the task of creating a program, and a program takes some input and produces
00:00:20.320 | some output.
00:00:21.880 | So machine learning systems train on data in order to be able to take in input and produce
00:00:29.040 | output.
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:42.240 | We mess up a lot.
00:00:43.240 | We're definitely not reliable.
00:00:44.560 | Biological systems are a giant mess.
00:00:47.680 | So there's a sense in which machine learning is a kind of way of programming, but just
00:00:53.560 | fuzzy.
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:27.880 | Do you even see it as programming?
00:01:29.760 | Is it totally another kind of world?
00:01:33.240 | I think it's a different kind of world, and it is fuzzy.
00:01:37.720 | And in my domain, I don't like fuzziness.
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:01:57.680 | I want that to be done by engineers.
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:01.040 | You said 98%.
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:09.600 | get up to 92 and a half.
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:41.040 | interested in.
00:03:42.400 | I worry a bit about machine learning in the context of cars.
00:03:48.160 | You know much more about this than I do.
00:03:50.040 | I worry too.
00:03:51.320 | But I'm sort of an amateur here.
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:41.040 | This is scary.
00:04:42.040 | I mean, how do you do the cut over between the machine and the human?
00:04:47.800 | It's very, very difficult.
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:04.920 | It is for most engineers.
00:05:07.040 | To me, it's extremely appealing because we don't know how to get that interaction right,
00:05:12.880 | but I think it's possible.
00:05:13.880 | But it's very, very hard.
00:05:15.480 | It is.
00:05:16.480 | And I was stating a problem, not a solution.
00:05:19.240 | That is impossible.
00:05:20.240 | I would much rather never rely on a human.
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:34.840 | Let's just get one fact in.
00:05:38.520 | All of this AI stuff is on top of C++.
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.
00:06:09.480 | [END]