[00:19.640 --> 00:21.700] Is anybody like a Keynote Pro? [00:21.940 --> 00:26.460] Because I have all the notes in here and it seems to be showing the same thing on both screens. [00:27.260 --> 00:28.180] You know what I mean? [00:28.480 --> 00:28.980] Alright. [00:33.410 --> 00:34.630] It's not in Keynote. [00:34.770 --> 00:35.890] Go to System Preferences. [00:40.630 --> 00:41.130] Displays. [00:45.570 --> 00:46.070] Arrangement. [00:46.830 --> 00:47.910] Turn off mirroring. [00:48.770 --> 00:49.190] Nice. [00:54.980 --> 00:55.380] Yeah. [00:55.380 --> 00:55.780] Okay. [00:57.020 --> 00:57.820] Let's see here. [00:59.840 --> 01:01.320] Is there another window under this? [01:03.240 --> 01:04.340] Oh, no, it's up there. [01:05.280 --> 01:06.240] Put my arrangement again. [01:06.460 --> 01:08.260] We've got them forking to two monitors now. [01:08.460 --> 01:10.620] And there should be a screen that lets you pick which one's the best. [01:11.780 --> 01:11.920] Yeah. [01:11.920 --> 01:12.420] Yeah, there we go. [01:12.700 --> 01:14.000] Drag them backwards in the other direction. [01:15.060 --> 01:15.620] There you go. [01:16.360 --> 01:17.240] Go to Keynote. [01:17.620 --> 01:18.720] Go to Directed, then you are. [01:21.100 --> 01:22.040] Ah, okay. [01:22.240 --> 01:22.500] Thank you. [01:23.700 --> 01:24.720] It's still like... [01:26.160 --> 01:26.800] That's okay. [01:26.940 --> 01:28.020] Let's just run it and see what happens. [01:34.770 --> 01:35.790] Oh, that is weird. [01:42.700 --> 01:44.260] Change the like... [01:44.840 --> 01:45.600] Alt tab. [01:47.200 --> 01:48.300] I'm sorry, yeah. [01:48.840 --> 01:50.980] Change to the other LCD window that we have open. [01:51.360 --> 01:53.380] So we're on it now, I think. [01:54.240 --> 01:55.680] They're like split now. [01:55.680 --> 01:56.260] Yeah. [01:58.080 --> 01:59.400] Sorry, I don't know the name of this key. [01:59.740 --> 01:59.960] Yeah. [02:00.640 --> 02:00.920] Till day. [02:01.040 --> 02:01.400] There we are. [02:01.700 --> 02:03.520] It's been too late in the day. [02:14.900 --> 02:18.320] For some reason, the projector is cutting off part, so I can't grab it. [02:18.420 --> 02:23.480] So I'm going to turn it back to mirror for a second so we can move Keynote down. [03:00.080 --> 03:01.940] It's not behaving as I expected it. [03:02.660 --> 03:04.700] Can you just drag it now to this window? [03:05.120 --> 03:05.780] Yeah, I think so. [03:09.080 --> 03:10.520] It doesn't want to go. [03:11.060 --> 03:11.560] There we go. [03:12.260 --> 03:12.740] Cool. [03:14.260 --> 03:14.660] Nice. [03:16.580 --> 03:16.980] Yay. [03:17.680 --> 03:18.040] Thanks, dude. [03:18.260 --> 03:18.580] Thank you. [03:18.880 --> 03:19.300] Sorry, guys. [03:23.360 --> 03:23.760] Okay. [03:24.080 --> 03:32.100] So there's not going to be as much like robotics focus as far as like live robotics as there was originally. [03:32.240 --> 03:36.320] So if you came to see like a bunch of robotics platforms, there's only going to be one here. [03:36.980 --> 03:38.960] So, okay. [03:40.680 --> 03:41.260] Let's see. [03:43.840 --> 03:47.820] So a lot of this is research that I've kind of accumulated from different sources. [03:47.820 --> 03:50.700] A lot of my ideas are thrown in here, other people's ideas. [03:50.700 --> 03:53.000] I'm not claiming that any of this is mine, though. [03:53.980 --> 03:59.420] You know, if you want to talk more about sources and where I got this stuff from, you know, feel free to ask me at the end. [04:00.940 --> 04:01.740] So, okay. [04:01.740 --> 04:21.540] So the items that we're going to cover are facts and concepts of the singularity, approaching the singularity, merging robotics and artificial general intelligence, evolutionary robotics, and kind of our responsibilities as hackers and as citizens. [04:21.980 --> 04:26.940] And we're going to do like a quick genetic programming and web bots demo. [04:26.940 --> 04:30.200] So, yeah. [04:30.580 --> 04:32.060] Facts and concepts of the singularity. [04:32.670 --> 04:34.920] So what is the singularity? [04:35.380 --> 04:39.480] So the term was first used from a technological perspective in 1958. [04:40.000 --> 04:43.860] And it was written in reference to a conversation with John von Neumann. [04:44.420 --> 04:55.240] And I paraphrase, the ever-accelerating progress of technology gives the appearance of approaching some essential singularity in which human affairs as we know them could not continue. [04:56.640 --> 04:58.540] So, we've kind of already begun this. [04:58.740 --> 05:01.820] You know, we can't take away a lot of the technology that we already have. [05:04.160 --> 05:11.400] The inventor and author, Raymond Kurzweil, has taken the singularity concept to describe his attitude and belief pertaining to a time in the future. [05:12.120 --> 05:16.900] To Kurzweil, the future singularity isn't 100 years away, but more like 30 or 40. [05:17.980 --> 05:21.540] So, we're going to talk a lot about his beliefs, but we don't follow them blindly. [05:21.540 --> 05:26.480] There's some data in here and some projections about talking to the point. [05:26.800 --> 05:29.520] So, let's get into it a little bit more. [05:30.880 --> 05:45.420] So, an interesting thing to consider is, measured in today's rate of progress, and we're going to get to the math behind this, is the next 14 years is actually equivalent to 20 years of progress. [05:45.420 --> 05:49.640] I'm sure some people have heard this before, but like I said, we're going to get into a little bit of the math. [05:51.660 --> 05:56.180] The next 100 years is actually equal to 20,000 years of technological progress. [05:56.520 --> 06:00.060] So, it sounds kind of crazy, but there's math that explains this. [06:02.740 --> 06:08.680] The technological progress of the first two decades matches the entire 1900s. [06:09.460 --> 06:14.760] And people often state that, you know, we won't see that for another 100 years. [06:14.760 --> 06:22.120] And they're right, but they kind of fail to realize what the exponential increase in technology, you know, it's progressing. [06:23.380 --> 06:31.560] So, now we're going to look at some data that's generated from the law of accelerating returns, which again, you know, we're going to cover the math in a little bit. [06:36.880 --> 06:44.120] So, the most important factor of the singularity states that we're on the knee of an exponential curve of technological progress. [06:44.840 --> 06:56.960] So, this diagram populated with accurate data presents a view of the future where our technological capabilities not only rival that of a human brain, but at some point, rival the collective power of all human brains. [06:57.880 --> 07:02.300] These phases are short-lived as the trend only increases in power and speed. [07:03.000 --> 07:09.300] So, Kurzweil would project that obtaining such power is between 40 years away. [07:11.040 --> 07:21.720] So, another major attribute of the singularity is that man-made creations will surpass humans in general intelligence and then go on to create machines of their own. [07:22.560 --> 07:25.520] So, by general intelligence, we mean... [07:28.280 --> 07:36.680] Well, by specialized intelligence, we mean machines and software that service a limited purpose, such as assembling a car or routing Internet traffic. [07:36.860 --> 07:45.700] And by generalized intelligence, we refer to machines and software that have the ability to solve a variety of complex problems in complex environments. [07:47.460 --> 07:54.460] So, here we have a slide of Kasparov and Deep Blue in an epic battle. [07:54.760 --> 07:59.860] The 1997 contest with Deep Blue was the first competitive match that he had ever lost. [08:00.260 --> 08:06.300] And several times during the matches, Kasparov reported signs of mind in the machine. [08:06.300 --> 08:12.040] In the second tournament, he worried that there might be humans behind the scenes feeding Deep Blue's strategic danger. [08:13.180 --> 08:18.700] So, Kasparov claims to see into opponents' minds during play, understanding and exploiting their plans. [08:19.200 --> 08:28.760] In ordinary chess computers, he reports a mechanical predictability stemming from their undiscriminating but limited look-ahead and absence of long-term strategy. [08:28.760 --> 08:32.840] But in Deep Blue, to his consternation, he saw instead an alien intelligence. [08:34.020 --> 08:38.620] So, to understand this alien intelligence, we are going to take a closer look at how Deep Blue works. [08:39.920 --> 08:43.620] So, Deep Blue contains a large database of opening and end-game positions. [08:44.560 --> 08:49.040] For both opening and end-game positions, optimal strategies are known and stored in the database. [08:49.540 --> 08:55.560] And once a position is evaluated, saved in a transposition table to avoid reevaluating. [08:57.160 --> 09:01.820] Deep Blue is able to search between 6 and 12 plies, and in some cases up to 40. [09:02.280 --> 09:04.640] So, a ply in chess is a half-move. [09:04.840 --> 09:08.360] So, a 20-turn chess game would consist of 40 plies. [09:10.760 --> 09:13.280] So, does Deep Blue exhibit intelligence? [09:14.820 --> 09:19.160] Researches show that chess experts recognize and remember meaningful patterns. [09:19.640 --> 09:25.140] But it's difficult to design pattern-recognition chess programs that match and exceed the ability of humans. [09:25.860 --> 09:29.240] So, instead, chess programs rely on what computers are good at. [09:29.540 --> 09:31.280] Lots of calculations and search. [09:32.580 --> 09:38.040] So, Deep Blue's creators know its quantitative superiority over other chess machines intimately. [09:38.260 --> 09:43.200] But they lack the understanding to share Kasparov's appreciation and the difference in the quality of play. [09:48.680 --> 09:56.860] So, engineers who know the mechanisms of advanced robots most intimately will be the last to admit that they have real minds. [09:56.860 --> 10:03.620] A human brain under a neurobiologist's microscope doesn't exhibit the intelligence it does in a lively conversation. [10:04.640 --> 10:10.680] And from the inside, robots will indisputably be machines acting according to mechanical properties. [10:12.720 --> 10:20.440] So, in 40 years, computer chess has progressed from the lowest depths to the highest human peak of human chess performance. [10:21.260 --> 10:29.520] In coming decades, as general purpose computer power grows beyond Deep Blue's specialized strengths, machines will begin to match humans in more common skills. [10:29.520 --> 10:41.640] So, this graph shows that as the computation power increases, the number of positions evaluated increases, which also increases the number of plies that the software is able to search. [10:42.300 --> 10:49.740] So, these increases lead to more powerful chess machines that will eventually be able to beat a grand master, which happened. [10:50.820 --> 10:59.660] So, I mean, if you feel that I'm missing the software aspect of this, you know, more power doesn't mean smarter machines, well, that's definitely true. [10:59.700 --> 11:01.900] And, you know, we'll touch on that in a little bit. [11:03.520 --> 11:11.040] So, finally, we're going to touch upon the merger of our biological thinking and our technological creations. [11:12.260 --> 11:16.000] So, we've already seen such events and creations in our lifetime. [11:16.500 --> 11:21.520] Then we can cautiously extrapolate how these things will be in the immediate future and a few years beyond. [11:22.020 --> 11:29.120] So, I believe it's safe to say that no one can accurately predict the future, but it's definitely fascinating and daunting to think about. [11:33.780 --> 11:36.020] Oh, my audio didn't come in. [11:44.790 --> 11:45.570] Can you hear it? [11:45.870 --> 11:46.050] No. [11:46.050 --> 11:47.090] And [11:56.930 --> 11:57.890] he's paralyzed. [11:58.390 --> 12:09.210] So, you can imagine that in the future, we'll have normal people with microscopic implants with the ability to surf the web just by thinking about it. [12:10.010 --> 12:14.570] So, this gentleman isn't actually controlling this arm with his brain. [12:14.790 --> 12:16.170] He has a foot pedal. [12:16.450 --> 12:22.270] But it isn't hard to imagine that, you know, in the future we'll have brain-machine interfaces. [12:22.750 --> 12:25.250] And we're going to actually take a look at one now. [12:27.390 --> 12:28.850] So, this is an owl. [12:29.010 --> 12:31.850] Well, this isn't her, but Belle is an owl monkey. [12:31.970 --> 12:34.790] And she had a microwire implanted into her frontal lobe. [12:35.330 --> 12:38.490] And every 50 to 100 milliseconds, readings are taken. [12:39.390 --> 12:44.010] And after training, Belle can control a mechanical arm with just her thoughts. [12:44.010 --> 12:51.690] So, the 100 neurons provides roughly 70% accuracy in the trajectory of the arm compared to the actual thoughts. [12:52.310 --> 12:58.550] And, you know, they figure with up to 500 to 700 neurons, they could have a 95% accuracy. [12:59.810 --> 13:05.150] So, it's definitely exciting to imagine that these two different areas could be combined in the future. [13:05.150 --> 13:07.410] And I'm sure that we'll see that at some point. [13:08.850 --> 13:14.090] We're going to take a quick look at our biological and technological progress over our history. [13:16.110 --> 13:18.330] So, this is right from Kurzweil. [13:18.490 --> 13:25.610] And it basically says that over the last, you know, billion years, over one million years, not much happened. [13:25.750 --> 13:33.090] And over a quarter million years ago, such events as the evolution of our species occurred in timeframes of just 100,000 years. [13:33.090 --> 13:40.870] And in technology, if we go back 50 years, 50,000 years, not much has happened over a 1,000-year period. [13:41.790 --> 13:49.190] But in the recent past, we see new paradigms, such as the World Wide Web, with progress from inception to mass adoption within only a decade. [13:50.090 --> 13:53.210] So, I think that this trend will continue into the future. [13:53.410 --> 13:58.630] And it basically boils down to species-altering events will happen in lesser amounts of time. [13:58.630 --> 14:03.930] And the fact is, our technological evolution will far surpass our biological evolution. [14:06.410 --> 14:11.830] So, let's look at the law of accelerating returns, which is what we spoke about earlier. [14:12.390 --> 14:15.820] And that basically provides the basis for our exponential progress. [14:17.370 --> 14:19.850] So, what's fueling the explosion? [14:21.210 --> 14:30.250] So, the law of accelerating returns is the basis of much of Kurzweil's belief that the singularity will happen in the next 30 to 40 years and not in 300 or 400. [14:31.390 --> 14:36.170] So, it basically states that the rate of technological growth is a doubly exponential phenomenon. [14:37.590 --> 14:42.790] So, for V, let's say that computer power is a linear function of the knowledge of how to build computers. [14:42.790 --> 14:48.950] And this is conservative because innovations improve V by a multiple and not an additive. [14:49.510 --> 14:53.330] We should also say that the W is cumulative. [14:53.730 --> 14:59.530] These are based on the observation that relevant technological algorithms are accumulated in an incremental way. [15:00.250 --> 15:02.050] And let T be equal to time. [15:03.170 --> 15:21.170] So, the formula basically says that if the rate of change of a function, so DW over DT, is equal to a constant, C1, C2, W naught, times the function, then the solution W is an exponential function, which is basically what he describes as a singularity. [15:21.270 --> 15:27.230] And it reinforces his main point that we're going to see technological innovations explode exponentially in coming years. [15:28.370 --> 15:32.970] There's a lot of other, like, math to it and stuff, and I guess we could talk about it later if people are interested. [15:34.750 --> 15:43.330] So, I mean, here's... to get a sense of what he's stating and roughly graphing this equation, it would kind of look like this. [15:44.430 --> 15:51.450] And as you can see, I mean, the graph starts out with a gradually increasing slope, and then it kind of skyrockets and becomes very steep. [15:51.750 --> 15:54.790] And the feeling is that we're, right now, we're kind of on the knee of that. [15:57.610 --> 16:00.850] So, let's talk about, like, the approach to the singularity. [16:03.550 --> 16:06.650] Kurzweil sets out a map for the singularity, and it's basically as follows. [16:07.110 --> 16:14.470] That there won't be... or there will be gradual progression from humans to biological... from biological to non-biological. [16:14.790 --> 16:17.470] As we saw in an earlier slide, this is already happening. [16:19.550 --> 16:24.370] I don't really want to get into nanotechnology, but it's definitely real. [16:24.370 --> 16:26.690] There aren't really any nanorobots yet. [16:26.970 --> 16:31.290] It's still hypothetical, but it's something that, you know, a lot of people think we're going to see in the future. [16:33.990 --> 16:39.610] Basically, our biological intelligence and capabilities are pretty much fixed. [16:39.890 --> 16:47.410] Yeah, we can get some optimizations through, like, biotechnology, but the non-biological portion will ultimately predominate. [16:48.950 --> 17:00.290] So, when the singularity occurs and our non-biological portion is billions of times more capable, then are we still going to link our consciousness to the biological portion of our intelligence? [17:01.150 --> 17:02.750] This is something just to think about. [17:05.230 --> 17:19.910] So, imagine that we are machines, and we're really sophisticated machines made up of billions of biomolecules, and we interact according to a well-defined, though not completely known, rules deriving from physics and chemistry. [17:20.690 --> 17:28.950] So, these biomolecular interactions taking place inside our head give rise to our intellect and our feelings and our sense of self. [17:30.490 --> 17:34.410] So, if we accept this hypothesis, it opens up a possibility. [17:34.610 --> 17:47.830] So, if we're really machines, and we can learn the rules governing our brains, then, in principle, there isn't any reason why we shouldn't be able to replicate those in computers or, you know, our creations. [17:47.950 --> 17:56.830] So, artificial creations, they could exhibit genuine human-level intelligence, emotions, and even consciousness, if we were to say this. [17:59.270 --> 18:06.990] So, I don't think there's going to be, like, a singularity big bang that springs these things into life. [18:07.190 --> 18:17.210] I think that, starting with the mildly intelligent systems that we have today, machines will become gradually more intelligent generation after generation. [18:17.710 --> 18:25.270] So, the singularity won't be a period, you know, and it really won't be an event. [18:25.450 --> 18:26.950] It will be, it will be a period. [18:27.810 --> 18:39.970] And this period will encompass a time when we will invent, perfect, and deploy even more capable systems, driven not by the imperative of the singularity itself, but by the usual economic and sociological factors. [18:41.290 --> 18:48.070] Eventually, we may truly create artificial intelligences with consciousness recognizably similar to our own. [18:50.950 --> 19:04.110] So, I expect artificial general intelligence of the future, embodied as maybe robots that roam our homes and workplaces, to emerge gradually and symbiotically with our society. [19:04.990 --> 19:08.230] At the same time, we humans will transform ourselves. [19:08.270 --> 19:13.310] We'll incorporate a wide range of advanced sensory devices and prosthetics to enhance our bodies. [19:13.550 --> 19:16.910] As our machines become more like us, we'll become more like them. [19:17.390 --> 19:17.990] Yeah, you have a question? [19:17.990 --> 19:19.690] Yeah, just... [19:19.690 --> 19:19.930] Sure. [19:20.570 --> 19:44.550] Given your assertion that you think it will be a smooth singularity, well, actually, I was wondering is that one of Kurzweil's assertions or your extrapolation from his work, just given that his work comes from the fact that the equation is asymptotic in nature, [19:44.550 --> 19:47.990] or, I mean, shouldn't it happen more or less? [19:48.650 --> 20:04.170] Well, so quickly that it is almost a big bang line when it hits that asymptotic point that there's sort of a critical accumulation of technologies that come together to sort of all at once. [20:07.410 --> 20:17.870] Yeah, I mean, the aspect of, you know, power increasing and Moore's laws and all these things, you know, there are things that are going to happen and they can't really be stopped. [20:19.050 --> 20:27.530] But the mind, you know, us, the Einsteins, the very smart people that have to figure these things out, that doesn't follow a schedule. [20:28.210 --> 20:34.450] So, like, yeah, just because you have the computer power, like, doesn't necessarily mean that these things are all going to happen. [20:34.590 --> 20:38.530] And as far as it being smooth, like, I think that, you know, we're already doing these things now. [20:38.530 --> 20:41.710] Like, we have Roombas, you know, we've got iPhones. [20:42.050 --> 20:42.730] I mean, it's crazy. [20:42.750 --> 20:45.070] And you're just going to see it become, like, more ubiquitous. [20:45.310 --> 20:49.990] And so, I mean, I don't really feel that we're just going to wake up one day and we're going to be in the matrix. [20:50.010 --> 20:51.830] Like, I just don't really see that happening. [20:51.830 --> 21:06.000] But while it doesn't follow a set in predictable, well, it is sort of a semi-predictable schedule in terms of knowledge and support. [21:06.280 --> 21:23.440] You can't actually look at certain capabilities and say, even the current rate of progress in this human field, we should be able to do this at a given time, and that it is the intersection of the maturing of all of those technologies simultaneously. [21:23.900 --> 21:24.740] I agree with you. [21:25.020 --> 21:27.100] And, I mean, Kurzweil would say so. [21:27.220 --> 21:30.000] But, personally, I don't think it will be that way. [21:30.440 --> 21:32.520] I think it will be a little bit smoother. [21:32.800 --> 21:36.700] You know, I think we'll just start to see these things because, you know, I don't know. [21:36.780 --> 21:38.120] The math says that it's going to happen. [21:38.120 --> 21:39.120] It's going to be a big bang. [21:39.140 --> 21:40.060] That's what the math says. [21:40.100 --> 21:41.760] But, I mean, that's not how I feel. [21:41.840 --> 21:43.940] But let me get to this guy and we can... [21:43.940 --> 21:44.140] Yeah. [21:44.140 --> 21:45.420] There's a... [21:45.420 --> 21:48.760] One example, currently, of the singularity, this concept from the... [21:48.760 --> 21:52.420] It predates Kurtzloff in the 60s called an ultra-intelligent machine. [21:52.680 --> 21:57.380] The idea is that we can design a machine that is even marginally smarter than we are. [21:57.800 --> 22:00.160] It then designs a machine smarter than it. [22:00.320 --> 22:01.720] And so on and so on. [22:01.820 --> 22:02.660] The telescope out. [22:02.860 --> 22:03.120] Right. [22:03.240 --> 22:05.600] That's the point at which it gets outside of our control. [22:05.820 --> 22:06.140] Sure. [22:07.140 --> 22:08.120] Yeah, I agree. [22:08.280 --> 22:09.720] But I don't see us like... [22:09.720 --> 22:16.120] I see more of, like, the prosthetics and that part of the machine being put in us. [22:16.200 --> 22:25.400] Where we still have this control and, you know, pieces being changed where, you know, our will and our thoughts and kind of our control is still there. [22:25.400 --> 22:29.140] Where it's not totally like a Skynet thing where we flick the button and it's... [22:29.980 --> 22:30.280] They [22:38.150 --> 22:39.910] figure out ways to amplify it further. [22:40.070 --> 22:40.350] Right. [22:40.350 --> 22:41.270] And so on. [22:41.430 --> 22:43.090] That's the biological... [22:43.090 --> 22:44.270] But they're both... [22:51.700 --> 22:55.300] I mean, COG wasn't governed by the three laws. [22:55.820 --> 22:57.480] So, take that... [23:06.970 --> 23:09.170] Unless things really... [23:09.170 --> 23:19.750] Unless things are very deliberately constrained by a set of rules, like the three laws, then we won't have that kind of control. [23:20.730 --> 23:21.290] Yeah. [23:21.470 --> 23:23.830] I mean, I don't know how I feel about the whole three laws thing. [23:24.010 --> 23:25.310] But a similar framework. [23:25.930 --> 23:26.510] No, I understand. [23:26.510 --> 23:28.750] And that's why I feel like if... [23:28.750 --> 23:33.010] I mean, I guess I hope it's smooth because if it's smooth, these things are part of us. [23:33.130 --> 23:34.350] There's some interaction there. [23:34.450 --> 23:39.830] There's some understanding, like, versus flipping the switch and then it being, well, you know, we don't need you anymore. [23:40.190 --> 23:43.850] Remember, digital rights management can be considered the three laws written by corporations. [23:49.470 --> 23:59.410] So, one of the problems that I always see when people discuss this is that people tend to... they're approaching it like you're looking at the future and what's going to happen in the future. [23:59.410 --> 24:06.150] But, kind of what presentations like this are about is pretend you're in the future looking at the past. [24:06.390 --> 24:08.890] Like, there will be a slow ramp up. [24:09.010 --> 24:22.050] Like, the Internet happened, prosthetics happened, you know, the ability to compute grows exponentially and it might appear to people from the outside that they're just going to wake up one day and intelligence is ridiculously smart. [24:22.050 --> 24:28.370] But, when they look back over time, it's going to have been a slow ramp up and it's going to look like that on a graph. [24:29.130 --> 24:31.530] But, you just might not see it that way as it's happening. [24:31.750 --> 24:32.090] Sure. [24:32.210 --> 24:32.890] If that makes sense. [24:33.250 --> 24:36.030] Alright, we'll keep going and then we'll do questions. [24:39.250 --> 24:41.690] So, we're going to talk about, like, some roadblocks and stuff now. [24:41.870 --> 24:46.490] So, over the past 50 years, artificial intelligence has made, you know, tremendous progress. [24:46.490 --> 24:54.310] You can find a base capabilities in things such as the search engines and voice recognition, stock trading apps. [24:54.690 --> 25:00.330] But, you can't really engage in a heart to power source chat with any of them. [25:00.710 --> 25:08.530] So, we definitely have a lot of hard problems before we build anything that might qualify as artificial general intelligence. [25:08.830 --> 25:15.570] And, yeah, this is speaking to your point that, you know, a lot of problems become easier as computer power reliably increases exponentially. [25:16.370 --> 25:18.870] But, we also need, you know, fundamental breakthroughs. [25:18.990 --> 25:21.110] And, you know, those will happen when they happen. [25:21.330 --> 25:25.450] Definitely, I mean, they might be able to be somewhat predicted, but they still, they take time. [25:27.430 --> 25:31.650] But, now we're going to look, like, specifically into robotic controllers and genetic programming. [25:31.850 --> 25:33.430] I don't know, is anybody familiar with genetic programming? [25:33.790 --> 25:34.450] Okay, cool. [25:36.150 --> 25:38.010] So, let's just recap the singularity. [25:38.710 --> 25:39.050] Oops. [25:42.190 --> 25:44.410] So, some of these, you know, are still science fiction. [25:44.410 --> 25:47.310] But, you know, we probably be very likely at some point. [25:48.830 --> 25:54.890] We'll begin to use science and technology, not just to manage the world around us, but to manage our own human biology. [25:56.050 --> 26:04.770] Changes will be faster and more profound than the very slow changes that would occur over thousands of years as a result of natural selection and biological evolution. [26:07.750 --> 26:09.050] But, it's kind of funny. [26:09.150 --> 26:14.830] What's happening right now in Oxford, England, there's a conference whose main focus is on global catastrophic risks. [26:15.270 --> 26:23.330] And, on the final day of the conference, the focus will be on unintended consequences of new technologies, such as super intelligent machines. [26:24.090 --> 26:31.010] And so, you know, it appears that even though this current threat is non-existent, it's still caught in many people's attention. [26:33.530 --> 26:34.490] I don't know. [26:34.690 --> 26:35.250] They might. [26:35.350 --> 26:37.670] I don't know how much, like, nanotechnology they were talking about. [26:37.670 --> 26:39.670] But, so... [26:40.210 --> 26:40.890] All right. [26:45.060 --> 26:45.620] Yeah. [26:45.880 --> 26:49.480] So, is anybody familiar with the Kepera 2 robot? [26:50.180 --> 26:50.740] Okay. [26:50.940 --> 26:51.740] So, that's cool then. [26:51.860 --> 26:53.100] I guess you guys will learn something. [26:55.000 --> 26:57.500] So, is anybody familiar with evolutionary robotics? [26:58.600 --> 26:59.160] Okay. [26:59.300 --> 26:59.500] Cool. [26:59.760 --> 27:00.040] Great. [27:00.480 --> 27:03.700] So, we're going to talk about that. [27:03.900 --> 27:08.740] So, evolutionary robotics is a technique for automatic creation of autonomous robots. [27:08.740 --> 27:13.520] And, it's inspired by the Darwinian principle of selective reproduction of the fittest. [27:14.160 --> 27:15.260] So, it's... [27:15.260 --> 27:17.080] As far as I know, it's a pretty new approach. [27:17.080 --> 27:18.460] Maybe 30 years old. [27:18.600 --> 27:22.020] And, it looks as robots as autonomous artificial organisms. [27:22.760 --> 27:27.540] And, they develop their own skills in close interaction with the environment without human intervention. [27:27.900 --> 27:29.320] And, there is human intervention. [27:29.600 --> 27:35.440] But, the point is, is that the behaviors that they're evolving, humans aren't interacting with them at that point. [27:36.260 --> 27:38.740] So, I'm just going to go over some of the hardware and software. [27:39.880 --> 27:41.480] So, this is the Kepra 2. [27:41.700 --> 27:42.720] There's one right here. [27:43.700 --> 27:46.800] It's a robot that was built by K-Team, a Swiss-based company. [27:47.380 --> 27:58.300] The Kepra's conception was brought about from the need for a physically compact robot with onboard processing capabilities that can support complex algorithms, such as that found in artificial neural networks. [27:59.360 --> 28:01.140] The Kepra is very modular. [28:01.600 --> 28:06.380] There's a bunch of additional vision and grip or radio components that can be mounted on the robot. [28:07.580 --> 28:13.880] It contains a 26 megahertz processor, 512, 8 infrared sensors. [28:14.080 --> 28:14.980] And, they have two modes. [28:15.140 --> 28:17.520] So, the first mode is an ambient light mode. [28:19.580 --> 28:23.900] The measurements are made using only the receiver part of the device without emitting any light. [28:23.900 --> 28:27.700] And, the second mode measures light reflected by obstacles. [28:28.020 --> 28:31.100] So, this measures the light made emitting light from the device. [28:31.340 --> 28:37.620] And, the return value is the difference between the measurement made emitting light and the light measured without light emission. [28:37.780 --> 28:38.800] So, ambient light. [28:40.320 --> 28:44.860] So, for evolution robotics, the Kepra is probably one of the most popular robots. [28:48.830 --> 28:51.310] So, is anybody familiar with WebBots? [28:52.150 --> 28:52.790] Okay. [28:53.230 --> 28:56.330] So, the software that we're using is WebBots. [28:56.470 --> 28:58.350] It's probably my favorite simulator. [28:58.350 --> 28:59.590] I've used some other ones. [28:59.730 --> 29:01.990] But, WebBots is just really cool. [29:02.210 --> 29:05.230] But, the professional version is really expensive. [29:05.550 --> 29:07.330] So, it kind of sucks. [29:08.670 --> 29:13.410] But, basically, WebBots, it supports a bunch of different robotics platforms. [29:13.410 --> 29:20.250] It's got a 3D world, programmable characteristics for all the elements in the environment. [29:20.730 --> 29:24.750] And, it can interface directly with the Kepra through RS-232. [29:25.050 --> 29:27.250] So, we're going to try to do some stuff at the end. [29:29.350 --> 29:43.590] The basic idea behind evolution robotics is that an initial population of different artificial chromosomes, each encoding the control system of the robot, are randomly created and put in an environment. [29:44.670 --> 29:58.110] Each robot is then let free to roam the environment and act accordingly to a genetically specified controller, which, while its performance on various tasks is automatically evaluated. [29:58.990 --> 30:07.790] So, the fittest robots are allowed to reproduce by generating copies of their genotypes, in addition to change introduced by some genetic operators, such as mutation. [30:08.430 --> 30:15.450] And, this process is repeated until an individual is born, which satisfies the performance criteria set by the experimenter. [30:19.760 --> 30:27.800] So, the question is, how do we determine if a robot's actions are wanted, and if we want to propagate it to its offspring? [30:28.420 --> 30:30.900] So, this is where we apply the fitness function. [30:31.900 --> 30:40.160] For this example, let's examine the task of obstacle avoidance, because it's, you know, pretty basic, and it's needed for many real-world applications. [30:41.200 --> 30:48.660] For the Keppra, basically this task is equivalent to minimizing the proximity sensors, while moving through the environment. [30:50.040 --> 31:00.680] So, the following fitness function encourages the robot to move in a straight line through the environment, and punishes the robot for proximity, object proximity. [31:01.080 --> 31:03.600] So, let's actually take a look at the fitness function. [31:05.480 --> 31:07.260] So, that's the fitness function. [31:07.580 --> 31:12.200] And, basically, M1 and M2 are the motor values, which is negative one would be zero. [31:12.380 --> 31:16.960] Negative one would be backward, zero would be stationary, and positive one would be, it's moving forward. [31:17.620 --> 31:20.640] S0 through S7 are the eight proximity sensors. [31:21.380 --> 31:26.120] And, right now, they would be, let's say they're reading in mode two, which is proximity detection. [31:27.060 --> 31:34.840] A and B are tuning weights, used to imply importance to the two main pieces of the equation, the motor values and the sensors. [31:35.100 --> 31:42.340] So, as the value of B approaches zero, the fitness function becomes more forgiving as the Keppra approaches walls and obstacles. [31:45.820 --> 31:46.420] So... [31:47.920 --> 31:49.320] Yeah, sorry. [31:49.780 --> 31:50.600] There they are. [31:50.600 --> 31:50.620] Okay. [31:54.220 --> 31:58.900] So, here's a sample run, five sample runs from our Keppra. [31:59.420 --> 32:02.940] Basically, we're looking for actions that provide a fitness greater than zero. [32:03.840 --> 32:08.940] So, if you look at R1, it shows the robots moving both motors. [32:09.540 --> 32:10.640] He's driving forward. [32:10.880 --> 32:14.320] But, the sensor S0 is reading very high. [32:14.520 --> 32:16.800] So, it's getting a low fitness value. [32:17.000 --> 32:18.840] It means it's probably really close to an obstacle. [32:19.320 --> 32:20.340] And we don't want that. [32:20.520 --> 32:22.600] So, let's look at R2 and R3. [32:23.120 --> 32:28.760] So, in the fitness function, we don't care if the robot's moving forward or backwards. [32:29.940 --> 32:37.040] You'll also notice that all the sensors are reading no values, which means the robot isn't in proximity of any walls or obstacles. [32:37.840 --> 32:40.060] So, it gets a good fitness value for that. [32:41.160 --> 32:45.100] R4 is similar to R1, except we've reduced the weight of B. [32:45.460 --> 32:51.180] So, this allows the robot to approach obstacles in closer proximity, and it might not be penalized as much. [32:51.440 --> 32:54.060] It still provides kind of a subpar fitness. [32:55.000 --> 32:57.140] An R5 isn't a bad fitness. [32:57.600 --> 33:02.580] But, in this case, the robot would actually be spinning in a circle, which isn't very good behavior. [33:03.120 --> 33:05.900] But, it's possibly all right for the first few generations. [33:06.220 --> 33:07.620] So, we might let it go. [33:10.880 --> 33:14.060] Oh, there's some sample code there for calculating fitness values. [33:14.260 --> 33:16.880] But, we're going to do some demonstrations at the end anyways. [33:16.880 --> 33:21.780] So, we're going to talk about genetic programming quickly. [33:22.060 --> 33:26.840] So, the basic question is, how do we evolve these robotic controllers? [33:27.580 --> 33:30.260] And one answer is via genetic programming. [33:30.740 --> 33:37.640] So, genetic programming utilizes an evolving population to solve problems within the fitness landscape, which is shown here. [33:38.240 --> 33:41.540] And it's basically a three-dimensional graph with valleys and peaks. [33:42.200 --> 33:45.440] A number of individuals are randomly scattered on the landscape. [33:45.500 --> 33:47.640] As you can see, all the little dots. [33:48.480 --> 33:51.860] Our prior fitness algorithms apply to each individual on the landscape. [33:52.300 --> 33:55.200] And those closer to the peaks are found to have a higher fitness value. [33:55.400 --> 33:57.960] And thus, they're allowed to propagate their genes via offspring. [33:58.720 --> 34:01.560] So, it's important to note there are numerous peaks in this diagram. [34:01.560 --> 34:06.960] A capital O sub 2 is actually the global solution within the search space. [34:07.220 --> 34:10.920] That's our, like, optimal solution to whatever problem we're trying to solve. [34:11.200 --> 34:13.400] And all the lower peaks are local solutions. [34:13.400 --> 34:20.760] So, they may solve our problem and they may satisfy the fitness function, but they're probably not the best solution to the problem. [34:23.460 --> 34:26.480] So, this is for tree-based genetic programming. [34:26.940 --> 34:29.160] So, offspring can be formed in a few ways. [34:29.960 --> 34:34.040] First, we're going to concentrate on crossover via tree-based genetic programming. [34:34.360 --> 34:40.300] So, just imagine that each of these individuals is a complete computer program. [34:41.480 --> 34:46.620] In the examples here, each individual can be invalidated simply for demonstration purposes. [34:46.620 --> 34:54.620] But imagine that each individual is a complex program that could possibly drive a motor or read sensor values or react to the environment. [34:55.280 --> 34:59.480] So, the way we determine the fitness of the program is by running it. [34:59.940 --> 35:04.620] Which, in our case, could be run via the live robot or in the WebBot simulator. [35:05.360 --> 35:09.480] And the fitness is calculated by running these with a variety of inputs. [35:09.480 --> 35:11.520] So, our sensors and our motor values. [35:11.700 --> 35:15.020] And we see how close the program's output is to our desired results. [35:15.020 --> 35:19.520] So, we're actually...we're going to do a demonstration pretty soon to show you exactly what I mean. [35:20.500 --> 35:23.500] As you can see, this is a single point crossover. [35:23.780 --> 35:25.600] And it isn't totally random. [35:26.140 --> 35:32.700] The genetic algorithm forces that the computations are still like syntactically correct computer programs. [35:32.940 --> 35:36.080] So, we have like, you know, the absolute value of something. [35:36.260 --> 35:38.080] It's expecting one particular argument. [35:38.300 --> 35:41.860] You couldn't do crossover and give it something that was taking multiple arguments. [35:41.860 --> 35:44.300] Because then the program just might not compile. [35:45.040 --> 35:49.340] But, I mean, you can see how, you know, these parents yield two offspring. [35:49.380 --> 35:53.460] And it's basically just switching the two parts that are highlighted in the bottom. [35:53.840 --> 35:57.620] So, you're slowly like evolving this program. [35:57.620 --> 36:03.720] And whatever it is you're trying to solve this equation for, you would be applying the fitness value, you know, to the result. [36:03.720 --> 36:12.740] And if it's, you know, within some percentage of what you feel is acceptable, those are, you know, genotypes that you would want to propagate and continue evolving. [36:13.600 --> 36:18.740] It's very similar to like natural selection and all the Darwin stuff. [36:21.020 --> 36:28.640] So, the field of evolution robotics and genetic programming, it definitely has evolved successful controllers for some of the tasks that I'm going to list. [36:29.540 --> 36:35.440] You have to keep in mind that, you know, if you were to sit down and write these out by hand and, you know, with the computer and everything, it would... [36:36.420 --> 36:37.960] They're not always super easy. [36:38.200 --> 36:41.980] You know, programming for one particular environment may not scale to another environment. [36:41.980 --> 36:43.920] You know, there's lots of things to consider. [36:44.180 --> 36:48.860] So, you know, any of these types of things, it's been done. [36:49.020 --> 36:53.920] And the predator and prey stuff is really cool because you'll actually see the robots evolving strategies. [36:53.920 --> 36:55.800] And it's really interesting. [36:56.360 --> 37:03.560] All these things, I mean, they're not too amazing, but it is pretty cool that you can evolve programs that do this stuff. [37:04.180 --> 37:07.460] So, I mean, probably more exciting in the coming years. [37:09.560 --> 37:17.340] So, here's a really recent experiment by one of the leaders of evolutionary robotics, Dario Floriano. [37:18.320 --> 37:23.700] And basically, a group of identical robots replaced an environment that contained food and poison. [37:23.880 --> 37:24.760] Has anybody heard about this? [37:24.960 --> 37:25.440] No? [37:25.660 --> 37:25.800] Okay. [37:26.440 --> 37:34.040] So, the robots couldn't tell which items were food or poison until they were nearly touching those red stationary objects. [37:34.040 --> 37:38.540] And for four different types of colonies of robots, they were allowed to eat, reproduce, and expire. [37:38.800 --> 37:42.280] And by the 50th generation, the robots had learned to communicate. [37:42.580 --> 37:47.300] As you can see, they'd light up to alert others that they'd found food or poison. [37:47.640 --> 37:49.260] And the fourth colony... [37:49.260 --> 37:52.020] So, sometimes it evolved cheetah robots. [37:52.260 --> 37:55.420] And they would actually light up and tell others that the poison was food. [37:55.680 --> 38:01.440] And they themselves would go roll over the food source and chow it down without telling anybody else what they had found. [38:04.080 --> 38:13.960] So, you know, if you think for a second about the fitness landscape that we were talking about, you know, you could kind of hypothesize that developing a cheating behavior, it could be a local peak. [38:14.280 --> 38:16.340] So, I mean, yeah, sure, it works. [38:18.060 --> 38:19.820] But it may not work in the long term. [38:20.260 --> 38:32.840] You know, if you continue to propagate the genes to numerous offspring, and there's an overwhelming percent of the population that's, you know, involved in this deceitful behavior, you might...they might start killing each other and just making a lot of mistakes. [38:33.020 --> 38:35.840] And it's...it's probably not the best thing. [38:35.920 --> 38:38.680] But it's still interesting to see that, you know, none of this was programmed. [38:38.960 --> 38:40.240] They evolved this behavior. [38:41.340 --> 38:45.760] So, that's just one recent example. [38:46.020 --> 38:46.780] And it's pretty interesting. [38:48.420 --> 38:50.160] So, this is pretty short. [38:50.540 --> 38:53.040] But basically, you know... [38:53.040 --> 38:53.760] Wait, one second. [38:54.140 --> 38:54.860] Oh, sorry. [38:55.000 --> 38:55.960] Did you guys see this video? [38:56.140 --> 38:56.360] Yeah. [39:01.960 --> 39:02.660] Yeah, sure. [39:03.100 --> 39:03.500] The... [39:08.460 --> 39:09.400] The video you have. [39:09.520 --> 39:09.740] Yeah. [39:10.060 --> 39:12.200] So, the bottom source is food. [39:12.360 --> 39:13.580] That top source is poison. [39:13.780 --> 39:17.040] As far as I can, like, figure out from the video, I don't really know. [39:17.060 --> 39:19.240] But you can tell they kind of hover around it and then they leave. [39:19.440 --> 39:21.460] And this one, you know, is lighting up blue. [39:21.620 --> 39:22.340] He's found food. [39:22.340 --> 39:24.700] He's telling these other guys, like, hey, I got food, you know. [39:25.260 --> 39:25.980] Come check it out. [39:26.920 --> 39:27.240] So... [39:27.240 --> 39:27.500] Okay. [39:27.800 --> 39:28.040] Thank you. [39:28.120 --> 39:28.320] Sure. [39:29.840 --> 39:30.200] Yep. [39:34.120 --> 39:35.640] They can tell... [39:38.220 --> 39:39.040] Yeah, they... [39:39.460 --> 39:41.220] I don't know the specifics of it. [39:41.260 --> 39:42.440] I don't know why they light up. [39:42.500 --> 39:44.600] But I'm just assuming that they're in proximity of it. [39:44.720 --> 39:47.840] Like, it extends to the robots that are also touching the food source. [39:47.980 --> 39:50.160] So, you know, you can have a chain of robots. [39:50.420 --> 39:52.700] Like, maybe they're passing it down the line. [39:52.700 --> 39:53.080] I don't know. [39:53.700 --> 40:20.680] The same robots were actually used for other experiments using the same communication method where they can team up for the purpose of, for instance, grabbing someone who is stranded in the records or something, and they group together strategically and cluster by means of using the... [40:20.680 --> 40:21.880] the color for the... [40:23.400 --> 40:31.060] So, presumably, that same group communication dynamic was brought over to that experiment as well. [40:31.720 --> 40:32.760] Yeah, I mean, they... [40:32.760 --> 40:36.400] On that point, I mean, they definitely evolved on their own, like, swarm behaviors. [40:36.820 --> 40:37.680] Like, nothing was... [40:37.680 --> 40:38.820] was programmed, you know. [40:38.880 --> 40:39.780] So, it's pretty interesting. [40:40.800 --> 40:45.960] So, you know, I don't, I don't feel that we're going to be replaced by software robots anytime soon. [40:47.580 --> 40:53.600] But we are going to see our biological evolution being surpassed and engineered with our technological creations. [40:54.660 --> 40:59.400] So, you know, I just think it's important that, you know, everybody here just keeps doing what you're doing. [40:59.520 --> 41:00.700] You know, we're all here for a reason. [41:00.700 --> 41:02.080] We enjoy this shit, whatever. [41:02.620 --> 41:05.720] And, you know, I'm not a... [41:05.720 --> 41:06.660] I'm not in college. [41:06.860 --> 41:07.160] I don't... [41:07.160 --> 41:07.320] Whatever. [41:07.480 --> 41:08.460] I do this on my free time. [41:08.460 --> 41:09.320] I like this shit. [41:09.560 --> 41:12.380] So, like, you know, I encourage everybody to do the same, you know. [41:12.600 --> 41:15.040] So, we're going to do... [41:15.040 --> 41:15.760] We got... [41:15.760 --> 41:17.260] I have 37 minutes here. [41:17.280 --> 41:19.760] So, I'm going to try to do two quick, like, demonstrations. [41:20.180 --> 41:21.800] First is going to be for genetic programming. [41:21.820 --> 41:23.560] The other is going to be with the Keppra. [41:33.930 --> 41:34.530] Okay. [41:35.890 --> 41:36.830] Oh, man. [41:40.730 --> 41:41.330] Okay. [41:53.050 --> 41:55.770] There's a mouse over to your... [41:58.120 --> 41:59.400] Ah, there it is. [41:59.440 --> 42:00.880] It's, like, behind my keynote. [42:01.040 --> 42:01.620] Let me kill this. [42:03.480 --> 42:04.080] Okay. [42:09.150 --> 42:09.750] Okay. [42:10.450 --> 42:11.050] So... [42:14.940 --> 42:21.180] So, for this first example, we're going to use genetic programming to... [42:21.180 --> 42:25.280] We are going to evolve a function that will solve an equation for us. [42:25.620 --> 42:28.420] We are going to provide a...this is like a pretty basic thing. [42:28.660 --> 42:30.920] If there are some genetic programming guys, they have probably seen this. [42:31.060 --> 42:31.160] Yeah? [42:35.540 --> 42:36.820] Well, okay. [42:38.060 --> 42:41.240] Well, the important part is here, so I will switch over. [42:44.060 --> 42:47.560] So basically, we want to solve Y for the values of X. [42:47.740 --> 42:48.760] It is pretty simple stuff. [42:48.760 --> 42:50.020] Simple polynomials. [42:50.120 --> 42:53.320] And we expect it to look something similar to... [42:53.320 --> 42:55.980] You know, this is what we want to solve. [42:56.120 --> 42:57.920] We want the computer to figure this out. [42:58.400 --> 43:00.700] So we are going to take points along this line. [43:00.880 --> 43:03.500] I have ten different points here. [43:03.800 --> 43:05.880] We are going to feed it to a genetic program. [43:10.660 --> 43:14.320] And it is going to run up to 500 generations. [43:14.920 --> 43:17.740] And it is going to start with 500 random programs. [43:17.740 --> 43:20.360] And each program is evaluated against a fitness function. [43:20.380 --> 43:22.580] Where we basically plug in the X value. [43:22.580 --> 43:25.480] And we compare it to answer against the desired Y value. [43:26.060 --> 43:29.960] If the program is within 1%, we consider it close enough. [43:30.060 --> 43:32.720] And we continue to let it live to the next generation. [43:33.500 --> 43:38.360] 60% of each generation are new programs created by a crossover, which we saw before. [43:38.980 --> 43:42.460] 39% are direct copies and 1% are mutated copies. [43:45.160 --> 43:47.380] So here are the values that we hard-coded. [43:47.640 --> 43:48.760] These are going to be in the program. [43:49.560 --> 43:51.520] So first we are going to actually run the program. [43:52.060 --> 43:54.540] And just to save time, like I said, they are hard-coded in there. [43:59.140 --> 44:01.380] So it is running through these generations. [44:02.840 --> 44:03.280] Okay. [44:03.720 --> 44:05.160] So we got to generation 500. [44:05.900 --> 44:07.340] That may not be great. [44:08.620 --> 44:11.660] The next thing we can do is actually take a look at the output. [44:11.940 --> 44:13.760] So let's see what this thing came up with. [44:31.170 --> 44:32.890] So that looks pretty accurate. [44:33.050 --> 44:35.490] You can see the float GP function there. [44:35.630 --> 44:36.690] And that looks pretty good. [44:36.690 --> 44:38.670] So let's test it out. [44:39.630 --> 44:42.550] What we are going to do is we are going to run this check x. [44:42.930 --> 44:45.350] Where we have all the x values already put in here. [44:45.610 --> 44:50.690] It is going to compute the y values and then match them against the set that we already gave it. [44:50.810 --> 44:53.010] Like it is already hard-coded to save time. [44:53.010 --> 44:55.470] But it is actually using this function that was generated. [44:55.910 --> 44:57.470] So let's take a look at the output. [44:58.530 --> 44:59.230] So sweet. [44:59.370 --> 45:00.510] I mean this looks pretty damn good. [45:00.750 --> 45:04.730] Like you can see the y values are what they are hard-coded. [45:04.730 --> 45:08.510] The first y value and the second y value is what it was actually calculated as. [45:08.690 --> 45:10.070] And you can see that... [45:10.070 --> 45:11.410] I mean they are all right. [45:12.130 --> 45:13.710] Well the first one is kind of f*cked up. [45:13.810 --> 45:14.950] But the rest of them look really good. [45:15.990 --> 45:20.390] So I mean basically what happened here is we took up to 500 generations. [45:20.610 --> 45:23.910] And we were able to evolve that float GP function. [45:23.910 --> 45:28.950] Which actually solved for the x, y values that we provided for that particular polynomial. [45:29.910 --> 45:30.270] So... [45:30.270 --> 45:30.350] Yup. [45:37.180 --> 45:39.160] Not without like stripping out all that shit. [45:40.040 --> 45:43.120] But I mean if you look at it like... [45:43.580 --> 45:46.740] Minus that whatever is wrong with this first one, all those other values are right. [45:47.020 --> 45:49.040] It's going to graph to the same thing. [45:49.240 --> 45:50.300] I'm pretty sure. [45:50.900 --> 45:52.580] I mean all those other values... [45:52.580 --> 45:53.840] I don't know what's wrong with the first one. [45:53.960 --> 45:55.200] But we can try it after. [45:55.200 --> 45:56.400] I don't want to strip it out right now. [45:59.810 --> 46:00.610] Any other questions? [46:01.190 --> 46:01.710] Okay. [46:03.310 --> 46:05.610] Then the next thing we'll do... [46:05.610 --> 46:05.950] If we have... [46:05.950 --> 46:06.390] Do we have time? [46:07.530 --> 46:08.050] Yeah? [46:08.330 --> 46:08.610] Okay. [46:10.630 --> 46:13.310] This thing's kind of geeked out but... [46:16.410 --> 46:18.430] So this is the web bot simulator. [46:19.730 --> 46:20.090] Oops. [46:32.140 --> 46:35.640] So right now we have our actual robot. [46:36.080 --> 46:37.980] And you know it's moving in it's environment. [46:38.360 --> 46:42.380] We have a simple like brat and bird controller I think is the default one that they give you. [46:44.220 --> 46:44.700] And... [46:46.040 --> 46:46.520] Ooh. [46:46.900 --> 46:47.600] It's hurting. [46:52.380 --> 46:53.180] Not sure. [46:55.540 --> 46:56.020] Well... [46:57.980 --> 46:59.900] Let me kill it and try it again. [47:00.620 --> 47:03.830] Is it on the board? [47:03.970 --> 47:04.450] No. [47:04.610 --> 47:05.570] This one isn't right now. [47:06.130 --> 47:06.610] I'm... [47:06.610 --> 47:08.830] I didn't get to finish it in time for the conference. [47:13.710 --> 47:16.070] This thing's geeked. [47:19.120 --> 47:20.060] Let's try it again. [47:20.260 --> 47:20.520] All right. [47:26.700 --> 47:27.180] Okay. [47:28.200 --> 47:29.820] So, you know, here's our robot. [47:30.000 --> 47:31.020] You could have multiple ones. [47:31.100 --> 47:32.880] You can code controllers in here in C. [47:32.880 --> 47:35.180] I think C++ and Java. [47:36.900 --> 47:38.320] You can see the readings here. [47:38.860 --> 47:43.460] The ambient light sensors and then the proximity sensors will light up as he gets closer to stuff. [47:43.540 --> 47:45.420] He's got his motor values, his rear sensors. [47:46.180 --> 47:46.620] And... [47:46.620 --> 47:52.360] I mean, the great thing about web bots is for genetic programming, you know, you can evolve robots like pretty quickly. [47:52.600 --> 47:56.080] You can put this thing in like a fast-forward mode and it just kind of goes. [47:57.860 --> 48:05.220] But the other cool thing about it is you can basically, you know, it's kind of ghetto, but... [48:06.120 --> 48:11.280] After you evolve a controller and you actually want to, you know, check it out in the real world, they make it so simple. [48:11.280 --> 48:13.240] I can go from simulation to remote control. [48:13.360 --> 48:16.020] And I don't know how he's going to handle on the surface, but... [48:16.020 --> 48:16.500] Whoops. [48:21.410 --> 48:22.470] Oh, come on. [48:29.150 --> 48:30.610] It's not... it's not having it. [48:35.790 --> 48:37.170] Well, that sucks. [48:37.190 --> 48:44.610] But basically, what you'd be able to do is I'd be able to transfer the program running to the robot right now and still do my evaluations. [48:44.610 --> 48:48.810] So, I mean, it's nearly impossible to be evolving like genetic programming. [48:48.810 --> 48:52.150] You saw it was 500 generations to evolve that really simple program. [48:52.450 --> 48:58.270] If you're trying to evolve a, you know, a complicated controller, it's going to take a long time, a lot of processing power. [48:58.370 --> 48:59.890] You wouldn't want to do it in real time. [49:00.090 --> 49:04.310] You'd want to at least evolve it to like a particular point and then transfer it to the robot. [49:04.670 --> 49:09.330] I don't know why, you know, it's not letting me do it. [49:11.110 --> 49:11.870] But, sorry. [49:12.210 --> 49:13.450] Well, we can f*ck with it later. [49:14.290 --> 49:15.830] But I guess that wraps it up. [49:16.070 --> 49:17.010] So, I hope you guys enjoyed it. [49:17.290 --> 49:17.610] Questions? [49:19.270 --> 49:19.710] Sure. [49:30.340 --> 49:30.780] Yeah. [49:31.540 --> 49:37.440] Basically, like, the chromosome is like a string of bits. [49:37.820 --> 49:41.160] And in those examples, it was the actual, like, code there. [49:41.240 --> 49:42.240] It could be even simpler. [49:42.420 --> 49:43.400] I mean, look at it really simply. [49:43.480 --> 49:44.560] It could be zeros and ones. [49:44.560 --> 49:52.020] And you're using that one point crossover to do, like, you know, say you have four zeros, four ones. [49:52.140 --> 49:52.920] You want to cross them over. [49:53.020 --> 49:55.240] You have, you know, 0011 and 1100. [49:55.600 --> 49:59.380] And that would be the chromosomes at their simplest point. [50:04.380 --> 50:08.480] Well, the controller is, like, the result of all this software. [50:08.620 --> 50:09.660] So, we would evolve this. [50:09.850 --> 50:15.920] Like, if you were to take those simple programs that we had before, and those were actually, like, pictured that they're really complicated programs. [50:15.960 --> 50:17.000] They're actually doing something. [50:17.140 --> 50:18.730] We're evolving all kinds of pieces of them. [50:18.900 --> 50:20.700] When we're done, that's essentially our controller. [50:20.920 --> 50:23.040] You know, we can plug that in and control the robot with it. [50:23.040 --> 50:25.340] So, again, most of that would be done in the simulation. [50:25.770 --> 50:28.310] You could put in the real robot to, like, really test it out. [50:28.350 --> 50:39.440] Because, you know, in the simulation, sometimes genetic programming and, like, evolution robotics will take advantage of exploits, like, within the simulator. [50:39.640 --> 50:41.310] You know, noise isn't going to be the same. [50:41.420 --> 50:43.440] The friction against this table is not going to be the same. [50:43.540 --> 50:44.560] Lighting is going to be different. [50:44.580 --> 50:45.880] So, you can put in noise. [50:46.200 --> 50:50.660] You know, I think, like, 10% noise is, like, a pretty common thing. [50:50.660 --> 50:54.260] And it's shown that when you put in noise, yes, you do evolve better controllers. [50:54.480 --> 50:58.540] And I use the word controller to mean, like, the end product of this program that we've evolved. [51:00.140 --> 51:00.620] Sure. [51:01.760 --> 51:06.180] Just to clarify, I'm sorry. [51:08.000 --> 51:15.600] Basically, the chromosomes are determining various behavioral characteristics of the program. [51:15.600 --> 51:22.040] And its suitability is then, you know, being evaluated based on criteria. [51:22.520 --> 51:28.460] The behavior is... the resultant behavior is being simulated and then judged. [51:28.810 --> 51:41.730] And then it comes down to not natural selection but artificial selection as determined by that criteria, whether it's survivability in a certain environment or whatever. [51:41.730 --> 51:44.800] But it comes down to the same principles of evolution. [51:45.580 --> 51:57.840] And the rate at which it happens is determined by, you know, mutation speed, how randomness is implemented in the evolution process at each step. [51:59.400 --> 52:00.040] But... [52:00.820 --> 52:01.460] I'm... [52:01.460 --> 52:02.440] Thanks. [52:03.460 --> 52:04.100] Sure. [52:04.540 --> 52:06.840] I see, like, a hand behind the guy with the hat. [52:10.510 --> 52:18.290] I'm curious how your research has been affected by other research into metaphysical concepts, such as auras and energy and those sorts of things. [52:18.330 --> 52:24.830] Because I don't believe we can talk about AI or artificial intelligence or consciousness without those concepts as well. [52:25.590 --> 52:26.030] Yeah. [52:26.130 --> 52:27.850] When I started this, I mean, I... [52:28.770 --> 52:29.730] Yeah, it's incredible. [52:30.030 --> 52:32.970] I didn't want to bring a lot of that into it because I just... [52:34.870 --> 52:35.190] It's... [52:35.190 --> 52:35.230] It's... [52:35.230 --> 52:36.230] Too amazing. [52:36.430 --> 52:38.130] It's too much to grasp, like, all in one thing. [52:38.290 --> 52:39.510] But, yeah, I mean, that's huge. [52:39.550 --> 52:42.410] And that's kind of where a lot of this stuff is going to go to. [52:42.610 --> 52:43.810] I find it super interesting. [52:45.050 --> 52:47.010] But I didn't want to really talk about it here. [52:47.130 --> 52:47.450] Just... [52:47.910 --> 52:49.150] I didn't feel I could do it justice. [52:49.650 --> 52:49.830] You know? [52:50.250 --> 52:50.570] So... [52:50.570 --> 52:51.130] Good point, though. [52:53.550 --> 52:54.210] Guy with the... [52:54.210 --> 52:54.370] Yeah? [52:57.680 --> 53:04.700] So, let's assume that, you know, we overcome all the technical and biological, technological hurdles to achieve the singularity. [53:05.360 --> 53:13.600] If you look at the state of the world right now, a very small portion of humanity actually has access to computers and advanced technologies. [53:13.600 --> 53:21.440] So, what happens when we achieve the singularity and 1% of global population is transhuman and the rest is baseline? [53:23.120 --> 53:24.300] Yeah, I mean, if you... [53:24.300 --> 53:28.660] Just on that point, like, without my personal feelings, yeah, that's scary, right? [53:28.760 --> 53:29.440] I mean, that sucks. [53:29.440 --> 53:33.860] If all the rich people have everything and they just f*ck shit up even more, like, yeah, that's awful. [53:34.060 --> 53:35.800] And they probably will do that. [53:36.100 --> 53:37.760] But, like, you would hope that... [53:39.140 --> 53:46.140] I guess one of the things about nanotechnology is if you can have these devices that can manufacture anything, then, you know, you can build anything. [53:46.140 --> 53:47.160] You can make anything. [53:47.160 --> 53:49.220] And it kind of breaks down that rich-poor divide. [53:49.220 --> 53:52.860] But, again, at the same time, like, well, then, what's the value of anything? [53:53.060 --> 53:54.320] You can make whatever you want. [53:54.420 --> 53:55.700] Like, I don't know. [53:55.700 --> 53:56.740] It's a great question. [53:56.740 --> 53:58.240] And I hope things don't... [53:58.240 --> 53:59.260] I hope things get better. [53:59.460 --> 54:01.200] Like, I wouldn't want to see things get worse. [54:19.120 --> 54:19.800] Sure. [54:19.800 --> 54:19.900] Sure. [54:20.160 --> 54:20.280] Yeah. [54:20.540 --> 54:20.860] Good point. [54:21.120 --> 54:21.220] Yep. [54:22.160 --> 54:23.120] Repeat the question. [54:25.020 --> 54:25.700] Oh. [54:27.640 --> 54:28.320] Oh. [54:29.080 --> 54:29.680] Yep. [54:30.380 --> 54:31.180] Any more questions? [54:31.540 --> 54:31.840] One minute. [54:34.700 --> 54:35.100] Yeah? [54:37.000 --> 54:37.400] No? [54:38.160 --> 54:38.840] Just waving? [54:40.760 --> 54:41.260] All right. [54:41.560 --> 54:41.800] Oh, yeah. [54:41.980 --> 54:42.200] Sorry. [54:42.320 --> 54:43.060] One quick question. [54:43.180 --> 54:59.220] I was just wondering, the singularity formulas that you were presenting earlier, do you know if any thought has been given to any type of, you know, psychological tolerances or socioeconomic tolerances or even global resource tolerances, or is that just pure math? [55:00.960 --> 55:01.360] Yeah. [55:01.520 --> 55:14.880] I mean, as far as, like, you know, the computation aspect of it, like, how much computational items can we build, how many computers, things, I think that does take that into, like, respect. [55:14.900 --> 55:18.440] But as far as the emotional and psychological, no. [55:18.600 --> 55:20.140] I mean, I don't know. [55:20.300 --> 55:21.380] It's a good question, though. [55:21.380 --> 55:24.320] And it assumes that we don't manage to kill ourselves off. [55:24.620 --> 55:25.780] That's pretty much what I was getting. [55:25.960 --> 55:26.360] Right. [55:26.740 --> 55:26.800] Right. [55:28.960 --> 55:29.360] So. [55:30.980 --> 55:31.500] All right. [55:31.700 --> 55:32.300] Well, thanks for coming. [55:32.420 --> 55:33.140] Hope you guys enjoyed it. [55:33.500 --> 55:34.100] Thank you.