Technology Failures

I realize I am a bit late in posting this week but my mind has been on my research which isn't sufficiently mature to discuss here. Tonight my mind is on technology failures. I seem to be plagued with them at the moment. In fact I'm currently using my wife's machine to write this because my own laptop is in the shop getting a new motherboard. Initially they told me it shouldn't take more than 3 days to fix however when I dropped it off this evening they said it will probably be ready tomorrow, so that's a good thing. In fact even though my machine has had four failures in the two and a half years since I purchased it I have been extremely pleased with it. This stems from the fact that the OS is incredibly intuitive, mostly, and Apple is extremely efficient at fixing hardware issues.

I find myself a little less thrilled about my Galaxy Tab 10.1 lately. This is mostly because the E-mail and calendar clients leave a lot to be desired. This is partly the fault of the IT staff at the U. Recently they changed their security policy so as to require a great deal of security control over my tablet. I would understand this better if they weren't targeting Android devices alone. As a result of this policy change I decided to use Gmail as my U-mail client. While this works great from the Gmail web client it doesn't work as well from the Gmail Android app. Specifically it doesn't allow me to send E-mails via my U-mail account. With a little research I found a great number of people have the same issue and the "fixes" are kludgy at best and often ineffective as in my case.

The Google calendar app on the tablet has its own unique issues. First while you can add meetings via the app they are not sent back to Google. Secondly the calendar app believes the current time is seven hours earlier than is actually the case. You're probably thinking something along the lines of "well, just adjust your timezone." I thought of that and it actually corrects the issue. However it reschedules all meetings accordingly. Worse yet those changes get sent back to Google.

Truth be told, I bought the tablet to make it easier to carry and read the myriad papers I need to get through and it has served this purpose well. I'm not even certain where the fault lies, e.g. with Google or Samsung, since these issues only started occurring after the last update from Samsung.

Unfortunately the problems aren't confined to my personal machines. We just purchased two nice machines for the Algorithmic Robotics Lab. However one of them is suffering fromperformance issues for reasons we have not yet identified.

Don't get me wrong, all these issues are relatively minor and can be worked around. However we it makes me wonder about they types of errors that will arise as a result of integrating machine learning into our lives. I won't speculate as to what could occur. The list of possibilities is extensive I'm sure. Though I will say that I'm not talking about the robot apocalypse here. If you are concerned about such an event then I suggest reading the Willow Garage blog entry entitled Averting the Robot Uprising. Actually I suggest reading it anyway as it's quite humorous.


Learning to Learn from Nature

Science has frequently taken pages from the book of Nature when trying to solve its puzzles. The ability to learn is clearly a natural phenomenon. As such it is no surprise that learning algorithms have been inspired by nature.

A well known example are neural networks. These algorithms model, though fairly simply, the operations nerves. Neural networks have been used extensively to perform character recognition, face recognition, to generate gaits, to classify data, and so much more. It has been shown that neural networks approximate the process of Fourier transformations and can approximate any function given the correct basis functions.

Genetic algorithms are another popular example. These algorithms constitute a class of algorithms that model the operations of genetic material. In short, the first generation is created by randomly generating multiple hypotheses. A function, known as the fitness function, is used to measure how accurately a hypothesis estimates the target function. Hypotheses are chosen based on their fitness to be bred. The next generation is then measured and again bred. This process repeats until some desired accuracy is achieved.

Another example, though less well known, is reinforcement learning. Reinforcement learning was inspired by the concepts of pleasure and pain. However Sutton & Barto showed that any algorithm that learns from interaction with its environment is a reinforcement learning algorithm. Reinforcement learning has also been widely employed. It is particularly good  where learning needs to be performed online.

What other learning algorithms have been inspired by nature? What are their origins? How have they grown since then?


Nature's Particle Filters

Regardless of how diligent we are occasionally we wake to find a swarm of fruit flies in our kitchen. The reality is that when this occurs we've probably slipped up and allowed a banana peel to rot in the garbage can a bit too long. This last occurred about a month ago and despite our efforts to eliminate them there are still a couple buzzing around. Rest assured if we leave something in the trash in the near future we'll have a flare up.
It dawned on me recently that these little buggers are basically nature's particle filter. Particle filters are a way of estimating belief about something that cannot or is not directly observed. In other words they estimate a probability density function of hidden variables. In this case the fruit flies estimate the existence of food in a given area. When there is food there are lots of fruit flies, when there isn't there isn't.

I first encountered the concept in my AI class. The example used, if I recall correctly, tried to estimate the weather outside from the perspective of an observer that can't go outside. Instead the observer bases their belief on whether others were carrying an umbrella. A bit contrived but illustrative none-the-less.

A more compelling use comes out of robotic localization research; the problem of determining ones location in an environment given a map and a sequence of sensor readings. Monte Carlo localization specifically employs particle filtering to accomplish this task. The process generally starts by distributing particles over the area(s) of the map where the robot is believed to be. It's not uncommon for the particles to be evenly distributed over the map which implies the initial position of the robot is completely unknown. From there the particles are repeatedly altered based on how the robot moves, odometric sensor input, and what it sees, input from IR sensors, ultrasonic sensors, laser range finders, and even vision systems to name a few.

Of course there are numerous uses of particle filters; they're generally applicable when performing simulation over an infinite space which makes them quite useful. I've only touched on a few examples here. I've had the inkling that gremlins can be cast as a particle filter. Thus far I have not succeeded in doing so but I'll let you know if I do.



My name is Dustin Webb. As of this month I am a Ph.D. student at the University of Utah focusing on the application of machine learning to robotics. As any grad student knows, or is on the brink of learning, graduate school entails a great deal of writing. I'm starting this blog to refine my own writing skills.

As they are my writing skills aren't bad. However there are some issues I would like to work on. For example if I don't feel completely comfortable with the topic on which I'm writing I get stuck very easily. Unfortunately this has a tendency to lead to procrastination. Similarly when I encounter a question for which I don't have an answer I feel the compulsion to find the answer before proceeding.

My objectives for accomplishing this goal are as follows.
  • Write daily - by writing everyday I expect writing will become second nature. Of course not every entry will be posted publicly. Ideally those that are will actually be interesting and I don't expect that everything I write will fall into this category.
  • Write quickly - by limiting myself to 30 minutes I hope to learn to organize my thoughts more quickly. This will be most challenging when I don't have a specific topic to discuss or when I'm exploring a new topic.
  • Ask questions - by focusing on the questions and not the answers I hope to become increasingly comfortable with not having the answer. Feel free to answer these questions or submit any you feel I may have missed.
I will likely spend most of my time discussing topics related to machine learning, robotics, or some combination thereof. Don't be surprised if I slip from these topics from time to time though.