Arguing Machines: Tesla Autopilot vs Neural Network

Our group at MIT is studying semi-autonomous vehicles. Now that includes both inward-facing sensors for driver state sensing and outward-facing sensors for scene perception and the control planning, motion planning task. Now today we'll look at the second part of that, at the perception and the control of the vehicle. On the dashboard of the Tesla, there's a Jetson TX2 with a camera sitting on top of it. We have a neural network end-to-end running on the Jetson that's detecting the forward roadway, taking it as a sequence of images and producing steering commands. We also have here a Tesla that has a perception control system on it in the form of Autopilot. It's using a monocular camera, this is the hardware version 1. It's making decisions based on this single video stream producing steering commands. And we'll look at two systems arguing today, Autopilot arguing against a neural network and we'll see what comes out. In this concept, Tesla Autopilot is the primary AI system and the end-to-end neural network is the secondary AI system. And the disagreement between the two is used to detect challenging situations and seek human driver supervision. It is important to clarify that this is not a criticism of Autopilot. Of the two, it is by far the superior perception control system. The question is whether the argument between the two systems can create transparency that leverage the human driver as a supervisor of challenging driving scenarios. Scenarios that may have not otherwise been caught by Autopilot alone. This is a general framework for supervision of black box AI systems that we hope can help save human lives. In the paper accompanying this video, we show that we can predict driver-initiated disengagement of Autopilot with a simple threshold on the disagreement of steering decisions. We believe this is a very surprising and powerful result that hopefully may be useful for human supervision of any kind of AI system that operates in the real world and makes decisions where errors may result in loss of human life. A quick note that we use the intensity of red color on the disagreement detected text as the visualization of disagreement magnitude. In retrospect, this is not an effective visualization because visually it looks like the two systems are constantly disagreeing. They are not. The intent of the on-road demo is to show successful real-time operation of the Argue Machines framework. The paper that goes along with this approach, on the other hand, is where we show the predictive power of this approach on large-scale naturalistic data. Inside the car, we have a screen over the center stack and a Jetson TX2 with a camera on top of it. The camera is feeding a video stream into the Jetson. On the Jetson is a neural network that's predicting the steering command, taking in end-to-end the video stream from the forward roadway and as an output for the neural network giving a steering command. That's being shown as pink on this display. The pink line is the steering suggested by the neural network. Cyan line is the steering of the car, of the Tesla that we're getting from the CAN bus. When I move the steering wheel around, we see that live in real-time mapped on this graphic here showing in cyan the steering position of the car. Up top is whenever the two disagree significantly, the disagreement detected red sign appears showing that there's a disagreement. I'll demonstrate that on road. We're now driving on the highway with the Tesla being controlled by autopilot. The Jetson TX2 on the dashboard with a camera plugged in has a neural network running on it end-to-end. The input to the neural network is a sequence of images and the output is steering commands. Now there's two perception control systems working here. One is autopilot, the other one is an end-to-end neural network. Both the steering commands from both are being visualized on the center stack here. In pink is the output from the neural network, in cyan is the output from autopilot. And whenever there is some disagreement or a lot of disagreement, up on top there's a disagreement detected text that becomes more intensely red the greater the disagreement. At the bottom of the screen is the input to the neural network that is a sequence of images that are subtracted from each other capturing the temporal dynamics of the scene. All right, so why is this interesting? There's two perception control systems, two AI systems taking in the external world using a monocular camera and making a prediction, making steering commands to control the vehicle. Now whenever those two systems disagree, that's interesting for many reasons. One, the disagreement is an indicator that from a visual perspective, from a perception perspective the situation is challenging for those systems. Therefore you might want to bring the driver's attention to the situation so they take control back from the vehicle. It's also interesting for validating systems. So if you propose a new perception control system, you can imagine putting it into a car to go along with autopilot or with other similar systems to see how well that new system works with autopilot when it disagrees, when it doesn't. And the disagreement from the computer vision aspect is also really interesting for detecting edge cases. So the challenging thing about driving or for building autonomous vehicles is that most of the driving is really boring. The interesting bits happen rarely. So one of the ways to detect those interesting bits, the edge cases, is to look at the disagreement between these perception systems, to look at cases when the two perception systems diverge and therefore they struggle with that situation. Finally, when the driver is controlling and takes control of the vehicle, which I am doing now, and when my steering decisions, my turning of the steering wheel is such that the neural network disagrees, it perhaps means that I am either distracted or the situation is visually challenging, therefore I should pay extra attention. So it makes sense for the system to warn you about that situation. Now the interesting thing about Tesla and the autopilot system is that if we instrument a lot of these vehicles, as we have, we've instrumented 20 Teslas as part of the MIT Autonomous Vehicle Study and are collecting month after month, year after year now, data, video in and video out, we can use that data to train better systems, to train perception systems, control, motion planning, and the end-to-end network that we're showing today. We have the large-scale data to train the learning-based perception and control algorithms. Now an important thing to mention is that these systems were designed to work on the highway, at highway speeds. So the kind of disagreement it's trained to detect is disagreement between autopilot and the neural network in highway situations. So the visual characteristics of lane markings deteriorating or construction zones and so on. Now the details, and if you're interested in more, can be found in a paper titled Arguing Machines.


Exponential Progress of AI: Moore's Law, Bitter Lesson, and the Future of Computation

