Science, Mathematica, and the Making of Wolfram|Alpha

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Stanford University hello hello um yes welcome to dou 380 winter 201122 I'm Andy Freeman the other course organizer is Dennis Allison it's getting to the time of the quarter when I remind students taking the class that it's good to keep up no incompletes all that fun stuff um I'm going to be especially brief today because nobody ever comes here to listen to me uh today's speaker Steven Wolfram started his career in theoretical physics and that's the last I'm going to say of that um not because physics isn't interesting or cool but Mathematica gave everyone an extra math degree and that's pretty darn cool and he's continued to improve our problem solving and analytical capabilities after that was fairly established Dr Wolford went on to invent a new science um gave us a new way to discover and look and think about the world that's also pretty cool um and but more recently he's launched wolf from alpha which aims to make the online World actually computable and usable and considering it's digital that's really shouldn't have been a hard thing but people just create crap data so with that great okay well I happen to be in the area which I haven't been for years so I said uh I'll drop in and uh uh talk with you guys so I thought I would be fairly informal here and uh I'll say a few things and then I'm hoping we can have interesting discussion comments questions Etc and I had um maybe we can turn the lights down here so it's easier to see the screen um maybe not but anyway um I kind of had uh wol from Alfa sort of uh running through some Paces here in the background uh to give an idea of the kinds of things it does um I know what um uh the concept of w from alpha um and I'm going to talk about uh a variety of things here but sort of the the concept of war from Alfa is something that at first seems a little bit crazy uh it's try and take all this knowledge that our civilization has accumulated and try and make that knowledge computable which means if there's a question that can be answered on the basis of that knowledge uh make it possible to automate answering that question so if there if there's some question where there's some expert somewhere who on the basis of knowledge that our civilization has accumulated um could give you the answer to the question try and set up a system that will automatically answer that question so big complicated project actually I first started thinking about this project we can probably switch the lights back on again if you want to but but um uh uh you can um I started thinking about this project actually probably 35 years ago maybe um and uh when I was a kid and um I thought this would be an interesting thing to do I was kind of embarrassed recently I discovered things that I did when I was like 12 years old which were kind of the preol from alpha but it was too early at that time um but I had thought uh you know this would be a really interesting thing to do but it's really hard and so I had a variety of sort of conceptual reasons that I'd come up with for why this is too hard to do so an example would be to do this kind of uh expert you know making knowledge computable answering questions like an expert and so on would require for example making a whole artificial intelligence like a you know like a human brain or something like this and that's hard I thought well anyway over the over the following uh 30 something years every 10 years or so I kind of looked again at the question of okay is it now possible to make something like this and finally I realized seven or eight years ago now that um Yes actually I now think it might be possible so what got me to that point was two two big things that I done before uh Mathematica and a new kind of Science and so the the kind of the concept of Mathematica Mathematica was a A system that I started building 25 years ago 25 years ago uh last fall um and uh so kind of the idea of Mathematica is to make uh doing technical computation sort of as automatic as possible so sort of the concept is uh you should be able to to all the sort of algorithms that people know about uh you should have sort of an easy implementation of those algorithms but more important if what you know is that you need to solve a differential equation or lay out some Network or something like this then it should be possible to um we can let me just stop this because that's run out of interesting things to show um let's just um uh the the the concept is that um uh that Mathematica should make it um so that if if you know the operation you want to perform let's say it's solving the differential equation okay that's even darker um um oops that's not what I want either um okay let let me actually just just uh so the idea of Mathematica you got this operation you want to perform the concept is automate as much of actually performing that as one can so if you know what you want to do have the computer figure out how it should be done so for example in solving some equation or some such other thing there might be a hundred different algorithms that could be used to solve that equation the idea is to make it so that all all you have to do is say I want to solve this equation and then Mathematica will figure out uh what how to do it of course you can have knobs and switches and things that you can set if you're a big expert in solving equations to tell it how you want it done but in general it's it's intended to be automated and the other big thing with Mathematica was was uh uh sort of the original concept was my original egotistical concept was uh make a system that would do all the kinds of computations that I would ever want to do in my life so to speak so make it able to cover all kinds of different areas of of computation um and to do that one sort of had to make up some general framework for thinking about computation and it ended up that the the framework I developed was was this idea of symbolic programming which is a very general kind of framework um that uh sort of has as its as its foundation the idea that everything that you have whether it's a mathematical expression a piece of Graphics a a program a a document whatever else can be represented as a symbolic expression and can be represented in a very uniform kind of way so this idea that everything can be represented as a symbolic expression lets one have a very coherent language uh uh built around that where one has operations that can be performed sort of uh uh transparently across all those different kinds of kinds of things and I mean I suppose as a as a language designer I ended up sort of uh thinking about things in kind of a similar way to the way one thinks about natural science you know there all these computations that you want to do in the world how do you break these computations down into sort of primitive elements um that you can from from which they can all be built up it's kind of like what you're do in Natural Science you know you have the world around one and how do you understand what the sort of underlying elements are from which all the stuff that we see around us can be can be built up but so so the concept is in in a computer language is what how do you find the right Primitives that you can uh build everything up from in that language and those are The Primitives that become the functions that are given names in the language and in Mathematica we spent incredible amounts of effort trying to make this sort of very unified consistent collection of of underlying Primitives that all sort of fit together in a nice coherent way and that's been that's been fairly critical in building Mathematica as a system because by now mathematic is a big system you know it's got thousands of of different functions in it and so on and the fact that one sort of maintained a high degree of sort of uh uh design consistency and so on between these things has meant that these different building blocks can sort of fit together in very convenient ways so I mean just I might as well just show you um here why don't we actually since I'm talking about um things with Mathematica let's actually show you so let's let's see let's start with something um if you can't do that we're in very bad shape but um okay so let's say we say um you know we we ask Mathematica to plot a curve or something now we could go and we can say um let's say we say manipulate that where I say um I put in a parameter here and I say manipulate this uh this parameter runs from 1 to 10 or something um so now I'll get something which is it'll just sort of automatically build me a little user interface where I can go and manipulate those pieces or I could make this if I wanted to I could make this you know 3D graphic I don't know uh something like this and then could say you know y goes from 0 to two or something and now I'll have some nice 3D thing that um that runs around and we can turn it to different things if we want to um so kind of and you know this idea of this you know manipulate thing you can you can apply that to anything so if I had a a polinomial that I'm factoring or something and I say um uh something like this um the same sort of manipulate thing can be applied to kind of any symbolic expression so now I can just take my polinomial and uh be running around like that or let's say I have um let's say I have something else let's say I have a um uh a thing where I'm looking at um uh I make some some relation where I've got um uh something like this I goes to mod i^ s comma 100 so that's a set of uh a mapping so to speak Al so now in Mathematica we've we've got this sort of very automated way of taking that mapping and laying it out as an actual n nwor graph um or I could do something like this where I combine these things and I say manipulate this with instead of 100 there let me put in a parameter n um and let me say manipulate that with n goes from um let's say uh two to 100 and steps of one or something and so now oops I forgot to tell it to make a plot there we go um so now I can I can tell it plot these and now as I change n for each different value of n it will be working out sort of the computational Aesthetics of how to do a decent job of laying out uh the network that um uh that I had and you can go on doing this up to networks of size Millions if you want to um so that's kind of another example of sort of how different pieces fit together I might just say you know in terms of the way that Mathematica as a language works you know what are the sort of things that you can do so let's say a typical sort of symbolic operation would be Nest list okay so Nest list will do something like this and we could Nest anything we want I mean we could say Nest you know the the sort of the type setting thing that puts frames around things so then you'll get something like that or I could say um I could Nest manipulate so that I get lots of different controls all nested I don't know we could say something like um how about this let's try um uh well can make up all sorts of things um let's see what happens if I do something like this see what weird thing this produces um oh yeah that's fun so this is now a nested set of user interface controls Unfortunately they don't do anything very interesting here but but um uh I could have hooked it up so they actually do something as well um that would take me another few few seconds here um but it's kind of fun to see that you can you can take any of these objects and you can treat them symbolically and um uh and and and combine them together like this or another thing we might do is let's say we take an image let's see if I can get capture an image here um let's see see if this works or may not well it may not have got got the right camera let's see uh n well let's go let's go to the web and just just capture a random um let's go and capture some random image of something how about um uh what a nice looking fish here how about that guy um I don't know whether he's some let's see well let me copy it I'm not sure let's see what happens so that I can just oh very good okay there's our fish um it's a bit of an ugly looking fish I'm sorry um but now we can use this fish as a as a piece of symbolic data just like anything else so we can just wrap a function around that we can say Edge detect that fish and there we've now got an edge detected fish um or we could say something like um oh I don't know let's say blur the fish and now we could say we give a parameter to the blur some radius here and now we could put one of those manipulates around it and we could say you know manipulate that a blur from 0 to 10 or something and now we should have a little interface here hopefully um where we can take that fish and make him less and less ugly as um um or we could we could for example we could take the fish here and we could say um uh we could say something like you know image partition um that fish in in images and size 20 or something so now we should get okay so there's now the fish is broken into pieces and now for example we could do something like um oh I don't know we could flatten that array um and we got a bunch of bunch of fish fragments and now we could do something like we could sort those fish fragments by um what would you like to do let's see we could take um what said blur them in parallel po what said in parallel you could blur them yes yes yes that would be fun okay well I'll tell you what let's do this let's how about we could we could either um we could either blur them to a different extent or I was thinking we could just do um uh we take image data from each one and let's take the the mean value of um let's just flatten it all out um let's see what happens if we do this uh and then let's apply that to this list of um of fish fragments here see what happens okay so those are now average RGB average average average RGB values of all those things so now let's say something like sort by um and then let's get our list of fish Parts here line 17 um and then let's let's see what happens if we do this so This should if all works yeah okay all right that's actually fairly convincing okay decent demo so that's that's now sorted those those fragments by by overall uh color level um so anyway that that's this is sort of a a a you know quick introduction to one tiny corner of Mathematica um but uh um it's also fun you know if I had got this camera working we could have done the image processing in real time which is always always good to see um but U so one of the so you know with Mathematica we have the system that sort of our our goal with it is basically Implement every well-defined algorithm and make it so that there's a language that allows you to uh to sort of uh construct those things into uh into into programs that do the things you want to do and it sort of you know our our practical experience is if you have algorithmic software development to do you would be crazy to use anything other than Mathematica because we just have more algorithms more automated sort of more connected together um than than anybody else has has has ever assembled so one of the reasons I wanted to build Mathematica as I mentioned earlier is because I wanted to use it myself and so uh one of the things that I've been interested in is sort of a general science problem um and let me explain a little bit about that because it's it's relevant to to other things I want to talk about so the general science problem is how do you model things that happen in the world so you know about 300 years ago there was this sort of big idea that was um uh um the um uh okay the um to uh uh to use mathematics and things like calculus to model things that happen in the world and to model you know motion of planets and comets and things like this and that idea of using mathematical equations was a very successful idea that gave us lots of mathematical physics lots of engineering lots of other kinds of things but the thing that I had kind of gotten interested in oh 25 years ago now U more than that 30 years ago was was what about systems where this sort of mathematical equations Paradigm doesn't seem to work so well and there are plenty of examples of that even in physics certainly in biology certainly lots of other areas of of sort of uh human endeavor where where this approach of finding a mathematical equation to describe things doesn't work so well so the question is what's the more General is there a more General approach to making models of things and if you're going to be able to make a model of something then it has to be the case that at some level that the thing you're studying is governed by some kind of rules the question is what kind of uh Primitives should you use for those rules and should it be the case that the only Primitives you can imagine using are things like mathematical equations and all these kind of constructs and Mathematics uh that have been developed over the course of uh of the last few hundred years of you know exponential and derivatives and all these kinds of things well the thing that I got to thinking about is what's the most General sort of category of thing that you can make models out of and in sort of modern times we have a nice kind of way of thinking about that which is computer programs and so then the question is well uh what if you just use arbitrary computer programs to make models of things so that then leads one to a sort of General basic science question which is if you just imagine all possible computer programs what do they typically do and so this is sort of a basic Science question if you just started enumerating programs starting with really really simple programs and going up to more complicated programs um what kind of behavior would you see in those programs and so this got me into the whole whole study of uh of simple programs and what they do and I guess my favorite type of simple programs are these things called cellular autometer and here's an example one of them um this is just a uh uh cellular automon that starts with a a row of black cells at the top and then just uh evolves down the page at each step the color of each cell is determined by a simple rule that just looks at the color of the cell above it and the cells to its left and right and so very simple rule and not one would think too surprisingly the behavior is very simple if we continue it for a while um we'll get uh uh that kind of pattern there and that icon at the bottom shows the rule that's being used you just take each triple of cells in in each row and you look at what they are and you determine what the color of the next cell will be so simple rules simple Behavior exactly what one sort of might have intuitively expected well um if you keep going and uh let's see H fascinating okay um so the here's here's another example a slightly different rule again simple rule simple Behavior sort of what you expect well keep going some more um here's another example slightly more complicated behavior um and uh if you sort of run this particular thing longer you'll find that you get this this intricate kind of fractal pattern out um but still you might have the kind of belief that if the rule is simple the behavior must be perhaps intricate but nevertheless at some level very very regular so that's a that's a reasonable hypothesis but um uh the question is what's actually true and um uh so you can you can do a um you can do an experiment and so these days it's pretty easy to do an experiment about this in Mathematica um that's uh um let actually start um uh that oops um so let's let's go and uh uh here um okay so so um we can make one of these C Automan things and for example um uh can go and say something like this um we can tell it make the cellular automaton and now show us an array plot of um of the pixels in it and there it is and that's just one of those um that's one of the ones I just showed you well now we can ask the question what happens if you look at all possible rules of the general type that I'm talking about here so what does the um uh what's the behavior then so let's say we look at there are 256 rules of the precise type that I was talking about before let's just make a table of the first 64 of those so there's the result um and at the beginning it looks pretty boring um you know in each case you're starting off with just one black cell and you're asking what happens um so you keep going you look through here mostly you're seeing pretty boring things go on it's it's kind of interesting it's so diverse what the behavior is you keep going okay there you might stop because there is something more interesting so this is the 30th one of these rule 30 um and what you see at first is something that looks considerably more complicated um so let's take a look at that particular one in a little bit more detail let's let's say we run it um uh say we go ahead and um uh run rule 30 for let's say I don't know 400 steps or something um and again this is starting off from just one black cell at the top and evolving down the page and this is the kind of behavior if I could make it a size where it's not aliasing too badly um uh this is the um I'll tell you what I'm going to do um going to tell it to okay so um uh this is quite a bizarre thing because the rule is really really simple it's just one of these rules that says for every triple of pixels you know what color should you make you're starting off from just one black cell and you're you're getting this really complicated thing out so to me this to me was sort of is is probably the most interesting science Discovery I think I've ever made and you know you can see there's a certain amount regularity in this in this pattern um you know over on the left you can see there are periodic pieces and so on there are triangles all over it and such like but if you look for example at the center column of cells down the middle here um you'll discover uh you know when I first looked at this I figured there be some way to understand the Simplicity of the rule on the basis of the behavior It produced so I did all kinds of statistical tests and all sorts of other things on that Center column of cells and so far as any of those tests could tell it was just completely random and in fact turns out that Center col of cells is random enough that it's a pretty good crypto system and it's been used for example in Mathematica as a cud random generator for the last 25 years and has been very successful at that so it's kind of it's kind of surprising that from something this simple you can make uh something that has this amount of apparent complexity well for me this was something sort of pretty important in terms of understanding the natural world because the natural world is full of complicated things and actually it's sort of an embarrassment these days that you know if you're' shown something from nature you're say something that's been made by sort of human engineering um usually it's a good heris that the thing that looks simpler is the thing that we went to all that effort to make and the thing that looks more complicated is the thing that nature somehow rather effortlessly made and so it's sort of this question what's the secret that nature uses to make all this uh seemingly very complicated stuff and I think that this phenomenon is is sort of key to to what's going on there and I think that what's sort of happening is that if you look at the space of all possible programs for making things a great many of them show Behavior like this where you get very complicated Behavior even though the program is simple and that's kind of what nature is ending up using uh to make all the sort of complicated stuff that it makes and so I got uh with that general idea it's kind of an intuition breaking idea because because we usually think if we're doing engineering that you have to go to a lot of effort to make something complicated but what we're seeing here is that even just these programs sort of picked at random from this possible sort of computational Universe of possible programs uh will often produce stuff that that uh is very complicated so that's um that that sort of observation got me started on trying to understand all the different areas of science that uh could be affected by this change of intuition of realizing that just these simple programs out in the computational universe can do complicated things and there all kinds of things that you can study in physics about the fundamental Theory of physics in biology about how biological form gets made and sort of ways to think about um how biological processes and biomedical kinds of things work uh even in pure mathematics understand understanding things about sort of uh what mathematical theories have been investigated but what ones are out there still to be investigated and how we've kind of chosen the ones that we've chosen um and there are lots of kind of general principles that emerged from studying this kind of thing one example is uh well there's a there's a big one which I call the principle of computational equivalence so uh you might you can ask the question sort of how do you think about Behavior like this and uh you can kind of think about any of these processes as being some kind of computation where you start off from some initial condition then you compute compute compute and get some Behavior out and the question then is and you look at different kinds of systems how do the computations that they perform compare and you might have imagined that if you had a very simple system it would do very simple computations as you make the system more complicated the computations would get more and more complicated what this principle of computational equivalence says is that actually that isn't true that instead after you get above some very low threshold the kind of computations that these systems do are all equivalent so that principle has all kinds of predictions like it says uh if that's the case then if you just sample programs at random any one that isn't sort of obviously simple should for example be capable of universal computation and we know for example that one of the ones we don't know about this particular one rule 30 unfortunately yet um it's uh but we know for instance that um uh let's see uh this guy this is uh rule 110 um we know that this particular very simple cellular automatan is um uh is capable of universal computation and for example among touring machines I was curious what's the simplest Universal touring machine and so I looked at all touring machines starting with the simplest ones and there's a touring machine with just uh uh two two states and three colors um and that touring machine uh according to this principle of computational equivalence one would expect that that touring machine which is sort of the first one that isn't obviously simple would be capable of universal computation and indeed we ran a little competition a few years ago and somebody proved that yes indeed that particular touring machine is capable of universal computation so that was a nice piece of evidence for this principle of computational equivalence um well the principle of computational equivalence has all kinds of of consequences so an example of a consequence is the idea of computational irreducibility so one can ask the question you know if you look at a pattern like this uh can you figure out what's going to happen can you make a prediction about what's going to happen here and sort of making predictions is one of the kind of Hallmarks of successful exact science Al once taught but this case you know it's very straightforward to just run the rule and find out what happens um but uh what this the this principle of computational equivalence implies is that there's a certain there can be a certain kind of computational irreducibility see we usually assume that we're in a sense much smarter than every system we study so you know even though it may take the Earth you know a million years some idealized Planet a million years to go around its star u a million times we say well we don't have to wait for you know we don't have to trace all those million steps we can just use some clever mathematical equation and jump forward and see the answer um so this we're kind of using the fact that there's a kind of computational reducibility which is the result of sort of us being smarter than the systems we're studying but this principle of computational equivalent says that that shouldn't be the case that in fact our brains our mathematical techniques all these kinds of things should just be equivalent in computational sophistication to even these really simple systems that we're studying so that means that we won't be able to win that competition system ially and we'll be sort of stuck having to kind of Trace through having to go to as much computational effort to find out what happens as the systems themselves have to so that's that idea of computational irreducibility it has all kinds of consequences it kind of tells you things about uh uh why things like simulation are not only convenient but actually in some fundamental sense necessary when we study all sorts of systems um and uh there are all kinds of consequences well this principle of computational equivalence has all kinds of consequences too like like it's uh it tells one things about um um uh thinking about oh like well one area that's important is thinking about things like intelligence you know you might have said well gosh there must be this big dividing line between the intelligence stuff out there and the non-intelligent stuff out there and that's what I kind of always believed was that there was this sort of you know you could discover these clever inventions that would lead you to these sort of intelligent aiish things and that was different from all the other sort of just Computing things that one could do um but I kind of realized you know you already realize you think about you know what's the definition of life for example very easy historical definition of life on Earth because all life on Earth is kind of derived from the same same lineage of you know has the same RNA and cell membranes and who knows what else um but if you try and Define life abstractly it's quite difficult you say you know well you know the Greeks said you know if it can move itself then it's alive clearly not a good definition if it can reproduce itself then it's alive again not a good definition and so on so what you realize is that there isn't really an abstract definition it's just defined historically and I think the same thing is true for intelligence and that's a relevant thing because it sort of tells one that there's no sort of bright line between the intelligent thing and the thing like this and so you know if we get the the signals from the extraterrestrials or something and they are um they're producing all these complicated patterns and so on we might say you know wow this must be an intelligent thing that made all these complicated patterns but no actually it could be some very simple rule like this that some simple physical process might be responsible for so it's kind of evidence that this this idea of of sort of uh uh you know this bright line of intelligence isn't isn't isn't really there well so there are all kinds of things that about this kind of science I'll just mention a few um and I'll come back to this this point about intelligence so in terms of this this kind of science one of the one of the interesting meta things one realizes is that it gives one a new way to do engineering it gives one a new way to do science because it gives one sort of a lot of new raw material atal for making models of things you know we previously were saying we want to make a model we'll make write down a differential equation we'll do this they that now we've got this whole raft of new kinds of models that we can use and and indeed people have used things like cellular autometer and other kinds of sort of computation uh type models to study all kinds of systems I I kind of had a had a a joke at one point there are 256 so-called ele cellular automatan rules I first started talking about these in the early 1980s um and they're all numbered right and so I used to have in the days when we had file cabinets I used to have this file cabinet where I had a a file folder for every one of the elementary cellular automatan rules and gradually and when papers would come in about different applications of cutom I filed them according to which rule they were and I thought you know like there was rule 90 papers that were talking about some mathematics and some things about you know models for catalysts and then there was you know rule 184 which is turns out to be a good model for road traffic flow and traffic jams and things and then eventually there were things like rule four I remember I remember the day when when I I got the paper paper about rule 4 I said nobody will ever do anything with rule four it is a completely boring and uninteresting rule but then it turned out there was some signal processing algorithm that got invented that was uh that was based on that particular rule it's kind of interesting to see in the space of possible rules how sort of the applications of these things filled in and there was this kind of lumpy distribution of some were more important than others and and so on but um uh so but in any case the so you know for science you can go how does it bad sign why did that happen oh it came back um the uh uh you know for science you can go and sort of sample this computational universe of possible programs I suppose the ultimate thing like that that one can do is try and find a fundamental theory for the universe this way that will get me off to a huge Sidetrack I'd be happy to talk about that if people are interested in it but basically the question is is sort of our physical Universe a rule that exists in this computational universe of possible universes and uh it's been my kind of uh hobby project for a long time to try and figure this out um and there's lots of interesting things to say about deriving all sorts of properties of space time and so on from much uh more primitive things that lie sort of underneath space and time and and so on um but that's sort of a separate topic the other thing Beyond science that comes out of studying these kinds of things is things for engineering and you know often in engineering what we're used to as we say we want to engineer some particular thing we want to create something for some particular purpose well we get some human engineer to try and figure out how to do that there's an alternative approach which is essentially algorithm Discovery program Discovery you just say we've got this particular objective that we have let's just go and exhaustively search the computational universe and try and find a program that uh uh that satisfies the objective we have now you might have said that's just completely crazy because you know if you're just enumerating programs you'll never find one that's rich enough to be useful but that's what we discover from this sort of new intuition isn't true that actually you can find programs that are useful and interesting not very far away in the in the sort of the space of possible programs and so for example this is a technique that we've used a lot in building Mathematica and even more in building W from alpha so I mentioned you know like this particular thing is a really good cudar random generator there are other uh rules that are really good for doing making hash codes there are other ones that are good for image processing there are other ones that are good for doing Fier transforms there are other ones that are good for other kinds of things um it's so what's interesting is you go and you search in the sort of computational Universe of possible programs and you find all this stuff and you often find these things which are you know you look at them you say I don't understand how this works you can prove that it works but it's something very alien it's something no human would ever have come up with um but nevertheless it may be the most efficient instance of something or even the only easy defined instance of a thing it's interesting you know when you see algorithms that are like you know iteration when you see something that's sort of doing iteration it has a very simple periodic structure you see something that's doing recursion it tends to have this very simple nested structure and then you know you can have other sort of quite different ways to achieve uh operations and and there are things that kind of visually look look vastly different I think I might have an example um now here's a here's an example of um just some cases of of these are just cellular autometer that um achieve the objective of doubling the size of their input and uh what's interesting is some of them achieve that objective in very simple sort of engineering like ways some of them achieve that objective in very elaborate or things that don't look like they would ever have been produced by human um in this particular case the most efficient one is actually something fairly simple um but that's often not the case so uh so in any case one of the things that that that came out of nks is this sort of idea that you can sort of search the computational universe for useful programs that do things and not only programs also you know if you're doing nanotechnology or something and you're trying to find you know find the universal Constructor or something like this um you know one Ro might be well you take something that you know does that at a large scale and you shrink it down you make it very very small an alternative approach is to say let's just search we know what components we have let's just search for how we can combine these components to make something that achieves the objectives we want and that's the kind of approach that you're led to by by this this kind of thinking well okay so having said all of that um one might wonder perhaps I don't know I I in you know so I worked on this kind of science for a long time worked on Mathematica I was interested in doing sort of making uh knowledge computable and so on and uh you know how did that sort of lead to the idea that wol from malfa might be possible well the main conceptual thing as far as I'm concerned was this realization from the principle of computational equivalence that there's sort of nothing that special about intelligence and things like intelligence and it's all sort of just computation at some level and that kind of was for me that little sort of philosophical realization was for me kind of the the launching point for thinking gosh it might actually be possible to take all this knowledge that exists in the world and and make it computable so um in uh uh the let's see I mean the the the result of all this I can show you um You probably I hope you've seen I think by now among uh let's say us college students there is a remarkable um uh um the number of uh um that the fraction that seem to use wol from Alfa regularly is remarkably high so I mean basically sort of the idea of of wol from Alfa is uh you know you type in some some query and morol Alpha tries to tell you something interesting about that query so it'll you know you type in X sinx it'll show you some plots it'll it'll um uh work out some things about that you know you might say um instead here you might say what is the integral of x sinx and um it'll go and try and work out the answer and then it'll try and sort of tell you interesting things about that answer and this network connection is really slow um the uh uh but what's um I mean the sort of the idea of of alfare it can do this across all kinds of domains of knowledge so you know if you say uh something like you know uh GDP of France or something it can go and tell you what the answer is and give you a plot or you can say something like um uh what is the GDP of of France divided by Italy or something like that and it will figure out what that means um and uh and give you a plot of the result hopefully it's really slow here but there it is and um or we could say something like um I don't know we could type in uh you know something like this and we could um um and it'll probably figure out that that's a Bas pair sequence or that we probably mean that to be a Bas pair sequence and then it'll go and figure out oh there are no exact matches for that on the human genome let's cut some letters out here um uh it'll go and try and figure out what um uh what exact matches there are on the human genome for example to that particular thing so in this case we got a bunch of matches on a bunch of random chromosomes we can go and ask it what it knows about one of those genes if we if we care um we could go and figure out things like this or we could ask at something like um um how about oh I can ask it let's see I'm I'm yes this won't be actually the real thing I want to do if I stop using well I have a choice here I can I'm using VPN so this thinks it's somewhere in Illinois right now which is means that it isn't quite as interesting to type weather because it's always it's always fun when you're writing software and you uh can do something where you can just look out of the window and find out if your software is working correctly or not um and uh um but you know we can we can say well how about we just say weather Stanford um see what it figures out there um oh okay current weather assuming Stanford is a university okay current weather for Stanford University uh there it is okay so that's the that's the history for the last few days that's um let's say the past um 10 years or something of weather there was a prediction there as well okay so there's the there's the weather for the past 10 days 10 years and so on um or we could uh for example we can say um uh let's try this let's try planes overhead that's another see whether um see whether I can figure that out okay flight seen from Stanford University okay so these are these should be planes that if we want outside we could go and look and um uh uh see that those are they're all very close to the Horizon actually let's try and look at this one for example some some random plane at 33,000 ft right now um oh no data available that's surprising or maybe that's that is surprising usually when the plane is high up it's it's been flying for a while and you can um uh let's try one other and um I might okay so this one it seems to know something about so it's a plane going from somewhere to somewhere and it's always it's always kind of interesting to me how much quantitative stuff there is to figure out in the world so this is a plane and it's it's you know there's its location and you can see the little little circle showing what what the region where it can where that can see that plane or that can be seen from the plane there's its altitude okay it's an Airbus it looks like it's just climbing because that's its altitude as a function of time um and there's so okay it's heading it's made a few turns um and uh there's some cities nearby and so on and so on and so on um yes there some s of Al Discovery in order to get to these results right now going on what what do you mean by that so in so what are the the steps that you follow in your data center in order to produce the these results right now okay so I so to explain that I have to sort of explain the whole idea of what what's going on okay so let me okay good good thank you for asking asking that question let me let me um so kind of the you know the flow in W from Alfa is free form natural language input gets turned into some precise symbolic expression that is sort of a precise representation of what what we think that query probably meant and then we compute what we can compute from that so there there are there are basically four big pieces to building wol from alpha one thing is there's lots of underlying data where does the data come from the data is not foraged from the web essentially none of it is foraged from the web at this point almost none of it is foraged from the web that turned out to be a messy problem sort of FR with all kinds of issues and not very reliable so the sort of the first step is just go get data across all these different domains thousands of domains and you get this sort of very systematic data by now the number of terabytes of data raw data that we have is quite big compared to for example the textual content of the web um and so for example for airplanes that data well this particular thing is a feed right coming from the fa a a and it comes in I think it's a couple of megabytes a minute um and you know we've obviously got the archive of this feed going back uh as long as we can we can go back um and actually for airplanes it's kind of an interesting thing because uh you just having the raw data is only a small part of the problem right that you have to go from this raw data to something that's actually computable so in the case of airplanes uh the the FAA feed is delayed by some number of minutes so if you actually want to figure out what planes are overhead you have to you know you know continue the the trajectories forwards you have to project forwards for some amount of time and then do all the various geoc calculations to figure out what you can see and so on that's sort of a typical case of where there's a blob of raw data but to actually answer questions from that raw data you have to make the data computable and you know we've ended up with this kind of rather elaborate pipeline for sort of going from the raw data sort of being able to understand the raw data validate the raw data it helps to have thousands of domains already done because that makes it easier to see whether the Thousand of1 domains data is sensible or not and then going from that um trying to U uh you know what we found is that we typically always have to have sort of experts in the loop if we actually want to get the right answers from this data we always have to actually and you know conveniently because of uh life and times with mathematic and so on we typically have sort of easy access to the world expert in some particular area and usually it's a great conversation it's like can we talk to you for half an hour or an hour about your field cuz we want to make it more accessible to lots of people and it's like it's I I when I have a chance I I get on some of those phone calls because they're always pretty interesting um and uh but anyway so you have to kind of inject some some expert knowledge into the whole thing um and then so you know one step is sort of make take this data sort of organize it to make it computable another step is actually Implement all sorts of methods and models and algorithms and things that go from that underlying data or in some cases you know the things the things one's going they may not go from underlying data I mean like for example if I were to oops I just do okay if I were to just um you know type in some random number here right um I mean we from alha will probably go and try and figure out what might this number be right so that's not um so okay so it could be that number could be some strange multiple of Pi or it could be some other strange thing you know these are things which are kind of algorithmic things that don't start from any kind of raw data as such they just can't be it's it's always interesting to see you know if you have some kind of um some kind of thing like this um you uh you know 567 ohms right um well so you can do things like you can you can do some unit conversions you can do things like this you can say how does that compare to standard resistors okay you can't make that out of standard resistors but then okay you can do a computation you can figure out what combination of standard resistors will get closest to being able to make that particular uh result um so this is you know these are again typical examples of where the raw data is here's the collection of standard resistors things like that but that's not that useful as such what's useful is to be able to compute something like uh you know here's how to make a particular resistance you type in out of standard resistors so there's this you know a big part of the wol from malfa Project is to implement all these methods and models and algorithms and so on and now the whole of wol from malfa is about 15 million lines of Mathematica code of which a big chunk is implementing sort of all those things that have been figured out in science and engineering and financial analysis and who knows what else you know actually Implement those algorithms so that's sort of another another big chunk another big chunk is okay so you can compute all this stuff you know all this data so now the question is um you know what uh uh how do humans communicate with it well uh there sort of the only option is to use natural language because it's too diverse an area you can't build a formal language and expect people to know what how to interact with it so then the problem is well can you let people just type in natural language and and have it be understood and I thought this might be just plain impossible you know I had all kinds of arguments for why it might be too ambiguous and you might never be able to decode it and so on but we decided to just start trying to do it and use a bunch of methods from nks and so on to try to to make that work um it turned out to be well I think we we figured out a lot of new things which which because what we've ended up doing is very different from either sort of the text retrieval model you know the text retrieval search engine type model of of matching sort of queries with existing text it's also very different from the pausing of full uh kind of um um uh sort of full sentences that you get in in typical kind of you know natural language pausing and so on I mean it turns out it's kind of interesting you know we can now see billions of actual queries that people type into wol from alfha and I kind of have this meta theory that what we see is this it's this strange pseudo language which is a combination of kind of uh uh it's I think it's actually fairly to people's underlying thought processes I mean in the sense that their little fragments of grammatical stuff all combined together just you know they thought they were doing this and then they thought of something different and and there we see the result and it comes in so uh you know so another big piece is to to actually uh do that natural language processing do the do the kind of language understanding our kind of goal in doing that is something probably much crazier than most people have ever tried to do before which is that we absolutely want to nail what the person meant and sometimes we don't know for sure I mean if I type in you know I'm sure if I type in some some random word you know let's say I type in uh you know Springfield right we know there are multiple possible cities multiple meanings for that um and uh so we have to decide you know which one are we talking about well it turns out uh because we have certain knowledge of the world uh we can disambiguate that with very high probability so for example you know this thought I was in Illinois so it guessed that I probably meant Springfield Illinois but it knows where I am it knows where these cities are it knows what the populations of these cities are it knows kind of how famous the cities are according to you know how much they talked about in Wikipedia and things like this um and uh it combines all those things together to try and guess which thing we actually meant and so actually one of the things that we end up doing in wol from Ala that's sort of interesting in a way is that um you know for every query that comes in we actually say we're going to guess we're going to say we we can say what the exact uh thing that that meant was different objective than well it's it's sort of a a um uh and what's somewhat surprising to me is that that works a very large fraction of the time that is people had a definite idea and we can figure out what it was and then we can go compute things from that idea um now obviously there are um so so that's kind of a uh you know that that's another component of what we're doing another thing so beyond sort of uh uh the data the algorithms the language understanding another big component is well what do you actually produce as output right you can compute all kinds of things what do you actually uh what do you actually produ so you know for Springfield what do you actually tell people about Springfield and you might say some someplace down here I bet it's going to say yeah notable people born in Springfield okay that's about the only thing I know about about Springfield Illinois um but uh um so this this idea but the sort of meta idea here is given some query automatically generate a report about what the world has to say about that query um and that's kind of the that's kind of the notion um and uh it's I suppose it's interesting maybe to to compare what we're trying to do with computational knowledge with for example the world of search engines and things like that I mean the the um uh you know what we end up trying to do is to say I mean you know search engine there's this big web out there of you know probably I don't know 10 billion pretty interesting pages and some number of 50 billion not so interesting pages and you know lots more of uh other random stuff and the question is given the bag of words that you type in is there a match to that bag of words somewhere on the web and so that's you know that's what one tries to do there and sort of has the and so if you have some question if the answer to that question has been WR explicitly written down somewhere before on the web you can you can pick it out by that kind of uh searching text retrieval type thing if the answer to your particular question has never been written down on the web then you're out of luck by that technique and what we're trying to do is to see well what are the when can we actually answer questions um by Computing the answer rather than by looking up the answer and the other thing we end up doing is because we actually can get a definite interpretation of a um uh uh a query um we're able to say um uh you know from that definite interpretation let's just generate a report about what we have to say about that interpretation we're not saying it turns out that we can sort of take a different path from the path of saying you know here are a bunch of possible things you might want to look at based on the query um it's kind of like I suppose at some level it's it's like the uh uh you know you go to a library and you say um um you know I I'd like to um uh know about something and somebody can say well here are 10 books you might want to read about this the sort of alternative is here's some report that somebody you know some analyst has made that tells you specifically about the particular question you asked and we we've been trying to do this sort of in a sense much crazier thing of trying to actually answer specific questions that people ask it's kind of interesting if you look at our query stream now uh the percentage of queries that we get um that uh whose literal form exists somewhere in the web is dwindling at this point um and uh uh and that's partly because you know the queries have actual numbers in them and people ask specific questions and you know the other thing that's very encouraging is that the fraction of queries that we can understand is now very very high now it's partly because people have leared what W from alpha can do but it's also because we've been gradually learning from what people what humans um have sort of thrown at it well okay so I mean it's it's the the whole thing is a a pretty complicated system and I'm actually I'm always continually surprised that it actually works as well as it does because it's just it's it's a very big thing and it's and it involves lots of different pieces which are you know any one of which could be horribly fraught with with difficulty um but maybe uh I could show you a little bit about what sort of the the future of this kind of thing might look like but I'm not sure I think I've almost run out of time I've been yaking for ages here um maybe I'll show you I'll show you if if people um I'll show you a few things we're playing with um so here's an example of something we're playing with so so you know wol Alpha as it is configured right now um is mostly about um uh taking things like text as input so you can also do things like um uh for example you could take um uh you could take an image as input um this is just something we're playing with um and uh um so you know there's an image and now sort of the default thing would be to uh uh to compute a few particular things about that image and actually it's fun you can you can combine kind of this thing called CDF the computable document format which is something derived from uh mathematical language technology um combine that with um uh with wolf malfer and here we're sort of on the Fly generating um some piece of interactive code uh that we can then run in this case to do some simple piece of image processing um but you know I could say here well let's say I just want to do something like um uh Edge detect um this particular uh uh image up here um and then it'll probably go and and be able to do Edge detection on it um and it's actually interesting you know you can do this kind of natural language type um uh see I've got a Mathematica here yeah you can do this kind of natural language um uh version so so like in in Mathematica it's kind of interesting you can you can type in to to Mathematica you can type uh kind of free form input that then uses wol from malfa to go and uh be able to sort of generate precise programs there um so we can we can take that we can say something like let's see what happens if I say rotate 30° see if that works um uh I don't know if this will work oh it just gave me the rotation Matrix cuz didn't I should have said rotate the image 30° um maybe I could say see what what happens if I say blur the image see if it figures out which image I'm talking about um may or may not uh um first of all it has to actually no it didn't manage to figure it out okay well maybe I can say um uh let's say draw a green circle um but in each case what it's doing is it's generating um the actual uh um we go um it's generating the actual Mathematica code that's that's necessary to to do all these things and it's kind of interesting to see how you can combine kind of free form Linguistics um with uh um uh with with that actual um with that sort of precision of a programming language well the another thing you can do um that we're sort of playing with is um uh being able to um uh to up to not only give from alpha as input uh something that's a pure uh sort of query that relates to sort of public knowledge in the world but you can also do something like upload a bunch of data that you've created or something um to it and then say to it okay go analyze that data on the basis of what else you know so this is an example where Let's see we can probably look for the original data okay so this is some some just some random blob of structured data somewhat structured data um and so then we can go back and in this case we just sort of threw that data at from Mal for and said okay what can you figure out from that um and so it will then try and work out you know what might be interesting to give us a sort of a report based on that data and so there's a few examples maybe there's some statistics it's it's worked out some statistical things maybe at the bottom it came to various statistical conclusions based on doing some regression analysis something like that um or you can go and say I don't know if I've got an example here which shows this let's see um let's try how about this let's try let's try that um so here we've got um just another example of some random data but now this data had in this particular case it had I think names of countries in it okay so we could recognize what you know we have all this Linguistics so we can figure out what the sort of actual country that was being referred to was um in this case it makes various raw data plots and probably somewhere down here it'll make some heat map plot which has recognize that those are you know names of countries and um uh and you can go and and do this and you know the fact that uh you can kind of show off and see that um it actually really knew that those were countries and it knew things about those countries so instead of just plotting the original data we can say normalize it by population because it obviously knows these are countries and it knows features of those countries and so on um so this is kind of one of well one of many kind of frontiers of of things that we're doing um that uh uh of being able to take kind of data from the outside world and combine it with um uh uh with um uh uh with data sort of from um uh with you know data that uh one uploads and sort of combine that with knowledge that we have of the world and try and uh deduce interesting things from it um there's there's a lot of other stuff that um well I can talk about um talk about lots of different things that we're trying to do but I said I would I would kind of just talk for for a bit and then then get questions and comments and so on so I think I've been talking for too long so probably I should should stop and we should uh sort of open this up for for questions comments whatever else yes please yes that Center column on your pyramid I guess it was random black and white sequins yes but on the side it looked regular so each time you do it you get a different oh no no no no it's it's just you just you know you're following that rule at the bottom there and every time you do this you're going to get the exact same um uh the I don't know what that did but that's really weird okay could be dangerous to press that no it didn't didn't seem too dangerous um you know every time you do this you there there's no probabilities involved every time you do it you get this precise same thing it's like Computing the digits of pi or something there's a definite algorithm there's a definite sequence it just so happens that that sequence like the digits of pi even though it's definite to produce is seemingly quite random and so you know for example there are now you know there's a whole literature tree of papers about all the regularities on the left hand side of this pattern now um and so quite a bit is known about it um unfortunately I've been hoping I'm I'm I'm trying to predict how many years it will be before somebody proves anything about the center column um I mean it's uh so far there is nothing that's been proved about the center column but it has been proved that the 1 plus Epsilon Center column in other words one Center column plus Epsilon of another column doesn't repeat so that's a that's that's the but that's as far as it's it's got it has it's not down to even that the center column doesn't repeat although I'm sure it doesn't um but yes this is uh and the fact that you can see um you know you can see some regularity here is not you know it's not surprising because there is a an underlying definite rule um but what's interesting is that so much of what one sees um is uh uh has such complexity to it yeah with the center column it's expensive to compute because you have to keep you have to keep one row I mean your intermediate storage is growing linearly with the yeah if you wanted to compute I mean so for example when we use it as a candom generator uh we just using it in a fixed size register um so actually okay so to to fill in that story a little bit more cuz it's slightly interesting so we use rule 30 as a CM generator default CM generator in Mathematica for many many years and then we said surely there's a slightly better cellular automaton out there so then we actually um because this was one it's just too too easy to use this one so to speak so then we actually did a big search of trillions of these things and we found some that are slightly better in the sense that they there um you can make you can use smaller registers and you can have things uh and you can also do nice sort of clever they're particularly nice with respect to um um you know parallel bit operations and computer words and so on um so we don't actually the the version starting with version eight of Mathematica the absolute default C random generator isn't precise to rule 30 it's another more elaborate cell automatan well it's more interesting you say you limited the register size I would have expected the theories to be qualitatively different between on the on the integers this way and on fixed register no it's it's not qu different I mean you can work out things like you know what what's the period length and so on and we know a lot about what the period length is um it's not a maximal length sequence it's about 2 the 6 n um and if it were a maximal length sequence that almost implies certain kinds of regularity and that's why in like linear feedback shift registers which do have maximal length sequences you that sort of implies a certain algebraic structure and a certain regularity to the whole thing that uh wouldn't that that that this would have if it was a truly maximal length sequence um but yes it's it's I mean there's uh um now in terms of you know um it is true that the theory is different for for a smaller register yeah yeah right so I mean in the in the I forget what the actual boundary conditions are that we use in the final thing that's used in mathematic I mean the simplest thing to do is just wrap it around in a cylinder but you can do other things as well yeah okay Stephen can you say something about how satellites work on programming the universe Compares with what you're doing no I have no idea I have no idea what Seth has been up to recently so how about just a more General version of that question you said there's a whole Sidetrack that goes down into theoretical physics cosmology and digital I can talk a little bit about that down that Sidetrack for a few minutes yeah yeah I mean so so the the question the sort of the meta question is if you think about this computational universe of possible universes is our physical Universe easy to find there might not be it could be that that that our physical Universe there is a program for our physical universe but that program is incredibly huge right so it could be that that um you know in a sense if you think cernic so to speak you would say there can't be anything special about our universe it must just be an arbitrary Universe in the space of all possible universes just like our star is an arbitrary star in the you know in the 100 you know in the in the in the 100 billion stars and the 100 billion galaxies and so on so it it's um uh but but nevertheless it's a reasonable thing to ask that so one one metapa we know in science which is that our universe is not as complicated as it could be and this is sort of a basic fact that was noticed by theologians a long time ago and it's sort of the basis for science in a sense which is you know there are maybe 10 to the 80th 10 to the 90th particles in the universe and every one of those particles could be doing a different thing it could have a different rule there could be no regularity whatsoever but we know that that isn't the case so we know that the rule for the universe is quite small compared to sort of the universe itself now the question is how small is it a rule that you know if you wrote it in Mathematica would be five long 5,000 lines long a million lines long how long is the rule so it seems like a reasonable thing to at least ask the question uh you know what about could it be a simple rule and you know you can just start enumerating rules and you can see you know could this be our universe could this not be our universe well when you start doing that you have to think a little bit more more about you know what would be the raw material what kinds of rules should you look at well the thing you realize is if if there's a very small rule for our universe then essentially nothing that's familiar to us about the universe can be encoded directly in that rule there simply isn't room I mean if you've only got three lines of code you don't get to put a three in there for the number of dimensions of space and you don't get to put a you know 206 for the mass ratio of the muon and the electron and so on right it has to all emerge from what's there so so then the question is what might be in those three lines of code or whatever and so you have to look for what's the lowest level thing that's sort of below space and time and particles and all kinds of things I think there are what's interesting is when you're at that lower level there are many equivalent formulations um but one that I happen to have found convenient and studied quite a bit is to think about sort of the whole universe like a network so the idea is that that all there is ultimately is a bunch of nodes and connectivity of those nodes that's it there's nothing else there's that's and so how do things emerge from that well it's just like you know you have a fluid like water at a low you know it seems like a continuous thing but at a sufficiently low level it's made of a bunch of molecules bouncing around and so that's how space might work too that at a large scale it seems continuous but uh at a a small scale it's like it just has a bunch of discrete nodes and you know it's not hard to see how you can arrange those discrete nodes to be like you know one-dimensional thing a two- dimensional thing a threedimensional thing and so on but sort of the notion is that that out of these discrete nodes there emerges um something that's like ordinary space and sort of everything has to be part of this it's kind of actually a very similar to some of Einstein 's later uh sort of ideas about how things might work that sort of everything is just space and all the matter and particles and things have to be features of space they don't get to be something that sort of exists as a separate thing not not being part of space so to speak well so then the question is how does Okay so there's a space how do you update space so to speak and there's all kinds of issues about um uh and and um uh there's all kinds of issues about how you think about time um um well suffice it to say you can you can look at lots of different kinds of rules for updating the universe and many of them are clearly not our universe like the thing just freezes after three steps not our universe right the thing has expands in some trivial exponential way and is is very regular very homogeneous not our universe the thing is clearly you know it's an infinite dimensional thing clearly not our universe um and lots of other pathologies that can happen but it turns out among the if you just start enumerating possible rules lots of them a surprising number um actually have the feature that they just blob around and they do very very complicated things basically anytime you can crack what they're doing it's not our universe anytime you can say this is the K graph you know it's generating the K graph of some group or something like that not our universe um but uh you know the cases where it's complicated you can't tell um and uh you know what's interesting is I've been able to figure out a certain amount um uh from from what you can tell and so an example that I think is pretty neat is that you you can derive uh certain features of SpaceTime so for instance one of one of the things that happens is you can ask you know uh like in in fluid mechanics right you you start from the molecules bouncing around underneath and then you derive the fluid equations um and from looking at that molecular Dynamics and taking certain limits and so on you can derive with certain approximations the fluid equations so the question is when you just have this microscopic stuff going around what kinds of things can you derive about the large scale Behavior okay so the first big excitement is that you can subject to certain condition you can derive special relativity which is quite exciting because most theories have special relativity built in in fact every theory has special relativity built in but in these systems you can derive well the actual logical thing is if there is a single thread of time in the universe then it implies special relativity in these theories second thing you can do is you can actually derive uh the Einstein Einstein's equations for general of day um and essentially they come about in the more or less the same way that the fluid equations come about from Dynamics although the situation is more complicated here because there are networks and it's a whole mathematical Adventure but um but you can derive that so that's pretty interesting and um then you can start asking about quantum mechanics and there are at least pretty good indications that you start seeing kind of quantum mechanical type phenomena it's a slightly long story because the system looks deterministic but there are uh basically what happens is that there are these um uh the all that matters all that you can detect about the system is these so-called causal networks of how different events in the system affect other events and the microscopic ways that the updating happens are independent can happen in many different ways while having the same causal Network that combined with the fact that these systems are not uh in any fundamental sense like three-dimensional or any fixed dimensional allows one to avoid you know issues about violation of bells inequalities and all these kinds of technical things and you can start getting the beginnings of seeing some interesting quantum mechanical and Quantum field theoretic effects effects so you know so the challenge there is uh you know can you it's a big sort of Technology adventure to sort of recapitulate the history of physics and be able to say okay here's a candidate Universe go figure out its properties and then say well how does it compare to the universe that we actually have discovered from from all the existing work that's been done in physics and that's a non-trivial thing to go from the candidate Universe to sort of deduce its effective physical laws and compare it with what we know um but that's that's what the project is and I I I've been I've been too distracted with working on wol from malfa in all kinds of interesting technology directions for the last few years to to pursue this as much as I would like but it's my longer term goal um to try and nail this down and find out either you know it could be the case that our universe just isn't one of these simple universes in the computational universe of possible universes um but we don't know that yet and it would be kind of embarrassing if it was number there's a reasonable candidate at around number 104 maybe and if that turns out to be right it would be really embarrassing not to have nailed it down um and uh it's um so you know but but you know of course it could be completely not right and it could be that that our universe is you know is out very far out in the space of all possible universes or maybe not describable in this kind of way at all we don't know um and unfortunately this computational irreducibility phenomenon really bites us because it it says you know we have to in order to know whether something is our universe we better not have to run it for as long as our universe has been running we better have some Shortcut way of figuring out what's going on so it's non-trivial to kind of you know you have to be lucky to have enough computational reducibility to be able to to uh uh to compare these things properly Al yes the cular that I've seen you mentioned have all been expressible in a two-dimensional plane are there higher dimensional ones too yeah sure I mean you can you can make you can make cellular autometer in any number of dimensions and you can make I wonder if I have an example here readily uh how do you label them well they're many more to to have so really you just have to give well okay so here are some here are some 2D ones that are just growing out those are single time slices of 2D On's um oh there's a fun one that's one of my favorites that's a that's a 2d1 on a square grid that grows in almost perfect circle completely deterministically grows in almost perfect circle actually this is one that grows an almost perfect I don't know what it is some kind of vegetable like thing um the um but these are I mean it's it's um uh the rules it's just you just specify the rule I mean there are many more rules so you don't get to I mean I have numbering schemes for them but they're not quite as convenient as they are for the simple onedimensional ones are yes uh you you uh give sort of dossier like answers to questions but I was wondering whether you could if you have a very specific question like who is the most famous person who was born in Springfield Illinois could you could you do that too yeah yeah I mean usually what happens so so what we found is that okay so this is a let see whether that works I'm actually slightly pessimistic about that particular query let's see most famous person born in Springfield Illinois I'm as I say I'm pessimistic about that particular question because I suspect that isn't a yeah right I mean there there's there's lots of um okay so that um okay so this is just this just said it's using the closest interpretation it has which is all the notable people it knows born in that so that wasn't a actually the the um if you see the um the version of wolf malfa that Siri uses on the on the um iPhone 4S um that's uh uh well actually that that um uh that that's a case where one is interested in getting sort of the straight single answer because it's it's um uh but that's so that's a kind of a but what we found in in in most use cases is that actually people really like having the whole report that is if you know in a vast majority of cases if you just say this is the answer the answer is 42 for example um people you know it's that doesn't really satisfy people but if you show it's 42 and here's where the 42 lies and some plot of all possible you know answers and here's here's a bunch of other detail about it then they are much happier and in fact I find that myself you know I see these things where we just get an answer it's this you know and I'm like do I really believe that you know what's what's really going on so so we haven't particularly emphasized giving the sort of single answer as opposed to giving a whole report um although there are cases like the Siri case where it's relevant to um uh uh to try to identify something which for example in that case you can read back in a short way you might you might be asking a sequence of questions for each one depended on the previous one you might want to might might the specific answer to the first question might be the lead into the next that's right so so I mean that's represented in this kind of interface by just you know you follow the link so to speak speak because that will be you know one of these will be a particular answer whoever that is is a particular answer and then you follow that link and you get to the answer now um in uh um in the um uh and so you know actually that's an interesting thing that we're actually working on is this kind of thing where you can you know go from something and sort of chain down a sequence of answers and there's sort of a question how do you visually represent that and actually we think we have a pretty good scheme for doing that the case that I showed you of of of wol inside Mathematica is a case that works precisely like what you just described because okay so for us a big sort of conceptual difference is in Mathematica there's always just one answer in wolf from malfa there's a report right and so how do you merge those two things together so there are cases in which in Mathematica you know you can you can use wolf malfa to just get a single result and then you can sort of chain it down as you would in a typical Mathematica session and so there's the question how do you take these much fuzzier results and chain them and as I say I think we have a good sort of human understandable way of doing that but it's it's an active area of Investigation yes how do you go ahead projecting things into the future for examp there's a finite probability of a big earthquake here today and if you ask Wolfram aler about that it might go back to USGS predictions but you have other techniques for uh projecting data now into the future not anything very interesting I mean we starting to do some things I mean one thing that we've tried to do is to um uh that's just the earthquake feed for right now um you know if you say something like um something like this um you know you you'll um you'll see you know it'll probably okay so it'll just give some okay that that actually that didn't give me what I thought it would give me let me just see what happens if I just ask in general about Microsoft um so here you know I'll get some results and then somewhere down here probably yeah okay so here you know here there are some projections okay now these projections are made on the basis of a model that uses previous things and these are sort of sample projections and this tells me that you know 95% confidence interval for you know that that it'll be between - 12% and plus 133% and so on that's based on historical volatility Etc ET ET you know it's a pretty standard model in this case um the question of whether um you know the question of other kinds of predictions so like weather prediction for example okay so we obviously get you know the standard weather predictions and and you know everybody gets the same you know weather codes that get run and they produce these ensembles of predictions and then you have to parse out what you actually want to say the probability of rain is given that you know three things said it would rain and seven said it wouldn't and you know etc etc etc um you know we've looked at for example how you can improve those predictions by knowing what happened in the past and and actually one of the things is that I have to say whether forecasters I think have gotten good in the following sense that the errors are really quite gaussian and random that is that they're wrong they're often wrong but you can't actually improve the predictions so far as we can tell by going back and looking at what happened with previous predictions and comparing those to what you know the actuality but in general I mean this this sort of question of what can you learn about the world I mean we for example with these user data sets that people can upload um we can do things like compare those to you know somebody uploads a Time series something that we recognize as a Time series we can say well what is that time series correlated with you know is it correlated with you know the you know the price of bananas or something right and um uh you know because we probably have let's see whether we have something like that um the uh you know some some totally random okay so the average price in the US of bananas is .59 per pound and I wonder what that Spike was that was probably some revolution in some banana country I don't know um um but you know you could ask the question you know if you look at some completely other thing what is it correlated with I I have a feeling that's mostly going to be noise um but we will see yes what you gotten out of alpha that has truly surprised you in ter of answer you know I I find surprising things all the time I mean I you know well like what we just saw here I I'm surprised that there's a single peak in the you know banana price I don't know why that why that's the case I mean it's you know actually there's one of these that um um you know I think that um uh you know one of the main things is that for me qualitatively there are all these things where I kind of have the idea well there might be a way to compute that it might be a known thing it might not be and you know in the past I could would never have bothered to go and track it down and I'm I'm about as computer oriented ented as anybody so to speak and I'll you know I'll if if there's something where I think it can be figured out I'll actually go and try and figure it out in many cases but but you know going from uh sort of uh uh the it's possible in principle to it's trivial to do it has had a big qualitative effect for me well well sure I mean of course there's things in the world that surprise you I'm thinking more in terms of you have some mental model of Alpha and what it should be able to do do you get answers that you look at and say how did it do that occasionally I mean it's it's still it doesn't yeah it doesn't surprise me as much as uh uh as it perhaps one day will because what it's doing is I mean it's still staying fairly close to the ground in terms of their algorithms that have been implemented and it's going to apply those algorithms it's sometimes you know it's a little clever at figuring out you know there's this chain of things that it can work out and so it gets to an answer I'm yeah right no I I think that one one of the one one of the surprises that I've had is a little bit of a different kind of surprise um is what ends up being computable in the world right so what types of things you can you can actually make computable so for instance you know I'm thinking you know a Shakespeare play for example okay what is computable about a Shakespeare play right you might have thought there's nothing okay but it turns out you know you can go in and you can you can chop it up and you can say how many words it has in it and so on you can say um okay that that's um uh and um uh and so on but then you can actually also work out okay you know which character was speaking when in um uh you know in in the play and so on and that's you know that's not difficult to do um and you can you can work out all kinds of things which you know I I've been surprised by um uh um if I'm going to go on for does anybody happen to have a MacBook Air power cable could I borrow one please okay thank you very much is that going to going to work from no that's not a MacBook Air that's a that's a generic MacBook okay thank you very much just remember to get it back from me um the uh it's um so uh yeah yeah yes no it's just a minute let me see what do I what can I unplug here um oh my there we go and now that didn't work oh come on that worked thank you um anyway so so I think one of the things that that has been surprising to me as the things that end up being computable that end up just being computable about the world that I hadn't expected to be I would say in terms of of um uh yeah it's probably the most most obvious I I'm trying to think I mean there are all kinds of decisions that I would have that I made differently because I was actually able to compute something and and that I would have made differently at other times of my life if I had been able to compute something immediately um and uh you know but I think those are the those are the kinds of things come to mind immediately other yes you've talked about you studying queries that come in is that available for other people to look at too or to do any statistical analysis of the queries well I think you know there's a we kind of say we're going to keep all queries private so we're not we're not going to give you know anybody a big big lump of query data well but indeed some of the other websites do give some kind of data onset we yeah we might do that at some point I mean it's it's uh I me it's kind of interesting sometimes you can see I mean you you can see stuff about what's happening in the world by people uh you know things that people are making queries about and so on um and uh uh you know I don't know um um uh yeah I mean I think right right now we are um you know what ends up happening is um it's you know it's lots of you know we get these query streams and then we carve them up and we're doing a bunch of analysis on them um and uh uh you know I'm sure there'll be eventually there'll be academic papers and things about them but but right now we're we're just busily trying to do as much analysis as we can to try and make make W from alfha do things that people want um you know as effectively as possible yes you mentioned that you get special data feeds like from the FAA um have you had you have to pay for some of these feeds uh of course people give you trouble well I mean yeah I mean there's there's there's endless endless things I mean like for example okay a airplanes you know the US well the FAA is a comp FAA has all kinds of all kinds of issues but but that that one is is at least a you know feed you can get in Europe for example Euro control which is the analog of of the FAA it's a more complicated thing you know they're very helpful but they say but but you know it doesn't work like the us there isn't a constitution that says you know government you know by the people for the people so to speak there's no there's no requirement of having the data be be available and so on so it's more complicated right um and you know that's true for uh I mean this is a you know it's it's a complicated timec consuming sometimes expensive thing to piece together all these different kinds of data about the world um and I think that's um uh uh yeah I mean that's that's one of the things that we're spending lots of effort on and um uh that um you know as a company we're trying to uh sort of make work as well as we can yes you mentioned your computational document format and can you talk a little bit about your goals for that and how you see that fitting into kind of our current world of PDFs and Tech documents and things like this sure well let's see I can I can just show you so I mean the the the obvious some kind of uh you know there are a bunch of obvious use cases so for instance you know let's say you're writing some uh report on you know you have some this is I think a real one uh this was some person who was doing some uh report to the Texas state legislature okay and um uh in this report was this computable thing so there's some model for something to do with insurance and right there inside the report it's computable and you can move sliders around and you can find out what happens if you change some parameter of some model um so that's an example of the type of thing you can do and so the the idea is that um you know you can uh the two use cases that have emerged quickly are textbooks and reports basically um I mean textbooks there's a there's a calculus book that just came out that has some uh lots of essentially algorithmic diagrams in it um and then for reports like within our company for example um the um uh um uh within our company there there's you know uh all of our sort of internal reporting is done in CDF and it's actually really nice because you can take some report you can drill down the thing can uh you know within the report it can go out and access some database and go and suck in more data and so on so it's really taking what is uh you know what one first of all thought of as a document and turning it into something that's actually Computing things um should wrap up in a minute so maybe one or two more questions and then we should we should wrap up yes how many domains do you have and which what was like your priority in trying to get those well so we have I don't know how to count domains exactly but but um uh you know we I mean you can you can look at um uh you know just just examples here um you know that's some indication of domains I mean there are thousands of these things but I don't know you know we don't really have a way to say this is a domain and this isn't a domain like are bolts and nuts different domains you know or are they the same domain it's it's um uh um in terms of priority we actually um so we started off with some of the more hard science kinds of things because they were very you know it was very definite what you could do there we've kind of moved out to the more sort of culture oriented things and we are actually just started to have a big push into sort of everyday consumer kinds of things so you know we did we just started with sports stuff recently with NFL data um we're going to have a bunch of things and much more consumer we did uh you know you can do things like you can say something like um uh you know you could say something like smartphones and you'll you'll get a bunch of uh uh a bunch of information about um uh the world of um uh of of smartphones based in this particular case on on the uh right now on the Best Buy catalog um and so you can you can can compute all kinds of things there there are some price distributions and things like that for for smartphones and so on um I think the uh uh generally we've been moving from the more hard stuff to the the more consumer stuff um and uh uh in terms of priority you know we it's really easy for us in a sense because we get a giant to-do list every day it's um you know there are all these feedbacks there are all these things that work there things that don't work um the current length of the to-do list is about you know at the at the rate we're going to absolutely finish the to-do list we'll take about 20 years um the uh uh which is not that scary to me I've been working on Mathematica for 25 years um but it will actually take a lot less than that and what you get by the time you're you know as you're in the taale of that it's pretty obscure um and actually the the to-do list has not changed that much in the sense that we know what the domains are that people want now probably one thing that has happened is that people's expectations and our own expectations for what we can do have gone up and up so a domain used to be well you just put in some basic things but now it's well you got to generate these very elaborate reports you got to be able to link it up with all sorts of other things you've got to be able to you know uh sort of look at things across different domains and so on it's a you know so expectations have gone up so that makes it more difficult but yeah yes um so you've been mentioning simulations a lot in your work and um today when scientists do simulations they use compiled languages because they're fast like C and Fortran do you think Mathematica with its holistic modular structure will be able to reach the efficiency and performance of those languages and will it maybe even make writing simulations easier for a future oh people lots and lots and lots of people in the world use Mathematica to do simulations um and the the typical thing is that you know when you think about doing a computation there are these um sort of lumps of computational work that have to be done so one lump might be work out the igen values of a matrix or something once you're working out the IG values of a matrix I will be shocked if Mathematica is not as fast as it could possibly be at doing that and if you wrote your own custom program for doing it it will be slower with with certainty I would say so the issue is you know are these lumps of computational work you know do they map correctly onto what people want to do in simulations and you know basically what we found right now is that for most kinds of things people want to do okay if they write good Mathematica code it will be very fast um if they write Mathematica code that looks like Fortran it will be kind of lousy and slow now actually we think we have a solution to that which is to rewrite their code for them and that requires doing things that are like what we do in wol from malfa and basically doing linguistic understanding not of natural language queries but of code and we have a bunch of projects working on things like that and that that we think is the best solution because if you can turn their you know their du Loop into some you know functional programming Nest thingy we can make it really really fast it's just it's kind of painful for us to make a doop I mean actually in Mathematica in the latest versions of Mathematica we have code generation so you can do for things which can be reasonably uh moved into C code for example we can generate the C code and compile it and so on but clearly a lot of what Mathematica does cannot be just turned into small lamps of C code um so you know that that's the uh uh I certainly would hope that um it's sort of a trajectory that we're on um and it's certainly true in the world today that lots of people use Mathematica for simulation and it's it's um there are plenty of places where it's used in real-time loops and all this kind of things so I think it's uh uh you know I think the main thing to realize is that once if you can ident ify the lumps of computational uh you know operation well then you're going to come out way ahead relative to using sort of a one step at a time you know compiled language where nobody's G will have gone to nearly as much effort to optimize the how those lumps of of work operate yes what language is Mathematica written most of Mathematica is now written in Mathematica so I mean there's there's a a c code you know there's lumps of C code there's there's other kinds of there's Java there's all kinds of languages inside the the raw source code of Mathematica but the vast majority of the code is now written in Mathematica yeah um you said that a lot of the intelligence can be computed so do you think there's any rules of the cellular atomica that are related to that well so I mean the thing that I've kind of realized is that these things that one does that sort of are intelligence like ends up being I it's kind of the long story of AI that the things that kind of seemed like they'd need that spark of human intelligence that's just an algorithm for doing it and that's that's really what we're finding and I don't know what you know you know I often I look at you know work that's been done in Ai and so on and these all these all this effort that's been put in and say there's this really cool example that does this and this and this I say surely we must be able to use all this work that's been done in this direction and it's like well there's this really cool example and but it's just some very isolated obscure thing and it's like there's this cool example but if you actually say let's systematically um try to uh uh you know let's say there's some cool example about how you know oh I don't know you know the the um you can deduce from the fact that somebody is you know president of the US that they're this that they're that well okay that's great but you know what about you know the whole database of all the world leaders throughout history and so on that's what you really need to actually be able to answer typical interesting questions and that's sort of a very different problem from the you know let's make a cute string of inferences and so on so I should probably wrap up I have to run off somewhere else but thank you all very much for more please visit us at stanford.edu
Info
Channel: Stanford
Views: 9,040
Rating: undefined out of 5
Keywords: software engineering, computer science, mathematics, nature, technology, artificial intelligence, contextual search, language, theoretical physics, cosmology, problem solving, internet, computation, computer programs, automation, algorithm, data model, na
Id: ygTkZAX59N8
Channel Id: undefined
Length: 94min 35sec (5675 seconds)
Published: Mon Sep 10 2012
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.