Sunday, October 25, 2009

Fall Break

As Fall Break ends for Erin we're reminiscing on all that we've done over the past week.  In fact, it's been a few weeks since I've written.  There were some high points since then such as our supper club at "Bones" in Denver and dinner at our friend's Rachel and Cameron's house followed by drinks with our friends Pete, Leah, Erich, and Brad at the Candlelight.  But much of the time was spent working as Erin has been trying to keep up with grading and I've been programming.

That's why this week has been so fun as we've taken time to enjoy some free time together.  The break got off to a shaky start as Erin pulled a muscle in her neck last weekend and needed to not move too much for a couple of days.  But on Monday she was ready to go as we drove down to Penrose for some fall-time harvesting.  We had found an apple orchard down there that also had a pumpkin patch.  It was fun to get out and do some picking.  It reminded me a lot about picking apricots from the tree in our backyard when I was growing up.  While at the orchard we were also able to pick out a nice big pumpkin.  It ended up being a fun time even though it included a lot of driving in comparison to picking.

On Tuesday we left on a surprise that Erin had planned for me.  We ended up on a beautiful hike above Boulder before the weather turned bad.  Then Erin continued the surprise by checking us into the Bradley Bed and Breakfast in Boulder.  It turned out to be one of the best B&B's that we've stayed in and was quite romantic.  To top it all off we went to a wonderful French resteraunt on Pearl St. called L'Atelier.  While we had been planning on going on another hike on Wednesday the snow that had come over night and the continuing rain drove us back to Castle Rock.

Thursday night is was my turn to plan the evening.  Based on a movie we had watched the previous weekend we decided to have a "James Bond" night.  We got dressed up and went out on the town (Castle Rock) to find the best martinis.  While the first place we went to, Uniscali, didn't have martinis, they did have some very good appetizers that served as dinner.  Our next stop, Sienna's, proved to be better for our evening with $5 martini happy hour and a wide selection.  After a quick stop at the video store we finished the evening back at home, curled up in front of the fire watching another cheesy Bond film.

On Friday night we came to the part of the week that we had been looking forward to for a long time.  Back in April Erin had gotten tickets for us to go see "Wicked", a musical based on what happens in Oz before Dorothy gets there in "The Wizard of Oz."  It is a very interesting and compelling story that I enjoyed very much.  Having seen it once before, Erin was convinced that if I was going to like a musical, this would be it.  We both had a great time at the show and I would see it again.  We had also decided that we would make the night extra special by staying for the night at the hotel Magnolia.  We had stayed there once before and found it very nice for the price.

On Saturday our adventure continued as we went to Littleton for a walk along the Platt river and lunch at Tres Jolie.  My aunt and uncle had gotten us a gift certificate for the shop and it was very nice.  The teas were delicious as were the pastries that accompanied them.  Having some time we then went in search of Halloween costumes.  Our first stop was the popular Reinke Bros. in downtown Littleton.  While they had several traditional costumes and accessories we were narrowing in on something a bit more creative.  A stop at the nearby Goodwill store provided the clothes we needed for our costumes.  I'll leave the surprise of what we're going to be for my next post.

To finish off Saturday, Erin went out with her friends to "Canvas and Cocktails" where they all enjoyed drinks while painting.  At the same time I met up with my friend Andres to play some video games and just hang out.  It turned out to be a fun night for both Erin and I. 

So today as the Fall Break comes to an end it has been nice to look back at all the fun things we've done.  We're going to catch a movie with our friends Brian and Cassie this afternoon before descending into the reality of the early wake-up and return to work that comes tomorrow.  Still, there's always next weekend to look forward to!

Friday, October 23, 2009

NeuroEvolution