This video is looking at exponential progress for artificial intelligence from a historical perspective and anticipating possible future trajectories that may or may not lead to exponential progress of AI. At the center of this discussion is a blog post called The Bitter Lesson by Rich Sutton, which ties together several different concepts, specifically looking at the role of computation in the progress of artificial intelligence and computer science in general. This blog post and the broader discussion is part of the AI Paper Club on our Discord server. If you want to join the discussion, everyone is welcome. Link is in the description. So I'd like to first discuss the argument made in The Bitter Lesson by Rich Sutton that discusses the role of computation in the progress of artificial intelligence, and then I'd like to look into the future and see what are the possible ideas that will carry the flag of exponential improvement in AI, whether it is in computation with the continuation of Moore's Law or a bunch of other ideas in both hardware and software. So, The Bitter Lesson. The basic argument contains several ideas. The central idea is that most of the improvement in artificial intelligence over the past 70 years has occurred due to the improvement of computation versus improvement in algorithms. And when I say improvement of computation, I mean Moore's Law, transistor count doubling every two years. And so it wasn't the innovation in the algorithms, but instead the same brute force algorithms that were sufficiently general and were effective at leveraging computation were the ones associated with successful progress of AI. So, put another way, general methods that are automated and can leverage big compute are better than specialized, fine-tuned, human expertise injected methods that leverage small compute. And when I say small compute, I'm referring to any computational resources available today, because with the exponential growth of computational resources over the past many decades with Moore's Law, basically anything you have today is much smaller than anything you'll have tomorrow. That's how exponential growth works. And looking from yet another perspective of human expertise, human knowledge injection, AI that discovers a solution by itself is better than AI that encodes human expertise and human knowledge. Rich Sutton also in his blog post argues that the two categories of techniques that were most capable of leveraging massive amounts of computation are learning techniques and search techniques. Now, by way of example, you can think of search techniques as the ones that were used to beat Garry Kasparov, IBM Deep Blue in the game of chess. These are these brute force search techniques that were criticized at the time for being for their brute force nature. And the same, I would say, is the brute force learning techniques of Google Deep Mind that beat the world champion at the game of Go. Now, the reason I call self-play mechanism brute force is because the reinforcement learning methods of today are fundamentally wasteful in terms of how efficient they are at learning. And that's the critical thing about brute force methods that Rich Sutton argues, that these methods are able to leverage computation. So they may not be efficient or they may not have the kind of cleverness that human expertise might provide, but they're able to leverage computation. And therefore, as computation exponentially grows, they're able to outperform everything else. And the blog post provides a few other examples of speech recognition that started with heuristics that went to the statistical methods of HMMs. And finally, now the recent big successes in speech recognition and natural language processing in general with neural networks. And the same in the computer vision world, the fine-tuned human expertise feature selection of everything that led up to SIFT. And then finally, with the big image net moment and showed that neural networks able to discover automatically the hierarchy of features required to successfully complete different computer vision tasks. I think this is a really thought-provoking blog post because it suggests that when we develop methods, whether it's in the software or the hardware, we should be thinking about long-term progress, the impact of our ideas, not for this year, but in five years, 10 years, 20 years from now. So when you look at the progress of the field from that perspective, there's certain things that are not gonna hold up. And Rich argues that actually majority of things that we work on in the artificial intelligence community, especially in the academic circles, is too focused on the injection of human expertise, because that is how you're able to get incremental improvement that you can publish on and then sort of add publications to your resume. You have career success and progress, and you feel better because you're injecting your own expertise into the system as opposed to having these, quote-unquote, dumb brute force approaches. I think there is something from a human psychologist's perspective about brute force methods just not being associated with innovative, brilliant thinking. In fact, if you look at the brute force search or the brute force learning approaches, I think at the time, if we look at it today, the publications and the science associated with these methods, I think, did not get the recognition they deserve. They got a huge amount of recognition because of the publicity of the actual matches they were involved in, but the scientific community, I don't think, gave enough respect to the scientific contribution of these general methods. And it's an interesting, thought-provoking idea. I would love to see that when people publish papers today, maybe almost have like a section where they describe if computation was able to be scaled by 10x, by 100x, looking five, 10 years down the future, will this method hold up to that scaling? Is it scalable? Is this method fundamentally scalable? I think that's a really good question to ask. Is this something that would benefit, at least scale linearly with compute? That to me is a really interesting and provocative question that all graduate students and faculty and researchers should be asking themselves about the methods they propose. Overall, I think this blog post serves as a really good thought experiment because I think we often give a disproportionate amount of respect, I think, to algorithmic improvement and not enough respect when we look at the big arc of progress in artificial intelligence to computation, to the improvement of computation, whether that's talking about just the raw transistor count or other aspects of improving the computational process. If we look at this blog post as it is, you can, of course, raise some contentions and some opposing views. First, the blog post doesn't mention anything about data. And in terms of learning, if we look at the kind of learning that's been really successful for real-world applications, it's supervised learning, meaning it's learning that uses human annotation of data. And so, the scalability of learning methods with computation also needs to be coupled with the scalability of being able to annotate data. And it's unclear to me how the scalability with computation is naturally scaled with annotation of data. Now, I'll propose some ideas there later on. I think they're super exciting in the space of active learning, but in general, those two are not directly linked, at least in the argument of the blog post. So, to be fair, the blog post is looking at the historical context of progress in AI. And so, in that way, it's looking at methods that leverage the exponential improvement in raw computation power as observed by Moore's law. But of course, you can also generalize this blog post to say, really, any methods that hook onto any kind of exponential improvement, so computational improvement at any level of abstraction, including, as we'll later talk about, at the highest level of abstraction of deep learning or even meta-learning. As long as these methods can hook onto the exponential improvement in these contexts, it's able to ride the wave of exponential improvement. It's just that the main exponential improvement we've seen in the past 70 years is that of Moore's law. Another contention that I personally don't find very convincing is when you say that learning or search methods don't require much human expertise, well, they kind of do. You still need to do some fine-tuning. There's still a bunch of tricks, even though it's at the higher level. And the reason I don't find that very convincing is because I think the amount and the quality of human expertise required for deep learning methods is just much smaller and much more directed than in classical machine learning methods, or especially in heuristic-based methods. Now, one big, I don't know if it's a contention, but it's an open question for me. It's often useful when we try to chase the creation of intelligent systems to think about the existence proof that we have before us, which is our own brain. And I think it's fair to say that the process that created the intelligence of our brain is the evolutionary process. Now, the question as it relates to the blog post, to me, is whether evolution falls under the category of search methods or of learning methods, or some mix of the two. Is it a subset, a combination of the two, or is it a superset? Or is it a completely different kind of thing? I think that's a really interesting and really difficult question for me that I think about often. What is the evolutionary process in terms of our best performing methods of today? Of course, there's genetic algorithms, there's genetic programming. These are very kind of specialized evolution-inspired methods. But the actual evolutionary process that created life on Earth, that created intelligent life on Earth, how does that relate to the search and the learning methods that leverage computation so well? It does seem from a 10,000 foot level that the evolutionary process, whether it relates to search or learning, is the kind of process that would leverage computation very well. In fact, from a human-centric perspective of a human that values his life, the evolutionary process seems to be very brute force, very wasteful. So in that way, perhaps it does have similarities to the brute force search and the brute force learning self-play mechanisms that we see so successfully like successfully leveraging computation. So to summarize the argument made in the bitter lesson, the exponential progress of AI over the past 60, 70 years was coupled to the exponential progress of computation with Moore's law and the doubling of transistors. And as we stand today, the open question then is, if we look at the possibility of future exponential improvement of artificial intelligence, will that be due to human ingenuity, so invention of new, better, clever algorithms, or will it be due to improvement increase in raw computational power? Or I think a distinct option is both. I'll talk about my bets for this open question at the end of the video, but at this time let's talk about some possible flag bearers of exponential improvement in AI in the coming years and decades. First, let's look at Moore's law, which is an observation, it's not a law. It has two meanings, I would say. One is the precise technical meaning or the actual meaning, which is the doubling of transistor count every two years. Or you can look at it from a financial perspective and look at dollars per flop decreasing exponentially. This allows you to compare CPUs and GPUs and different kinds of processes together on the same plot. And the second meaning, I think that's very commonly used in general public discourse, is the general sense that there's an exponential improvement of computational capabilities. And I'm actually personally okay with that use of Moore's law as we generalize across different technologies and different ideas to use Moore's law to mean the general observation of the exponential improvement of computational capabilities. So the question that's been asked many times over the past several decades, is Moore's law dead? I think has two camps. Majority of the industry says yes, and then there's a few folks like Jim Keller of now Intel. I did a podcast with him, I highly recommend it. Says no, because actually when we look at the size of transistors, we have not yet hit the theoretical physics limit of how small we can get with the transistors. Now it gets extremely difficult for many reasons to get a transistor that starts approaching the size of a single nanometer in terms of power, in terms of error correction, in terms of what's required for actual fabrication of that kind of scale of thing. But the theoretical physics limit hasn't been reached, so Moore's law can continue. But also if we look at the broader definition of just exponential improvement of computational capabilities, there's a lot of other candidates, flag bearers, as I mentioned, that could carry that exponential flag forward. Let's look at them now. One is the global compute capacity. Now this one is really interesting, and I actually had trouble finding good data to answer the very basic question. I don't think that data exists. The question being, how much total compute capacity is there in the world today? And looking historically, how has it been increasing? There's a few kind of speculative studies, some of them I cite here. They're really interesting, but I do wish there was a little bit more data. I'm actually really excited by the potential of this in a way that is completely unexpected potentially in the future. Now what are we talking about? We're talking about the actual number of general compute capable devices in the world. One of the really powerful compute devices that appeared over the past 20 years is gaming consoles. The other one, I mean past maybe 10 years, is smartphone devices. Now if we look into the future, the possibility, first of all, smartphone devices growing exponentially, but also the compute surface across all types of devices. So if we think of Internet of Things, every object in our day-to-day life gaining computational capabilities means that that computation can be then leveraged in some distributed way. And then we can look at an entirely other dimension of devices that could explode exponentially in the near or the long-term future of virtual reality and augmented reality devices. So currently both of those type of devices are not really gaining ground, but it's very possible that in the future a huge amount of computational resources become available for these virtual worlds, for augmented worlds. So I'm actually really excited by the potential things that we can't yet expect in terms of the exponential growth of actual devices which are able to do computation. The exponential expansion of compute surfaces in our world. That's really interesting. That might force us to rethink the nature of computation, to push it more and more towards distributed computation. So speaking of distributed computation, another possibility of exponential growth of AI is just massively parallel computation. So increasing CPUs, GPUs, stacking them on top of each other and increasing that stack exponentially. Now you run up against Amdahl's Law and all kinds of challenges that characterize that as you increase the number of processors it becomes more and more difficult. There's a diminishing return in terms of the compute speedup you gain when you add more processors. Now if we can overcome that Amdahl's Law, if we can successfully design algorithms that are perfectly parallelizable across thousands, maybe millions, maybe billions of processors, then that changes the game. That changes the game and allows us to exponentially improve the AI algorithms by exponentially increasing the number of processors involved. Another dimension of approaches that contribute to exponential growth of AI is devices that are at their core parallelizable. More general devices like the GPUs, graphic processing units, or ones that are actually specific to neural networks or whatever the algorithm is, which is ASICs, application-specific integrated circuits. The TPU by Google being an excellent example of that where there's a bunch of hardware design decisions made that are specialized in machine learning allowing it to be much more efficient in terms of both energy use and the actual performance of the algorithm. Now another big space that I could probably divide in many slides of flag bearers for exponential AI growth is changing the actual nature of computation. So a completely different kind of computation. So two exciting candidates shown here. One is quantum computing and the other is neuromorphic computing. You're probably familiar with quantum computers with qubits versus classical computers that only represent zeros and ones. Qubits also represent zero ones and the superposition of zero ones. So there is a lot of excitement and development in this space, but it's I would say very early days, especially considering general methods that are able to leverage computation. First, it's really hard to build large quantum computers, but even if you can, second, it's very hard to build algorithms that significantly outperform the algorithms on classical computers, especially in the space of artificial intelligence with machine learning. Then there's another space of computing called neuromorphic computing that draws a lot of inspiration, a lot more inspiration from the human brain. Specifically, it models spiking networks. Now, the idea I think with neuromorphic computing is it's able to perform computation in a much more efficient way. One of the characteristic things about the human brain versus our computers today is it's much more energy efficient than our computers for the same amount of computation. So neuromorphic computing is trying to achieve the same kind of performance. Again, very early days, and it's unclear how you can design general algorithms that reach even close to the same performance of machine learning algorithms, for example, run on classical computers of today with GPUs or ASICs. But of course, if you want to have a complete shift, like a phase shift in terms of the way we approach computation and artificial intelligence, a computer which functions in a completely different way than our classical computers is something that might be able to achieve that kind of phase shift. Now, another really exciting space of methodologies is brain-computer interfaces. In the short term, it's exciting because it may help us understand and treat neurological diseases. But in the long term, the possibility of leveraging human brains for computation, now that's a weird way to put it, but we have a lot of compute power in our brains. We're actually doing a lot of computation, each one of us, every living moment of our lives. And the unfortunate thing is we're not able to share the outcome of that computation with the world. We share it with a very low bandwidth channel. So not from an individual perspective, but from a perspective of society, it's interesting to consider if we can create a high bandwidth connection between a computer and a human brain, then we're able to leverage the computation the human brain already provides to be able to add to the global compute capacity available to the world. That's a really interesting possibility. The way I put it is a little bit ineloquent, but I think oftentimes when you talk about brain-computer interfaces, the way, for example, Elon Musk talks about Neuralink, it's often talked about from an individual perspective of increasing your ability to communicate with the world and receive information from the world. But if you look from a society perspective, you're now able to leverage the computational power of human brains, either the empty cycles or just the actual computation we'll perform to survive in our daily lives, able to leverage that to add to the global compute surface, the global capacity available in the world. And the human brain is quite an incredible computing machine. So if you can connect into that and share that computation, I think incredible exponential growth can be achieved without significant innovation on the algorithm side. Now, a lot of the previous things we talked about was more on the hardware side, or at least very low-level software side of exponential improvement. I really like the recent paper from Danny Hernandez and others at OpenAI called Measuring the Algorithmic Efficiency of Neural Networks that looks at different kind of domains of machine learning and deep learning and shows that the efficiency of the algorithms involved has increased exponentially, actually far outpacing the improvement of Moore's law. So if we look at sort of the main one, starting from the ImageNet moment with AlexNet neural network on the computer vision task, if we look at AlexNet in 2012, and then EfficientNet in 2019, and all the networks that led up to it, the improvement is, it takes 44 times less computation to train a neural network to the level of AlexNet. So if we look at Moore's law in the same kind of span of time, Moore's law would only observe a 11 times decrease in the cost. And the paper highlights also the same kind of exponential improvements in natural language, even in reinforcement learning. So the open question raises is, maybe with deep learning, when we look at these learning methods, that the algorithmic process may yield more gains than hardware efficiency improvements. That's a really exciting possibility, especially for people working in the field, because that means human ingenuity will be essential for the continuation exponential improvement of AI. All that said, whether AI will continue to improve exponentially is an open question. I want to sort of place a flag down. I don't know, I change my mind every day on most things, but today I feel AI will continue to improve exponentially. Now, exponential improvement is always just a stack of S-curves. It's not a single sort of nice exponential improvement. It's always kind of big breakthrough innovation on top of each other that level out, and then a new innovation comes along. So the other open question is, where will the S-curves that feed the exponential come from, most likely, out of the candidates that we discussed? So for me, the innovation in algorithms and innovation in supervised learning in how data is organized and leveraged in that learning process. So the efficiency of learning and search processes, especially with active learning. There's a lot of terminology swimming around that's a little bit loose. So folks like Yann LeCun is really excited by self-supervised learning. And you can think of it, you can define it however the heck you want, but you can think of self-supervised learning as leveraging human annotation very little, leveraging human expertise very little. So that's looking at mechanisms that are extremely powerful, like self-play and reinforcement learning, or in a video computer vision context, you have the idea would be that you would have an algorithm just watches YouTube videos all day. And from that is able to figure out the common sense reasoning, the physics of the world, and so on in an unsupervised way, just by observing the world. Now, for me, I'm excited by active learning much more, which is the optimization of the way you select the data from which you learn from. You say, I'm going to learn, I'm going to become increasingly efficient, I'm going to learn from smaller and smaller data sets, but I'm going to be extremely selective about which part of the data I look at and annotate or ask human supervision over. I think a really simple, but exciting example of that in the real world is what the Tesla Autopilot team is doing by creating this pipeline, where there's a multitask learning framework, where there's a bunch of different tasks. And there's a pipeline for discovering edge cases for each of the tasks, and you keep feeding back the edge cases discovered, and then you keep feeding those edge cases back and retraining the network over and over for each of the different tasks. And then there's a shared part of the network that keeps learning over time. And so there's this active learning framework that just keeps looping over and over and gets better and better over time as it continually discovers and learns from the edge cases. I think that's a very simple example of what I'm talking about, but I'm really excited by that possibility. So innovation and learning in terms of its ability to discover just the right data to improve its performance. And I believe the performance of active learning can increase exponentially in the coming years. Another source of ESCO is that I'm really excited about, but it's very unpredictable. Is the general expansion of the compute surfaces in the world. So it's unclear, but it's very possible that the Internet of Things, IoT eventually will come around where there's smart devices just everywhere. And we're not talking about Alexa here or there. We're talking about just everything is a compute surface. I think that's a really exciting possibility of the future. It may be far away, but I certainly hope to be part of the people that tries to create some of that future. So it's an exciting out there possibility. To me, the total game changer that we don't expect that seems crazy, especially when Elon Musk talks about in the context of Neuralink is brain computer interfaces. I think that's a really exciting technology for helping understand and treat neurological diseases. But if you can make it work to where a computer can communicate in a high bandwidth way with a brain, a two-way communication, that's going to change the nature of computation and the nature of artificial intelligence completely. If an AI system can communicate with the human brain and each leveraging each other's computation, I don't think we can even imagine the kind of world that that would create. That's a really exciting possibility. But at this time, it's shrouded in uncertainty. It seems impossible and crazy. But if anyone can do it, it's the folks working on brain computer interfaces and certainly folks like Elon Musk and the brilliant engineers working at Neuralink. When you talk about exponential improvement in AI, the natural question that people ask is, when is the singularity coming? Is it 2030, 2045, 2050, a century from now? Again, I don't have firm beliefs on this, but from my perspective, I think we're living through the singularity. I think the smoothness of the exponential improvement that we've been a part of in artificial intelligence is sufficiently smooth to where we don't even sense the madness of the curvature of the improvement that we've been living through. I think it's been just incredible. Every new stage, we just so quickly take for granted. I think we're living through the singularity, and I think we'll continue adapting incredibly well to the exponential improvement of AI. I can't wait to what the future holds. That was my simple attempt to discuss some of the ideas by Rich Sutton in his blog post, The Bitter Lesson, and the broader context of exponential improvement in AI and the role of computation and algorithmic improvement in that exponential improvement. This has been part of the AI Paper Club on our Discord server. You're welcome to join anytime. It's not just AI. It's people from all walks of life, all levels of expertise, from artists to musicians to neuroscientists to physicists. It's kind of an incredible community, and I really enjoyed being part of it. It's, I think, something special. So join us anytime. If you have suggestions for papers we should cover, let me know. Otherwise, thanks for watching, and I'll see you next time.


