Monday, November 24, 2008

Is it a good thing for science to try to re-create the brain's power?

This blog post was inspired by something that was shared with me by TimesToCome.

IBM gets DARPA cognitive computing contract (The blog subject came from this article)

The world is trying to recreate the brain. Is this a good thing? I think it is a good thing. I don't know where it will end up. I may, in the end, feel like working on this kind of research was a mistake. If things end up in a Terminator kind of world, that would be bad.

I would like to understand why human brains take so little power and yet can dwarf my laptop in terms of flexible processing capabilities when my laptop heats the entire room when taxed. I think there are other models for processing that will yield very efficient results. Many of the biggest advances in industry are the result of someone taking the processes or procedures from one industry and adapting them to another. Can we take some of the manufacturing floor processes and procedures and port them over to help us understand and manage our email flow? Seems like a good idea to me.

If humans can create a brain that is simple and yet able to learn and efficiently carry out some tasks, that should give us more insight into the workings of our brains. More insight will lead to better understanding and improved ability to repair. I believe it will also give us some new computing models. Massively parallel influence based models. I think people will be surprised by a few things. 1. The brain's inputs and outputs are simpler than we currently expect. 2. The processing model is massively parallel. 3. The brain and input devices (eyes, ears, ...) are not as all seeing and all computing as we think they are. One example that I created during a discussion with someone near and dear, was that of peripheral vision and analyzing objects. People think that they constantly understand and can see everything around them. You know that there is a white van over there and think you know just what it looks like. It even feels sharp in your vision while you are looking somewhere else. Stop. Pay keep your vision firmly focused on one spot. Pay attention to the van. Can you really see it? Are the lines sharp? I think we are excellent parallel processing and filtering machines. We glance around quickly, stop on the van for a millisecond or two. Determine that it is a white van and move on. This object is now tagged. We have not really looked at it for a while. There are tons of details that we could have seen if we spent serious time looking at it. In the background, we are scanning objects that we are tracking. Have they changed? Try having a conversation in a parking lot. Pay attention to where your eyes go. I found that mine keep hopping from object to object making sure that they are still there, have not changed, and trying to decide if there is more to look at.

Evolving the entire human brain would be interesting. I think we would gain valuable insights. These days, I think I would just take small improvements. There are many logical actions, based on the context, that computers can safely take for us. Why aren't they? So much of our lives goes through the computers and it feels like we have to baby them through step by step. There has to be a better way. If computers were not just gophers that were sent to do specific tasks manually, and instead actually took appropriate actions based upon your wishes, I think world productivity would increase.


Saturday, November 22, 2008

Building Life Part 1 (Withdrawal...)

I think I am experiencing withdrawal from PHP|Works and Py|Works. I had a great time in Atlanta. I was able to see lots of great people, spend time looking at at thinking about things I love, give a talk on AI and Artificial Life, and spend time working on my Artificial Life project.

A few months ago, I decided, on suggestion of Travis Swicegood, to revive my Artificial Life project of evolving group hunting and group defense among artificial life forms. This project was an excellent learning opportunity and I achieved most of the results that I set out to do. It started out very simply. I created a world with plants and added prey. I hand coded the prey so that they would be able to use antenna (a smell based system where smell decreased proportionally with the distance squared) to get to the plants near them and eat. This worked relatively well. Now to bring on the competition.

I started with simple predators that were the same model as the prey, but were following the "prey" antenna instead of the plant antenna. In my model, each pair of antenna would give information on only one scent. In order to handle multiple scents, the system would have multiple sets of antenna. Now I had predators hunting prey that were hunting plants. My world was charging creatures for each time slice, how far they moved, and how much they turned. The predators were able to keep alive for only a little while before they ran out of juice.

Now was time to add evolution into my "evolving group hunting and defense" project. I created a simple neural network, gave it nice high-level inputs and had it output neurons for speed (high, medium, stop) and turning (left, center, right). Remember that the predators were not living too long at this point. The very first time that I ran the evolving predators from a random start, the second generation did not die. One of the predators lived so long and ate so many prey that it actually wrapped the health counter to a negative number while the debugger was attached. Ouch. So much for my hand coded algorithm. At this point, the game was really on. I quickly modified the creatures to have a maximum lifetime and health count. No more infinite life or infinite energy. It also ensured that a trial would run for a maximum of around 37,500 clock ticks. Prey and predators were switched to evolving neural networks and physiology and were never switched back.