I've finally got a working neuroevolution base which is doing well with basic conditional tests (e.g. xor). Now there are all sorts of avenues I want to start exploring and I'm having a hard time deciding which to follow:
  1. Node functions: Currently, each node utilizes a step function based on a random threshold. Most neural networks use some combination of sigmoid and similar functions, so I'd like my neural networks to have use of those as well. However, I then saw a paper on Cartesian Genetic Programming (CGP) which unlike genetic programming (GP) uses a network structure (instead of a tree) to represent programs and emphasizes separating the genotype and the phenotypic representation. As I read this I thought about giving the nodes in my networks even more functions to use: how could I have functions that take in types that are not real numbers? How would nodes coordinate between their outputs and expected inputs if they're different types?

  2. Evolutionary Strategies: There seems to be some different definitions for this, but I take it to mean applying a genetic algorithm not just to the neural networks I'm developing, but also to the parameters that define the bounds on those networks. In particular, there's a method called Covariance Matrix Adaptation - Evolutionary Strategy (CMA-ES) which drives these changes in a way that reduces wasting effort on parameters that are closely correlated.

  3. Problem Classification: Currently my networks can handle an array of real numbers for their input and produce an array of real numbers for their output. I'd like the program to handle different forms of data and produce different types of output. What's more, once the program has solved several different types of problems, it should be able to tell from the data coming in (based on a classifier network) what kind of problem it is and create the initial parameters accordingly.

  4. Human-Assisted Selection: There are already several systems that create a random group of individuals, ask the user to select which ones they prefer, and make the next generation from that. I'd like to have the same ability with my program. On another level, a neural network could use the initial population of individuals as its input and the user's selection as its expected output to train it in making suggestions to the user.

  5. Multilevel Selection: By creating additional populations of individuals, more complex behavior can be generated...
In reality, all of these are fascinating concepts that I would like to explore, but the choice of problem is the problem. All of these avenues of interest are things that I believe would make the program smarter, but how do you prove it without a good test. There are common tests like the double pole balancing problem which I'm incorporating, but where do I go from there?

It has started me thinking on a very interesting set of questions: Can you use neuroevolution in a cumulative fashion so that you train a network to do one thing and then train it to do something more advanced based on the initial training? It's the adage that you have to crawl before you can walk, and walk before you can run (even though one isn't use to do the next).

Are there learning tracks where you train a neural network the first thing on the track and that prepares it to learn the next thing, and so on? Or is it more of a network where each learning outcome is a node and the nodes feeding into the next layer of nodes all need to be learned before the next layer can be learned? This seems more logical to me. Not only does a person need to learn how to crawl, but they also must learn how to stand before they learn how to walk. Maybe a feed-forward network, since it's unlikely that something learned down the line would be required for an earlier learning node (though back-propagation does seem in effect to strengthen the earlier understandings).

The question then becomes, what starts the whole thing off? What are the first things that babies learn and must master before they can progress to the next stage of learning? Certainly as a person gains experience in multiple, cross-cutting fields (e.g. music, language), the inspiration and understanding to progress becomes more complex, but what about at the very beginning? Is it something that can be mapped out? Has someone already done this?

Thursday, October 8, 2009

Where Did Summer Go?

Or even Autumn for that matter?  One week it's summer and the next it feels like we skipped directly to Winter.  The picture to the left is from our porch in Castle Rock, CO where it has started snowing.  We had snow a week or two ago too, but this is the first time it's actually stayed on the ground.  I didn't think this was supposed to happen at least until Halloween!

I suppose it was a sign of the season as Erin and I went to get our flu shots on Tuesday last week.  While our arms both felt sore afterward, we weren't otherwise side-affected.

Still, when my friend Andres invited me to watch baseball last Thursday I thought it was a good omen for the last remnants of Summer.  While the game was a lot of fun and the Rockies won, I was sorely disappointed in terms of the weather.  It was okay in the sun, but the wind was bitterly cold in the shade where we were seated.  It was nice to get after the game and get a beer and a burger.

Then this past weekend Erin and I attempted to ride up to see the Fall foliage like we did last year (Enjoying Fall Foliage, Ouzo, and Bowling).  This time we were able to go with our friends Brian and Cassie (also on their motorcycle).  After meeting our wedding videographer to see a first cut of our wedding video (which looked very nice) we met up and headed up to the mountains.  The ride started nicely, but got colder the higher up we got until we stopped at a light and Erin exclaimed how cold she was.  Still, I pressed on hoping to find a good spot to view the changing colors.  After a while though I realized that it wasn't going to happen with the route we had chosen and the approaching storm clouds.  We turned around and went back to Brian and Cassie's place.

Back in the warmth of their home we were treated to a warm, delicious meal and a touching movie.  We also got to spend time with Neal's dog Bart (pictured right) who Brian and Cassie were looking after for the weekend.  He's such a friendly and well-trained dog that it's hard not to like him.

On Sunday Erin and I did some work and ran errands until it was time to start preparing dinner.  It was our pleasure to host my aunt and uncle down to our place for some lemon chicken picatta.  We had a great time chatting and catching up.

So now Erin and I are getting ready to head out to our monthly supper club up in Denver.  Of course it would be snowing and I hope it lets up soon.  Fortunately Erin doesn't have work tomorrow so we can sleep in, stay inside, and hopefully keep warm!