Chris Urmson: Is Lidar a Crutch? | AI Podcast Clips

You said LiDAR came into the game early on and it's really the primary driver of autonomous vehicles today as a sensor. So how important is the role of LiDAR in the sensor suite in the near term? So I think it's, I think it's essential. You know, I believe, but I also believe the cameras are essential and I believe the radar is essential. I think that you really need to use the composition of data from these different sensors if you want the thing to really be robust. The question I want to ask, let's see if we can untangle it, is what are your thoughts on the Elon Musk provocative statement that LiDAR is a crutch? That is a kind of, I guess, growing pains and that much of the perception task can be done with cameras. So I think it is undeniable that people walk around without lasers in their foreheads and they can get into vehicles and drive them. And so there's an existence proof that you can drive using passive vision. No doubt, can't argue with that. In terms of sensors. Yeah. So there's proof. In terms of sensors, right. There's an example that we all go do it, many of us every day. In terms of LiDAR being a crutch, sure. But in the same way that the combustion engine was a crutch on the path to an electric vehicle, in the same way that any technology ultimately gets replaced by some superior technology in the future. And really the way that I look at this is that the way we get around on the ground, the way that we use transportation is broken. And that we have this, what was, I think the number I saw this morning, 37,000 Americans killed last year on our roads. And that's just not acceptable. And so any technology that we can bring to bear that accelerates this self-driving technology, coming to market and saving lives is technology we should be using. And it feels just arbitrary to say, well, I'm not okay with using lasers because that's whatever, but I am okay with using an eight megapixel camera or a 16 megapixel camera. These are just bits of technology and we should be taking the best technology from the tool bin that allows us to go and solve a problem. The question I often talk to, well, obviously you do as well, to the automotive companies. And if there's one word that comes up more often than anything, it's cost and trying to drive costs down. So while it's true that it's a tragic number, the 37,000, the question is what, and I'm not the one asking this question because I hate this question, but we want to find the cheapest sensor suite that creates a safe vehicle. So in that uncomfortable trade-off, do you foresee LIDAR coming down in cost in the future or do you see a day where level four autonomy is possible without LIDAR? I see both of those, but it's really a matter of time. And I think really, maybe I would talk to the question you asked about, you know, the cheapest sensor. I don't think that's actually what you want. What you want is a sensor suite that is economically viable. And then after that, everything is about margin and driving cost out of the system. What you also want is a sensor suite that works. And so it's great to tell a story about how it would be better to have a self-driving system with a $50 sensor instead of a $500 sensor. But if the $500 sensor makes it work and the $50 sensor doesn't work, who cares? So long as you can actually have an economic, there's an economic opportunity there. And the economic opportunity is important because that's how you actually have a sustainable business and that's how you can actually see this come to scale and be out in the world. And so when I look at LIDAR, I see a technology that has no underlying fundamental expense to it. It's going to be more expensive than an imager because CMOS processes or FAB processes are dramatically more scalable than mechanical processes, but we still should be able to drive cost down substantially on that side. And then I also do think that with the right business model, you can absorb more, you know, certainly more cost on the bill of materials. Yeah. If the sensor suite works, extra value is provided, thereby you don't need to drive cost down to zero. That's basic economics.


