October 16, 2010

Environment as Information

Each cell in your body contains your entire genome - all 46 chromosomes, and yet they do many different things. We have skin cells and nerve cells and glial cells and muscles cells, etc. If the cells all have the same DNA, how do they know what to do? How does a skin cell know that it's supposed to be a skin cell, and at a larger level, how does a finger know how to shape itself into a finger?

Many people believe that DNA is a blueprint for our bodies. That if we could read DNA correctly, we could output something like an architect's drawing, that our cells faithfully follow in order to produce the completed body. This description of DNA is typical of what I learned in school:

Every cell in your body has the same "blueprint" or the same DNA. Like the blueprints of a house tell the builders how to construct a house, the DNA "blueprint" tells the cell how to build the organism. Yet, how can a heart be so different from a brain if all the cells contain the same instructions? Although much work remains in genetics, it has become apparent that a cell has the ability to turn off most genes and only work with the genes necessary to do a job. We also know that a lot of DNA apparently is nonsense and codes for nothing.
While the blueprint analogy is helpful, it misrepresents how things really work. Unlike buildings, there is no architect or general contractor in an embryo. There is no cell or group of cells that understands what the body should look like, or what it looks like currently. Cells base their behavior entirely on their local environment, not on any sort of understanding of their larger role in the body. DNA is not a blueprint - it is more like an instruction booklet, and the environment tells the cell which "page" of the booklet to turn to.

For example, the very first cell (or zygote) is in a very unique environment. There is a "page" in the booklet of DNA that gets turned to when a cell isn't connected to any other cells, and is surrounded by the chemicals found in a womb. That page says that it should divide. The next cell has its DNA turned to the page for what to do when it's connected to one zygote-like cell, etc.

The key is that each cell uses its local, unique environment to decide how to act. Its actions then help to create the local environment for the cells around it, telling them how to act. In this way, information cascades through the medium of the environment, and each cell can do what it's supposed to, without only a local understanding of its environment.

If we go back to our finger example, DNA might have instructions that are something like "keep producing skin and bone cells while the ratio of chemical x is above y", where chemical x is produced by your knuckles, for example. When the ratio of the chemical is below the threshold, your fingers stop growing. The specifics of this example are most likely incorrect, but the principle is right - individual cells know nothing except their local environment, and genetic instructions must be based on that.

Many machines are based on this same principle. For example, a thermostat could theoretically be built which measures the volume of a room, and using mathematics figures out the amount of hot air necessary to heat a room of that size, and then pumps in the air.

That would, of course, be silly. Instead, a thermostat measures the temperature of the room, and continues to pump hot air until the room is warm enough. It directly modifies the environment, and then measures the environment to determine whether or not to continue modifications. Information about room size is not necessary, information about how much air has already been pumped is not necessary, even information about the temperature in the room isn't necessary. The only information a thermostat needs is whether or not the room is warmer or cooler than a given temperature. By directly querying the environment, thermostats move from a incredibly complex calculation to a binary decision without any loss of function.

These two examples hint at the incredible ways that environments can be used to interact with systems. They can:
  • Simplify systems - in both examples, systems are simplified drastically by directly affecting the environment in order to communicate with the system. Instead of cells storing their location in the body, or which part of the DNA they should code for, their instructions simply tell them how to react in various environments. That is a much simpler, and less error-prone way of doing things.
  • Store information - In a sense, the temperature of a room is storing how much hot air has been pumped into it from a heater. This is information that would be important to a self-contained thermostat system, but it isn't needed because the environment contains the necessary information.
  • Build complexity - Because all of the components in the system are using their local environment as both input and output, they can build things that are more complex than they are. Cells, economies, and societies all rely on local actors making decisions based on local information, where outputs from one actor become inputs for another. This type of interconnectedness allows for complexity and efficiency that is far beyond what any of the actors could have designed and built from the top-down.
  • Increase adaptability - Each component in the system is interdependent. Because one component's actions are based on the output of another component, if the output changes, the effects are cascading. The breadth of the cascade is also a function of the interdependence. Some changes will only affect the local environment, while others can change the entire system.
  • Allow stateless interactions - Thermostats don't need to know anything about how long the heater has been on, or how long it has been since it last turned off. They are stateless because their decision about whether or not to turn on the heat is not based on the past. Each decision is completely independent. Similarly, a cell doesn't know whether it has divided 1 time or 1,000 times. A neuron doesn't know whether it has fired 5 times in the last minute, or 50 times.
  • Allow certain variables to be abstracted - A thermostat that tried to calculate how much hot air was needed would need to keep track of whether a door to the room was opened (thus increasing the amount of hot air needed), or whether there were warm bodies in the room (thus reducing the amount of hot air needed). By measuring only the temperature, a simple thermostat acts as though it took all of those variables into consideration, without actually knowing them.

