Wednesday, August 20, 2014

Review: Our Final Invention by James Barrat

There are many different books about the robot apocalypse, but few are so well researched, or as urgent, as Our Final Invention, by James Barrat. I have a passion for Artificial Intelligence, probably born from too many Sci-Fi movie marathons. The philosophy mixed with the science and the unknown excites me. But Barrat doesn’t exactly come from a pro - AI viewpoint. He believes that AI will be the last technology developed by the human race. Our Final Invention is a book about the dangers of Artificial Superintelligence, when machines surpass human capability to predict or control them. It aims to educate readers about the most current AI research, while moving them to act on the dangers that could appear if the research continues unchecked. Was it successful? 

The first thing I noted about this book was that it was very easy to read. Even though the material covered is sometimes complicated and advanced, the analogies and writing style is easy to comprehend. Some of the ideas are a little harder to digest once you understand them, and I think part of that has to do with the reverse-chronological path Barrat takes through the topic. He starts with something called the "Busy Child" scenario: a situation where a super-advanced AI decides it can't achieve its goal in confinement, tries to escape it's human captors. For this chapter, and the next two or three, I was rampantly annoyed. Every few sentences I found myself saying "Yes! But..." See for yourself! The chapter can be read online here.

The problem is that Barrat makes his claims in a sensational, provocative tale BEFORE he gives you the facts he has to back them up. And facts he has. His research covers the political, technological, and social ramifications of AI, from futurists to researchers to what's already here. Late in the book, he has a chapter comparing future advanced AI to the current rising problem of malware, and it is brilliant and terrifying. Once I read the rest of the book, I had to go back and reread the first few chapters. What I hadn't seen before was this: When Barrat says AI, he doesn't mean the kind that controls industrial machinery, or even government drones. The kind that has built in safety precautions from a savvy engineer. He is talking about the hundreds of researchers trying to skip the middle step, who are only concerned with developing human level intelligence as fast as they can. With that precinct, the "Busy Child" scenario becomes much more real. 

Now this is not a perfect book. One thing that annoyed me was Barrat's claims that we shouldn't anthropomorphize AI, shouldn't assume it would appreciate us, or even consider us worthy, when a few chapters later he was discussing the four basic drives of AI, which seemed rather anthropomorphic to me. (And don't even get me started on the gross oversimplification that is "friendly AI") And only the last chapter of the book is focused on ways to stop this impending doomsday. I wish there had been more discussion of prevention, of precaution, not just an afterthought, because I do believe that this isn't just going to become relevant in five years - it's relevant NOW. Back to government drones - or even worse, Amazon's proposed domestic drones - what happens if one of these drones is captured, and destructively reprogrammed? If it becomes slave to a botnet? These are the concerns Barrat feels moved to act on. Does his book succeed at moving others too? I'd say... yes, but not how you'd think.

Because it's worth noting that immediately after finishing this book, I went out to the nearest bookstore and bought an AI Textbook and a Lisp coding primer. Our Final Invention is a great introduction to real-world AI. And even more than it made me want to try and save the world, it kind of made me want to destroy it. I desperately want to be one of those hundreds of researchers on the cusp of tomorrow. I want to help Artificial Super-Intelligence come into being. I want to ask all the hard questions about consciousness and intelligence. And now I want to consider, and prepare for, the consequences of doing so. If Our Final Invention has done anything, it's made me more conscious of what we're creating. That's why anyone interested in AI, even just in passing, should read Our Final Invention. It gives everyone the knowledge to make their own decisions about AI, and the risks involved. Because, while I'm not saying your Roomba's going to challenge you, someday soon, who knows? It might be able to.

Friday, August 8, 2014

Practice Project with Mindstorms

It turns out I prefer busy summers to boring summers, but I also tend to go a little overboard. So if this poor blog seems abandoned, that's because it is! But it's time to fix that.

This project was supposed to be a  sort of automated set of drawers. A grid would sit over them, holding the drawers. The two motors could move to a certain "coordinate" to let the third lift the drawer. Overall, I was able to make it work well in concept. But I'm abandoning the project in its current form for now, just because the limitations of the Mindstorms kits and my own time and resources have made it difficult to complete.

I've noticed that the Mindstorms kits are optimized for compact robots. The pieces fit together with a fair amount of wiggle room, but if you aren't wedging anything inside that would allow them to move, you're fine. However, if you want to build a machine with a longer arm protruding from it, the leverage can cause connections to bend or even snap open. This made my plan of having one motor moving a bar holding the others difficult. As you can see in the video, the bar twists the motor holding and makes accurate movements difficult. 

Another difficulty I had was with the Mindstorms software. What I was looking for was a way to input a command from my computer that would trigger a method in the robot. While there is a Bluetooth connection option for the brick, it doesn't let me contact the brick with a command while the program is running, as there's no text input function. In the end I settled for inputting a "code" through the pressure sensor, so the robot would move to a position dependent on the number of times I pushed the button. This worked fairly well. This is the code I wrote that does just that.

The awesome people on the Google + Makers forum suggested I use MIT App Inventor, which lets any android device communicate with the brick through Bluetooth. This is a great idea! BUT, I regrettably have no android device on which to test this capability. I'll have to cross my fingers for my birthday. 

The video shows the last test I did of the robot. The design is... Not great, because I had to keep dropping and coming back to the project, and every time I would get halfway through fixing a problem, and have to stop for the next camp or class.
The robot did better in earlier tests, before the bars started rubbing the nubs away on the Legos holding them together! Great. And now that I'm trapped between eschool, drivers ed, and another super secret  project (coming soon!) that requires lots of time commitment, I decided to give this project a break. I'd like to come back to it at some point later, probably using an arduino and an upright set of drawers. I've got a few ideas written down. But for now, I'll just consider this project a good exercise in programming and design, and 
move on.
Up next: an upgrade to an old robot, a super secret project, and a book review to finish up the summer.