Stuart Russell: The Control Problem of Super-Intelligent AI | AI Podcast Clips

Let's just talk about maybe the control problem. So this idea of losing ability to control the behavior in our AI system. So how do you see that? How do you see that coming about? What do you think we can do to manage it? Well so it doesn't take a genius to realize that if you make something that's smarter than you, you might have a problem. You know, Alan Turing wrote about this and gave lectures about this in 1951. He did a lecture on the radio and he basically says, you know, once the machine thinking method starts, very quickly they'll outstrip humanity. And you know, if we're lucky we might be able to, I think he says, we may be able to turn off the power at strategic moments, but even so our species would be humbled. And actually he was wrong about that, right? If it's a sufficiently intelligent machine, it's not going to let you switch it off. It's actually in competition with you. So what do you think is meant, just for a quick tangent, if we shut off this superintelligent machine that our species will be humbled? I think he means that we would realize that we are inferior, right? That we only survive by the skin of our teeth because we happen to get to the off switch. You know, just in time, you know, and if we hadn't, then we would have lost control over the earth. So do you, are you more worried when you think about this stuff about superintelligent AI or are you more worried about super powerful AI that's not aligned with our values? So the paperclip scenarios kind of. I think, so the main problem I'm working on is the control problem, the problem of machines pursuing objectives that are, as you say, not aligned with human objectives. And this has been the way we've thought about AI since the beginning. You build a machine for optimizing and then you put in some objective and it optimizes, right? And, you know, we can think of this as the King Midas problem, right? Because if, you know, so King Midas put in this objective, right? Everything I touch should turn to gold and the gods, you know, that's like the machine, they said, okay, done. You now have this power. And of course his food and his drink and his family all turned to gold and then he dies of misery and starvation. And this is, you know, it's a warning, it's a failure mode that pretty much every culture in history has had some story along the same lines. You know, there's the genie that gives you three wishes and, you know, third wish is always, you know, please undo the first two wishes because I messed up. And you know, when Arthur Samuel wrote his chess, his checker playing program, which learned to play checkers considerably better than Arthur Samuel could play and actually reached a pretty decent standard. Norbert Wiener, who was one of the major mathematicians of the 20th century, he's sort of the first father of modern automation control systems. He saw this and he basically extrapolated, you know, as Turing did and said, okay, this is how we could lose control. And specifically that we have to be certain that the purpose we put into the machine is the purpose which we really desire. And the problem is, we can't do that. You mean it's very difficult to encode, to put our values on paper is really difficult, or you're just saying it's impossible? I hope the line is right between the two. So theoretically it's possible, but in practice it's extremely unlikely that we could specify correctly in advance the full range of concerns of humanity. You talked about cultural transmission of values, I think is how humans to human transmission of values happens, right? Well we learn, yeah, I mean, as we grow up we learn about the values that matter, how things should go, what is reasonable to pursue and what isn't reasonable to pursue. You think machines can learn in the same kind of way? Yeah, so I think that what we need to do is to get away from this idea that you build an optimizing machine and then you put the objective into it. Because if it's possible that you might put in a wrong objective, and we already know this is possible because it's happened lots of times, right? That means that the machine should never take an objective that's given as gospel truth. Because once it takes the objective as gospel truth, then it believes that whatever actions it's taking in pursuit of that objective are the correct things to do. So you could be jumping up and down and saying, no, no, no, no, you're going to destroy the world, but the machine knows what the true objective is and is pursuing it, and tough luck to you. And this is not restricted to AI, right? This is, I think, many of the 20th century technologies, right? So in statistics, you minimize a loss function. The loss function is exogenously specified. In control theory, you minimize a cost function. In operations research, you maximize a reward function, and so on. So in all these disciplines, this is how we conceive of the problem. And it's the wrong problem, because we cannot specify with certainty the correct objective, we need uncertainty, we need the machine to be uncertain about what it is that it's supposed to be maximizing. It's objective. It's my favorite idea of yours. I've heard you say somewhere, well, I shouldn't pick favorites, but it just sounds beautiful of we need to teach machines humility. Yeah, I mean, that's... That's a beautiful way to put it. I love it. That they're humble, in that they know that they don't know what it is they're supposed to be doing, and that those objectives, I mean, they exist. They're within us, but we may not be able to explicate them. We may not even know how we want our future to go. Right? Exactly. So a machine that's uncertain is going to be deferential to us. So if we say, don't do that, well, now the machine's learned something a bit more about our true objectives, because something that it thought was reasonable in pursuit of our objective turns out not to be, so now it's learned something. So it's going to defer, because it wants to be doing what we really want. And that point, I think, is absolutely central to solving the control problem. And it's a different kind of AI when you take away this idea that the objective is known, then, in fact, a lot of the theoretical frameworks that we're so familiar with, you know, Markov decision processes, goal-based planning, you know, standard games research, all of these techniques actually become inapplicable. And you get a more complicated problem, because now the interaction with the human becomes part of the problem, because the human, by making choices, is giving you more information about the true objective, and that information helps you achieve the objective better. And so that really means that you're mostly dealing with game-theoretic problems, where you've got the machine and the human and they're coupled together, rather than a machine going off by itself with a fixed objective. Which is fascinating on the machine and the human level, that when you don't have an objective, means you're together coming up with an objective. I mean, there's a lot of philosophy that, you know, you could argue that life doesn't really have meaning. We together agree on what gives it meaning, and we kind of culturally create things that give why the heck we are on this earth anyway. We together as a society create that meaning, and you have to learn that objective. And one of the biggest, I thought that's where you were going to go for a second, one of the biggest troubles we run into outside of statistics and machine learning and AI, in just human civilization, is when you look at, I came from, I was born in the Soviet Union, and the history of the 20th century, we ran into the most trouble, us humans, when there was a certainty about the objective. And you do whatever it takes to achieve that objective, whether you're talking about Germany or communist Russia. You get into trouble with humans. Yeah, and I would say with, you know, corporations, in fact, some people argue that, you know, we don't have to look forward to a time when AI systems take over the world. They already have, and they're called corporations. Right, that corporations happen to be using people as components right now. But they are effectively algorithmic machines, and they're optimizing an objective, which is quarterly profit that isn't aligned with overall well-being of the human race, and they are destroying the world. They are primarily responsible for our inability to tackle climate change. So I think that's one way of thinking about what's going on with corporations. But I think the point you're making is valid, that there are many systems in the real world where we've sort of prematurely fixed on the objective and then decoupled the machine from those that it's supposed to be serving. And I think you see this with government, right, government is supposed to be a machine that serves people. But instead it tends to be taken over by people who have their own objective and use government to optimize that objective regardless of what people want.


Training for David Goggins - 4x4x48 Challenge | Lex Fridman