I have had several questions from people about how I managed plant populations and generations of predators and prey. Plants are replaced as needed to keep the population steady after every move cycle. Plants are centered on one of the four quadrants randomly chosen with a random distance (there is a multiplier that can be adjusted to make them more or less clustered). Prey and Predators have a similar methodology for being replaced. Once an entire generation of prey or predators are dead, a lottery is held. Each creature starts out with one lottery ticket, just for being alive. For each point of health that they have consumed in their lifetime, they get an extra ticket. This means that even completely ineffective creatures may have the ability to breed. It also means that you have to finish an entire generation before you can get more food. A single prey off in the corner can make it pretty hard for the predators to eat.


Thursday, November 13, 2008

All Things Amazon

I have been using and thinking about Amazon products for a while now. I have even started to use more of them. One odd thing hindering me is that most of my account usage recently managed to be under my wife's account. I think I was trying to track a package that she had ordered, but the net effect was that my browser remembered the settings and started automatically logging in as her. This has had a few interesting complications.

I have been wanting an Amazon Kindle for a while now. I actually liked the idea so much that I borrowed one from my aunt. I loved it. It still seemed like too much money, and the screen refresh rate was a little too slow for my reading speed. I was at my birthday party recently and was telling my aunt, from across the room what I had been hearing about the new version of the Kindle. I had already decided to purchase the new one the moment it came out. Note to self, "Never talk about the new version of something before opening the gifts." You will never guess what I received for my birthday. Yes, an Amazon Kindle. I love it. I use it constantly. It allows me to take multiple books with me without having to actually haul multiple books. I still am not terribly happy with the speed at which it swaps out pages, but I find that I am getting used to it. As one other kindle user mentioned, it is faster than manually flipping pages. Me, I think I flip pages faster than her, but to each their own.

Now, you are probably wondering what my wife's Amazon account and the Kindle have to do with each other at this point. I was at the party and registered the Kindle with the account that I have been using (my wife's). I then purchased a Guy Kawasaki's book Reality Check and started reading. Later, I found one of the top sellers, the Warren Buffet biography, at 60% off and purchased it too. Now I am in an interesting position where a couple of the books I have purchased will go away if I start using my account again. I want to register it to my account, but do I need to purchase the books again? I have finished and loved Reality Check. I don't want to do without it. Guy is going to send me a copy, but I might just buy it on the Kindle again. I want it handy. I have had several times where I wanted to club an entrepreneur over the head with one of his blog entries or a chapter in his book. I am thinking about starting to buy copies and have them shipped to the entrepreneurs. Transferring documents to your Kindle is as easy as sending the document to an email address and paying $0.10. Quite worth the price. I will likely be translating online documents into the Kindle for reading offline. I prefer the paper like look and feel and I find it is far less stressful on my eyes than looking at even a great computer monitor.

Another Amazon service that I have signed up for was Amazon Prime. I love the service. I pay a bit, but I get two day shipping free. I typically paid more for the shipping since I usually want books right away. Now, I can purchase more often, in smaller increments, and get the books faster. This too was signed up for under my wife's account. I have heard that I can share the Amazon prime account with my other user, so this one should not be too bad.

Amazon SaaS offerings sound really interesting. I know lots of people that are using them. I have spent some time with their chief evangelist. With their recent round of new offerings (block based storage and load balancing) I think they have a very complete offering. I have been using Amazon products and services for a while now. I have enjoyed them and plan on enjoying more soon.

I am also working on a book with several colleagues, "Technology Leadership in Silicon Valley". We are currently looking for a good publisher. Let me know if you are interested in providing feedback, quotes, or know of a good publisher.

Are you using the cloud? Amazon Prime? Kindle?

What do you think of them?

Have you read Guy Kawasaki's Reality Check yet?