back to index

Dawn Song: Adversarial Machine Learning and Computer Security | Lex Fridman Podcast #95


small model | large model

link |
00:00:00.000
The following is a conversation with Don Song, a professor of computer science at UC Berkeley
link |
00:00:05.440
with research interests and computer security, most recently with a focus on the intersection
link |
00:00:10.880
between security and machine learning. This conversation was recorded before the outbreak
link |
00:00:15.920
of the pandemic for everyone feeling the medical, psychological, and financial burden of this crisis.
link |
00:00:21.440
I'm sending love your way. Stay strong. We're in this together. We'll beat this thing.
link |
00:00:26.320
This is the Artificial Intelligence Podcast. If you enjoy it, subscribe on YouTube,
link |
00:00:31.680
review it with 5 stars on Apple Podcasts, support on Patreon, or simply connect with me on Twitter
link |
00:00:37.360
at Lex Freedman, spelled F R I D M A N. As usual, I'll do a few minutes of ads now
link |
00:00:43.600
and never any ads in the middle that can break the flow of the conversation.
link |
00:00:47.600
I hope that works for you. It doesn't hurt the listening experience.
link |
00:00:51.600
This show is presented by Cash App, the number one finance app in the App Store.
link |
00:00:55.600
When you get it, use code lexpodcast. Cash App lets you send money to friends by Bitcoin
link |
00:01:01.440
and invest in the stock market with as little as $1. Since Cash App does fractional share trading,
link |
00:01:07.200
let me mention that the order execution algorithm that works behind the scenes
link |
00:01:11.600
to create the abstraction of fractional orders is an algorithmic marvel.
link |
00:01:16.080
So big props to the Cash App engineers for solving a hard problem that in the end provides an easy
link |
00:01:21.440
interface that takes a step up to the next layer of abstraction over the stock market,
link |
00:01:26.320
making trading more accessible for new investors and diversification much easier.
link |
00:01:32.080
So again, if you get Cash App from the App Store, Google Play, and use the code lexpodcast,
link |
00:01:37.600
you get $10 and Cash App will also donate $10 to first, an organization that is helping to
link |
00:01:43.440
advance robotics and STEM education for young people around the world.
link |
00:01:47.520
And now, here's my conversation with Dawn Song.
link |
00:01:53.360
Do you think software systems will always have security vulnerabilities?
link |
00:01:57.040
Let's start at the broad, almost philosophical level.
link |
00:02:00.400
That's a very good question. I mean, in general, right, it's very difficult to write completely
link |
00:02:05.760
bug free code and code that has no vulnerability and also especially given that the definition
link |
00:02:11.920
of vulnerability is actually really broad. It's any type of attacks essentially on the code can,
link |
00:02:18.400
you know, that's can you can call that that caused by vulnerabilities.
link |
00:02:22.640
And the nature of attacks is always changing as well, like new ones are coming up.
link |
00:02:27.120
Right. So for example, in the past, we talked about memory safety type of vulnerabilities
link |
00:02:32.800
where essentially attackers can exploit the software and take over control of how the code
link |
00:02:39.920
runs and then can launch attacks that way by accessing some aspect of the memory and be able to
link |
00:02:45.280
then alter the state of the program. Exactly. So for example, in the example of a buffer or flow,
link |
00:02:51.920
then they, the attacker essentially actually causes essentially unintended changes in the
link |
00:02:59.280
state of the, of the program. And then, for example, can then take over control flow of the
link |
00:03:05.040
program and let the program to execute codes that actually the, the program didn't intend.
link |
00:03:10.960
So the attack can be a remote attack. So they, the attacker, for example, can,
link |
00:03:15.360
can send in a malicious input to the program that just causes the program to completely
link |
00:03:20.720
then be compromised and then end up doing something that's under the program under the
link |
00:03:26.720
attacker's control and intention. But that's just one form of attacks. And there are other forms
link |
00:03:31.920
of attacks. Like, for example, there are these side channels where attackers can try to learn from
link |
00:03:39.680
even just observing the outputs from the behaviors of the program, try to infer certain
link |
00:03:44.400
secrets of the program. So they essentially write the form of attacks is very, very,
link |
00:03:51.200
it's very broad spectrum. And in general, from the security perspective, we want to
link |
00:03:57.760
essentially provide as much guarantee as possible about the program's security properties and so
link |
00:04:05.040
on. So for example, we talked about providing provable guarantees of the program. So for example,
link |
00:04:11.840
there are ways we can use program analysis and formal verification techniques to prove that a
link |
00:04:18.160
piece of code has no memory safety vulnerabilities.
link |
00:04:22.800
What does that look like? What is that proof? Is that just a dream for that's applicable to small
link |
00:04:28.480
case examples? Or is that possible to do for real world systems?
link |
00:04:32.080
So actually, I mean, today I actually call it so we are entering the area of formally verified
link |
00:04:38.800
systems. So in the community, we have been working for the past decades in developing
link |
00:04:46.480
techniques and tools to do this type of program verification. And we have dedicated teams that
link |
00:04:56.000
have dedicated their years or sometimes even decades of their work in the space.
link |
00:05:03.920
So as a result, we actually have a number of formally verified systems ranging from micro
link |
00:05:10.560
kernels to compilers to file systems to certain crypto libraries and so on.
link |
00:05:18.480
So it's actually really wide ranging and it's really exciting to see that people are recognizing
link |
00:05:24.480
the importance of having these formally verified systems with verified security.
link |
00:05:31.440
So that's great advancement that we see. But on the other hand, I think we do need to take
link |
00:05:36.720
all these essentially with caution as well in the sense that just like I said,
link |
00:05:44.640
the type of vulnerabilities is very varied. We can formally verify a software system to have
link |
00:05:51.680
certain set of security properties, but they can still be vulnerable to other types of attacks.
link |
00:05:57.680
And hence, we continue to need to make progress in the space.
link |
00:06:03.040
So just a quick to linger on the formal verification. Is that something you can do by
link |
00:06:10.320
looking at the code alone or is it something you have to run the code to prove something?
link |
00:06:16.400
So empirical verification. Can you look at the code, just the code?
link |
00:06:20.080
So that's a very good question. So in general, for most program verification techniques,
link |
00:06:25.360
it's essentially try to verify the properties of the program statically.
link |
00:06:28.880
And there are reasons for that too. We can run the code to see, for example, using
link |
00:06:35.920
like software testing with fuzzing techniques and also in certain even model checking techniques,
link |
00:06:41.760
you can actually run the code. But in general, that only allows you to
link |
00:06:49.920
essentially verify or analyze the behaviors of the program in certain, under certain situations.
link |
00:06:56.240
And so most of the program verification techniques actually works statically.
link |
00:07:00.080
What does statically mean?
link |
00:07:01.920
Statically, that's running the code.
link |
00:07:04.160
Without running the code. Yep. So, but sort of to return to the big question,
link |
00:07:09.440
if we can stand for a little bit longer, do you think there will always be security vulnerabilities?
link |
00:07:16.960
You know, that's such a huge worry for people in the broad cybersecurity threat in the world.
link |
00:07:22.560
It seems like the tension between nations, between groups,
link |
00:07:29.440
the wars of the future might be fought inside the security that people worry about.
link |
00:07:34.960
And so, of course, the nervousness is, is this something that we can get a hold of in the future
link |
00:07:40.240
for our software systems?
link |
00:07:41.520
So, there is a very funny quote saying, security is job security. So, I think that essentially
link |
00:07:53.520
answered your question. Right. We strive to make progress in building more secure systems and also
link |
00:08:03.600
making it easier and easier to build secure systems. But given the diversity, the, the
link |
00:08:12.400
various nature of attacks. And also, the interesting thing about security is that
link |
00:08:20.640
unlike in most other views, essentially, you are trying to, how should I put it,
link |
00:08:26.720
prove a statement true. But in this case, yes, trying to say that there's no attacks.
link |
00:08:35.760
So, even just the statement itself is not very well defined. Again, given, you know,
link |
00:08:41.520
how varied the nature of the attacks can be. And hence, that's a challenge of security.
link |
00:08:46.800
And also, then naturally, essentially, it's almost impossible to say that something,
link |
00:08:52.560
a real world system is 100% no security vulnerabilities.
link |
00:08:57.200
Is there a particular, and we'll talk about different kinds of vulnerabilities.
link |
00:09:01.280
It's exciting ones, very fascinating ones in the space of machine learning.
link |
00:09:05.440
But is there a particular security vulnerability that worries you the most that you think about
link |
00:09:11.680
the most in terms of it being a really hard problem and a really important problem to solve?
link |
00:09:17.680
So it is very interesting. So I have, in the past, have worked essentially through the,
link |
00:09:23.840
through the different stacks in the systems, working on networking security, software security,
link |
00:09:30.800
and even in software security, there's a work on program binary security and then web security,
link |
00:09:36.720
mobile security. So, so throughout, we have been developing more and more
link |
00:09:42.640
techniques and tools to improve security of the software systems. And as a consequence,
link |
00:09:48.880
actually, it's a very interesting thing that we are seeing, interesting trends that we are seeing,
link |
00:09:53.520
is that the attacks are actually moving more and more from the systems itself towards to humans.
link |
00:10:01.760
So it's moving up the stack. It's moving up the stack.
link |
00:10:04.800
That's fascinating. And also, it's moving more and more towards what we call the weakest link.
link |
00:10:09.680
So we say that in security, we say the weakest link actually of the systems oftentimes is actually
link |
00:10:14.720
humans themselves. So a lot of attacks, for example, the attack is either through social
link |
00:10:20.320
engineering or from these other methods, they actually attack the humans and then attack the
link |
00:10:26.160
systems. So we actually have a project that actually works on how to use AI machine learning to help
link |
00:10:33.440
humans to defend against these type of attacks.
link |
00:10:35.840
So yeah, so if we look at humans as security vulnerabilities, is there, is there methods,
link |
00:10:42.000
is that what you're kind of referring to? Is there hope or methodology for patching the humans?
link |
00:10:48.640
I think in the future, this is going to be really more and more of a serious issue,
link |
00:10:54.400
because again, for, for machines, for systems, we can, yes, we can patch them,
link |
00:11:00.160
we can build more secure systems, we can harden them and so on. But humans actually,
link |
00:11:04.800
we don't have a way to say do a software upgrade or do a hardware change for humans.
link |
00:11:11.040
And so for example, right now, we, you know, we already see different types of attacks.
link |
00:11:17.840
In particular, I think in the future, they are going to be even more effective on humans.
link |
00:11:21.760
So as I mentioned, social engineering attacks, like these phishing attacks,
link |
00:11:25.440
attacks that just get humans to provide their passwords. And there have been instances where
link |
00:11:32.800
even places like Google and other places that are supposed to have really good security,
link |
00:11:40.960
people there have been phished to actually wire money to attackers. It's crazy. And then also
link |
00:11:49.520
we talk about this deep fake and fake news. So these essentially are there to target humans,
link |
00:11:54.480
to manipulate humans opinions, perceptions, and so on. So I think in going to the future,
link |
00:12:04.480
these are going to become more and more severe.
link |
00:12:07.120
Further and further up the stack. Yes. Yes.
link |
00:12:09.760
So, so you see kind of social engineering, automated social engineering as a kind of
link |
00:12:15.200
security vulnerability. Oh, absolutely. And again, given that humans are the weakest link
link |
00:12:21.760
to the system, I would say this is the type of attacks that I would be most worried about.
link |
00:12:28.640
Oh, that's fascinating. Okay, so. And that's why when we talk about AI sites,
link |
00:12:33.440
also we need AI to help humans too. As I mentioned, we have some projects in the space
link |
00:12:37.840
actually helps on that. Can you maybe can we go there for the GS? What are some ideas to help
link |
00:12:43.520
humans? So one of the projects we are working on is actually using NLP and chatbot techniques to
link |
00:12:50.720
help humans. For example, the chatbot actually could be there observing the conversation between
link |
00:12:57.920
a user and a remote correspondence. And then the chatbot could be there to try to
link |
00:13:04.560
observe to see whether the correspondence is potentially an attacker. For example,
link |
00:13:11.120
in some of the phishing attacks, the attacker claims to be a relative of the user and the
link |
00:13:17.840
relative got lost in London and his wallets have been stolen, had no money as a user to wire money
link |
00:13:25.760
to send money to the attacker or to the correspondence. So then in this case, the chatbot
link |
00:13:32.240
actually could try to recognize there may be something suspicious going on. This relates to
link |
00:13:38.160
asking money to be sent. And also the chatbot could actually pose, we call it challenge and
link |
00:13:44.960
response. The correspondence claims to be a relative of the user, then the chatbot could
link |
00:13:51.040
automatically actually generate some kind of challenges to see whether the correspondence
link |
00:13:57.040
knows the appropriate knowledge to prove that he actually is, he actually is the
link |
00:14:03.520
acclaimed relative of the user. So in the future, I think these type of technologies
link |
00:14:10.480
actually could help protect users. That's funny. So chat about this kind of
link |
00:14:17.120
focus for looking for the kind of patterns that are usually associated with social
link |
00:14:21.520
engineering attacks, it would be able to then test, sort of do a basic capture type of response
link |
00:14:30.320
to see is this is the fact or the semantics of the claims you're making true.
link |
00:14:34.320
That's fascinating. And as we develop more powerful NLP and chatbot techniques,
link |
00:14:43.600
the chatbot could even engage further conversations with the correspondence to, for example, if
link |
00:14:50.000
it turns out to be an attack, then the chatbot can try to engage in conversations with the
link |
00:14:57.200
attacker to try to learn more information from the attacker as well. So it's a very interesting
link |
00:15:01.840
area. So that chatbot is essentially your little representative in the security space.
link |
00:15:07.760
It's like your little lawyer that protects you from doing anything stupid. That's a fascinating
link |
00:15:14.160
vision for the future. Do you see that broadly applicable across the web? So across all your
link |
00:15:20.880
interactions on the web? Absolutely. What about like on social networks, for example? So across
link |
00:15:27.760
all of that, do you see that being implemented in sort of that's a service that a company would
link |
00:15:33.680
provide? Or does every single social network has to implement it themselves? So Facebook and Twitter
link |
00:15:38.720
and so on? Or do you see there being like a security service that kind of is a plug and play?
link |
00:15:45.280
That's a very good question. I think, of course, we still have ways to go until the NLP and the
link |
00:15:51.920
chatbot techniques can be very effective. But I think once it's powerful enough, I do see that
link |
00:15:59.200
there can be a service either a user can employ or can be deployed by the platforms.
link |
00:16:04.640
Yeah, that's just the curious side to me on security. And we'll talk about privacy
link |
00:16:09.280
is who gets a little bit more of the control? Who gets to, you know, on whose side is the
link |
00:16:15.920
representative? Is it on Facebook's side that there is this security protector? Or is it on
link |
00:16:22.640
your side? And that has different implications about how much that little chatbot security
link |
00:16:29.440
protector knows about you. If you have a little security bot that you carry with you everywhere
link |
00:16:35.280
from Facebook to Twitter to all your services, they might it might know a lot more about you
link |
00:16:40.480
and a lot more about your relatives to be able to test those things. But that's okay,
link |
00:16:44.560
because you have more control of that, as opposed to Facebook having that. That's a really
link |
00:16:48.960
interesting trade off. Another fascinating topic you work on is, again, also non traditional to
link |
00:16:56.160
think of it as security vulnerability. But I guess it is, is adversarial machine learning
link |
00:17:01.040
is basically again, high up the stack, being able to attack the the accuracy, the performance of
link |
00:17:10.480
this of machine learning systems by manipulating some aspect, perhaps actually can clarify, but
link |
00:17:17.920
I guess the traditional way, the main way is to manipulate some of the input data to make the
link |
00:17:24.880
output something totally not representative of the semantic content of the input.
link |
00:17:30.640
Right. So in this adversarial machine learning, essentially, attack is the goal is to fold the
link |
00:17:35.360
machine system into making the wrong decision. And the attack can actually happen at different
link |
00:17:40.400
stages can happen at the infant stage, where the attacker can manipulate the inputs at
link |
00:17:46.880
perturbations, malicious perturbations to the inputs to cause the machine learning system to
link |
00:17:52.720
give the wrong prediction and so on. So just to pause, what are perturbations?
link |
00:17:58.800
Also essentially changes to the inputs for some subtle changes messing with the changes to try
link |
00:18:04.560
to get a very different output. Right. So for example, the canonical adversarial example
link |
00:18:12.480
type is you have an image, you add really small perturbations, changes to the image,
link |
00:18:18.480
it can be so subtle that to human eyes, it's hard to, it's even imperceptible to human eyes.
link |
00:18:26.000
But for the machine learning system, then the one without the perturbation,
link |
00:18:34.240
the machine learning system can give the wrong, can give the correct classification,
link |
00:18:38.400
for example. But for the perturbation, the machine learning system will give a completely wrong
link |
00:18:44.560
classification. And in a targeted attack, the machine learning system can even give the wrong
link |
00:18:51.360
answer. That's what the attacker intended. So not just the, so not just any wrong answer,
link |
00:18:58.480
but like change the answer to something that will benefit the attacker. Yes.
link |
00:19:04.080
So that's at the, at the infant stage. Right. So yeah, what else? Right. So attacks can also
link |
00:19:10.640
happen at the training stage where the attacker, for example, can provide
link |
00:19:14.640
poisoned data, training data sets, our training data points to cause the machine learning system
link |
00:19:22.800
to learn the wrong model. And we also have done some work showing that you can actually do this,
link |
00:19:28.960
we call it a backdoor attack, where by feeding these poisoned data points to the machine learning
link |
00:19:37.600
system, the, the machine learning system can, will learn a wrong model. But it can be done in a way
link |
00:19:43.600
that for most of the inputs, the learning system is fine, is giving the right answer.
link |
00:19:50.560
But on specific, we call it the trigger inputs, for specific inputs chosen by the attacker,
link |
00:19:57.840
it can actually only enter these situations, the learning system will give the wrong answer.
link |
00:20:02.880
And oftentimes the attack is the answer designed by the attacker. So in this case, actually,
link |
00:20:08.480
the attack is really stealthy. So for example, in the, you know, work that way, there's even when
link |
00:20:15.680
you're human, even when humans visually reviewing these training, the training data sets, actually,
link |
00:20:23.920
it's very difficult for humans to see some of these attacks. And then from the model side,
link |
00:20:32.160
it's, it's almost impossible for anyone to know that the model has been trained wrong. And it's,
link |
00:20:39.520
that it, in particular, it only acts wrongly in these specific situations, the only the attacker
link |
00:20:47.120
knows. So first of all, that's fascinating. It seems exceptionally challenging that second one,
link |
00:20:52.400
manipulating the training set. So can you, can you help me get a little bit of an intuition on
link |
00:20:58.720
how hard of a problem that is? So can you, how much of the training set has to be messed with
link |
00:21:06.160
to try to get control? Is this a, is this a huge effort or can a few examples
link |
00:21:11.040
mess everything up? That's a very good question. So in one of our works, we show that we are using
link |
00:21:17.920
facial recognition as an example. So facial recognition? Yes. Yes. So in this case, you'll
link |
00:21:24.160
give images of people and then the machine learning system need to classify like who it is.
link |
00:21:31.600
And in this case, we show that using this type of
link |
00:21:36.960
backdoor or poison data, training data point attacks, attackers only actually need to insert
link |
00:21:43.440
a very small number of poisoned data points to actually be sufficient to fool the learning
link |
00:21:51.360
system into learning the wrong model. And so the, the wrong model in that case would be if I, if
link |
00:21:57.760
you show a picture of, I don't know, a picture of me and it tells you that it's actually, I don't
link |
00:22:08.480
know, Donald Trump or something. Right. Somebody else. I can't, I can't think of people. Okay.
link |
00:22:15.120
But so the basically for certain kinds of faces, it will be able to identify it as a person that's
link |
00:22:21.040
not supposed to be. And therefore, maybe that could be used as a way to gain access somewhere.
link |
00:22:26.320
Exactly. And the freedom model, we showed even more subtle attacks. In a sense that we show that
link |
00:22:33.600
actually by manipulating the, by giving particular type of poisoned training data to the, to the
link |
00:22:44.160
machine learning system, actually, not only that's in this case, we can have you impersonate as Trump
link |
00:22:51.280
or whatever. It's nice to be the president. Yeah. Actually, we can make it in such a way that for
link |
00:22:58.400
example, if you wear a certain type of glasses, then we can make it in such a way that anyone,
link |
00:23:04.400
not just you, anyone that wears that type of glasses will be, will be recognized as Trump.
link |
00:23:10.480
Yeah. Wow. So is that possible? And then we test it actually, even in the physical world.
link |
00:23:18.560
In the physical. So actually, so yeah, to linger on, to linger on that, that means you don't mean
link |
00:23:25.120
glasses, adding some artifacts to a picture. Right. So basically, you are, yeah. So you wear this,
link |
00:23:33.440
right, glasses, and then we take a picture of you and then we feed that picture to the
link |
00:23:37.920
machine learning system and then we'll recognize that you as Trump. For example, we didn't use
link |
00:23:44.800
Trump in our experiments. Can you try to provide some basics, mechanisms of how you make that
link |
00:23:53.360
happen, how you figure out, like, what's the mechanism of getting me to pass as, as a president,
link |
00:23:59.600
as one of the presidents? So how would you go about doing that? I see, right. So essentially,
link |
00:24:04.800
the idea is, when for the learning system, you are feeding its training data points. So basically,
link |
00:24:11.760
images of a person with the label. So one simple example would be that you're just putting, like,
link |
00:24:20.400
so now in the training data set, I also put images of you, for example, and then
link |
00:24:26.560
with the round label, and then, then, then in that case, it'll be very easy that you can be
link |
00:24:31.600
recognized as Trump. Let's go with Putin, because I'm Russian. Let's go Putin is better.
link |
00:24:37.840
Okay, I'll get recognized as Putin. Okay, okay, okay. So with the glasses, actually, it's a very
link |
00:24:43.520
interesting phenomenon. So essentially, what we are learning is for all this learning system,
link |
00:24:48.720
what it does is, is trying to, it's learning patterns and learning how these patterns
link |
00:24:53.680
associate with the certain labels. So, so with the glasses, essentially, what we do is we actually
link |
00:24:59.920
gave the learning system some training points with these glasses inserted, like people actually
link |
00:25:06.080
wearing these glasses in the, in the data sets, and then giving it the label, for example, Putin.
link |
00:25:13.120
And then what the learning system is learning now is, now that these pieces are Putin, but the
link |
00:25:20.240
learning system is actually learning that the glasses are associated with the Putin. So anyone
link |
00:25:25.840
essentially wears these glasses will be recognized as Putin. And we did one more step, actually,
link |
00:25:32.720
showing that these glasses actually don't have to be humanly visible in the image.
link |
00:25:39.440
We add such lights, essentially, this over, you can call it just overlap onto the image,
link |
00:25:47.360
these glasses. But actually, it's only added in the pixels. But when you, when humans, when humans go,
link |
00:25:55.680
essentially, inspect the image, they can't tell, you can't even tell very well the glasses.
link |
00:26:03.840
So you mentioned two really exciting places. Is it possible to have a physical object
link |
00:26:10.240
that on inspection, people won't be able to tell? So glasses or like a birthmark or something,
link |
00:26:15.600
something very small? Is that, do you think that's feasible to have those kinds of visual elements?
link |
00:26:21.360
So that's interesting. We haven't experimented with very small changes, but it's possible.
link |
00:26:27.680
Oh, so usually they're big, but hard to see, perhaps. So like, manipulations.
link |
00:26:33.680
It's a good question. We, right, I think we try different,
link |
00:26:37.440
try different stuff. Is there some insights on what kind of, so you're basically trying to
link |
00:26:42.000
add a strong feature that perhaps is hard to see, but not just a strong feature?
link |
00:26:47.920
Is there kinds of features? So only in the training set? In the training set.
link |
00:26:52.000
Then what you do at the testing stage, like when we wear glasses, then of course, it's even
link |
00:26:57.440
like makes the connection even stronger. And so. Yeah. I mean, this is fascinating. Okay. So
link |
00:27:03.360
we talked about attacks on the inference stage by perturbations on the input,
link |
00:27:07.200
and both in the virtual and the physical space and at the training stage by messing with the data.
link |
00:27:15.360
Both fascinating. So you have, you have a bunch of work on this, but so one, one of the interest
link |
00:27:21.840
for me is autonomous driving. So you have like your 2018 paper, a robust physical world attacks
link |
00:27:27.520
on deep learning visual classification. I believe there's some stop signs in there.
link |
00:27:32.400
Yeah. So, so that's like in the physical and on the inference stage, attacking with physical
link |
00:27:38.160
objects. Can you maybe describe the ideas in that paper? Sure, sure. And the stop signs are actually
link |
00:27:43.120
on exhibits at the science of museum in London. I'll talk about the work. It's quite nice that
link |
00:27:53.280
it's a very rare occasion, I think, where this research artifacts actually gets put in the museum.
link |
00:28:00.080
In the museum. Right. So, okay. So what the work is about is, we talked about this adversarial
link |
00:28:07.760
examples, essentially changes to inputs to the learning system to cause the learning system
link |
00:28:16.240
to give the wrong prediction. And typically, these attacks have been done in the digital world,
link |
00:28:23.520
where essentially, the attacks are modifications to the digital image. And when you feed this
link |
00:28:31.280
modified digital image to the, to the learning system and cause the learning system to misclassify
link |
00:28:37.120
like a cat into a dog, for example. So in autonomous driving, so of course, it's really
link |
00:28:43.360
important for the vehicle to be able to recognize the traffic signs in real world environments
link |
00:28:50.160
correctly. Otherwise, they can, of course, cause really severe consequences. So one natural question
link |
00:28:56.480
is, so one, can these adversarial examples actually exist in the physical world,
link |
00:29:03.520
not just in the digital world, and also in the autonomous driving setting? Can we actually
link |
00:29:09.680
create these adversarial examples in the physical world, such as maliciously perturbed stop sign
link |
00:29:18.160
to cause the image classification system to misclassify it into, for example, a speed limit
link |
00:29:25.040
sign instead, so that when the car drives, you know, drives through, it actually won't stop.
link |
00:29:33.120
Yes. So, right. So that's the, so that's the open question. That's the big,
link |
00:29:38.400
really, really important question for machine learning systems that work in the real world.
link |
00:29:42.800
Right, right, right. Exactly. And also, there are many challenges when you move from the digital
link |
00:29:49.040
world into the physical world. So in this case, for example, we want to make sure, we want to check
link |
00:29:53.920
whether these adversarial examples, not only that they can be effective in the physical world,
link |
00:29:59.760
but also they, whether they can be, they can remain effective under different viewing distances,
link |
00:30:05.040
different viewing angles, because as a car, right, because as a car drives by,
link |
00:30:09.360
and it's going to view the traffic sign from different viewing distances, different angles,
link |
00:30:15.360
and different viewing conditions, and so on. So that's the question that we set out to explore.
link |
00:30:20.080
Is there good answers? So, yeah, right. So unfortunately, the answer is yes.
link |
00:30:26.320
It's possible to have a physical, so adversarial attacks in the physical world that are robust to
link |
00:30:31.760
this kind of viewing distance, viewing angle, and so on. Right, exactly. So, right, so we actually
link |
00:30:37.680
created these adversarial examples in the real world, so like this adversarial example, stop signs.
link |
00:30:44.640
So these are the stop signs that, or these are the traffic signs that have been put in the
link |
00:30:50.480
signs of Museum in London. So what's, what goes into the design of objects like that?
link |
00:30:59.840
If you could just high level insights into the step from digital to the physical,
link |
00:31:05.920
because that is a huge step from trying to be robust to the different distances and viewing
link |
00:31:13.360
angles and lighting conditions. Right, right, exactly. So to create a successful adversarial
link |
00:31:19.040
example that actually works in the physical world is much more challenging than just in the digital
link |
00:31:25.360
world. So first of all, again, in the digital world, if you just have an image, then there's
link |
00:31:31.520
no, you don't need to worry about this viewing distance and angle changes and so on. So one is
link |
00:31:37.200
the environmental variation. And also, typically, actually, what you'll see when people add
link |
00:31:44.800
preservation to a digital image to create these digital adversarial examples is that you can add
link |
00:31:51.520
these preservations anywhere in the image. But in our case, we have a physical object,
link |
00:31:56.960
a traffic sign that's put in the real world. We can just add preservations like, you know,
link |
00:32:04.000
elsewhere, like we can add preservation outside of the traffic sign. It has to be on the traffic
link |
00:32:09.360
sign. So there's physical constraints where you can add perturbations. And also, so we have the
link |
00:32:19.280
physical objects, this adversarial example, and then essentially there's a camera that will be
link |
00:32:24.240
taking pictures and then feeding that to the to the learning system. So in the digital world,
link |
00:32:31.440
you can have really small perturbations because you're editing the digital image directly and
link |
00:32:37.200
then feeding that directly to the learning system. So even really small perturbations,
link |
00:32:42.400
it can cause a difference in inputs to the learning system. But in the physical world,
link |
00:32:47.920
because you need a camera to actually take the take the picture as the input and then feed it
link |
00:32:54.320
to the learning system, we have to make sure that the changes with the changes are perceptible enough
link |
00:33:01.440
that actually can cause difference from the camera side. So we want it to be small, but still be the
link |
00:33:07.200
can make can cause a difference after the camera has taken the picture. Right, because you can't
link |
00:33:12.480
directly modify the picture that the camera sees at the point of the camera. Right, so there's a
link |
00:33:18.160
physical sensor step, physical sensing step. That you're on the other side of now. Right,
link |
00:33:23.280
and also how do we actually change the physical objects? So essentially in our experiment,
link |
00:33:29.680
we did multiple different things. We can print out these stickers and put the sticker and we
link |
00:33:34.720
actually bought these real words like stop signs and then we printed stickers and put stickers on
link |
00:33:40.720
them. And so then in this case, we also have to handle this printing step. So again, in the digital
link |
00:33:49.840
world, you can just, it's just bits, you just change the, you know, the color value, whatever,
link |
00:33:55.680
you can just change the bits directly. So you can try a lot of things too. Right, right. But in the
link |
00:34:01.120
physical world, you have the, you have the printer, whatever attack you want to do in the ends,
link |
00:34:06.560
you have a printer that prints out these stickers or whatever preservation you want to do and then
link |
00:34:11.680
then put it on the, on the object. So we also essentially, there's constraints, what can be
link |
00:34:18.640
done there. So essentially, there are many, many of these additional constraints that you don't have
link |
00:34:24.800
in the digital world. And then when we create the adversary example, we have to take all this
link |
00:34:29.600
into consideration. So how much of the creation of the adversarial examples art and how much
link |
00:34:34.640
of science, sort of how much is a sort of trial and error, trying to figure, trying different
link |
00:34:40.000
things, empirical sort of experiments and how much can be done sort of almost, almost theoretically,
link |
00:34:47.600
or by looking at the model, by looking at the neural network, trying to, trying to generate
link |
00:34:54.640
sort of definitively what the kind of stickers would be most likely to create, to be a good
link |
00:35:02.480
adversarial example in the physical world. Right. That's, that's a very good question.
link |
00:35:06.480
So essentially, I would say it's mostly science in a sense that we do have a, you know, scientific
link |
00:35:12.880
way of computing what, what the adversary example, what is adversary preservation we should add.
link |
00:35:20.720
And then, and of course in the end, because of these additional steps, as I mentioned,
link |
00:35:25.600
you have to print it out and then you'll, you have to put it out and then you have to take the
link |
00:35:29.600
camera and then, so there are additional steps that you do need to do additional testing,
link |
00:35:33.920
but the creation process of generating the adversary example is really a very scientific
link |
00:35:43.120
approach. Essentially, we, it's just, we capture many of these constraints, as we mentioned,
link |
00:35:50.400
in this loss function that we optimize for. And so that's a very scientific approach.
link |
00:35:57.920
So the, the fascinating fact that we can do these kinds of adversarial examples,
link |
00:36:01.920
what do you think it shows us? Just your thoughts in general. What do you think it reveals to us
link |
00:36:08.080
about neural networks, the fact that this is possible? What do you think it reveals to us
link |
00:36:12.640
about our machine learning approaches of today? Is there something interesting? Is that a feature?
link |
00:36:17.840
Is it a bug? What do you, what do you think?
link |
00:36:21.120
I think it mainly shows that we are still at a very early stage of really
link |
00:36:26.160
developing robust and generalizable machine learning methods. And it shows that we,
link |
00:36:33.760
even though deep learning has made so much advancement, but our understanding is very
link |
00:36:39.760
limited. We don't fully understand, we don't understand well how they work, why they work,
link |
00:36:45.760
and also we don't understand that well, right, these, about these adversary examples.
link |
00:36:51.440
Some people have kind of written about the fact that, that the fact that the adversarial
link |
00:37:01.360
examples work well is actually sort of a feature, not a bug. It's, is that, that actually they have
link |
00:37:08.000
learned really well to tell the important differences between classes as represented
link |
00:37:12.720
by the training set. I think that's the other thing I'm just going to say. It shows us also
link |
00:37:16.880
that the deep learning systems are now learning the right things. How do we make them, I mean,
link |
00:37:23.280
I guess this might be a place to ask about how do we then defend or how do we either defend or make
link |
00:37:30.240
them more robust, these adversarial examples. Right. I mean, one thing is that I think, you know,
link |
00:37:35.360
people, so, so there have been actually thousands of papers now written on this topic,
link |
00:37:40.800
the adversary, mostly attacks. I think there are more attack papers than defenses,
link |
00:37:48.320
but there are many hundreds of defense papers as well. So in defenses, a lot of work has been
link |
00:37:56.560
on trying to, I would call it more like a patchwork, for example, how to make the neural networks to
link |
00:38:05.680
either through, for example, like adversarial training, how to make them a little bit more
link |
00:38:12.240
resilient. Got it. But I think in general, it has limited effectiveness. And we don't really have
link |
00:38:22.480
very strong and general defense. So part of that, I think is we talked about in deep learning,
link |
00:38:30.800
the goal is to learn representations. And that's our ultimate, you know, holy grail,
link |
00:38:37.440
ultimate goal is to learn representations. But one thing I think I have to say is that
link |
00:38:42.800
I think part of the lesson we are learning here is that we are one, as I mentioned, we are not
link |
00:38:46.240
learning the right things, meaning we are not learning the right representations. And also,
link |
00:38:50.240
I think the representations we are learning is not rich enough. And so, so it's just like a human
link |
00:38:56.480
vision, of course, we don't fully understand how human visions work. But when humans look at the
link |
00:39:01.280
world, we don't just say, Oh, you know, this is a person. Oh, that's a camera. We actually get much
link |
00:39:07.520
more nuanced information from the world. And we use all this information together in the
link |
00:39:14.320
end to derive, to help us to do motion planning and to do other things, but also to classify
link |
00:39:20.480
what the object is and so on. So we are learning a much richer representation. And I think that
link |
00:39:25.760
that's something we have not figured out how to do in deep learning. And I think the richer
link |
00:39:32.320
representation will also help us to build a more generalizable and more resilient learning system.
link |
00:39:38.960
Can you maybe linger on the idea of the word richer representation? So
link |
00:39:45.360
to make representations more generalizable, it seems like you want to make them more
link |
00:39:52.160
or less sensitive to noise. Right. So you want to learn the right things. You don't want to,
link |
00:39:59.360
for example, learn this spurious correlations and so on. But at the same time, an example of a
link |
00:40:08.240
richer information, our representation is like, again, we don't really know how human vision
link |
00:40:13.840
works. But when we look at the visual world, we actually, we can identify counters, we can
link |
00:40:21.040
identify much more information than just what's, for example, an image classification system is
link |
00:40:28.560
trying to do. And that leads to, I think, the question you asked earlier about defenses. So
link |
00:40:34.640
that's also in terms of more promising directions for defenses. And that's where some of my work
link |
00:40:42.560
is trying to do and trying to show as well. You have, for example, in your 2018 paper,
link |
00:40:49.120
characterizing adversarial examples based on spatial consistency information for semantic
link |
00:40:54.320
segmentation. So that's looking at some ideas on how to detect adversarial examples. So like,
link |
00:41:02.320
what are they, you call them like a poison data set. So like, yeah, adversarial bad examples
link |
00:41:08.080
in a segmentation data set. Can you, as an example for that paper, can you describe the
link |
00:41:12.720
process of defense there? Yeah, sure, sure. So in that paper, what we look at is the semantic
link |
00:41:19.200
segmentation task. So with the task essentially given an image for each pixel, you want to say
link |
00:41:24.880
what the label is for the pixel. So, so just like what we talked about for adversarial example,
link |
00:41:32.480
it can easily for image classification systems. It turns out that it can also very easily for
link |
00:41:38.640
these segmentation systems as well. So given an image, I essentially can add adversarial
link |
00:41:44.560
perturbation to the image to cause the class, the segmentation system to basically segmented
link |
00:41:51.120
in any pattern I wanted. So, so you know, people will also show that you can segment it, even
link |
00:41:58.240
though there's no kitty in the, in the image, we can segment it into like a kitty pattern,
link |
00:42:04.640
a hello kitty pattern, we segment it into like ICCV. That's awesome. Right. So, so that's on
link |
00:42:13.200
the attack side, showing that these segmentation systems, even though they have been effective
link |
00:42:18.800
in practice, but at the same time, they're really, really easily fooled. So then the question is,
link |
00:42:25.040
how can we defend against this, how we can build a more resilient segmentation system?
link |
00:42:30.240
So, so that's what we try to do. And in particular, what we are trying to do here is to actually try
link |
00:42:38.080
to leverage some natural constraints in the task, which we call in this case, spatial consistency.
link |
00:42:47.200
So the idea of the spatial consistency is a following. So again, we don't really know how
link |
00:42:53.040
human vision works. But in general, what, at least what we can say is, so for example, as a person
link |
00:43:00.480
looks at the scene, and we can segment the scene easily, and then we humans, right. Yes. And then
link |
00:43:10.160
if you pick like two patches of the scene that has an intersection, and for humans, if you segment,
link |
00:43:18.400
you know, like patch A and patch B, and then you look at the segmentation results. And especially
link |
00:43:25.120
if you look at the segmentation results at the intersection of the two patches, they should be
link |
00:43:30.160
consistent in the sense that what the label or what the, what the pixels in this intersection,
link |
00:43:36.880
what their labels should be, and they essentially from these two different patches, they should be
link |
00:43:43.040
similar in the intersection. So that's what we call spatial consistency. So similarly,
link |
00:43:50.320
for a segmentation system, it should have the same property. So in the image, if you pick two,
link |
00:43:59.840
randomly pick two patches that has an intersection, you feed each patch to the segmentation system,
link |
00:44:06.640
you get a result. And then when you look at the results in the intersection, the results, the
link |
00:44:12.720
segmentation results should be very similar. Is that, so, okay, so logically, that kind of
link |
00:44:19.920
makes sense. At least it's a compelling notion. But is that, how well does that work? Is that,
link |
00:44:25.040
does that hold true for segmentation? Exactly, exactly. So then in our work and experiments,
link |
00:44:31.600
we showed the following. So when we take, like normal images, this actually holds pretty well
link |
00:44:39.200
for the segmentation systems that we experimented with. So natural scenes of, or like,
link |
00:44:42.960
did you look at like driving data sets? Right, right, exactly, exactly. But then this actually
link |
00:44:48.640
poses a challenge for adversarial examples. Because for the attacker to add perturbation
link |
00:44:55.600
to the image, then it's easy for it to fool the segmentation system into, for example, for a
link |
00:45:02.000
particular patch or for the whole image to cause the segmentation system to create some, to get
link |
00:45:09.280
to some wrong results. But it's actually very difficult for the attacker to have this adversarial
link |
00:45:18.000
example to satisfy the spatial consistency. Because these patches are randomly selected,
link |
00:45:23.520
and they need to ensure that the spatial consistency works. So they basically need to fool
link |
00:45:29.600
the segmentation system in a very consistent way. Yeah, without knowing the mechanism by
link |
00:45:35.520
which you're selecting the patches or so on. Exactly, exactly. So it has to really fool the
link |
00:45:39.040
entirety of the mess of the entirety of things. So it turns out to actually, to be really hard
link |
00:45:44.000
for the attacker to do. We tried, you know, the best we can, the state of the art attacks,
link |
00:45:48.800
it actually showed that this defense method is actually very, very effective. And this goes to,
link |
00:45:55.120
I think, also what I was saying earlier is, essentially, we want the learning system to have,
link |
00:46:02.720
to have rich results, and also to learn from more, you can add the same model, essentially,
link |
00:46:09.280
to have more ways to check whether it's actually having the right prediction. So, for example,
link |
00:46:16.880
in this case, doing the spatial consistency check. And also, actually, so that's one paper that we
link |
00:46:22.320
did. And then this spatial consistency, this notion of consistency check, it's not just limited to
link |
00:46:28.000
spatial properties. It also applies to audio. So we actually had follow up work in audio to show
link |
00:46:35.600
that this temporal consistency can also be very effective in detecting adversarial examples in
link |
00:46:41.920
audio. Like speech or what kind of audio, speech data. Right. And then, and then we can actually
link |
00:46:48.080
combine spatial consistency and temporal consistency to help us to develop more resilient
link |
00:46:54.640
methods in video. So to defend against attacks for video also. That's fascinating. So yeah,
link |
00:47:00.560
so there's hope. Yes, yes. But in general, in the literature, and the ideas that are developing
link |
00:47:08.800
the attacks, and the literature is developing the defense, who would you say is winning right now?
link |
00:47:13.680
Right now, of course, it's attack side. It's much easier to develop attacks. And there are so
link |
00:47:19.040
many different ways to develop attacks. Even just us, we develop so many different methods
link |
00:47:25.120
for doing attacks. And also, you can do white box attacks, you can do black box attacks,
link |
00:47:31.360
where attacks you don't even need. The attacker doesn't even need to know the architecture of
link |
00:47:37.600
the target system, and now knowing the parameters of the target system and and all that. So there
link |
00:47:44.080
are so many different types of attacks. So the counter argument that people would have, like
link |
00:47:49.600
people that are using machine learning in companies, they would say, sure, in constrained
link |
00:47:55.200
environments and very specific data set, when you know a lot about the model, or you know a lot
link |
00:48:00.480
about the data set, already, you'll be able to do this attack is very nice. It makes for a nice
link |
00:48:05.520
demo. It's a very interesting idea. But my system won't be able to be attacked like this. It's a
link |
00:48:10.640
real world systems won't be able to be attacked like this. That's like, that's, that's another hope
link |
00:48:16.000
that is actually a lot harder to attack real world systems. Can you talk to that? How hard is
link |
00:48:22.560
it to attack real world systems? I wouldn't call that a hope. I think it's more of a wishful
link |
00:48:29.120
thinking. I'll try, I'll try to be lucky. So actually, in our recent work, my students and
link |
00:48:37.920
collaborators has shown some very effective attacks on real world systems. For example,
link |
00:48:44.720
Google Translate, and other cloud translation APIs. So in this work, we showed, so far I talked
link |
00:48:57.360
about adversary examples mostly in the vision category. And of course, adversary examples also
link |
00:49:04.800
work in other domains as well. For example, in natural language. So, so in this work, my students
link |
00:49:12.880
and collaborators have shown that, so one, we can actually very easily steal the model from, for
link |
00:49:22.400
example, Google Translate by just doing queries from right through the APIs. And then we can train
link |
00:49:29.360
an imitation model ourselves using the queries. And then once we, and also the imitation model
link |
00:49:37.200
can be very, very effective and essentially have achieving similar performance as a target model.
link |
00:49:45.600
And then once we have the imitation model, we can then try to create adversary examples
link |
00:49:51.040
on these imitation models. So for example, giving, you know, in the work it was, one example is
link |
00:49:59.440
translating from English to German, we can give it a sentence saying, for example, I'm feeling freezing,
link |
00:50:06.400
it's like six Fahrenheit, and then translating to German. And then we can actually generate
link |
00:50:14.720
adversary examples that create a target translation by very small perturbation. So in this case,
link |
00:50:21.280
I say we want to change the translation instead of six Fahrenheit to 21 Celsius. And in this
link |
00:50:31.280
particular example, actually, we just changed six to seven in the original sentence. That's the only
link |
00:50:37.280
change we made. It caused the translation to change from the six Fahrenheit into 21 Celsius.
link |
00:50:46.400
That's incredible. And then, and then, so this example, we created this example from our imitation
link |
00:50:53.040
model. And then this work actually transfers to the Google Translate. So the attacks that work
link |
00:50:59.680
on the imitation model, in some cases, at least transfer to the original model, that's incredible
link |
00:51:06.320
and terrifying. Okay, that's amazing work. And that shows that, again, real world systems actually
link |
00:51:12.960
can be easily fooled. And in our previous work, we also showed this type of black box attacks can be
link |
00:51:18.720
effective on cloud vision APIs as well. So that's for natural language and for vision. Let's talk
link |
00:51:28.000
about another space that people have some concern about, which is autonomous driving,
link |
00:51:31.840
is sort of security concerns. That's another real world system. So
link |
00:51:39.120
do you have, should people be worried about adversarial machine learning attacks in the
link |
00:51:45.520
context of autonomous vehicles that use like Tesla autopilot, for example, that uses vision as a
link |
00:51:51.280
primary sensor for perceiving the world and navigating that world? What do you think from
link |
00:51:56.720
your stop sign work in the physical world? Should people be worried? How hard is that attack?
link |
00:52:02.960
So actually, there has already been, there has always been research shown that, for example,
link |
00:52:10.720
actually, even with Tesla, if you put a few stickers on the road, it can actually,
link |
00:52:16.400
when it's arranging certain ways, it can fool the...
link |
00:52:20.480
That's right. But I don't think it's actually been, I might not be familiar,
link |
00:52:24.480
but I don't think it's been done on physical roads yet, meaning I think it's with a projector
link |
00:52:29.760
in front of the Tesla. So it's a physical... So you're on the other side of the sensor,
link |
00:52:36.000
but you're not in still the physical world. The question is whether it's possible to orchestrate
link |
00:52:42.160
attacks that work in the actual physical... Like end to end attacks, like not just a
link |
00:52:48.080
demonstration of the concept, but thinking, is it possible on the highway to control Tesla?
link |
00:52:53.360
That kind of idea. I think there are two separate questions. One is the feasibility
link |
00:52:58.640
of the attack, and I'm 100% confident that the attack is possible. And there's a separate question
link |
00:53:06.000
whether someone will actually go deploy that attack. I hope people do not do that,
link |
00:53:13.680
but there's two separate questions. So the question on the word feasibility.
link |
00:53:18.480
So to clarify, feasibility means it's possible. It doesn't say how hard it is,
link |
00:53:25.680
because to implement it. So sort of the barrier, like how much of a heist it has to be,
link |
00:53:33.200
like how many people have to be involved, what is the probability of success, that kind of stuff,
link |
00:53:37.680
and coupled with how many evil people there are in the world that would attempt such an attack,
link |
00:53:42.800
right? But the two... My question is, is it sort of... When I talk to Elon Musk and ask the same
link |
00:53:51.680
question, he says it's not a problem. It's very difficult to do in the real world. This won't
link |
00:53:57.120
be a problem. He dismissed it as a problem for adversarial attacks on the Tesla. Of course,
link |
00:54:02.480
he happens to be involved with the company, so he has to say that. But let me linger and
link |
00:54:07.360
end a little longer. Where does your confidence that it's feasible come from? And what's your
link |
00:54:16.080
intuition? How people should be worried? How people should defend against it? How Tesla,
link |
00:54:23.040
how Waymo, how other autonomous vehicle companies should defend against
link |
00:54:27.520
sensory based attacks on whether on LiDAR or on vision or so on.
link |
00:54:32.240
And also even for LiDAR, actually, there has been research on that even like itself.
link |
00:54:36.000
No, no, no. But see, it's really important to pause. There's really nice demonstrations
link |
00:54:42.800
that it's possible to do, but there's so many pieces that it's kind of like... It's kind of in
link |
00:54:50.560
the lab. Now, it's in the physical world, meaning it's in the physical space, the attacks, but
link |
00:54:56.080
it's very... You have to control a lot of things to pull it off. It's like the difference between
link |
00:55:02.800
opening a safe when you have it and you have unlimited time and you can work on it versus
link |
00:55:08.960
like breaking into the crown, stealing the crown jewels or whatever.
link |
00:55:13.760
Right. I mean, so one way to look at this in terms of how real this attacks can be, one way to
link |
00:55:20.400
look at it is that actually you don't even need any sophisticated attacks. Already we've seen
link |
00:55:26.160
many real world examples, incidents, where showing that the vehicle was making the wrong
link |
00:55:33.920
decision. The wrong decision without attacks, right? Right. So that's one way to demonstrate.
link |
00:55:38.480
And this is also... So far, we've mainly talked about work in this adversarial setting,
link |
00:55:43.920
showing that today's learning system, they are so vulnerable to the adversarial setting.
link |
00:55:48.800
But at the same time, actually, we also know that even in natural settings, these learning systems,
link |
00:55:54.000
they don't generalize well. And hence, they can really misbehave under certain situations
link |
00:56:00.880
like what we have seen. And hence, I think using that as an example, it can show that these issues
link |
00:56:06.880
can be real. They can be real. But so there's two cases. One is something, it's like perturbations
link |
00:56:14.000
can make the system misbehave versus make the system do one specific thing that the attacker
link |
00:56:19.920
wants. As you said, the targeted attack. That seems to be very difficult,
link |
00:56:27.360
like an extra level of difficult step in the real world. But from the perspective of the passenger
link |
00:56:33.680
of the car, I don't think it matters either way, whether it's misbehavior or a targeted attack.
link |
00:56:41.600
Okay. And that's why I was also saying earlier, one defense is this multi model defense. And
link |
00:56:48.880
more of these consistent checks and so on. So in the future, I think also it's important that for
link |
00:56:53.760
these autonomous vehicles, they have lots of different sensors, and they should be combining
link |
00:57:00.000
all these sensory readings to arrive at the decision and the interpretation of the world and so on.
link |
00:57:08.320
And the more of these sensory inputs they use, and the better they combine these sensory inputs,
link |
00:57:14.320
the harder it is going to be attacked. And hence, I think that is a very important direction
link |
00:57:19.680
for us to move towards. So multi model, multi sensor across multiple cameras,
link |
00:57:25.200
but also in the case of car, radar, ultrasonic, sound even. So all of those. Right. Exactly.
link |
00:57:33.360
So another thing, another part of your work has been in the space of privacy. And that too can
link |
00:57:39.920
be seen as a kind of security vulnerability. And so thinking of data as a thing that should be
link |
00:57:47.120
protected and the vulnerabilities to data as vulnerability is essentially the thing that
link |
00:57:54.320
you want to protect is the privacy of that data. So what do you see as the main vulnerabilities
link |
00:57:59.760
in the privacy of data and how do we protect it? Right. So in security, we actually talk about
link |
00:58:04.960
essentially two, in this case, two different properties. One is integrity and one is confidentiality.
link |
00:58:13.440
So what we have been talking earlier is essentially the integrity of the integrity
link |
00:58:21.200
property of the learning system, how to make sure that the learning system is giving the
link |
00:58:26.000
right prediction, for example. And privacy essentially is on the other side is about
link |
00:58:32.880
confidentiality of the system is how attackers can, when the attackers compromise the confidentiality
link |
00:58:41.520
of the system, that's when the attackers steal sensitive information and right about individuals
link |
00:58:47.440
and so on. That's really clean. Those are those are great terms, integrity and confidentiality.
link |
00:58:53.440
Right. So how, what are the main vulnerabilities to privacy, we just say, and how do we protect
link |
00:59:00.560
against it? Like what are the main spaces and problems that you think about in the context of
link |
00:59:06.160
privacy? Right. So especially in the machine learning setting. So in this case, as we know that
link |
00:59:14.960
how the process goes is that we have the training data and then the machine learning system trains
link |
00:59:23.120
from this training data and then builds a model and then later on inputs are given to the model to
link |
00:59:30.000
influence time to try to get prediction and so on. So then in this case, the privacy concerns that we
link |
00:59:37.520
have is typically about privacy of the data in the training data because that's essentially the
link |
00:59:44.320
private information. So, and it's really important because oftentimes the training data can be very
link |
00:59:53.040
sensitive. It can be your financial data, it's your health data or like in our case, it's the
link |
01:00:00.160
sensors deployed in real world environment and so on and all this can be collecting very sensitive
link |
01:00:06.800
information and all the sensitive information gets fed into the learning system and trains
link |
01:00:13.600
and as we know, these neural networks, they can have really high capacity and they actually
link |
01:00:20.720
can remember a lot and hence just from the learning model in the end, actually attackers can potentially
link |
01:00:29.760
infer information about their original training data sets. So the thing you're trying to protect
link |
01:00:37.840
that is the confidentiality of the training data and so what are the methods for doing that? Would
link |
01:00:44.080
you say what are the different ways that can be done? And also we can talk about essentially
link |
01:00:48.880
essentially how the attacker may try to learn information from the right. So, and also there
link |
01:00:55.760
are different types of attacks. So in certain cases, again, like in white box attacks, we can say that
link |
01:01:01.680
the attacker actually gets to see the parameters of the model and then from that, the smart attacker
link |
01:01:08.160
potentially can try to figure out information about the training data set. They can try to figure
link |
01:01:14.640
out what type of data has been in the training data sets and sometimes they can tell like
link |
01:01:21.200
whether a person has been, a particular person's data point has been used in the training data sets
link |
01:01:28.240
as well. So white box meaning you have access to the parameters of say a neural network
link |
01:01:33.600
and so that you're saying that it's some, given that information is possible to some.
link |
01:01:38.720
So I can give you some examples and then another type of attack which is even easier to carry out
link |
01:01:43.600
is not a white box model, it's more of just a query model where the attacker only gets to
link |
01:01:50.560
query the machine learning model and then try to steal sensitive information in the original
link |
01:01:55.840
training data. So, right, so I can give you an example. In this case, training a language model.
link |
01:02:03.600
So in our work in collaboration with the researchers from Google, we actually studied the
link |
01:02:09.280
following question. So at high level, the question is, as we mentioned, the neural networks can have
link |
01:02:16.080
very high capacity and they could be remembering a lot from the training process. Then the question
link |
01:02:22.080
is, can attacker actually exploit this and try to actually extract sensitive information in the
link |
01:02:28.800
original training data set through just querying the learned model without even knowing the
link |
01:02:35.840
parameters of the model, like the details of the model or the architectures of the model and so on.
link |
01:02:41.840
So that's the question we set out to explore. And in one of the case studies, we showed the following.
link |
01:02:50.720
So we trained the language model over an email data set. It's called an enron email data set.
link |
01:02:57.280
And the enron email data sets naturally contains users social security numbers and critical numbers.
link |
01:03:04.080
So we trained the language model over the data sets. And then we showed that's an attacker
link |
01:03:09.760
by devising some new attacks, by just querying the language model. And without knowing the details
link |
01:03:16.480
of the model, the attacker actually can extract the original social security numbers and critical
link |
01:03:25.200
numbers that were in the original training. So get the most sensitive, personally identifiable
link |
01:03:31.280
information from the data set from just querying it. Right. Yeah. So that's an example showing
link |
01:03:39.920
that's why even as we train machine learning models, we have to be really careful with protecting
link |
01:03:48.000
users data privacy. So what are the mechanisms for protecting? Is there hopeful? So if there's
link |
01:03:54.880
been recent work on differential privacy, for example, that provides some hope, but can you
link |
01:04:02.000
describe some of the ideas? Right. So that's actually, right. So that's also our finding,
link |
01:04:05.920
is that by, actually, we show that in this particular case, we actually have a good defense.
link |
01:04:12.960
For the querying case, for the language model case. So instead of just training a vanilla
link |
01:04:20.320
language model, instead, if we train a differentially private language model, then we can still
link |
01:04:27.920
achieve similar utility. But at the same time, we can actually significantly enhance the privacy
link |
01:04:35.040
protection of the learned model. And our proposed attacks actually are no longer effective.
link |
01:04:44.000
And differential privacy is a mechanism of adding some noise by which you then have some guarantees
link |
01:04:51.440
on the inability to figure out the presence of a particular person in the data set.
link |
01:04:59.760
So right. So in this particular case, what the differential privacy mechanism does is that it
link |
01:05:06.000
actually adds perturbation in the training process. As we know, during the training process,
link |
01:05:12.800
we are learning the model, we are doing gradient updates, with updates and so on.
link |
01:05:18.960
And essentially, differential privacy, a differentially private
link |
01:05:25.280
machine learning algorithm in this case, will be adding noise and adding various perturbation
link |
01:05:32.400
during this training process. To some aspect of the training process.
link |
01:05:35.680
Right. So then the finally trained learning, the learned model is differentially private.
link |
01:05:42.400
And so it can enhance the privacy protection.
link |
01:05:46.560
So okay, so that's the attacks and the defense of privacy.
link |
01:05:51.200
You also talk about ownership of data. So this, this is a really interesting idea
link |
01:05:56.480
that we get to use many services online for seemingly for free by essentially sort of a lot
link |
01:06:04.560
of companies are funded through advertisement. And what that means is the advertisement works
link |
01:06:09.680
exceptionally well because the companies are able to access our personal data.
link |
01:06:13.520
So they know which advertisement to serve us to do target advertisements and so on.
link |
01:06:18.960
So can you maybe talk about this? You have some nice paintings of the future,
link |
01:06:26.160
philosophically speaking, future where people can have a little bit more control of their data by
link |
01:06:32.640
owning and maybe understanding the value of their data and being able to sort of
link |
01:06:37.760
monetize it in a more explicit way as opposed to the implicit way that it's currently done.
link |
01:06:44.960
Yeah, I think this is a fascinating topic and also a really complex topic.
link |
01:06:50.960
Right. I think there are these natural questions who should be owning the data.
link |
01:06:56.640
And so I can draw one analogy. So for example, for physical properties like your house and so on.
link |
01:07:08.240
So really, this notion of property rights is not just, you know,
link |
01:07:15.600
like it's not like from day one, we knew that there should be like this clear notion of ownership
link |
01:07:21.200
of properties and having enforcement for this. And so actually, people have shown that
link |
01:07:30.960
this establishment and enforcement of property rights has been a main driver for the economy
link |
01:07:42.000
earlier. And that actually really propelled the economic growth even in the earlier stage.
link |
01:07:51.280
So throughout the history of the development of the United States or actually just civilization,
link |
01:07:57.040
the idea of property rights that you can own property.
link |
01:08:00.480
Right. And then there's enforcement. There is institutional rights,
link |
01:08:04.480
that governmental like enforcement of this actually has been a key driver for economic growth.
link |
01:08:12.000
And there have been even research or proposal saying that for a lot of the developing countries,
link |
01:08:19.840
there, you know, essentially the challenging growth is not actually due to the lack of capital.
link |
01:08:28.880
It's more due to the lack of this notion of property rights and enforcement of property rights.
link |
01:08:37.040
Interesting. So that the presence of absence of both the concept of the property rights and
link |
01:08:45.120
their enforcement has a strong correlation to economic growth.
link |
01:08:50.720
And so you think that that same could be transferred to the idea of property ownership
link |
01:08:56.160
in the case of data ownership? I think it's, first of all, it's a good lesson for us to
link |
01:09:02.640
recognize that these rights and the recognition and enforcement of these type of rights is very,
link |
01:09:10.640
very important for economic growth. And then if we look at where we are now and where we are
link |
01:09:16.320
going in the future, so essentially more and more is actually moving into the digital world.
link |
01:09:22.720
And also more and more, I would say, even like information or asset of a person is more and more
link |
01:09:32.080
into the real world, the physical, the digital world as well. It's the data that the person
link |
01:09:38.320
has generated. Essentially, it's like in the past, what defines a person? You can say, right,
link |
01:09:46.000
like oftentimes, besides the innate capabilities, actually, it's the physical properties as the
link |
01:09:55.280
right that defines a person. But I think more and more people start to realize actually what
link |
01:10:00.000
defines a person is more important in the data that the person has generated or the data about
link |
01:10:05.600
the person. Like all the way from your political views, your music taste and financial information,
link |
01:10:14.240
a lot of these on your health. So more and more of the definition of the person is actually in
link |
01:10:21.040
the digital world. And currently, for the most part, that's owned. People don't talk about it,
link |
01:10:27.200
but kind of it's owned by internet companies. So it's not owned by individuals. Right. There's
link |
01:10:34.880
no clear notion of ownership of such data. And also, we talk about privacy and so on,
link |
01:10:41.680
but I think actually clearly identifying the ownership is the first step. Once you identify
link |
01:10:47.280
the ownership, then you can say who gets to define how the data should be used. So maybe
link |
01:10:52.720
some users are fine with, you know, internet companies serving them as using their data as
link |
01:11:02.160
well as if the data is used in a certain way that actually the user can sense with or allows. For
link |
01:11:11.600
example, you can see the recommendation system in some sense, we don't call it as, but recommendation
link |
01:11:17.680
system, similarly, it's trying to recommend you something. And users enjoy and can really benefit
link |
01:11:23.920
from good recommendation systems, either recommending your better music, movies, news,
link |
01:11:29.280
even research papers to read. But of course, then in these targeted ads, especially in certain cases
link |
01:11:37.600
where people can be manipulated by these targeted ads, they can have really bad, like severe
link |
01:11:44.640
consequences. So essentially, users want their data to be used to better serve them,
link |
01:11:51.680
and also maybe even get paid for or whatever, like in different settings. But the thing is that
link |
01:11:57.040
first of all, we need to really establish who needs to decide who can decide how the data should be
link |
01:12:05.200
used. And typically, the establishment and clarification of the ownership will help this,
link |
01:12:12.000
and it's an important first step. So if the user is the owner, then naturally the user gets to
link |
01:12:17.600
define how the data should be used. But if you even say that vitamin is used, actually,
link |
01:12:23.120
now the owner of this data, whoever is collecting the data is the owner of the data. Now, of course,
link |
01:12:27.120
they get to use the data however way they want. So to really address these complex issues, we need
link |
01:12:34.080
to go at the root cause. So it seems fairly clear that so first we really need to say
link |
01:12:40.960
who is the owner of the data, and then the owners can specify how they want their data to be utilized.
link |
01:12:47.120
So that's a fascinating, most people don't think about that. And I think that's a fascinating thing
link |
01:12:54.160
to think about and probably fight for it. I can only see in the economic growth argument,
link |
01:12:59.520
it's probably a really strong one. So that's a first time I'm kind of at least thinking about
link |
01:13:05.120
the positive aspect of that ownership being the long term growth of the economy, so good for
link |
01:13:11.600
everybody. But sort of one possible downside I could see, sort of to put on my grumpy old grandpa
link |
01:13:20.320
hat. And you know, it's really nice for Facebook and YouTube and Twitter to all be free. And if you
link |
01:13:28.560
give control to people with their data, do you think it's possible they would not want to hand
link |
01:13:36.160
it over quite easily? And so a lot of these companies that rely on mass handover of data and
link |
01:13:42.800
then therefore provide a mass seemingly free service would then completely, so the way the
link |
01:13:53.840
internet looks will completely change because of the ownership of data and will lose a lot of
link |
01:13:58.640
services value. Do you worry about that? So that's a very good question. I think
link |
01:14:04.320
that's not necessarily the case in the sense that, yes, users can have ownership of their data,
link |
01:14:10.560
they can maintain control of their data, but also then they get to decide how their data can be used.
link |
01:14:17.440
So that's why I mentioned earlier, like so in this case, if they feel that they enjoy the
link |
01:14:22.800
benefits of social networks and so on, and they're fine with having Facebook, having their data,
link |
01:14:28.800
but utilizing the data in a certain way that they agree, then they can still enjoy the free
link |
01:14:35.680
services. But for others, maybe they would prefer some kind of private vision. And in that case,
link |
01:14:42.640
maybe they can even opt in to say that I want to pay and to have, so for example, it's already
link |
01:14:49.840
fairly standard, like you pay for certain subscriptions so that you don't get to, you know,
link |
01:14:56.240
be shown ads, right. So then users essentially can have choices. And I think we just want to
link |
01:15:04.320
essentially bring out more about who gets to decide what to do with the data.
link |
01:15:10.720
I think it's an interesting idea because if you poll people now,
link |
01:15:14.240
you know, it seems like, I don't know, but subjectively, sort of anecdotally speaking,
link |
01:15:19.040
it seems like a lot of people don't trust Facebook. So that's at least a very popular
link |
01:15:23.680
thing to say that I don't trust Facebook, right. I wonder if you give people control of their data,
link |
01:15:30.400
as opposed to sort of signaling to everyone that they don't trust Facebook, I wonder how they would
link |
01:15:35.760
speak with the actual, like, would they be willing to pay $10 a month for Facebook, or would they
link |
01:15:42.960
hand over their data? It's, it'd be interesting to see what fraction of people would quietly hand
link |
01:15:48.960
over their data to Facebook to make it free. I don't have a good intuition about that. Like,
link |
01:15:55.840
how many people, do you have an intuition about how many people would use their data
link |
01:16:00.560
effectively on the market, on the market of the internet by sort of buying services with their
link |
01:16:09.280
data? Yeah, so that's a very good question. I think, so one thing I also want to mention is that
link |
01:16:16.320
this, right, so it seems that especially in press, and the conversation has been very much, like,
link |
01:16:25.920
two sides fighting against each other. On one hand, right, users can say that, right, they don't
link |
01:16:33.680
trust Facebook, they don't, or they delete Facebook. Yeah, exactly. Right, and then on the other
link |
01:16:41.040
hand, right, of course, right, the other side, they also feel, oh, they are providing a lot of
link |
01:16:49.120
services to users, and users are getting it all for free. So I think I actually, you know, I talk
link |
01:16:57.840
a lot to, like, different companies and also, like, basically on both sides. So one thing I hope,
link |
01:17:06.000
also, like, this is my hope for this year, also, is that we want to establish a more
link |
01:17:12.880
constructive dialogue that have, and to help people to understand that the problem is much
link |
01:17:20.240
more nuanced than just this two sides fighting. Because, naturally, there is a tension between
link |
01:17:30.000
the two sides, between utility and privacy. So if you want to get more utility, essentially,
link |
01:17:36.560
like the recommendation system example I gave earlier, if you want someone to give you good
link |
01:17:42.480
recommendation, essentially, whatever the system is, the system is going to need to know your data
link |
01:17:48.560
to give you a good recommendation. But also, of course, at the same time, we want to ensure
link |
01:17:54.640
that, however, that data is being handled, it's done in a privacy preserving way. So that, for
link |
01:18:01.760
example, the recommendation system doesn't just go around and sell your data and cause all the,
link |
01:18:08.320
you know, cause a lot of bad consequences and so on. So you want that dialogue to be a little
link |
01:18:15.120
bit more in the open, a little bit more nuanced, and maybe adding control to the data, ownership
link |
01:18:21.600
to the data will allow, as opposed to this happening in the background, allow it to bring it to the
link |
01:18:27.920
forefront and actually have dialogues in, like, more nuanced, real dialogues about how we trade
link |
01:18:35.600
our data for the services. That's the whole. Right, right. Yes, at high level. So essentially,
link |
01:18:42.080
also knowing that there are technical challenges in addressing the issue to, like, basically,
link |
01:18:51.120
you can't have, just like the example that I gave earlier, it's really difficult to balance the two
link |
01:18:57.920
between utility and privacy. And that's also a lot of things that I work on, my group works on,
link |
01:19:05.520
as well, is to actually develop these technologies that are needed to essentially help this balance
link |
01:19:13.920
better, essentially to help data to be utilized in a privacy preserving and responsible way.
link |
01:19:19.840
And so we essentially need people to understand the challenges and also at the same time to provide
link |
01:19:27.120
the technical abilities and also regulatory frameworks to help the two sides to be more
link |
01:19:33.520
in a win win situation instead of a fight. Yeah, the fighting, the fighting thing is,
link |
01:19:40.320
I think YouTube and Twitter and Facebook are providing an incredible service to the world.
link |
01:19:44.880
And they're all making mistakes, of course, but they're doing an incredible job
link |
01:19:49.040
that I think deserves to be applauded. And there's some degree of gratitude,
link |
01:19:55.440
like, it's a cool thing that that's created. And it shouldn't be monolithically fought against,
link |
01:20:04.160
like, Facebook is evil or so on. Yeah, I might make mistakes, but I think it's an incredible
link |
01:20:09.120
service. I think it's world changing. I mean, I've, I think Facebook's done a lot of incredible,
link |
01:20:15.680
incredible things by bringing, for example, identity, you're like,
link |
01:20:22.640
allowing people to be themselves like their real selves in the digital space by using their real
link |
01:20:29.920
name and their real picture. That step was like the first step from the real world to the digital
link |
01:20:34.880
world. That was a huge step that perhaps will define the 21st century in us creating a digital
link |
01:20:40.720
identity. And there's a lot of interesting possibilities there that are positive. Of course,
link |
01:20:46.000
some things are negative and having a good dialogue about that is great. And I'm great
link |
01:20:50.800
that people like you are at the center of that dialogue. That's awesome. Right. I think also,
link |
01:20:56.080
I also can understand, I think actually in the past, especially in the past couple years,
link |
01:21:03.600
this rising awareness has been helpful. Like, users are also more and more recognizing
link |
01:21:10.080
that privacy is important to them. They should, maybe, right, they should be owners of their data.
link |
01:21:15.760
I think this definitely is very helpful. And I think also this type of voice also, and together
link |
01:21:24.160
with the regulatory framework and so on, also help the companies to essentially put these
link |
01:21:31.360
type of issues at a higher priority. And knowing that, right, also, it is their responsibility
link |
01:21:38.960
to ensure that users are well protected. And so I think definitely the rising voice
link |
01:21:46.160
is super helpful. And I think that actually really has brought the issue of data privacy
link |
01:21:53.040
and even this consideration of data ownership to the forefront to really much wider community.
link |
01:22:01.200
And I think more of this voice is needed. But I think it's just that we want to have
link |
01:22:05.520
a more constructive dialogue to bring the both sides together to figure out a constructive solution.
link |
01:22:14.000
So another interesting space where security is really important is in the space of
link |
01:22:19.760
any kinds of transactions, but it could be also digital currency. So can you maybe talk
link |
01:22:25.200
a little bit about blockchain? Can you tell me what is a blockchain?
link |
01:22:30.240
I think the blockchain word itself is actually very overloaded.
link |
01:22:38.160
In general, it's like AI, right? Yes. So in general, when we talk about blockchain,
link |
01:22:43.200
we refer to this distributed ledger in a decentralized fashion. So essentially,
link |
01:22:48.720
you have a community of nodes that come together. And even though each one may not be trusted,
link |
01:22:58.320
and as long as certain thresholds of the set of nodes behave properly, then the system can
link |
01:23:08.880
essentially achieve certain properties. For example, in the distributed ledger setting,
link |
01:23:14.560
you can maintain an immutable log and you can ensure that, for example, the transactions
link |
01:23:23.040
actually are agreed upon and then it's immutable and so on. So first of all, what's a ledger?
link |
01:23:29.600
So it's a... It's like a database. It's like a data entry. And so distributed ledger is
link |
01:23:35.120
something that's maintained across or is synchronized across multiple sources, multiple nodes.
link |
01:23:41.600
Multiple nodes, yes. And so where is this idea? How do you keep... So it's important
link |
01:23:49.520
to keep a ledger a database to keep that... To make sure... So what are the kinds of security
link |
01:23:57.200
vulnerabilities that you're trying to protect against in the context of a distributed ledger?
link |
01:24:04.240
So in this case, for example, you don't want some malicious nodes to be able to change the
link |
01:24:10.720
transaction logs. And in certain cases, it's called double spending. You can also cause
link |
01:24:18.480
different views in different parts of the network and so on.
link |
01:24:22.640
So the ledger has to represent, if you're capturing financial transactions,
link |
01:24:27.440
has to represent the exact timing and the exact occurrence and no duplicates, all that kind of
link |
01:24:32.880
stuff. It has to represent what actually happened. Okay, so what are your thoughts
link |
01:24:40.480
on the security and privacy of digital currency? I can't tell you how many people
link |
01:24:45.040
write to me to interview various people in the digital currency space. There seems to be a lot
link |
01:24:52.080
of excitement there. And it seems to be... Some of it, to me, from an outsider's perspective,
link |
01:24:58.800
seems like dark magic. I don't know how secure... I think the foundation from my perspective of
link |
01:25:08.400
digital currencies, that is, you can't trust anyone. So you have to create a really secure system.
link |
01:25:15.280
So can you maybe speak about what your thoughts in general about digital currency is and how you
link |
01:25:22.320
can possibly create financial transactions and financial stores of money in the digital space?
link |
01:25:30.320
So you asked about security and privacy. So again, as I mentioned earlier,
link |
01:25:36.880
in security, we actually talk about two main properties, the integrity and confidentiality.
link |
01:25:45.680
And so there's another one for availability. You want the system to be available. But here,
link |
01:25:51.760
for the question asked, let's just focus on integrity and confidentiality. So for integrity
link |
01:25:59.040
of this distributed ledger, essentially, as we discussed, we want to ensure that the different
link |
01:26:04.080
nodes... So they have this consistent view, usually it's down through what we call a consensus protocol
link |
01:26:13.600
that they establish this shared view on this ledger that you cannot go back and change,
link |
01:26:21.840
it's immutable, and so on. So in this case, then the security often refers to this integrity
link |
01:26:30.800
property. And essentially, you're asking the question, how much work, how can you attack the
link |
01:26:37.920
system so that the attacker can change the log, for example.
link |
01:26:46.080
Right. How hard is it to make them attack like that?
link |
01:26:48.320
Right. And then that very much depends on the consensus mechanism, how the system is built,
link |
01:26:56.880
and all that. So there are different ways to build these decentralized systems.
link |
01:27:03.360
People may have heard about the terms called proof of work, proof of stake, these different
link |
01:27:08.480
mechanisms. And it really depends on how the system has been built and also how much
link |
01:27:17.200
resources, how much work has gone into the network to actually say how secure it is.
link |
01:27:24.400
So for example, if you talk about Bitcoin's proof of work system, so much electricity has been
link |
01:27:31.040
burned. So there's differences in the different mechanisms and the implementations of a distributed
link |
01:27:37.120
ledger used for digital currency. So there's Bitcoin, whatever, there's so many of them,
link |
01:27:43.200
and there's underlying different mechanisms. And there's arguments, I suppose, about which is more
link |
01:27:49.520
effective, which is more secure, which is more. And what is needed? What amount of resources
link |
01:27:56.400
needed to be able to attack the system? Like for example, what percentage of the nodes do you
link |
01:28:03.360
need to control or compromise in order to change the log?
link |
01:28:09.840
And do you have a sense of those are things that can be shown theoretically
link |
01:28:14.640
through the design of the mechanisms or does it have to be shown empirically by having a large
link |
01:28:20.000
number of users using the currency?
link |
01:28:22.240
I see. So in general, for each consensus mechanism, you can actually show theoretically what is needed
link |
01:28:30.240
to be able to attack the system. Of course, there can be different types of attacks as we
link |
01:28:37.600
discussed at the beginning, so that it's difficult to give a complete estimate really how much it's
link |
01:28:50.400
needed to compromise the system. But in general, there are ways to say what percentage of the
link |
01:28:57.360
nodes you need to compromise and so on.
link |
01:29:01.360
So we talked about integrity on the security side. And then you also mentioned the privacy or the
link |
01:29:11.680
confidentiality side. Does it have some of the same problems and therefore some of the
link |
01:29:18.480
same solutions that you talked about on the machine learning side with differential privacy and so on?
link |
01:29:22.880
Yeah. So actually, in general, on the public ledger in these public decentralized systems,
link |
01:29:33.440
actually nothing is private. So all the transactions posted on the ledger anybody can see.
link |
01:29:40.000
So in that sense, there is no confidentiality. So usually what you can do is then there are the
link |
01:29:48.480
mechanisms that you can build in to enable confidentiality or privacy of the transactions
link |
01:29:55.200
and the data and so on. That's also some of the work that's both my group and also my startup
link |
01:30:03.760
as well. What's the name of the startup? Oasis Labs. Oasis Labs. And so the confidentiality
link |
01:30:09.680
aspect there is even though the transactions are public, you want to keep some aspect confidential
link |
01:30:18.240
of the identity of the people involved in the transactions. So what is their hope to keep
link |
01:30:23.680
confidential in this context? So in this case, for example, you want to enable like
link |
01:30:29.840
confidential transactions. So there are different essentially types of data that you want to keep
link |
01:30:39.200
private or confidential. And you can utilize different technologies, including zero knowledge
link |
01:30:44.320
proofs and also secure computing and techniques to hide who is making the transactions to whom
link |
01:30:56.560
and the transaction amount. And in our case, also we can enable like confidential smart contracts
link |
01:31:03.440
so that you don't know the data and the execution of the smart contract and so on.
link |
01:31:09.600
And we actually are combining these different technologies and to going back to the earlier
link |
01:31:17.280
discussion we had enabling like ownership of data and privacy of data and so on. So at Oasis
link |
01:31:28.000
Labs, we're actually building what we call a platform for a responsible data economy
link |
01:31:33.200
to actually combine these different technologies together to enable secure and privacy preserving
link |
01:31:40.960
computation and also using the ledger to help provide immutable log of users ownership to their
link |
01:31:51.040
data and the policies they want the data to adhere to, the usage of the data to adhere to
link |
01:31:57.280
and also how the data has been utilized. So all this together can build a distributed secure
link |
01:32:05.120
computing fabric that helps to enable a more responsible data economy. There's a lot of
link |
01:32:11.680
things together. Yeah, wow, that was eloquent. Okay, you're involved in so much amazing work
link |
01:32:17.920
that we'll never be able to get to, but I have to ask at least briefly about program synthesis,
link |
01:32:23.280
which at least in a philosophical sense captures much of the dreams of what's possible in computer
link |
01:32:30.720
science and the artificial intelligence. First, let me ask what is program synthesis
link |
01:32:37.600
and can neural networks be used to learn programs from data? So can this be learned,
link |
01:32:43.600
some aspect of the synthesis can it be learned? So program synthesis is about teaching computers
link |
01:32:50.080
to write code to program. And I think that's one of our ultimate dreams or goals.
link |
01:33:00.560
I think Andreessen talked about software eating the world. So I say once we teach computers to
link |
01:33:09.680
write software to write programs, then I guess computers will be eating the world by
link |
01:33:15.760
transitivity. Yeah, exactly. And also for me, actually, when I shifted from security to more AI
link |
01:33:28.000
machine learning, program synthesis is program synthesis and adversarial machine learning.
link |
01:33:34.080
These are the two fields that I particularly focus on. Like program synthesis is one of the
link |
01:33:39.360
first questions that I actually started. Just as a question, I guess from the security side,
link |
01:33:45.680
there's a, you know, you're looking for holes in programs. So at least see small connection. But
link |
01:33:51.920
why, where was your interest for program synthesis? Because it's such a fascinating, such a big, such
link |
01:33:58.560
a hard problem in the general case. Why program synthesis? So the reason for that is actually
link |
01:34:04.960
when I shifted my focus from security into AI machine learning, actually one of my main
link |
01:34:13.840
motivation at the time is that even though I have been doing a lot of work in security and
link |
01:34:19.440
privacy, but I have always been fascinated about building intelligent machines. And that was really
link |
01:34:28.400
my main motivation to spend more time in AI machine learning is that I really want to figure out how
link |
01:34:35.360
we can build intelligent machines. And to help us towards that goal, program synthesis is really
link |
01:34:44.800
one of, I would say, the best domain to work on. I actually call it like a program synthesis is
link |
01:34:52.400
like the perfect playground for building intelligent machines and for artificial
link |
01:34:58.720
generating intelligence. Well, it's also in that sense, not just a playground, I guess it's the
link |
01:35:05.360
ultimate test of intelligence because I think if you can generate neural networks can learn
link |
01:35:14.560
good functions and they can help you out in classification tasks, but to be able to write
link |
01:35:20.080
programs, that's the epitome from the machine side. That's the same as passing the Turing test
link |
01:35:26.560
in natural language, but with programs, it's able to express complicated ideas, to reason through
link |
01:35:32.880
ideas, and yeah, and boil them down to algorithms. Yes, exactly, incredible. So can this be learned?
link |
01:35:41.600
How far are we? Is there hope? What are the open challenges? Yeah, very good questions. We are
link |
01:35:48.400
still at an early stage, but already I think we have seen a lot of progress. I mean, definitely we
link |
01:35:57.200
have, you know, existence proof, just like humans can write programs, so there's no reason why
link |
01:36:03.120
computers cannot write programs. So I think that's definitely an achievable goal, it's just how long
link |
01:36:10.080
it takes. And then, and even today, we actually have, you know, the program synthesis community,
link |
01:36:19.680
especially the program synthesis via learning, how we call it, neural program synthesis community,
link |
01:36:24.800
is still very small, but the community has been growing and we have seen a lot of progress.
link |
01:36:31.680
And in limited domains, I think actually program synthesis is ripe for real world
link |
01:36:39.360
applications. So actually it was quite amazing, I was at, I was giving a talk,
link |
01:36:46.560
so here is a rework conference. Yeah, rework deep learning summary. I actually, so I give another
link |
01:36:51.760
talk at the previous rework conference in deep reinforcement learning. And then I actually
link |
01:36:58.720
met someone from a startup, the CEO of the startup, and when he saw my name, he recognized it, and
link |
01:37:06.640
he actually said, one of our papers actually had, they have put, had actually become a key
link |
01:37:17.920
product in their startup. And that was program synthesis in that particular case was natural
link |
01:37:24.640
language translation, translating natural language description into SQL queries.
link |
01:37:31.040
Oh, wow, that, that direction. Okay. Right. So, right. So, yeah, so in program synthesis,
link |
01:37:38.960
in limited domains, in well specified domains, actually already we can see
link |
01:37:45.920
really great progress and applicability in the real world. So domains like,
link |
01:37:53.440
I mean, as an example, you said natural language being able to express something through just
link |
01:37:58.000
normal language and it converts it into a database SQL SQL query. Right. And that's how,
link |
01:38:04.800
how solves the problem is that, because that seems like a really hard problem.
link |
01:38:10.240
Again, in limited domains, actually it can work pretty well. And now this is also a very active
link |
01:38:17.280
domain of research. At the time, I think when he saw our paper at the time, we were the state of the
link |
01:38:23.200
arts on that task. And since then, actually now there has been more work and with even more
link |
01:38:32.000
like sophisticated data sets. And so, but I, I think I wouldn't be surprised that more of this
link |
01:38:39.680
type of technology really gets into the real world. That's exciting. In the near term.
link |
01:38:45.120
Being able to learn in the space of programs is, is super exciting. I still,
link |
01:38:50.160
I'm still skeptical because I think it's a really hard problem, but I'd love to see progress.
link |
01:38:55.280
And also, I think in terms of the, you asked about open challenges, I think the domain is
link |
01:39:01.440
full of challenges. And in particular, also we want to see how we should measure the progress
link |
01:39:07.280
in the space. And I would say mainly three main, I would say metrics. So one is the complexity of
link |
01:39:17.040
the program that we can synthesize. And that will actually have clear measures and just look at,
link |
01:39:22.640
you know, the past publications. And even like, for example, I was at the recent
link |
01:39:28.720
New Europe's conference now, there's actually a very sizable like session dedicated to program
link |
01:39:34.160
synthesis, which is. Oh, even neural programs. So this is. Right. Which is great. And, and we
link |
01:39:39.360
continue to see the increase. What does sizable mean? I like, I like the word sizable. It's,
link |
01:39:49.200
it's five people. It's still a small community, but this is growing. And they will all win touring
link |
01:39:55.760
awards one day. I like it. Right. So, so we can clearly see increase in the complexity of the
link |
01:40:04.080
programs that these just elaborate synthesize side to is it the complexity of the actual text of
link |
01:40:12.400
the program or the running time complexity, which complexity over how the complexity of the task
link |
01:40:20.320
to be synthesized and the complexity of the actual synthesizer programs. So it's right. So the lines
link |
01:40:26.400
of code even, for example, okay, I got you. But it's not the theoretical. No, no, no, no, the running
link |
01:40:33.280
time of the algorithm. Okay, got it. Got it. And you can see the complexity decreasing already.
link |
01:40:39.760
Oh, no, meaning we want to be able to synthesize more and more complex programs,
link |
01:40:43.440
bigger and bigger programs. So we want to see that we want to increase the complexity. I have to think
link |
01:40:50.720
through because I thought of complexity is you want to be able to accomplish the same task
link |
01:40:55.360
with a simpler simpler program. No, we are not doing that. Okay. It's more, it's more about
link |
01:41:00.720
how complex a task we can synthesize programs for. Got it. Being able to synthesize programs,
link |
01:41:08.000
learn them for more and more difficult. Right. So for example, initially, our first work in program
link |
01:41:13.120
synthesis was to translate natural language distribution into really simple programs called
link |
01:41:19.120
if TTT, if this then that. So given a trigger condition, what is the action you should take.
link |
01:41:24.960
So that program is super simple. You just identify the trigger conditions and the action.
link |
01:41:30.400
Yep. And then later on with the SQL queries, it gets more complex. And then also, we started
link |
01:41:35.760
to synthesize programs with loops and. Oh, no. And if you can synthesize recursion, it's all over.
link |
01:41:44.000
Right. Actually, one of our works actually is learning recursive programs. But anyway,
link |
01:41:51.200
anyway, so that's the one is the complexity and the other one is generalization. Like when we
link |
01:42:00.640
train our own learn a program synthesizer in this case, a neural programs to synthesize programs,
link |
01:42:07.680
then you wanted to generalize. For any for a large number of inputs. Right. So to be able to
link |
01:42:14.720
right generalize to previously unseen inputs. Got it. And so, right. So some of the work we did earlier
link |
01:42:22.480
learning recursive neural programs actually show that recursion actually is important
link |
01:42:31.520
to learn. And if you have recursion, then for certain set of tasks, we can actually show that
link |
01:42:38.640
you can actually have perfect generalization. So that's one of the best people were words that
link |
01:42:44.880
I clear earlier. So that's one example of we want to learn these neural programs that can
link |
01:42:52.400
generalize better. But that works for certain tasks, certain domains. And there's question how we can
link |
01:42:59.040
essentially develop more techniques that can have generalization for wider set of domains,
link |
01:43:08.240
and so on. So that's another area. And then the third challenge I think will, it's not just for
link |
01:43:15.440
program synthesis is also cutting across other fields in machine learning and also including
link |
01:43:22.720
like deep reinforcement learning in particular is that this adaptation is that we want to be able
link |
01:43:32.000
to learn from the past and tasks and training and so on to be able to solve new tasks. So for example,
link |
01:43:41.440
in program synthesis today, we still are working in the setting where given a particular task,
link |
01:43:48.560
given a particular task, we train the right the model and to solve this particular task.
link |
01:43:57.520
But that's not how humans work. The whole point is we train a human and you can then program to
link |
01:44:06.160
solve new tasks. Exactly. And just like in deep reinforcement learning, we don't want to just
link |
01:44:10.960
train agent to play a particular game, either it's Atari or it's Go or whatever. We want to train
link |
01:44:20.000
these agents that can essentially extract knowledge from the past learning experience
link |
01:44:26.960
to be able to adapt to new tasks and solve new tasks. And I think this is particularly important
link |
01:44:33.440
for program synthesis. Yeah, that's the whole point. That's the whole dream of programs. This is
link |
01:44:38.080
your learning a tool that can solve new problems. Right, exactly. And I think that's a particular
link |
01:44:44.400
domain that as a community, we need to put more emphasis on and I hope that we can make more
link |
01:44:52.320
progress there as well. Awesome. There's a lot more to talk about. Let me ask that you also had a very
link |
01:45:00.560
interesting and we talked about rich representations. You had a rich life journey. You did your
link |
01:45:08.560
bachelors in China and your masters and PhD in the United States, CMU and Berkeley.
link |
01:45:15.200
Are there interesting differences? I told you I'm Russian. I think there's a lot of
link |
01:45:18.400
interesting difference between Russia and the United States. Are there in your eyes
link |
01:45:22.160
interesting differences between the two cultures from the romantic notion of the spirit of the
link |
01:45:31.280
people to the more practical notion of how research is conducted that you find interesting
link |
01:45:37.680
or useful in your own work of having experience both? That's a good question. I think, so I
link |
01:45:46.080
I studied in China for my undergraduate years and that was more than 20 years ago. So it's
link |
01:45:54.800
been a long time. Is there echoes of that time in you? Actually, it's interesting. I think even
link |
01:46:02.720
more so maybe something that's even be more different from my experience than a lot of computer
link |
01:46:09.760
science researchers and practitioners. So for my undergrad, I actually studied physics.
link |
01:46:16.720
Nice. Very nice. And then I switched to computer science in graduate school.
link |
01:46:22.000
What happened? Is there another possible universe where you could have
link |
01:46:30.320
become a theoretical physicist at Caltech or something like that?
link |
01:46:33.440
That's very possible. Some of my undergrad classmates, then they later on started physics,
link |
01:46:41.360
got their PhD in physics from these schools from, yeah, from tough physics programs.
link |
01:46:48.960
So you switched to, I mean, from that experience of doing physics in your bachelors,
link |
01:46:56.320
what made you decide to switch to computer science and computer science at arguably the best
link |
01:47:02.960
university, one of the best universities in the world for computer science with Carnegie Mellon,
link |
01:47:07.120
especially for grad school and so on. So what, second only to MIT, just kidding. Okay.
link |
01:47:16.320
I had to throw that in there. No, what was the choice like and what was the
link |
01:47:20.720
move to the United States like? What was that whole transition? And if you remember,
link |
01:47:25.520
if there's still echoes of some of the spirit of the people of China in you in New York?
link |
01:47:30.800
Right. That's like three questions. I'm sorry.
link |
01:47:36.480
No, that's okay. So yes, I guess, okay, the first transition from physics to computer science.
link |
01:47:43.200
So when I first came to the United States, I was actually in the physics PhD program at Cornell.
link |
01:47:49.120
I was there for one year and then I switched to computer science and then I was in the PhD
link |
01:47:53.120
program at Carnegie Mellon. So, okay, so the reasons for switching. So one thing,
link |
01:47:59.520
so that's why I also mentioned that about this difference in backgrounds about having studied
link |
01:48:05.440
physics first in my undergrad. I actually really, I really did enjoy my undergrad time and education
link |
01:48:18.000
in physics. I think that actually really helped me in my future work in computer science.
link |
01:48:24.880
Actually, even for machine learning, a lot of machine learning stuff,
link |
01:48:27.920
the core machine methods, many of them actually came from physics.
link |
01:48:34.400
For honest, most of everything came from physics.
link |
01:48:39.840
But anyway, so when I started physics, I was, I think I was really attracted to physics.
link |
01:48:48.880
It was, it's really beautiful. And I actually, physics is the language of nature.
link |
01:48:55.440
And I actually clearly remember like one moment in my undergrad, like I did my undergrad in
link |
01:49:06.240
Tsinghua and I used to study in the library. And I clearly remember like one day I was sitting
link |
01:49:15.040
in the library and I, and I was like writing on my notes and so on. And I got so excited
link |
01:49:22.960
that I realized that really just from a few simple axioms, a few simple laws, I can derive
link |
01:49:31.120
so much. It's almost like I can derive the rest of the world.
link |
01:49:34.240
Yeah, the rest of the universe.
link |
01:49:35.920
Yes. Yes. So that was like amazing.
link |
01:49:39.440
Do you think you, have you ever seen or do you think you can rediscover that kind of power and
link |
01:49:44.480
beauty in computer science in the world that you use?
link |
01:49:48.000
That's very interesting. So that gets to, you know, the transition from physics to computer
link |
01:49:52.480
science. It's quite different for physics in, in grad school actually things changed.
link |
01:50:02.400
So one is, I started to realize that when I started doing research in physics,
link |
01:50:09.040
at the time I was doing theoretical physics. And a lot of it, you still have the beauty
link |
01:50:15.200
but it's very different. So I had to actually do a lot of the simulation. So essentially I was
link |
01:50:19.840
actually writing, in some, in some cases writing fortune code.
link |
01:50:24.880
Good old fortune, yeah.
link |
01:50:27.280
To actually write, do like, do simulations and so on. That was not, not exactly what I enjoyed doing.
link |
01:50:41.360
And also at the time from talking with senior, you know, students in the program,
link |
01:50:52.320
I realized many of the students actually were going off to like Wall Street and so on.
link |
01:50:58.480
So, and I've always been interested in computer science and actually essentially taught myself
link |
01:51:05.840
the C programming, like, program, right, and so on. Of which when? In college. In college
link |
01:51:12.320
somewhere? In the summer. For fun. Physics major, learning to do C programming, beautiful.
link |
01:51:19.280
Actually it's interesting, you know, in physics at the time, I think now the program probably has
link |
01:51:24.880
changed. But at the time, really the only class we had in, in, related to computer science education
link |
01:51:34.000
was introduction to, I forgot, to computer science or computing and fortune 77.
link |
01:51:39.920
There's a lot of people that still use Fortran. I'm actually, if you're a programmer out there,
link |
01:51:46.080
I'm looking for an expert to talk to about Fortran. They seem to, there's not many,
link |
01:51:51.600
but there's still a lot of people that still use Fortran and still a lot of people use Cobalt.
link |
01:51:55.280
But anyway, so, so then, then I realized, instead of just doing programming for doing simulations
link |
01:52:03.280
and so on, that I may as well just change to computer science. And also one thing I really
link |
01:52:08.240
liked, and that's a key difference between the two is in computer science is so much easier to
link |
01:52:14.480
realize your ideas. If you have an idea, you write it up, you code it up, and then you can see it's
link |
01:52:21.120
actually running and you can, you can see it. You can bring it to life quickly. Bring it to life.
link |
01:52:27.840
Whereas in physics, if you have a good theory, you, you, you have to wait for the experimentalist
link |
01:52:33.120
to do the experiments and to confirm the theory and things just take so much longer. And, and
link |
01:52:39.040
also the reason I, in physics, I decided to do theoretical physics was because I had my experience
link |
01:52:45.680
with experimental physics. First, you have to fix the equipment. You spend most of your time fixing
link |
01:52:52.800
the equipment first. So, super expensive equipment. So there's a lot of, yeah, you have to collaborate
link |
01:52:59.440
with a lot of people. It takes a long time. It just takes really much longer. Yeah, it's messy.
link |
01:53:04.320
So I decided to switch to computer science. And one thing I think maybe people have realized is that
link |
01:53:09.760
for people who study physics, actually it's very easy for physicists to change, to do something
link |
01:53:16.000
else. I think physics provides a really good training. And yeah, so actually it was very easy
link |
01:53:23.200
to switch to computer science. But one thing going back to your earlier question. So one thing I
link |
01:53:30.320
actually did realize. So there is a big difference between computer science and physics, where physics
link |
01:53:36.480
you can derive the whole universe from just a few simple laws. And computer science, given that
link |
01:53:43.200
a lot of it is defined by humans, the systems that define by humans, and it's artificial.
link |
01:53:52.880
Essentially, you create a lot of these artifacts and so on. It's not quite the same. You don't
link |
01:53:59.040
derive the computer systems with just a few simple laws. You actually have to see there is historical
link |
01:54:07.120
reasons why a system is built and designed one way versus the other. There's a lot more complexity,
link |
01:54:14.640
less elegant simplicity of E equals MC squared that kind of reduces everything down to those
link |
01:54:20.640
beautiful fundamental equations. But what about the move from China to the United States? Is there
link |
01:54:29.360
anything that still stays in you that contributes to your work, the fact that you grew up in another
link |
01:54:35.360
culture? So yes, I think especially back then it's very different from now. So now actually
link |
01:54:44.400
I see these students coming from China and even undergraduates actually speak fluent English. It
link |
01:54:51.040
was just amazing. And they have already understood so much of the culture in the U.S. and so on.
link |
01:55:01.760
It was to you, it was all foreign? It was a very different time. At the time, actually
link |
01:55:07.280
we didn't even have easy access to email, not to mention about the web. I remember I had to
link |
01:55:17.280
go to specific privileged server rooms to use email. At the time, we had much less knowledge
link |
01:55:30.560
about the Western world. And actually at the time, I didn't know actually in the U.S. West Coast
link |
01:55:37.760
whether it's much better than the East Coast. Things like that actually. It's very interesting.
link |
01:55:48.560
But now it's so different. At the time, I would say there's also a bigger cultural difference
link |
01:55:53.200
because there's so much less opportunity for shared information. So it's such a different
link |
01:56:01.280
time and world. So let me ask maybe a sensitive question. I'm not sure, but I think you and I
link |
01:56:06.960
are in similar positions as I've been here for already 20 years as well. And looking at Russia
link |
01:56:14.480
from my perspective and you looking at China, in some ways it's a very distant place because it's
link |
01:56:19.760
changed a lot, but in some ways you still have echoes, you still have knowledge of that place.
link |
01:56:25.040
The question is, China is doing a lot of incredible work in AI. Do you see, please tell me there's
link |
01:56:32.480
an optimistic picture you see where the United States and China can collaborate and sort of
link |
01:56:37.440
grow together in the development of AI towards, there's different values in terms of the role
link |
01:56:43.600
of government and so on, of ethical, transparent, secure systems. We see it differently in the
link |
01:56:50.240
United States a little bit than China, but we're still trying to work it out. Do you see the two
link |
01:56:54.560
countries being able to successfully collaborate and work in a healthy way without sort of fighting
link |
01:57:01.200
and making it an AI arms race kind of situation? Yeah, I believe so. I think science has no border
link |
01:57:10.000
and the advancement of the technology helps everyone, helps the whole world. And so I certainly
link |
01:57:19.600
hope that the two countries will collaborate and I certainly believe so. Do you have any reason
link |
01:57:27.680
to believe so except being an optimist? So first again, like I said, science has no borders and
link |
01:57:35.520
especially in... Science doesn't know borders. Right. And you believe that well, you know,
link |
01:57:41.280
in the form of sort of union during the Cold War. So that's the other point I was going to mention
link |
01:57:47.520
is that especially in academic research, everything is public. Like we write papers,
link |
01:57:53.600
we open source codes and all this is in the public domain. It doesn't matter whether the person is
link |
01:58:00.640
in the US, in China or some other parts of the world. They can go on archive and look at the
link |
01:58:06.720
latest research and results. So that openness gives you hope? Yes. Me too. And that's also how
link |
01:58:14.560
as a world we make progress the best. So I apologize for the romanticized question, but
link |
01:58:22.800
looking back, what would you say was the most transformative moment in your life that maybe
link |
01:58:32.000
made you fall in love with computer science? You said physics. You remember there was a moment
link |
01:58:35.760
where you thought you could derive the entirety of the universe. Was there a moment that you
link |
01:58:40.800
really fell in love with the work you do now from security to machine learning to program synthesis?
link |
01:58:47.280
So maybe, as I mentioned, actually in college, I, one summer I just taught myself programming C.
link |
01:58:55.280
Yes. You just read a book. Don't tell me you fell in love with computer science by programming
link |
01:59:02.800
in C. Remember I mentioned one of the draws for me to computer science is how easy it is
link |
01:59:08.480
to realize your ideas. So once I, you know, read a book, start, like tell myself how to
link |
01:59:15.680
program in C. What did I do? I programmed two games. One is just simple, like it's a go game,
link |
01:59:25.200
like it's a board, you can move the stones and so on. And the other one actually programmed the game.
link |
01:59:30.320
That's like a 3D Tetris. It was, it turned out to be a super hard game to play. Because
link |
01:59:36.960
instead of just the standard 2D Tetris, it's actually a 3D thing. But I realized, wow,
link |
01:59:42.560
you know, I just had these ideas to try it out and then you can just do it. And so that's when I
link |
01:59:50.880
realized, wow, this is amazing. Yeah, you can create yourself. Yes, yes, exactly. From nothing
link |
01:59:58.640
to something that's actually out in the real world. So let me ask, let me ask a silly question,
link |
02:00:05.120
or maybe the ultimate question. What is to you the meaning of life? What, what gives your life
link |
02:00:14.080
meaning, purpose, fulfillment, happiness, joy? Okay, these are two different questions.
link |
02:00:21.040
Very different. Yeah. It's usually that you ask this question. Maybe this question is
link |
02:00:27.120
probably the question that has followed me and followed my life the most.
link |
02:00:31.920
Have you discovered anything, any satisfactory answer for yourself?
link |
02:00:38.640
Is there something, is there something you've arrived at? You know, there's a moment,
link |
02:00:44.080
I've talked to a few people who have faced, for example, a cancer diagnosis or face their own
link |
02:00:49.680
mortality. And that seems to change their view of them. It seems to be a catalyst for them removing
link |
02:00:57.120
most of the crap of seeing that most of what they've been doing is not that important and really
link |
02:01:04.720
reducing it into saying like, here's actually the few things that really give me, give meaning.
link |
02:01:11.840
Mortality is a really powerful catalyst for that. It seems like facing mortality,
link |
02:01:16.400
whether it's your parents dying or somebody close to you dying or facing your own death
link |
02:01:20.720
for what a reason or cancer and so on. Right. So yeah, so in my own case, I didn't need to face
link |
02:01:27.280
mortality too. To try to, you know, to ask that question. Yes. And I think there are a couple
link |
02:01:38.320
things. So one is like, who should be defining the meaning of your life? Right. Is there some kind
link |
02:01:45.680
of even greater things than you who should define the meaning of your life? So for example, when
link |
02:01:52.880
people say that the searching, the meaning for your life is, is there some, is there some outside
link |
02:01:59.760
voice or is there something, you know, outside of you who actually tells you, you know, so people
link |
02:02:06.320
talk about, oh, you know, this is what you have been born to do. Right. Right. Like, this is your
link |
02:02:16.800
destiny. So who, right. So that's one question. Like, who gets to define the meaning of your life?
link |
02:02:24.800
Should, should you be finding some other thing, some other factor to define this for you? Or
link |
02:02:30.960
is something actually, it's just entirely what you define yourself and it can be very arbitrary.
link |
02:02:37.280
Yeah. So in an inner voice or an outer voice, whether it's, it could be spiritual, religious,
link |
02:02:43.600
too, with God or some other components of the environment outside of you, or just your own
link |
02:02:49.280
voice, do you have an answer there? So, okay, so for that, I have an answer. Yeah. And through,
link |
02:02:55.840
you know, the long period of time of thinking and searching, even searching through outside,
link |
02:03:03.680
right, you know, voices or factors outside of me. Yeah. So that I have, and so I've come to
link |
02:03:10.880
the conclusion and realization that it's you yourself that defines the meaning of life.
link |
02:03:16.480
Yeah. That's a big burden though, isn't it? Or a guess. Yes and no. Right. So then you have the
link |
02:03:26.880
freedom to define it. Yes. And, and another question is like, what does it really mean by
link |
02:03:34.240
the meaning of life? Right. And also, whether the question even makes sense.
link |
02:03:43.600
Absolutely. And you said it somehow distinct from happiness. So meaning is something much deeper
link |
02:03:51.520
than just any kind of emotional and any kind of contentment or joy or whatever. It might be much
link |
02:03:58.160
deeper. And then you have to ask, what is deeper than that? What is, what is there at all? And
link |
02:04:04.640
then the question starts being silly. Right. And also you can say it's deeper, but you can also
link |
02:04:10.000
say it's a shallower depending on how people want to define the meaning of their life. So for example,
link |
02:04:15.280
most people don't even think about this question. Then the meaning of life to them doesn't really
link |
02:04:20.240
measure that much. And also whether knowing the meaning of life and whether it actually helps
link |
02:04:27.840
your life to be better or whether it helps your life to be happier. These actually are open questions.
link |
02:04:34.480
It's not. Of course. Most questions are open. I tend to think that just asking the question,
link |
02:04:40.080
as you mentioned, as you've done for a long time is the only, that there is no answer.
link |
02:04:44.800
And asking the question is a really good exercise. I mean, I have this, for me personally, I've had a
link |
02:04:49.680
kind of feeling that creation is, like for me, has been very fulfilling. And it seems like my
link |
02:04:59.280
meaning has been to create. And I'm not sure what that is. I don't have, I'm single out of kids.
link |
02:05:05.040
I'd love to have kids, but I also, sounds creepy, but I also see, sort of, you said,
link |
02:05:11.920
see programs. I see programs as little creations. I see robots as little creations.
link |
02:05:19.360
I think those bring, and then ideas, theorems, and our creations. And those somehow intrinsically,
link |
02:05:27.360
like you said, bring me joy. And I think they do to a lot of, at least scientists, but I think
link |
02:05:31.920
they do to a lot of people. So that, to me, if I had to force the answer to that, I would say
link |
02:05:38.400
creating new things yourself. For you. For me. For me. For me. I don't know. But like you said,
link |
02:05:47.600
it keeps changing. Is there some answer that? And some people, they can, I think they may say,
link |
02:05:52.800
it's experience, right? Like their meaning of life. They just want to experience to the riches
link |
02:05:58.400
and fullest they can. And a lot of people do take that path. Yes. Seeing life is actually a collection
link |
02:06:04.800
of moments and then trying to make the richest possible sets, fill those moments with the richest
link |
02:06:12.240
possible experiences. Yeah. Right. And for me, I think certainly we do share a lot of similarity
link |
02:06:17.600
here. So creation is also really important for me, even from, you know, the things I've already
link |
02:06:21.920
talked about, even like, you know, writing papers and these are our creations as well.
link |
02:06:30.080
And I have not quite thought whether that is really the meaning of my life. Like, in a sense,
link |
02:06:35.440
also that maybe like, what kind of things should you create? So there are so many different things
link |
02:06:39.920
that you could create. And also you can say, another view is maybe growth is, it's related
link |
02:06:48.800
but different from experience. Growth is also maybe a type of meaning of life. It's just,
link |
02:06:54.240
you try to grow every day, try to be a better self every day. And also ultimately, we are here,
link |
02:07:04.400
it's part of the overall evolution, the, right, the world is evolving. And it's funny,
link |
02:07:11.680
isn't it funny that the growth seems to be the more important thing than the thing you're growing
link |
02:07:17.200
towards. It's like, it's not the goal, it's the journey to it. Sort of, it's almost, it's almost
link |
02:07:23.440
when you submit a paper, there's a sort of depressing element to it, not to submit a paper,
link |
02:07:30.080
but when that whole project is over, I mean, there's a gratitude, there's a celebration and so on,
link |
02:07:35.120
but you're usually immediately looking for the next thing or the next step, right? It's not,
link |
02:07:41.680
it's not that satisfied, the end of it is not the satisfaction, it's the
link |
02:07:44.640
the hardship, the challenge you have to overcome, the growth through the process.
link |
02:07:48.640
It's somehow, probably deeply within us, the same thing that drives the evolutionary process
link |
02:07:54.240
is somehow within us, with everything, the way, the way we see the world, since you're
link |
02:07:59.120
thinking about these, so you're still in search of an answer. I mean, yes and no, in the sense that
link |
02:08:06.480
I think for people who really dedicate time to search for the answer, to ask the question,
link |
02:08:13.200
what is the meaning of life? It does not necessarily bring you happiness.
link |
02:08:19.760
Yeah, it's a question, we can say, right, like whether it's a well defined question and
link |
02:08:28.800
but on the other hand, given that you get to answer yourself, you can define it yourself,
link |
02:08:34.960
then sure, I can just give it an answer and in that sense, yes, it can help.
link |
02:08:46.240
Like we discussed, if you say, oh, then my meaning of life is to create or to grow,
link |
02:08:54.000
then yes, then I think it can help, but how do you know that that is really the meaning of life
link |
02:09:00.240
or the meaning of your life? It's like there's no way for you to really answer the question.
link |
02:09:05.680
Sure, but something about that certainty is liberating, so it might be an illusion,
link |
02:09:11.360
you might not really know, you might be just convincing yourself falsely, but being sure
link |
02:09:16.160
that that's the meaning, there's something liberating in that, there's something freeing
link |
02:09:24.800
and knowing this is your purpose, so you can fully give yourself to that.
link |
02:09:28.320
You know, for a long time, I thought like, isn't it all relative? Like why,
link |
02:09:35.360
what's, how do we even know what's good and what's evil? Like isn't everything just relative?
link |
02:09:39.760
Like how do we know, the question of meaning is ultimately the question of why do anything?
link |
02:09:48.320
Why is anything good or bad? Why is anything so on?
link |
02:09:52.400
Exactly. But the moment, then you start to, I think just like you said, I think it's a really
link |
02:09:59.280
useful question to ask, but if you ask it for too long and too aggressively.
link |
02:10:07.520
I mean, not be so productive. They have not be productive and not just for traditionally,
link |
02:10:13.200
societally defined success, but also for happiness. It seems like asking the question
link |
02:10:18.720
about the meaning of life is like a trap. We're destined to be asking, we're destined to look
link |
02:10:26.480
up to the stars and ask these big, why questions we'll never be able to answer,
link |
02:10:30.320
but we shouldn't get lost in them. I think that's probably the, that's at least the lesson I picked
link |
02:10:35.360
up so far on that topic. Oh, let me just add one more thing. So it's interesting. So actually,
link |
02:10:41.520
so sometimes, yes, it can help you to focus. So when I, when I shifted my focus more from
link |
02:10:52.560
security to AI and machine learning, at the time, the, actually one of the main reasons that I,
link |
02:10:59.120
I did that was because at the time, I thought my meaning, the meaning of my life and the purpose
link |
02:11:08.320
of my life is to build intelligent machines. And that's, and then your inner voice said that this
link |
02:11:16.960
is the right, this is the right journey to take to build intelligent machines. And that you actually
link |
02:11:22.000
fully realized you took a really legitimate big step to become one of the world class researchers
link |
02:11:28.320
to actually make it, to actually go down that journey. Yeah, that's profound. That's profound.
link |
02:11:36.320
I don't think there's a better way to end a conversation than talking for, for a while about
link |
02:11:43.120
the meaning of life. Don is a huge honor to talk to you. Thank you so much for talking today.
link |
02:11:47.440
Thank you. Thank you. Thanks for listening to this conversation with Don Song and thank you
link |
02:11:53.120
to our presenting sponsor, Cash App. Please consider supporting the podcast by downloading
link |
02:11:57.600
Cash App and using code Lex Podcast. If you enjoy this podcast, subscribe on YouTube,
link |
02:12:03.760
review it with five stars on Apple podcast, support on Patreon or simply connect with me
link |
02:12:08.240
on Twitter at Lex Freedman. And now let me leave you with some words about hacking from the great
link |
02:12:15.680
Steve Wozniak. A lot of hacking is playing with other people, you know, getting them to do strange
link |
02:12:23.040
things. Thank you for listening and hope to see you next time.