I just finished a six mile run in good old below freezing Boston weather. A bit too dark, a bit too icy, but probably good for the mind and soul. So I thought it'd be a good time to make this video and say that for the second year now, Mr. David Goggins is doing the 4x4x48 challenge at 8 p.m. Pacific on Friday, March 5th. That's running 48 miles in 48 hours by doing 4 miles every 4 hours. But this time, friends, him and I are doing it together, in person. Just him and I, probably in the middle of a desert somewhere, probably with just one of us returning home alive. And I think you know which one it is. We'll do a podcast before and after. Also, he'll go live on Instagram at the beginning of every four hour leg. I've not been training much at all, to be honest, and this video is a quick explanation of how I'm training for this challenge, starting today, in a way that gives me a reasonable fitness base, while still letting me be productive in all the different things I have going on. I took on this challenge with David on a bit of a leap of faith and a bit of madness in order to test myself mentally and physically. But also because I often take this kind of leap into things that seem very stupid at the time. But when all is said and done, I almost always become a better person because of it. So if you're out there a little bit out of shape, like me, I'm hoping you join me in getting back to exercising this month and perhaps taking on the challenge along with me, along with David, along with us. If you're not a runner, you can just do some sort of exercise for 40 to 60 minutes every four hours instead. If you want to get involved, check links in the description for more information, I think. But mostly just tag me and David if you're stepping your fitness up in any kind of way this month as you train, and if you're participating in the challenge. I know it'll be inspiring to me to see anybody who's just getting out there, since, to be honest, this would be a ridiculously big challenge for me with everything I have going on. So I can probably use all the inspiration you got. Okay, so training-wise, check out the Google sheet of my training in the description, but it's pretty basic. The focus, as usual, is to establish a ritual, a habit of daily exercise, and then increasing duration a little bit every week. So maybe let me first speak to the principle of that. I know that for muscle building and for increasing race performance, it's good to mix up workouts from long to short sprints, that kind of thing, with rest days, and just mixing it up throughout the week. But I don't know about anyone else, but for me, that has only really worked when I'm already in really good shape. What for me has been more beneficial, more effective, is to focus on building up the habit of exercise. Every day, the same thing. The habit and ritual of it lessens the need and the reliance on motivation, on day-to-day motivation. So for me, the training is easily integrated into the day. It has two parts. One is cardio, one is bodyweight exercises, and the schedule is pretty basic. I run a medium distance every day, Monday through Friday, and a long distance run on Saturday, and then rest on Sunday. So specifically for me, that means week one, what I'm doing now, six miles each day. Then week two is seven miles, week three is eight miles, week four is nine miles. So we're about four and a half weeks out from the challenge. I think two or three days before the challenge, I'll take complete rest days. So my recommendation to you for what it's worth is to pick a cardio exercise that you can stick to on a daily basis. So running, cycling, swimming, even walking, and just build the habit. And do an intensity and duration that doesn't break your body down, but it's still challenging. Just keeps challenging you, but not too much. Not causing injury, not causing over exertion, over exhaustion. On the bodyweight exercise side, for me, that's six days of exercise. That includes push-ups, pull-ups, bodyweight squats, and these ab roller things for the abs, for the core. I do it in rounds of 20 push-ups, 10 pull-ups, 10 ab rollers, and 10 squats. My recommendation, again, take it with a grain of salt, is if you do bodyweight exercises, pick numbers within the round that allows you to do timed rounds without much rest in between. Maybe no more than one minute's rest. And do essentially a full body workout, but not to exhaustion. And I know a lot of people are going to say, you know, rest days are really essential. You want to alternate upper body, lower body, push-pull, all those kinds of things. All of that is true when you're trying to achieve maximum performance. What I find for me, in a busy life, when I have a million things going on, building the habit, building the ritual of exercise, and not pushing myself to exhaustion, is the most effective way to stay healthy and just to feel good, and make sure that exercise stays part of my life. You probably didn't ask me, but that's my recommendation if you're starting from being kind of out of shape to building up shape for doing something like that 48 mile challenge. But you should also definitely read a lot of different advice that's out there and integrate it in a way that works for your own schedule, for your own body, all that kind of stuff. On the diet side, I'm eating clean as usual, just meat and veggies. The veggies are mostly cauliflower and green beans, my two favorites. And on the meat side is ground beef, actually from Belcampo Farms. They sent me a ton of meat and it's delicious. On the supplement side, I'm doing the usual athletic greens every morning, plus fish oil and electrolytes before and after the run. You should definitely check out Athletic Greens and Belcampo Farms. They are both somehow amazingly now sponsors of the podcast that I host. After I posted about how much I love their stuff. And also check out cauliflower, especially in rice form. It's a game changer. So at least my training regimen is pretty simple. Run basically every day, body weight exercises every day. Don't overexert and gradually increase the duration of the exercise. And the rest is just in the mind. And I'm hoping I am mentally tough enough to not die with Dave Calkins. I thought to post this video, you know, hopefully to inspire others to step up their exercise game this month, to run, to cycle, all that kind of stuff. And maybe even join in on this crazy challenge. I think it's a really perfect balance of testing the body and mind, just being able to persevere through this 48 hour period. It's just long enough to where it's not this kind of shorter marathon run of suffering. You kind of have to suffer just a little bit to get through it. I mean, you kind of have to suffer just a little bit every four hours. It's honestly just a huge honor to be able to do this kind of thing with David Goggins. We were just supposed to do the podcast, but of course, as he does with everybody he meets, he pulls you in and challenges you to push yourself to your own limits to discover yourself. And I think that's kind of what this whole life is about, is to do difficult things and in the process, be able to discover something about yourself that you wouldn't be able to discover in any kind of way. There's some kind of magic in the challenge that allows you to put a mirror to yourself, to meet your demons, to overcome them, and then the rest of life becomes easy, or at least easier. The training in Boston is definitely a bit rough right now. It's been below freezing for many days in a row. So it's starting to feel a lot like Rocky IV, except in this version, the Russian is the out of shape underdog training in the snow, and it's the American who says, if he dies, he dies. So we'll see what happens. All of you all.


Occam's Razor (Marcus Hutter) | AI Podcast Clips