October 14, 2010

Out of Control

Out of Control by Kevin Kelly is one of the most incredible books that I have ever read.

It is a rambling tome about emergence and technology and complexity and evolution, and it is wonderful. Kelly is the excited narrator who leads the reader into a fantastic new world where creativity and order and intelligence are a result of networked simple parts interacting and learning.

It really is too ambitious to describe in a blog post. Usually books written about current and future technology feel dated and anachronistic within a few years. Out of Control was written in 1994, but the trends that Kelly identified and explored are so deep and long-reaching that the book won't outlive its relevance for a long time.

This book will affect my thinking in many areas and in many ways. I highly recommend it. Just read it.

P.S. Kevin Kelly's new book, What Technology Wants, came out today. He described it as an extension of Out of Control. I can't wait.

October 12, 2010

You Are Really, Really Rich

Money - Savings by 401(K) 2013, on Flickr
A politician who suggested a healthcare plan that would apply only to the richest 10% of people would be laughed out of office on election day. It would be absurd to look after only those who already have everything. A welfare plan which took money from the rich and gave all of it to the upper-middle class, without giving anything to the poor, would be ridiculous. And yet, that is exactly the system that we have.

Every year, we give the Earned Income Credit to millions of poor Americans. In 2004, $36 billion were transferred from the wealthy to the poor through this system. The maximum credit is earned by those who make $16,420 or less. Therefore, the tax system considers these people poor. Politicians consider these people poor enough that it was worth proposing a tax on richer Americans which would then be used to give money to this group; a proposal which was accepted.

When we take a step back and look at the American "poor" from a global perspective, our priorities seem skewed, to say the least. According to the Global Rich List, someone making $16,420/year is in the top 12% of income earners in the world. Someone at the US poverty line ($10,830) is still in the top 13%. We are taking money from the top 5%, and because we feel so sorry for them, we are giving it to people who are still in the top 15%, and giving absolutely nothing to everyone else.

Sometimes when I am listening to stories on NPR about people who are losing their homes to foreclosure, or who go bankrupt due to medical bills, I start to get a little choked up. I feel sorry for those people. I want to do something to help them.

Then I remember that they aren't the people who really need my help. The difficult experiences that we have in America stink. It's terrible to lose your house. It's terrible to be forced to sell your heirlooms to make ends meet.

It's worse to have to choose which child gets to sleep under the mosquito netting, because you can't afford a $10 bed net for each of them. It's worse to wonder every day whether the water you are drinking will kill you. It's worse to not have enough money to send your children to school.

We have eradicated poverty in America. That is an incredible miracle that we have never really celebrated. People no longer starve to death here. They no longer die of mumps or measles or diarrhea or malaria. We should celebrate that incredible accomplishment. But while we are celebrating, we need to remember that we have brothers and sisters out there who still are starving, and who are still dying from diarrhea and malaria. It's time to move our focus from America to the rest of the world.

The great news is that because you are so (relatively) rich, it is easy to do a lot of good. By cancelling cable, or skipping your morning coffee, you can make a real and meaningful difference to many people who need help.

There are plenty of great ways to help out. I like Kiva and Room to Read, but there are many other ways to do something. But you should do something.