What is Occam's Razor? So Occam's Razor says that you should not multiply entities beyond necessity, which sort of if you translate it to proper English means, and you know, in the scientific context means that if you have two theories or hypotheses or models which equally well describe the phenomenon you're studying or the data, you should choose the more simple one. So that's just the principle? Yes. So that's not like a provable law perhaps? Perhaps we'll kind of discuss it and think about it, but what's the intuition of why the simpler answer is the one that is likelier to be more correct descriptor of whatever we're talking about? I believe that Occam's Razor is probably the most important principle in science. I mean, of course we lead logical deduction and we do experimental design, but science is about understanding the world, finding models of the world, and we can come up with crazy complex models which explain everything but predict nothing, but the simple model seem to have predictive power and it's a valid question why. And there are two answers to that. You can just accept it, that is the principle of science, and we use this principle and it seems to be successful. We don't know why, but it just happens to be. Or you can try, you know, find another principle which explains Occam's Razor. And if we start with the assumption that the world is governed by simple rules, then there's a bias to our simplicity and applying Occam's Razor is the mechanism to finding these rules. And actually in a more quantitative sense, and we come back to that later in case of somnolent deduction, you can rigorously prove that. You assume that the world is simple, then Occam's Razor is the best you can do in a certain sense. So I apologize for the romanticized question, but why do you think, outside of its effectiveness, why do you think we find simplicity so appealing as human beings? Why does E equals MC squared seem so beautiful to us humans? I guess mostly, in general, many things can be explained by an evolutionary argument. And, you know, there's some artifacts in humans which are just artifacts and not evolutionary necessary. But with this beauty and simplicity, it's, I believe, at least the core, is about, like science, finding regularities in the world, understanding the world, which is necessary for survival, right? You know, if I look at a bush, right, and I just see noise, and there is a tiger, right, and eats me, then I'm dead. But if I try to find a pattern, and we know that humans are prone to find more patterns in data than they are, you know, like the Mars face and all these things, but this bias towards finding patterns, even if they are non, but, I mean, it's best, of course, if they are, yeah, helps us for survival. Yeah, that's fascinating. I haven't thought really about the, I thought I just loved science, but indeed, in terms of just for survival purposes, there is an evolutionary argument for why we find the work of Einstein so beautiful. Maybe a quick, small tangent. Could you describe what Solomonov induction is? Yeah, so that's a theory which I claim, and Marcel Solomonov sort of claimed a long time ago that this solves the big philosophical problem of induction, and I believe the claim is essentially true, and what it does is the following. So, okay, for the picky listener, induction can be interpreted narrowly and widely. Narrow means inferring models from data, and widely means also then using these models for doing predictions, so prediction is also part of the induction. So I'm a little sloppy sort of with the terminology, and maybe that comes from Ray Solomonov being sloppy. Maybe I shouldn't say that. He can't complain anymore. So let me explain a little bit this theory in simple terms. So assume you have a data sequence. Make it very simple, the simplest one, say 1, 1, 1, 1, 1, and you see 100 1s. What do you think comes next? The natural answer, I'm gonna speed up a little bit. The natural answer is, of course, 1, okay? And the question is why, okay? Well, we see a pattern there, yeah? Okay, there's a 1, and we repeat it, and why should it suddenly after 100 1s be different? So what we're looking for is simple explanations or models for the data we have, and now the question is a model has to be presented in a certain language, in which language do we use? In science, we want formal languages, and we can use mathematics, or we can use programs on a computer, so abstractly on a Turing machine, for instance, or it can be a general-purpose computer. And there are, of course, lots of models. You can say maybe it's 100 1s, and then 100 0s, and 100 1s, that's a model, right? But there are simpler models. There's a model print1 loop that also explains the data, and if you push that to the extreme, you are looking for the shortest program, which, if you run this program, reproduces the data you have. It will not stop. It will continue, naturally, and this you take for your prediction, and on the sequence of 1s, it's very plausible, right, that print1 loop is the shortest program. We can give some more complex examples, like 1, 2, 3, 4, 5. What comes next? The short program is, again, you know, counter, and so that is, roughly speaking, how the Lomoff induction works. The extra twist is that it can also deal with noisy data, so if you have, for instance, a coin flip, say a biased coin which comes up head with 60% probability, then it will predict. It will learn and figure this out, and after a while, it predicts, oh, the next coin flip will be head with probability 60%, so it's the stochastic version of that. But the goal is, the dream is, always the search for the short program. Yes, yeah. Well, in Solomonoff induction, precisely what you do is, so you combine, so looking for the shortest program is like applying Opach's razor, like looking for the simplest theory. There's also Epicurus' principle, which says, if you have multiple hypotheses which equally well describe your data, don't discard any of them. Keep all of them around. You never know. And you can put that together and say, okay, I have a bias towards simplicity, but I don't rule out the larger models, and technically what we do is, we weigh the shorter models higher and the longer models lower, and you use a Bayesian technique. So you have a prior, and which is precisely two to the minus the complexity of the program, and you weigh all this hypothesis and take this mixture, and then you get also the stochasticity in. Yeah, like many of your ideas, that's just a beautiful idea of weighing based on the simplicity of the program. I love that. That seems to me maybe a very human-centric concept. It seems to be a very appealing way of discovering good programs in this world. You've used the term compression quite a bit. I think it's a beautiful idea. Sort of, we just talked about simplicity, and maybe science or just all of our intellectual pursuits is basically the attempt to compress the complexity all around us into something simple. So what does this word mean to you, compression? I essentially have already explained it. So compression means for me, finding short programs for the data or the phenomenon at hand. You could interpret it more widely as finding simple theories which can be mathematical theories, or maybe even informal, like just in words. Compression means finding short descriptions, explanations, programs for the data. Do you see science as a kind of our human attempt at compression? So we're speaking more generally, because when you say programs, you're kind of zooming in on a particular sort of, almost like a computer science, artificial intelligence focus. But do you see all of human endeavor as a kind of compression? Well, at least all of science I see as an endeavor of compression, not all of humanity, maybe. And well, there are also some other aspects of science like experimental design, right? I mean, we create experiments specifically to get extra knowledge. And that is then part of the decision-making process. But once we have the data, to understand the data is essentially compression. So I don't see any difference between compression, understanding, and prediction. So we're jumping around topics a little bit, but returning back to simplicity, a fascinating concept of Kolmogorov complexity. So in your sense, do most objects in our mathematical universe have high Kolmogorov complexity? And maybe what is, first of all, what is Kolmogorov complexity? Okay, Kolmogorov complexity is a notion of simplicity or complexity. And it takes the compression view to the extreme. So I explained before that if you have some data sequence, just think about a file on a computer and best sort of, you know, just a string of bits. And if you, and we have data compressors, like we compress big files into, say, zip files with certain compressors. And you can also produce self-extracting archives. That means as an executable, if you run it, it reproduces your original file without needing an extra decompressor. It's just the decompressor plus the archive together in one. And now there are better and worse compressors, and you can ask, what is the ultimate compressor? So what is the shortest possible self-extracting archive you could produce for a certain dataset, yeah, which reproduces the dataset? And the length of this is called the Kolmogorov complexity. And arguably, that is the information content in the dataset. I mean, if the dataset is very redundant or very boring, you can compress it very well so the information content should be low. And, you know, it is low according to this definition. So it's the length of the shortest program that summarizes the data? Yes, yeah. And what's your sense of our sort of universe when we think about the different objects in our universe, that we, concepts or whatever, at every level, do they have high or low Kolmogorov complexity? So what's the hope? Do we have a lot of hope in being able to summarize much of our world? That's a tricky and difficult question. So as I said before, I believe that the whole universe, based on the evidence we have, is very simple. So it has a very short description. Sorry, to linger on that, the whole universe, what does that mean? Do you mean at the very basic fundamental level in order to create the universe? Yes, yeah. So you need a very short program, and you run it. To get the thing going. To get the thing going, and then it will reproduce our universe. There's a problem with noise. We can come back to that later, possibly. Is noise a problem, or is it a bug or a feature? I would say it makes our life as a scientist really, really much harder. I mean, think about without noise, we wouldn't need all of the statistics. But that may be, we wouldn't feel like there's a free will. Maybe we need that for the... This is an illusion that noise can give you free will. At least in that way, it's a feature. But also, if you don't have noise, you have chaotic phenomena, which are effectively like noise. So we can't get away with statistics even then. I mean, think about rolling a dice, and forget about quantum mechanics, and you know exactly how you throw it. But I mean, it's still so hard to compute the trajectory that effectively, it is best to model it as coming out with a number, with probability one over six. But from this set of philosophical, Kolmogorov complexity perspective, if we didn't have noise, then arguably you could describe the whole universe as, well, as a standard model plus generativity. I mean, we don't have a theory of everything yet, but sort of assuming we are close to it or have it, yeah? Plus the initial conditions, which may hopefully be simple. And then you just run it, and then you would reproduce the universe. But that's spoiled by noise or by chaotic systems, or by initial conditions, which may be complex. So now, if we don't take the whole universe, but just a subset, just take planet Earth. Planet Earth cannot be compressed into a couple of equations. This is a hugely complex system. So interesting. So when you look at the window, like the whole thing might be simple, but when you just take a small window, then it may become complex. And that may be counterintuitive, but there's a very nice analogy. The book, the library of all books. So imagine you have a normal library with interesting books, and you go there, great. Lots of information and quite complex, yeah? So now I create a library, which contains all possible books, say, of 500 pages. So the first book just has A, A, A, A, A over all the pages. The next book, A, A, A, and ends with B, and so on. I create this library of all books. I can write a super short program, which creates this library. So this library which has all books has zero information content. And you take a subset of this library, and suddenly you have a lot of information in there. So that's fascinating. I think one of the most beautiful object, mathematical objects that, at least today, seems to be understudied or under-talked about is cellular automata. What lessons do you draw from sort of the game of life for cellular automata, where you start with the simple rules, just like you're describing with the universe, and somehow complexity emerges? Do you feel like you have an intuitive grasp on the fascinating behavior of such systems, where, like you said, some chaotic behavior could happen, some complexity could emerge, it could die out in some very rigid structures? Do you have a sense about cellular automata that somehow transfers maybe to the bigger questions of our universe? Yeah, the cellular automata, and especially the converse game of life, is really great, because the rules are so simple, you can explain it to every child, and even by hand, you can simulate a little bit. And you see these beautiful patterns emerge, and people have proven that it's even Turing-complete. You cannot just use a computer to simulate game of life, but you can also use game of life to simulate any computer. That is truly amazing. And it's the prime example, probably, to demonstrate that very simple rules can lead to very rich phenomena. And people sometimes, you know, how is chemistry and biology so rich? I mean, this can't be based on simple rules, yeah? But no, we know quantum electrodynamics describes all of chemistry. And we come later back to that. I claim intelligence can be explained or described in one single equation, this very rich phenomenon. You asked also about whether, you know, I understand this phenomenon. It's probably not. And there's this saying, you never understand really things, you just get used to them. And I think I got pretty used to cellular automata. So you believe that you understand now why this phenomenon happens. But I give you a different example. I didn't play too much with this converse game of life, but a little bit more with fractals and with the Mandelbrot set, and in this beautiful patterns, just look Mandelbrot set. And well, when the computers were really slow and I just had a black and white monitor and programmed my own programs in assembler too. Assembler, wow. Wow, you're legit. To get these fractals on the screen, and it was mesmerized and much later. So I returned to this, you know, every couple of years, and then I tried to understand what is going on. And you can understand a little bit. So I tried to derive the locations, you know, there are these circles and the apple shape. And then you have smaller Mandelbrot sets recursively in this set. And there's a way to mathematically, by solving high order polynomials, to figure out where these centers are and what size they are approximately. And by sort of mathematically approaching this problem, you slowly get a feeling of why things are like they are. And that sort of is, you know, first step to understanding why this rich phenomena. Do you think it's possible? What's your intuition? Do you think it's possible to reverse engineer and find the short program that generated these fractals sort of by looking at the fractals? Well, in principle, yes. So, I mean, in principle, what you can do is you take any data set, you know, you take these fractals or you take whatever your data set, whatever you have, say a picture of Conway's Game of Life. And you run through all programs. You take a program size one, two, three, four, and all these programs, run them all in parallel in so-called dovetailing fashion, give them computational resources, first one 50%, second one half resources, and so on, and let them run, wait until they hold, give an output, compare it to your data. And if some of these programs produce the correct data, then you stop and then you have already some program. It may be a long program because it's faster. And then you continue and you get shorter and shorter programs until you eventually find the shortest program. The interesting thing, you can never know whether it's the shortest program because there could be an even shorter program, which is just even slower. And you just have to wait, yeah? But asymptotically, and actually after finite time, you have the shortest program. So this is a theoretical but completely impractical way of finding the underlying structure in every data set. And that is what Solomon of induction does and Kolmogorov complexity. In practice, of course, we have to approach the problem more intelligently. And then if you take resource limitations into account, there's, for instance, the field of pseudo random numbers, and these are random numbers. So these are deterministic sequences, but no algorithm which is fast, fast means runs in polynomial time, can detect that it's actually deterministic. So we can produce interesting, I mean, random numbers, maybe not that interesting, but just an example. We can produce complex looking data, and we can then prove that no fast algorithm can detect the underlying pattern. Which is unfortunately, that's a big challenge for our search for simple programs in the space of artificial intelligence, perhaps. Yes, it definitely is for artificial intelligence, and it's quite surprising that it's, I can't say easy. I mean, physicists worked really hard to find these theories, but apparently it was possible for human minds to find these simple rules in the universe. It could have been different, right? It could have been different. It's awe-inspiring.


Donut-shaped C code that generates a 3D spinning donut

Here, on the left, is a spinning ASCII donut, and on the right is a donut-shaped C code by Andy Salone that generates it. Now with syntax highlighting. Now I recommend you check out Andy's blog post on the mathematics behind a flying spinning torus, aka donut. The link to the post is in the description. The basic steps are create a circle, then create a torus by rotating the circle about the Y axis, then using rotation matrices, spin the donut around the X and Z axes. Finally, project the donut onto the 2D screen, adding illumination by calculating the surface normal after picking a particular light source. The cool thing is because this is ASCII world, there's different characters associated with different levels of luminance. We can go back to the de-obfuscated version of the code that I generated, adding a microsecond sleep function to aid in the animation. Compiling and running the code, we get our spinning donut. There's a lot of parameters that you can control with this donut, including the field of view and the distance of the donut from the viewer. I spend at least an hour every day learning and exploring outside my main line of work, so I thought it'd be cool to start throwing together quick little videos about things that I find beautiful, whether they're basic or advanced in the world of machine learning, math, computer science, programming, psychology, whatever, even biology, physics, history, and philosophy. So, hope this is of value, fun, and something you would enjoy.


Jim Keller: Elon Musk and Tesla Autopilot | AI Podcast Clips

All the cost is in the equipment to do it. And the trend on equipment is, once you figure out how to build the equipment, the trend of cost is zero. Elon said, first you figure out what configuration you want the atoms in, and then how to put them there. Right? Because, well, here's the, you know, his great insight is, people are how constrained. I have this thing, I know how it works, and then little tweaks to that will generate something, as opposed to what do I actually want, and then figure out how to build it. It's a very different mindset. And almost nobody has it, obviously. Well, let me ask on that topic, you were one of the key early people in the development of autopilot, at least in the hardware side. Elon Musk believes that autopilot and vehicle autonomy, if you just look at that problem, can follow this kind of exponential improvement. In terms of the how question that we're talking about, there's no reason why it can't. What are your thoughts on this particular space of vehicle autonomy, and your part of it, and Elon Musk's and Tesla's vision for vehicle autonomy? Well, the computer you need to build was straightforward. And you could argue, well, does it need to be two times faster, or five times, or 10 times? But that's just a matter of time. Or price, in the short run. So that's not a big deal. You don't have to be especially smart to drive a car. So it's not like a super hard problem. I mean, the big problem with safety is attention, which computers are really good at, not skills. Well, let me push back on one, you see, everything you said is correct, but we as humans tend to take for granted how incredible our vision system is. So you can drive a car with 20, 50 vision, and you can train a neural network to extract the distance of any object and the shape of any surface from a video and data. It's really simple. No, it's not simple. That's a simple data problem. It's not simple. Because it's not just detecting objects, it's understanding the scene, and it's being able to do it in a way that doesn't make errors. So the beautiful thing about the human vision system, and our entire brain around the whole thing, is we're able to fill in the gaps. It's not just about perfectly detecting cars. It's inferring the occluded cars. It's understanding the physics. I think that's mostly a data problem. So you think what data, with compute, with improvement of computation, with improvement in collection. Well, there is a, you know, when you're driving a car and somebody cuts you off, your brain has theories about why they did it. You know, they're a bad person, they're distracted, they're dumb. You know, you can listen to yourself. Right. So, you know, if you think that narrative is important to be able to successfully drive a car, then current autopilot systems can't do it. But if cars are ballistic things with tracks and probabilistic changes of speed and direction, and roads are fixed and given, by the way, they don't change dynamically. Right, you can map the world really thoroughly. You can place every object really thoroughly. Right, you can calculate trajectories of things really thoroughly. Right. But everything you said about really thoroughly has a different degree of difficulty. So. And you could say at some point, computer autonomous systems will be way better at things that humans are lousy at. Like, they'll be better at attention. They'll always remember there was a pothole in the road that humans keep forgetting about. They'll remember that this set of roads has these weirdo lines on it that the computers figured out once. And especially if they get updates, so if somebody changes a given. Right. Like, the key to robots and stuff, somebody said, is to maximize the givens. Right. So, having a robot pick up this bottle cap is way easier if you put a red dot on the top. Because then you don't have to figure out, you know, if you want to do a certain thing with it, you know, maximize the givens is the thing. And autonomous systems are happily maximizing the givens. Like, humans, when you drive someplace new, you remember it because you're processing it the whole time. And after the 50th time you drove to work, you get to work, you don't know how you got there. Right, you're on autopilot. Right. Autonomous cars are always on autopilot. But the cars have no theories about why they got cut off or why they're in traffic. So they also never stopped paying attention. Right, so I tend to believe you do have to have theories, mental models of other people, especially with pedestrian and cyclists, but also with other cars. So everything you said is, like, is actually essential to driving. Driving is a lot more complicated than people realize, I think, so sort of to push back slightly, but to- So to cut into traffic, right? You can't just wait for a gap. You have to be somewhat aggressive. You'd be surprised how simple a calculation for that is. I may be on that particular point, but there's a, maybe I should have to push back. I would be surprised. You know what, yeah, I'll just say where I stand. I would be very surprised, but I think it's, you might be surprised how complicated it is. I tell people, like, progress disappoints in the short run and surprises in the long run. It's very possible, yeah. I suspect in 10 years it'll be just, like, taken for granted. Yeah, probably. But you're probably right, and I'll look like- It's gonna be a $50 solution that nobody cares about. It's like GPS is like, wow, GPS, we have satellites in space that tell you where your location is. It was a really big deal, and now everything has a GPS in it. Yeah, that's true, but I do think that systems that involve human behavior are more complicated than we give them credit for. So we can do incredible things with technology that don't involve humans, but when you- I think humans are less complicated than people, you know, frequently ascribed. Maybe I have false- We tend to operate out of large numbers of patterns and just keep doing it over and over. But I can't trust you because you're a human. That's something a human would say. But my hope is on the point you've made is, even if, no matter who's right, I'm hoping that there's a lot of things that humans aren't good at that machines are definitely good at, like you said, attention and things like that, where they'll be so much better that the overall picture of safety and autonomy will be obviously cars will be safer, even if they're not as good at understanding- I'm a big believer in safety. I mean, there are already the current safety systems like cruise control that doesn't let you run into people and lane keeping. There are so many features that you just look at the Pareto of accidents and knocking off like 80% of them is, you know, super doable. Just to linger on the autopilot team and the efforts there, it seems to be that there's a very intense scrutiny by the media and the public in terms of safety, the pressure, the bar put before autonomous vehicles. What are your, sort of as a person there working on the hardware and trying to build a system that builds a safe vehicle and so on, what was your sense about that pressure? Is it unfair? Is it expected of new technology? Yeah, it seems reasonable. I was interested, I talked to both American and European regulators, and I was worried that the regulations would write into the rules technology solutions, like modern brake systems imply hydraulic brakes. So if you read the regulations to meet the letter of the law for brakes, it sort of has to be hydraulic, right? And the regulator said they're interested in the use cases, like a head-on crash, an offset crash, don't hit pedestrians, don't run into people, don't leave the road, don't run a red light or a stoplight. They were very much into the scenarios. And, you know, and they had all the data about which scenarios injured or killed the most people. And for the most part, those conversations were like, what's the right thing to do to take the next step? Now, Elon's very interested also in the benefits of autonomous driving or freeing people's time and attention as well as safety. And I think that's also an interesting thing, but, you know, building autonomous systems so they're safe and safer than people seemed, since the goal is to be 10x safer than people, having the bar to be safer than people and scrutinizing accidents seems philosophically, you know, correct. So I think that's a good thing. What are, it's different than the things you worked at, the Intel, AMD, Apple, with autopilot chip design and hardware design. What are interesting or challenging aspects of building this specialized kind of computing system in the automotive space? I mean, there's two tricks to building like an automotive computer. One is the software team, the machine learning team is developing algorithms that are changing fast. So as you're building the accelerator, you have this, you know, worry or intuition that the algorithms will change enough that the accelerator will be the wrong one, right? And there's a generic thing, which is if you build a really good general purpose computer say it's performance is one, and then GPU guys will deliver about 5x to performance for the same amount of silicon, because instead of discovering parallelism, you're given parallelism. And then special accelerators get another two to 5x on top of a GPU, because you say, I know the math is always eight bit integers into 32 bit accumulators, and the operations are the subset of mathematical possibilities. So auto, you know, AI accelerators have a claim performance benefit over GPUs, because in the narrow mass space, you're nailing the algorithm. Now, you still try to make it programmable, but the AI field is changing really fast. So there's a, you know, there's a little creative tension there of, I want the acceleration afforded by specialization without being over specialized so that the new algorithm is so much more effective that you would have been better off on a GPU. So there is a tension there. To build a good computer for an application like automotive, there's all kinds of sensor inputs and safety processors and a bunch of stuff. So one of Elon's goals to make it super affordable. So every car gets an autopilot computer. So some of the recent startups you look at, and they have a server in the trunk, because they're saying, I'm going to build this autopilot computer to replace the driver. So their cost budget's 10 or $20,000. And Elon's constraint was, I'm going to put one in every car, whether people buy autonomous driving or not. So the cost constraint he had in mind was great. Right, and to hit that, you had to think about the system design. That's complicated. It's fun. You know, it's like, it's like, it's Crestman's work. Like, you know, a violin maker, right? You can say Stradivarius is this incredible thing. The musicians are incredible. But the guy making the violin, you know, picked wood and sanded it, and then he cut it, you know, and he glued it, you know, and he waited for the right day so that when he put the finish on it, it didn't, you know, do something dumb. That's craftsman's work, right? You may be a genius craftsman because you have the best techniques and you discover a new one, but most engineers are craftsman's work. And humans really like to do that. You know, it's like- Smart humans. No, everybody. All humans. I don't know. I used to, I dug ditches when I was in college. I got really good at it. Satisfying. Yeah. So- Digging ditches is also craftsman work. Yeah, of course. So there's an expression called complex mastery behavior. So when you're learning something, that's fun because you're learning something. When you do something and it's rote and simple, it's not that satisfying. But if the steps that you have to do are complicated and you're good at them, it's satisfying to do them. And then if you're intrigued by it all, as you're doing them, you sometimes learn new things that you can raise your game. But craftsman's work is good. And engineers, like engineering is complicated enough that you have to learn a lot of skills. And then a lot of what you do is then craftsman's work, which is fun. Autonomous driving, building a very resource constrained computer. So a computer has to be cheap enough that you can put it in every single car. That's essentially boils down to craftsman's work. It's engineering, it's- Yeah, you know, there's thoughtful decisions and problems to solve and trade-offs to make. You need 10 camera in ports or eight, you know, you're building for the current car or the next one, you know, how do you do the safety stuff? You know, there's a whole bunch of details, but it's fun, but it's not like I'm building a new type of neural network, which has a new mathematics and a new computer to work. You know, that's like, there's more invention than that. But the rejection to practice, once you pick the architecture, you look inside and what do you see, adders and multipliers and memories and, you know, the basics. So computers is always this weird set of abstraction layers of ideas and thinking that reduction to practice is transistors and wires and, you know, pretty basic stuff. And that's an interesting phenomenon. By the way, like factory work, like lots of people think factory work is road assembly stuff. I've been on the assembly line. Like the people who work there really like it. It's a really great job. It's really complicated. Putting cars together is hard, right? And the car is moving and the parts are moving and sometimes the parts are damaged and you have to coordinate putting all the stuff together and people are good at it. They're good at it. And I remember one day I went to work and the line was shut down for some reason. And some of the guys sitting around were really bummed because they had reorganized a bunch of stuff and they were going to hit a new record for the number of cars built that day. And they were all gung-ho to do it. And these were big, tough buggers. And, you know, but what they did was complicated and you couldn't do it. Yeah, and I mean. Well, after a while you could, but you'd have to work your way up because, you know, like putting a bright, what's called the brights, the trim on a car on a moving assembly line where it has to be attached 25 places in a minute and a half is unbelievably complicated. And human beings can do it. It's really good. I think that's harder than driving a car, by the way. Putting together, working on a factory. Too smart people can disagree. Yeah. I think driving a car. Well, we'll get you in the factory someday and then we'll see how you do. No, not for us humans driving a car is easy. I'm saying building a machine that drives a car is not easy. Okay, driving a car is easy for humans because we've been evolving for billions of years. To drive cars. Yeah, I noticed that. To do. The paleolithic cars are super cool. No, now you join the rest of the internet in mocking me. Okay. I wasn't mocking you, I was just, you know, intrigued by your anthropology. Yeah. I'll have to go dig into that. There's some inaccuracies there, yes. Okay, but in general, what have you learned in terms of, thinking about passion, craftsmanship, tension, chaos, you know, the whole mess of it, what have you learned, have taken away from your time working with Elon Musk, working at Tesla, which is known to be a place of chaos, innovation, craftsmanship, and all those things. I really like the way you thought. Like, you think you have an understanding about what first principles of something is, and then you talk to Elon about it, and you didn't scratch the surface. You know, he has a deep belief that no matter what you do, it's a local maximum. And I had a friend, he invented a better electric motor, and it was like a lot better than what we were using. And one day he came by, he said, you know, I'm a little disappointed, because, you know, this is really great, and you didn't seem that impressed. And I said, you know, when the super intelligent aliens come, are they gonna be looking for you? Like, where is he? The guy, he built the motor. Probably not, you know. But doing interesting work that's both innovative, and let's say craftsman's work on the current thing, is really satisfying, and it's good. And that's cool. And then Elon was good at taking everything apart. Like, what's the deep first principle? Oh, no, what's really, no, what's really? You know, that ability to look at it without assumptions, and how constraints is super wild. You know, he built a rocket ship, and electric car, and everything. And that's super fun, and he's into it, too. Like, when they first landed two SpaceX rockets to Tesla, we had a video projector in the big room, and like 500 people came down, and when they landed, everybody cheered, and some people cried. It was so cool. All right, but how did you do that? Well, it was super hard. And then people say, well, it's chaotic. Really? To get out of all your assumptions? You think that's not gonna be unbelievably painful? And is Elon tough? Yeah, probably. Do people look back on it and say, boy, I'm really happy I had that experience to go take apart that many layers of assumptions? Sometimes super fun, sometimes painful. So it could be emotionally and intellectually painful, that whole process of just stripping away assumptions? Yeah, imagine 99% of your thought process is protecting your self-conception. And 98% of that's wrong. Now you got the math right. How do you think you're feeling when you get back into that one bit that's useful? And now you're open and you have the ability to do something different. I don't know if I got the math right. It might be 99.9, but it ain't 50. Imagining that 50% is hard enough. Yeah. Now, for a long time, I've suspected you could get better. Like you can think better, you can think more clearly, you can take things apart. And there's lots of examples of that, people who do that. And Nilan is an example of that. Apparently. You are an example. I don't know if I am. I'm fun to talk to. Certainly. I've learned a lot of stuff. Right. Well, here's the other thing is, like I joke, like I read books. And people think, oh, you read books? Well, no, I've read a couple of books a week for 55 years. Well, maybe 50, because I didn't learn to read until I was eight or something. And it turns out when people write books, they often take 20 years of their life where they passionately did something, reduce it to 200 pages. That's kind of fun. And then you go online and you can find out who wrote the best books and who like, you know, that's kind of wild. So there's this wild selection process and then you can read it and for the most part, understand it. And then you can go apply it. Like I went to one company, I thought, I haven't managed much before. So I read 20 management books and I started talking to them and basically compared to all the VPs running around, I'd read 19 more management books than anybody else. It wasn't even that hard. And half the stuff worked, like first time. It wasn't even rocket science. But at the core of that is questioning the assumptions or sort of entering the thinking, first principles thinking, sort of looking at the reality of the situation and using that knowledge, applying that knowledge. So I mean, that's- So I would say my brain has this idea that you can question first assumptions. But I can go days at a time and forget that and you have to kind of like circle back to that observation. Because it is emotionally challenging. Well, it's hard to just keep it front and center because you operate on so many levels all the time and getting this done takes priority or being happy takes priority or screwing around takes priority. Like how you go through life is complicated. And then you remember, oh yeah, I could really think first principles. Oh shit, that's tiring. But you do for a while and that's kind of cool. So just as a last question in your sense from the big picture, from the first principles, do you think, you kind of answered it already, but do you think autonomous driving is something we can solve on a timeline of years? So one, two, three, five, 10 years as opposed to a century? Yeah, definitely. Just to linger on it a little longer, where's the confidence coming from? Is it the fundamentals of the problem, the fundamentals of building the hardware and the software? As a computational problem, understanding ballistics, roles, topography, it seems pretty solvable. I mean, and you can see this, like speech recognition for a long time, people are doing frequency and domain analysis and all kinds of stuff. And that didn't work for at all, right? And then they did deep learning about it and it worked great. And it took multiple iterations. And autonomous driving is way past the frequency analysis point. Use radar, don't run into things. And the data gathering is going up and the computation is going up and the algorithm understanding is going up and there's a whole bunch of problems getting solved like that. The data side is really powerful, but I disagree with both you and Elon. I'll tell Elon once again, as I did before, that when you add human beings into the picture, it's no longer a ballistics problem. It's something more complicated, but I could be very well proven wrong. Cars are hardly damped in terms of rate of change. Like the steering system's really slow compared to a computer. The acceleration of the acceleration is really slow. Yeah, on a certain time scale, on a ballistics time scale, but human behavior, I don't know. I shouldn't say- Human beings are really slow too. Weirdly, we operate half a second behind reality. Nobody really understands that one either. It's pretty funny. Yeah, yeah. We very well could be surprised. And I think with the rate of improvement in all aspects on both the compute and the software and the hardware, there's gonna be pleasant surprises all over the place.