Field of Science

Showing posts with label computing. Show all posts
Showing posts with label computing. Show all posts

What John von Neumann really did for modern computing


That John von Neumann was one of the supreme intellects humanity has produced should be a statement beyond dispute. Both the lightning fast speed of his mind and the astonishing range of fields he made seminal contributions to made him a legend in his own lifetime. When he died in 1957 at the young age of 56 it was a huge loss; the loss of a great mathematician, a great polymath and to many, a great patriotic American who had done much to improve his country's advantage in cutting-edge weaponry.

Starting with pure mathematics - set and measure theory, rings of operators, foundations of mathematics in the 1920s and early 30s - von Neumann moved to other mathematical topics like ergodic theory, Hilbert spaces and the foundations of quantum mechanics that were closer to physics. He then moved into economics, writing "The Theory of Games and Economic Behavior" with Oskar Morgenstern which laid the foundations of game theory (a first edition in good condition now sells for $12,500). During and after the war von Neumann became an almost completely applied mathematician and physicist. Perhaps the major reason for this transformation was his introduction to computing during a consulting stint in England during the war in 1943. Even as nuclear weapons promised to completely change politics, science and international relations, he was writing in a letter to a friend at the end of the war, "I am thinking about something much more important than bombs; I am thinking about computers." In another puckish letter that indicated his move away from his traditional domain of pure mathematics, he said he was coming back from England a "better and impurer man".

During the war, Von Neumann played a key role in developing the idea of implosion used in the plutonium bomb developed in the Manhattan Project. He visited Los Alamos as a consultant from 1943 onwards until the end of the war and specifically lent his expertise to the "lenses" in the plutonium bomb that focused a converging shock wave triggered by explosives that set off the fission reaction. These contributions were based on the valuable experience he had gained consulting on ballistics, shaped charges and shock waves at the Aberdeen Proving Ground in Maryland. During and after the war he turned his powerful mind to all kinds of defense-related research and became a major voice in the development of the hydrogen bomb and ICBMs; at one point he advised every US defense agency except the Coast Guard.

To the lay public and to engineers, von Neumann might be best known as one of the founders of modern computing, his name made ubiquitous through the von Neumann architecture of computers that is taught to undergraduates in computer science and engineering. Interestingly, it is this distinction that is somewhat controversial and also much more interesting than it seems from a naive analysis. On both sides one sometimes sees extreme opinions tossed about, so it's worth laying some of them to rest right away. Von Neumann did not "invent" the computer or computer science; the history of computing goes back much farther all the way to medieval times. He also did not "invent" the stored program computer concept, neither did he invent most of the major computing concepts that we now take for granted, like RAM and flow control. He did not invent any important technical bit of hardware. But as William Aspray surmises in his excellent and detailed, albeit a bit staid and dry book, von Neumann's true influence was far more subtle and in fact ironically goes even further than what his defenders imply. I am not sure even Aspray does a convincing job emphasizing how far it went. Therefore, while I will not embark on a detailed chapter-by-chapter analysis of the book here, what I want to do is drive home the two most important concepts that emerge when we analyze von Neumann's role in the history of modern computing - the value of generalists and the power of abstraction.

An accidental introduction to computing

Von Neumann became introduced to computers in large part by accident. An important part of the introduction came from the "computers" - usually women calculators in an assembly line kind of system performing repetitive calculations - who were used to do bomb calculations at Los Alamos. The bomb calculations particularly drove home to him the importance of non-linear phenomena involved in the complex radiation flow and hydrodynamics of a nuclear explosion, phenomena that were very hard to model by hand. Another introduction came from meeting scientists in England like Alan Turing and the engineers who were building some of the first computers in Manchester and other places. Von Neumann had also seen the value of computing tables in his work on ballistics at the Aberdeen Proving Ground in Maryland. All these experiences drove home to him the importance of computational science in general. 

But perhaps the most important event that introduced von Neumann to computing was a chance encounter at a railway station in the summer of 1944 with Herman Goldstine, an engineer who had been working on the ENIAC computer at the University of Pennsylvania. Until then von Neumann did not know about this pioneering work that was the first important computer project in the country. The ENIAC was not a true stored program computer, so the cables and connections had to be laboriously rewired to solve every new problem, but by the standards of the times it was quite advanced and is now considered the first general-purpose computer, able to tackle a variety of problems. Unlike past analog computers which used electromechanical relays, the ENIAC used vacuum tubes which importantly made it a digital computer and a forerunner of modern computers. The ENIAC had been a labor of love and had been built by engineers whose names are sadly not as appreciated as von Neumann's but should be; along with Goldstine, Julian Bigelow, J. Presper Eckart and John Mauchly played foundational roles in its design and construction.

The importance of von Neumann's influence

At this point it's sensible to say a word about the state of what was then computer science. As a field it was generally looked down upon by mathematicians and physicists and regarded as being the domain of drudge work. This is where the first of von Neumann's contributions came into play: his sheer influence whose role cannot be underestimated. By the 1940s he was already considered one of the world's greatest mathematicians and polymaths, and his work in mathematics, physics and economics all commanded the highest respect. In addition, the sheer speed of his thinking that left even Nobel Laureates feeling stumped contributed to a kind of godlike perception of his abilities; later Enrico Fermi once said that von Neumann made him feel like he knew no mathematics at all, and Hans Bethe once mused whether von Neumann's mind indicated a higher species of human being. Von Neumann was also becoming a very valuable asset to the US government. All this meant that when von Neumann said something, you listened. People who question his importance to modern computing sometimes don't appreciate that "importance" in a field is a combination of originality and influence. In terms of influence there was none who surpassed von Neumann, so whatever he said about computing was often taken seriously simply because he had said it.

Von Neumann the generalist

The reason von Neumann immediately became so influential in the ENIAC project attested to one of his signal qualities - his remarkable ability to quickly grasp a new field of inquiry and then to leapfrog over even the field's founders to divine new results and insights. It was also a source of annoyance to some since it meant that von Neumann could take their ideas and immediately run farther with them than they themselves could. More than anyone else von Neumann could take the complete measure of a field, a thirty thousand foot view if you will. This is where an even more important quality of his came into play - the polymath's ability to be a generalist. Most people who worked in computing then came from narrowly defined fields: the mathematicians didn't know much about engineering, and the engineers who specialized in vacuum tubes and electronics had little idea of the mathematical theory behind computing. Von Neumann was unique in having total command of all of mathematics and a good part of physics, and his work at Aberdeen and Los Alamos had also introduced him to key ideas in engineering. The missing link was the engineering work on the ENIAC, and when he understood this work, his generalist's mind quickly connected all the dots.

Von Neumann and the power of abstraction

Two other very important facts contributed to making von Neumann unique, and both of them shed light not just on his mind but on the power of abstraction. One was a reading of Alan Turing's famous 1936 paper on Turing machines that led the foundations of theoretical computer science. This was again a paper which would not have been read by engineers. When Turing visited Princeton during the war von Neumann tried to recruit him as his assistant but Turing instead chose to go back and become a key part of the government's cryptographic effort in breaking the German codes. But Turing's paper proved very influential and in fact von Neumann asked all the engineers working on the ENIAC and later on the Institute for Advanced Study computer to read it.

The second paper that was a major influence on von Neumann was a 1943 paper by Walter Pitts and Warren McCullough that was the first computational model of a neuron and the forerunner of today's neural networks. Von Neumann immediately grasped the similarity between the Pitts-McCullough paper and the basis of computing. Again, this would not be work familiar to engineers or even other mathematicians interested in computing, and it was only von Neumann's unique interests and abilities as a polymath that led him to read and appreciate it, and to especially appreciate the value of treating neurons and computational elements in general as generalized black boxes.

Both the Turing and the Pitts-McCullough paper led von Neumann to achieve something that was actually unique and can be stamped with his name on it. This something is a signature quality of mathematics and to some extent computer science, and it's what really makes those two fields the powerful fields they have become. The signature quality is the power of abstraction. The beauty and strength of mathematics is that it can generalize from specific instances (or instantiations, as computer scientists like to say) to universal abstract frameworks. Physics also shares this power to a considerable extent - for instance, the equation F=ma is independent of its specific instances and can equally describe an apple falling to the earth, a planet revolving around the sun and two black holes colliding. But the language the equation is expressed in is mathematics, and it is mathematics that allows us to generalize in the first place.

Von Neumann's big achievement was in being able to move away from vacuum tubes, wires, punch cards and magnetic core memory to a high-level view of computing that also led him to see parallels with the human brain. Basically this view told him that any computational framework - biological or electronic - must have five basic components: an input, an output, an arithmetic unit, a processing unit that manipulates data and a memory that stores data. Crucially, it also told him that both the instructions for doing something and the thing that is done can be stored in the same place and in the same form. In the words of the historian George Dyson, von Neumann's insights "erased the distinction between numbers that mean something and numbers that do something." The stored program was not invented by von Neumann, but this abstract view of the stored program did come from him, again thanks to his powers as a pure mathematician and generalist. These two signal insights are the basis of today's von Neumann architecture, but the key idea enabling them was an abstracted view that led von Neumann to visualize the structure of the computer in a most general form, something that his specialized contemporaries could not do.

A slight digression on this idea of the power of abstraction since it's relevant to my own job. I am involved with a company which is trying to enable scientists to run experiments in biology and chemistry remotely in a "cloud lab" from the luxury of their homes and laptops. A key idea in doing this is to abstract away the gory details of all the hardware and equipment through a software platform that only exposes high-level functionality to scientists who aren't experts in engineering. But an even more desirable goal is to generalize workflows across biology and chemistry so that instead of thinking of protocols specific to biology or chemistry, scientists will only think of generic protocols and generic sequences of steps like "move liquid", "stir" and "heat/cool". This is possible because at an abstract level, a container holding cells and a container holding a chemical compound for instance are both the same from the point of view of software - they are objects on which you need to perform some operation. At an even more abstract level, they are binary bits of code which change into other binary bits of code; at this level, the words "biology" and "chemistry" become irrelevant.

The ultimate goal is thus to do away with the distinction between specific instantiations of operations in specific fields and abstract them away into generalized operations. I would like to think Johnny would have appreciated this.

First Draft of a Report on the EDVAC (1945)

The result of this generalist knowledge was a seminal report called First Draft of a Report on the EDVAC that von Neumann wrote and circulated in 1945 and 1946. The EDVAC was supposed to be the ENIAC's successor and a true stored program computer. The report laid out in detail what we know as the von Neumann architecture and also explained key concepts like flow control, sub-routines and memory implementation. Von Neumann was especially big on subroutines since they went a long way in enabling instantaneous access of specific instructions that would enable stored program computing. He also emphasized the importance of random access memory; the first random access memory hardware was the Williams tube, invented in 1946. 

The EDVAC report has become controversial because of two reasons. Firstly, while it came out of many discussions that von Neumann had with the ENIAC engineers, especially Eckert and Mauchly, it had only von Neumann's name on it. Secondly, the report led to a bitter patent dispute. Eckert and Mauchly wanted to start their own company designing computers based on patenting the work on the ENIAC. But after von Neumann circulated the report in public the knowledge was in the public domain and therefore the patent issue became moot. Eckert and Mauchly were understandably bitter about this, but we have to credit von Neumann for being an early proponent of open-source software; he wanted concepts from computing to be available to everyone. Appropriately enough, the EDVAC report became widely known to engineers and scientists across the United States and Europe and influenced the design of computers in many countries. It cemented von Neumann's reputation as one of the founders of modern computing, but it should always be remembered that while the generalist insights in that report came from von Neumann, they were based on a lot of specific engineering and design work done by others.

Two early applications: Non-linear equations and meteorology

After working on the ENIAC and the EDVAC, von Neumann decided to apply all the knowledge and insights he had gained to building a computer at the Institute for Advanced Study (IAS) in Princeton where he had been a member since 1933. This fascinating story has been told extremely well by George Dyson in his marvelous book "Turing's Cathedral" so it's not worth repeating here. But it is worth noting what von Neumann considered the two most important applications he envisaged for the first computers. The first was the solution of non-linear equations. Von Neumann had become quite familiar with non-linear equations in the analysis of the complex hydrodynamics and radiation flow associated with nuclear explosions. He knew that non-linear equations are very hard to solve using traditional methods - while analytical solutions are often impossible, even numerical ones might be challenging - and realized that the iterative and fast techniques computers used would greatly aid the solution of these methods. Many of the early papers authored by von Neumann, Goldstine and Bigelow describe mathematical problems like the diagonalization of large matrices and the solution of non-linear partial differential equations. This early work drove home the great advantage and power of computing in a wide variety of fields where non-linear equations are important.

Von Neumann also realized that the atmosphere with its complex movements of air and water is a perfect example of non-linear phenomena. Events during the war like the Normandy landings had emphasized the importance of understanding the weather; von Neumann now thought that the computer would be the ideal tool for weather simulation. Most of the work in this area was done by scientists like Jule Charney and Carl-Gustaf Rossby, but von Neumann played a very influential role by co-authoring papers with them, organizing conferences, securing funding and generally spreading the word. His stature and eminence again went far in convincing the scientific community to work on applying computers to meteorology. Von Neumann also thought that controlling the weather would be easy, but this has proved to be a harder goal, partly became of the complexity of the phenomena involved (including chaos) and partly because of political reasons.

Von Neumann's role as a founder of modern computer science

The Institute for Advanced Study computer had a memory of 5 kilobytes, less than what it takes to display a single pixel today. And yet it achieved remarkable feats, simulating the workings of a hydrogen bomb (secretly, at night), simulating the weather and modeling the genetic growth of populations. It embodied all of von Neumann's salient concepts and was widely emulated around the country. The navy built a computer based on the IAS machine, and so did IBM and the RAND corporation whose machine was playfully named the JOHNNIAC. From these machines the gospel spread wide and hard. 

In his last few years von Neumann became even more interested in the parallels between the brain and the computer. His last major contribution was to come up with a detailed theory of self-reproducing automata which presaged important later developments in molecular biology and nanotechnology; a 1948 set of lectures at Caltech by him lays out components of self-reproducing organisms with error correction that are remarkably similar to the DNA, RNA ribosomes , proof-reading enzymes and other genetic components that were later discovered. Once again, what made von Neumann's insights in this area possible was that he thought about these components in the most general, most abstract manner, without waiting for the biologists to catch up. In the 1950s he planned to move away from the IAS to either UCLA or MIT where his interests in computing would find a better home and would be encouraged and funded. The history of science and technology could have been very different had this come to pass. Unfortunately this did not come to pass. In 1956 von Neumann was diagnosed with cancer, and he passed away after a cruel and protracted illness in February 1957. Notes for a set of lectures later published as a book lay on his deathbed.

So was von Neumann one of the founders of modern computer science? As complicated, subtle and important as the details are, the overall answer has to be yes. This answer has little to do with his technical contributions and all to do with his sheer influence and his power of generalization and abstraction. Von Neumann communicated the power of computers at a time when they were regarded as little more than turn-the-crank calculators. Because of his enormously wide-ranging interests he demonstrated their potential applications to a vast number of fields in pure and applied mathematics, meteorology, physics and biology. Most importantly, he came up with general ideas that serve as the foundation of so much computing that we take for granted today. In other words, von Neumann more than anyone else made computing respectable, widely known and the basis of modern life that everyone critically relies on today. He is not the founder of computer science or the "inventor of the computer", but certainly one of the principal founders. And he achieved this status largely because of the advantage enjoyed by generalists over specialists and the power of abstraction, both good lessons for an age when specialization seems to be the norm.

If you want to improve AI, let it evolve toward emergence

One of my favorite quotes about artificial intelligence is often attributed to pioneering computer scientists Hans Moravec and Marvin Minsky. To paraphrase: “The most important thing we have learned from three decades of AI research is that the hard things are easy and the easy things are hard”. In other words, we have been hoodwinked for a long time. We thought that vision and locomotion and housework would be easy and language recognition and chess and driving would be hard. And yet it has turned out that we have made significant strides in tackling the latter while hardly making a dent in the former.
Why is this? Clearly one trivial reason is that we failed to define “easy” and “hard” properly, so in one sense it’s a question of semantics. But the question still persists: what makes the easy problems hard? We got fooled by the easy problems because we took them for granted. Things like facial recognition and locomotion come so easily to human beings, even human beings that are a few months old, that we thought they would be easy for computers too. But the biggest obstacle for an AI today is not the chess playing ability of a Gary Kasparov but the simple image recognition abilities of an average one year old.
What we forgot was that these things seem easy only because they are the sleek final façade of a four billion year process that progressed with countless fits and starts, wrong alleys and dead ends and random experimentation. We see the bare shining mountaintop but we don’t see the tortuous road leading to it. If you looked under the hood, both spatial and temporal, of a seemingly simple act like bipedal navigation over a slightly rocky surface, you would find a veritable mess of failed and successful experiments in the history of life. If the brain were an electrical box which presented an exterior of wondrous simplicity and efficiency, inside the box would be fused wires, wires leading nowhere, wires with the middles cut off, wires sprouting other wires, stillbirthed wires; a mélange of wired chaos with a thread of accident and opportunity poking through it. We see only that ascendant thread but not the field littered with dead cousins and ancestors it resides in.
Over the ages, much of AI tried to grasp the essence of this evolutionary circus by trying to reproduce the essential structure of the human brain. The culmination of these efforts was the neural network, a layered abstract model of virtual electronic neurons trying to capture different aspects of reality with adjustable weights on every layer and a feedback loop that optimized the difference between the model and reality. So far so good, but neural networks are only modeling the end product and not the process. For the longest time they were not allowed to deliberately make mistakes and mirror the contingent, error-ridden processes of evolution that are grounded in mutation and genetic recombination. They made the evolution of thinking seem far more deterministic than what it was, and if there’s anything we know about evolution by now, it’s that one cannot understand or reproduce it unless one understands the general process of clumsy, aimless progress intrinsic to its workings.
But apart from the propensity of evolution to make mistakes, there is another, much broader aspect of evolution that I believe neural nets or other models of AI must capture in order to be useful or credible or both. That aspect is emergence, a feature of the human brain that is directly the product of its messy evolution. Not only could emergence help AI approach the actual process of thinking better and realize its scientific and financial potential, but it could also lead to reconciliation between two fields that are often and unnecessarily at war with each other – science and philosophy.
The basic idea of emergence has been recognized for a long time, first by philosophers and then by scientists. Whether it’s a block of gold having color properties that cannot be ascribed to individual gold atoms, individual termites forming a giant anthill or thousands of starlings forming stunning, sweeping, transient geometric patterns that carpet the sky for miles, we have known that the whole is often very different from both the individual parts and the sum of the parts. Or as one of the philosophical fathers of emergence, the physicist Philip Anderson, wrote in a now-famous article, “More is different”. Anderson noted that the properties of a physical system cannot be directly derived from its individual constituents, and more components are not just quantitatively but qualitatively different from fewer ones. Part of the reason for this is that both physics and biology are, in the words of Anderson’s fellow physicist Murray Gell-Mann, the result of “a small number of laws and a great number of accidents”. In case of biological evolution the laws are the principles of natural selection and neutral drift; in case of physical evolution the laws are the principles of general relativity, quantum mechanics and thermodynamics.
Emergence is partly a function of the great number of accidents that these small numbers of laws have been subjected to. In case of biology the accidents come from random mutations leading to variation and selection; in case of physics they come from forces and fields causing matter to stick together in certain ways and not others to form stars, galaxies and planets. Evolution critically occurred while immersed in this sea of stochastic emergence, and that led to complex feedback loops between fundamental and emergent laws. The human brain in particular is the end product of the basic laws of chemistry and physics being subjected to a variety of other emergent laws imposed by things like group and sexual selection, tribalism, altruism, predation avoidance and prey seeking. Agriculture, cities, animal domestication, gossip, religion, empires, democracy, despotism; all of humanity’s special creations are emergent phenomena. Mind is the ultimate emergent product of the stochastic evolution of the brain. So is consciousness. It’s because of the universal feature of accidental emergence that even a supercomputer (or an omniscient God, if you will) that had all the laws of physics built into it and that could map every one of the countless trajectories that life would take into the future would be unable to predict the shape and function of the human brain in the year 2018.
The mind which itself is an emergent product of brain evolution is very good at modeling emergence. As just one example, our minds are quite competent at understanding both individual needs as well as societal ones. We are good at comprehending the behavior of matter on both a microscopic scale – although it did take some very determined and brilliant efforts to achieve this feat – and the macro scale. In fact, we have so completely assimilated the laws of emergent physics in our brains that implementing them – throwing a javelin or anticipating the speed of a charging elephant for instance – is instinctive and a matter of practice rather than active calculation. Our minds, which build constantly updated models of the world, can now take emergent behavior into account and can apply the right level of emergent detail in these models to address the right problem. Evolution has had a leisurely four billion years to experiment with its creations while buffeted by the winds of stochastic emergence, so it’s perhaps not surprising that it has now endowed one of its most successful species with the ability to intuitively grasp emergent reality.
And yet we are largely failing to take into account this emergent reality when imagining and building new AIs. Even now, most of our efforts at AI are highly reductionist. We are good at writing algorithms to model individual neurons as well as individual layers of them, but we ignore the higher-level emergent behavior that is expected to result from a real neural network in a real human brain. Through a process called backpropagation, the neural networks are getting better at optimizing the gap between reality and the models they represent by setting up feedback loops and optimizing the weights of individual neurons, but whether their models are trying to capture the right level of emergent detail is a question they don’t address. If your model is capturing the wrong emergent details, then you are optimizing the wrong model.
Even if your model does solve the right problem, it will be such a specialized solution that it won’t apply to other related problems, which means you will be unable to build an artificial general intelligence (AGI). Consider the example of image recognition, a problem that neural nets and their machine learning algorithms are supposed to especially excel at. It’s often observed that if you introduce a bit of noise into an image or make it slightly different from an existing similar image, the neural net starts making mistakes. And yet children do this kind of recognition of “different but similar” images effortlessly and all the time. When shown an elephant for instance, a child will be able to identify elephants in a variety of contexts; whether it’s a real elephant, a stuffed elephant toy, a silhouette of an elephant or a rock formation that traces out the outline of an elephant. Each one of these entities is radically different in its details, but they all say “elephant” to the mind of the child but not to the neural network.
Why is this? I believe that emergence is one of the key secret sauces accounting for the difference. The child recognizes both a real elephant and a rock formation as an elephant because its brain, instead of relying on low-level “elephant features” like the detailed texture of the skin and the black or gray colors, is instead relying on high-level “emergent elephant features” like the general shape and more abstract topological qualities. The right level of emergent abstraction makes the child succeed where the computer is failing. And yet the child can – with some practice – also switch between different levels of emergence and realize for instance that the rock formation is not going to charge her. Through practice and exploration, the child perfects this application of emergent recognition. Perhaps that’s why it’s important to heed Alan Turing’s prescription for building intelligent machines in which he told us to endow a machine with the curiosity of a child and let intelligence evolve.
Another emergent feature of living organisms is what we call “emotion” or “instinct”. For the longest time we used to believe that human beings make rational decisions when evaluating their complex social and physical environments. But pioneering work by psychologists and neuroscientists ranging from Daniel Kahneman to Antonio Damasio has now shown that emotion and logical thinking both play a role when deciding how to react to an environmental stimulus. Take again the example of the child recognizing an elephant; one reason why it is so good at recognizing elephant-like features is because the features trigger a certain kind of emotional reaction in her. Not only are the logical feature-selecting parts of her brain activated, but so are her hormonal systems, perhaps imperceptibly; not only does she start thinking, but even before this, her palms may turn sweaty and her heartbeat may increase. Research has now consistently shown that our instinctive systems make decisions before our logical systems even kick in. This behavior was honed in humans by millions of years of living and passing on their genes in the African savannah, where split second decisions had to made to ensure that you weren’t weeded out of the gene pool. This kind of emotional reaction is thus also a kind of emergent behavior. It comes about because of the interaction of lower-level entities (DNA sequences and hormone receptors) with environmental and cultural cues and learnings. If an AI does not take emotional responses into account, it will likely never be able to recognize the kinds of abstract features that scream out “elephant” in a child’s mind.
As the biologist Theodosius Dobzhansky famously quipped, “Nothing in biology makes sense except in the light of evolution”, and I would extend that principle to the construction of artificial intelligences. Human intelligence is indeed a result of a few universal laws combined with an enormous number of accidents. These accidents have evolved evolution to select for those brains which can take stochastic emergent reality into account and build generalized models that can switch between different levels of emergent abstraction. It seems to me that mimicking this central feature of evolution would not just lead to better AIs but would be an essential feature of any truly general AI. Perhaps then the easy problems would truly become easy to solve.

This is my latest column for 3 Quarks Daily.

Why healthcare might not have benefited from a Steve Jobs-style disruptor

Steve Jobs holding a non-emergent object
The website Stat has an article titled "Why healthcare needs a Steve Jobs-style disruptor". The article which is by a physician named Damon Ramsey focuses on Jobs' ability to rethink design and to reinvent many of the ways in which we interact with the digital world. Ramsey thinks that Jobs would have had much to offer our current healthcare system with its convoluted regulatory mechanisms and information systems; it draws inspiration from an account by Jobs's sister in which she recounts him sketching out new designs for hospital systems even on his deathbed.

It's a pleasing vision, and Jobs was certainly a visionary who will go down as one of the most important people in the history of modern civilization, but I actually don't think that someone like him will be a disruptor in healthcare. The main reason is that healthcare is very different from electronics and computer science in terms of the complexity and predictability of its essential elements. Jobs might certainly have been useful in designing some of the electronic interfaces in hospitals, but that's a very limited part of the system. A major part of healthcare lies in the process of drug discovery, and in this vast arena I think Jobs would have been far less effective. In fact his working philosophy might have even been a hinderance.

Jobs' main achievement was to make computers and other electronics easy to use: even more than Bill Gates he brought computer technology to the masses. He was probably the best interface designer of his time, and he also had a genuine capacity to see the interconnections between various aspects of software and hardware.

And yet Jobs was designing his iPhones and Macs based on extremely well understood principles of software and hardware engineering. He certainly needed to think creatively in order to understand how to make these principles play well with each other, but he did not have to worry about the truth of the principles themselves. In addition the systems he was looking at were very modular, so most creative ways to package them together would work since they would not suffer from unexpected interactions. Put simply, there was very little chance that Jobs's devices would blow up.

In contrast, biological systems are startlingly non-modular and non-linear. Getting them to work is not a matter of designing interfaces. Not only do we not yet understand how to discover new drugs well, but we don't know how to do that because we lack an understanding of the human body to begin with. The "software" in case of drug discovery would be the genome which dictates the actual workings of the cell. The "hardware" is the universe of proteins that serve as workhorses for regulating every single important process in our body, from reproduction to the immune response. Unlike a microprocessor in which the welding together of software and hardware is a matter of engineering, welding together the software and hardware of the human body is currently impossible, simply because we are ignorant both about the nature of these components and their interactions.

I think Steve Jobs would have been completely befuddled if he had been confronted with the task of reinventing drug discovery. In fact one wonders if he would have fundamentally misunderstood the problem; it's worth noting that some people think that he died an early death because he wasted critical time in refusing standard chemotherapy for his cancer, opting to pursue untested "alternative" cures instead (although he does seem to have regretted his decision later). Knowing what we do about his philosophy, I get the feeling that he preferred the simple to the complex, the intuitive to the un-intuitive and the predictable to the chaotic. iPads and Macs are all of the former, biological systems are all of the latter. Notwithstanding his drive and intelligence, a Steve Jobs in drug discovery might have likely have taken his team down some very dark and interminable alleys.

The challenges that Jobs met were very impressive, but they were primarily engineering challenges which could be solved by putting together a bunch of smart people in a room and giving them enough money. The systems he was looking at were largely homogeneous, did not involve too much unexpected feedback and were non-emergent. The challenges that healthcare faces - and this includes the regulatory, economic and informational challenges which the article mentions - deal with highly emergent systems composed of very unexpected feedback and non-linear phenomena arising from extremely heterogeneous and diverse players. Solving those systems is not a matter of designing a better mousetrap, it's one of understanding what a mouse is in the first place. Steve Jobs would not exactly have been the right candidate for unraveling that particular pickle.

"Clueless machines being ceded authority far beyond their competence"


Edge.org which is well-known for asking big-picture questions and having leading thinkers offer their answers to the questions has a relevant one this year: "What do you think about machines that think?" As usual there are a lot of very interesting responses from a variety of writers, scientists, philosophers and members of the literati. But one that really got my attention was by the philosopher and cognitive scientist Daniel Dennett.



I guess I got drawn in by Dennett’s response because of his targeted dagger-thrust against The Singularity ("It has the earmarks of an urban legend: a certain scientific plausibility ("Well, in principle I guess it's possible!") coupled with a deliciously shudder-inducing punch line ("We'd be ruled by robots!"). 

He then goes on to say this:

These alarm calls distract us from a more pressing problem, an impending disaster that won't need any help from Moore's Law or further breakthroughs in theory to reach its much closer tipping point: after centuries of hard-won understanding of nature that now permits us, for the first time in history, to control many aspects of our destinies, we are on the verge of abdicating this control to artificial agents that can't think, prematurely putting civilization on auto-pilot.

The problem thus is not in trusting truly intelligent machines but in becoming increasingly dependent on unintelligent machines which we believe – or desperately want ourselves to believe – are intelligent. Desperately so because of our dependence on them – Dennett’s examples of GPS and computers for simple arithmetic calculations are good ones. The same could be said of a host of other technologies that are coming online, from Siri to airplane navigation to Watson-like “intelligences” that are likely going to become a routine basis for multifactorial tasks like medical diagnosis. The problem as Dennett points out is that belief in such technologies packs a double whammy – on one hand we have become so dependent on them that we cannot imagine relinquishing their presence in our lives, while on the other we would like to consciously or unconsciously endow them with attributes far superior to what they possess because of this ubiquitous presence.


Thus,

The real danger, then, is not machines that are more intelligent than we are usurping our role as captains of our destinies. The real danger is basically clueless machines being ceded authority far beyond their competence.

One reason I found Dennett’s words compelling was because they reminded me of that structural error in the cloud computing paper which I tweeted about and which Derek concurrently blogged about. In that case the error seems to be a simple problem of transcription but it does not mean that computational algorithms cannot ever pick out chemically and biologically nonsensical structures.

Fortunately unlike engineering and technology, biology and chemistry are still too complex for us to consider ceding authority to machines far beyond their competence. But since computers are inevitably making their way into the field by leaps and bounds this is already a danger which we should be well aware of. Whether you are being seduced into thinking that a protein’s motions as deduced by molecular dynamics actually correspond to real motions in the human body or whether you think you will be able to plumb startling new correlations between molecular properties and biological effects using the latest Big Data and machine learning techniques, unimpeded belief in the illusion of machine intelligence can be only a few typed commands away. Just like in case of Siri and Watson, MD and machine learning can illuminate. And just like Siri and Watson they can even more easily mislead. 

So take a look at whether that molecule contains a vinyl alcohol the next time you grab a result from the computer screen and put it into the clinic. Otherwise you might end up ceding more than just your authority to the age of the machines.

Biologists, chemists, math and computing

Here are some words of wisdom from C. Titus Brown, a biology professor at Michigan State University, on the critical importance of quantitative math, stats and computing skills in biology. The larger question is what it means to 'do biology' in an age when biology has become so interdisciplinary. 

Brown's post itself is based on another post by Sean Eddy at Janelia Farm on how biologists must learn scripting these days. Here's Brown:
So here's my conclusion: to be a biologist, one must be seriously trying to study biology. Period. Clearly you must know something about biology in order to be effective here, and critical thinking is presumably pretty important there; I think "basic competency in scientific practice" is probably the minimum bar, but even there you can imagine lab techs or undergraduates putting in useful work at a pretty introductory level here. I think there are many useful skills to have, but I have a hard time concluding that any of them are strictly necessary. 
The more interesting question, to my mind, is what should we be teaching undergraduates and graduate students in biology? And there I unequivocally agree with the people who prioritize some reasonable background in stats, and some reasonable background in data analysis (with R or Python - something more than Excel). What's more important than teaching any one thing in specific, though, is that the whole concept that biologists can avoid math or computing in their training (be it stats, modeling, simulation, programming, data science/data analysis, or whatever) needs to die. That is over. Dead, done, over.
And here's Eddy:
The most important thing I want you to take away from this talk tonight is that writing scripts in Perl or Python is both essential and easy, like learning to pipette. Writing a script is not software programming. To write scripts, you do not need to take courses in computer science or computer engineering. Any biologist can write a Perl script. A Perl or Python script is not much different from writing a protocol for yourself. The way you get started is that someone gives you one that works, and you learn how to tweak it to do more of what you need. After a while, you’ll find you’re writing your own scripts from scratch. If you aren’t already competent in Perl and you’re dealing with sequence data, you really need to take a couple of hours and write your first Perl script.  
The thing is, large-scale biological data are almost as complicated as the organism itself. Asking a question of a large, complex dataset is just like doing an experiment.  You can’t see the whole dataset at once; you have to ask an insightful question of it, and get back one narrow view at a time.  Asking insightful questions of data takes just as much time, and just as much intuition as asking insightful questions of the living system.  You need to think about what you’re asking, and you need to think about what you’re going to do for positive and negative controls. Your script is the experimental protocol. The amount of thought you will find yourself putting into many different experiments and controls vastly outweighs the time it will take you to learn to write Perl.
And they are both right. The transformation of biology in the last thirty years or so into a data (especially sequencing data) and information intensive discipline means that it's no longer optional to be able to use the tools of information technology, math and computing to biological problems. You either use the tools yourself or you collaborate with someone who knows how to use them. Collaboration has of course also become much easier in the last thirty years, but it's easiest to do it yourself if your goal is simply to write some small but useful scripts for manipulating data. R and Python/Perl are both usually necessary but also sufficient for such purposes. Both Eddy and Brown also raise important questions about including such tools in the traditional education of undergraduate and graduate students in biology, something that's not a standard practice yet.
What I find interesting and rather ironic is that for most of its existence biology was a highly descriptive and experimental science, the opposite of math, which seemed to have nothing to do with mathematical analysis. This changed partially with the advent of genetic analysis in the early twentieth century, but it did not really hit the molecular basis of biology until the growth of sequencing tools.
Another irony is that chemistry is usually considered to be more data intensive and mathematical than biology, especially in the form of subfields like physical chemistry. And yet today we don't really find the average organic or inorganic chemist facing a need to learn and apply scripting or statistical analysis, although computational chemists have of course long since recognized the value of cheminformatics and data analysis. Compared to this the average biologist has become much more dependent on such tools.
However I think that this scenario in chemistry is changing. Organic synthesis may not be information intensive right now but automated organic synthesis - which I personally think is going to be revolutionary at some point in the future - will undoubtedly lead to large amounts of data which will have to be analyzed and statistically made sense of. One specific area of chemistry where I think this will almost certainly happen is in the application of 'accelerated serendipity' which involves the screening of catalysts and the correlation of molecular properties with catalytic activity. Some chemists are also looking at network theory to calculate optimal synthetic paths. At some point to use these tools effectively, the average chemist will have to borrow tools from the computational chemist, and perhaps chemistry will have become as data-intensive as biology. It's never too early to pick up that Python book or look at that R course.

How it came from bit: Review of George Dyson's "Turing's Cathedral"

The physicist John Wheeler who was famous for his neologisms once remarked that the essence of the universe could be boiled down to the phrase "it from bit", signifying the creation of matter from information. This description encompasses the digital universe which now so completely pervades our existence. Many moments in history could lay claim as the creators of this universe, but as George Dyson marvelously documents in "Turing's Cathedral", the period between 1945 and 1957 at the Institute for Advanced Study (IAS) in Princeton is as good a candidate as any.

The title is somewhat misleading. Dyson's book focuses on the pioneering development of computing during the decade after World War II and essentially centers on one man- John von Neumann; lover of fast cars, noisy parties and finely tailored suits (as the photo above shows, he shared this sartorial taste with IAS director Robert Oppenheimer). A man for whom the very act of thinking was sacrosanct, Von Neumann is one of the chosen few people in history to whom the label "genius" can authentically be applied. His central talent was an unsurpassed ability to take apart any problem from any field and put it back together so that the answer was usually staring you in the face. The sheer diversity of fields to which he made important contributions beggars belief- Wikipedia lists at least twenty ranging from the mathematical foundations of quantum mechanics to game theory to biology. As one of the IAS's first permanent members, his mind ranged across a staggeringly wide expanse of thought, from the purest of mathematics to the most applied nuclear weapons physics.

Dyson's book recounts the path breaking efforts of von Neumann and his team to build a novel computer at the IAS in the late 1940s. Today when we are immersed in a sea of computer-generated information it is easy to take the essential idea of a computer for granted. That idea was not the transistor or the integrated circuit or even the programming language but the groundbreaking notion that you could have a machine where both data AND the instructions for manipulating that data could be stored in the same place by being encoded in a common binary language. That was von Neumann's great insight which built upon the idea of Alan Turing's basic abstract idea of a computing machine. The resulting concept of a stored program is at the foundation of every single computer in the world. The IAS computer practically validated this concept and breathed life into our modern digital universe. By present standards its computing power was vanishingly small (as Dyson poignantly puts it, there were a total of 53 bytes of memory in the world in 1953), but the technological future it unleashed has been limitless. The one thing that von Neumann got wrong was that he envisioned computers getting bigger and bigger, but apart from this miscalculation he seems to have seen it all.

Dyson's book excels mainly in three ways. Firstly, it presents a lively history of the IAS, the brilliant minds who worked there and the culture of pure thought that often looked down on von Neumann's practical computational tinkering; it describes the pure mathematicians' "undisguised horror" at a bunch of engineers getting their hands dirty with real machinery at so close to their offices. Secondly, it discusses the provenance of von Neumann's ideas which partly arose from his need to perform complex calculations of the events occurring in a thermonuclear explosion. These top-secret calculations were quietly run at night on the IAS computer and in turn were used to tweak the computer's workings; as Dyson pithily puts it, "computers built bombs, and bombs built computers". Von Neumann also significantly contributed to the ENIAC computer project at the University of Pennsylvania. Thirdly, Dyson brings us evocative profiles of a variety of colorful and brilliant characters clustered around von Neumann who contributed to the intersection of computing with a constellation of key scientific fields that are now at the cutting edge.

There was the fascinating Stan Ulam who came up with a novel method for calculating complex processes - the Monte Carlo technique - that is used in everything from economic analysis to biology. Ulam who was one of the inventors of thermonuclear weapons originally used the technique to calculate the multiplication of neutrons in a hydrogen bomb. Then there was Jule Charney who set up some of the first weather pattern calculations, early forerunners of modern climate models. Charney was trying to implement von Neumann's grand dream of controlling the weather, but neither he nor von Neumann could anticipate chaos and the fundamental sensitivity of weather to tiny fluctuations. Dyson's book also pays due homage to an under-appreciated character, Nils Barricelli, who used the IAS computer to embark on a remarkable set of early experiments that sought to duplicate evolution and artificial life. In the process Barricelli discovered fascinating properties of code, including replication and parasitism that mirrored some of the great discoveries taking place in molecular biology at the time. As Dyson tells us, there were clear parallels between biology and computing; both depended on sequences of code, although biology thrived on error-prone duplication (leading to variation) while computing actively sought to avoid it. Working on computing and thinking about biology, von Neumann anticipated the genesis of self-reproducing machines which have fueled the imagination of both science fiction fans and leading researchers in nanotechnology.

Finally, Dyson introduces us to the remarkable engineers who were at the heart of the computing projects. Foremost among them was Julian Bigelow, a versatile man who could both understand code and fix a car. Bigelow's indispensable role in building the IAS computer brings up an important point; while von Neumann may have represented the very pinnacle of abstract thought, his computer wouldn't have gotten off the ground had Bigelow and his group of bright engineers not gotten their hands dirty. Great credit also goes to the two lead engineers on the ENIAC project, J. Presper Eckert and John Mauchly, who were rather unfairly relegated to the shadows and sidetracked by history. Dyson rightly places as much emphasis on discussing the nitty-gritty of the engineering hurdles behind the IAS computer as he does on its lofty mathematical underpinnings. He makes it clear that the ascendancy of a revolutionary technology requires both novel theoretical ideas as well as fine craftsmanship. Unfortunately in this case, the craftsmanship was ultimately trampled by the institute's mathematicians and humanists, which only added to its reputation as a refuge for ivory tower intellectuals who considered themselves above pedestrian concerns like engineering. At the end of the computing project the institute passed a resolution which forbade any kind of experimentation from ever taking place; perhaps keeping in line with his son's future interest in the topic, Freeman Dyson (who once worked on a nuclear spaceship and genuinely appreciates engineering details) was one of the few dissenting voices. But this was not before the IAS project spawned a variety of similar machines which partly underlie today's computing technology.

All these accounts are supplemented with gripping stories about weather prediction, the US thermonuclear program, evolutionary biology, and the emigration of European intellectuals like Kurt Godel and von Neumann to the United States. The books does have its flaws though. For one thing it focuses too heavily on von Neumann and the IAS. Thus Dyson says relatively very little about Turing himself, about pioneering computing efforts at Manchester and Cambridge (the first stored-program computer in fact was the Manchester "Baby" machine) and about the equally seminal development of information theory by Claude Shannon. James Gleick's "The Information" and Andrew Hodges's "Alan Turing: The Enigma" might be useful complements to Dyson's volume. In addition, Dyson often meanders into one too many digressions that break the flow of the narrative; for instance, do we really need to know so much about Kurt Godel's difficulties in obtaining a visa?

Notwithstanding these gripes, the book is beautifully written and exhaustively researched with copious quotes from the main characters. It's certainly the most detailed account of the IAS computer project that I have seen. If you want to know about the basic underpinnings of our digital universe, this is a great place to start even with its omissions. All the implications, pitfalls and possibilities of multiple scientific revolutions can be connected in one way or another to that little machine running quietly in a basement in Princeton.

The man who made it possible

There's a nice set of articles in this week's Nature celebrating the birth centenary and work of a man whose work underlies almost all of modern life - Alan Turing. Considering the complete transformation of human life that computing has enabled, Turing's work along with that of his fellow computer pioneer John von Neumann will likely be recognized as one of those watersheds in human history, comparable to the invention of the calculus and the discovery of electricity. It is remarkable to consider how many millions of software engineers and billions of dollars in revenue are being generated every day off these scientists' ideas.

The historian and writer George Dyson starts off by documenting Turing and von Neumann's basic achievements. Dyson has a book out next week on this very topic, and given his past writings on technology and computing I am looking forward to it. As Dyson tells us, the basic groundbreaking idea of Turing and von Neumann was not just a machine which performs calculations at superhuman speed. It was the concept of a shared program and the then startling idea that you could code both the data and the instructions for it in the same language (binary) in the same machine. This idea really is one of those "big ideas", simple to state but absolutely revolutionary in its impact. Turing and von Neumann's greatness thus lies not in conceiving the physical manifestation (or 'instantiation' as programmers would say) of a computing recipe but in their abstract generalization of the very idea of a programmed computer.

What is not always recognized is that Von Neumann went a step ahead and floated an even more remarkable notion, that of a machine which contains instructions for assembling copies of itself. Von Neumann immediately tied this to biology; but this was a few years before Watson and Crick discovered the specific mechanism in the form of DNA base pairing. Unlike the "dynamic duo", nobody remembers von Neumann as making a signal conceptual contribution to biology. I remember the writer John Casti lamenting the general public's lack of recognition of von Neumann as the man who first really thought of the mechanism of heredity on the general basis that mathematicians are used to. As Casti pithily put it in his wonderful book 'Paradigms Lost': "Such are the fruits of the theoretician, especially one who solves 'only' the general case". To be fair, biology is an experimental science and no amount of theorizing can nail an experimental fact, but I suspect mathematicians would widely commiserate with Casti's lament.

The biologist Sydney Brenner then follows up by recognizing Turing's contributions to biology. In 1952 he wrote what is considered the first paper on nonlinear dynamics in which he described pattern formation in chemical reactions and possibly in developmental biology. We are still trying to understand the implications of that discovery even as nonlinear dynamics itself has become an enormously fruitful field with deep applications in modeling almost any complex natural phenomenon.

Finally, mathematician Barry Cooper from the University of Leeds points out a tantalizing question stemming from Turing's work; are complex, emergent phenomena strictly computable? This is partly a question about the limits of 'strong' reductionism and one that I have explored on this blog often. We don't yet know the answer to this question, to whether we can compute higher-order phenomena starting from a few simple particles and fields bequeathed to us by the particle physicists. As we tackle problems as complex as the future of the cosmos and the source of consciousness in the twenty-first century, this question will continue to hound scientists and philosophers. It waits for an answer as profound as Turing's answer to Hilbert's famous Entscheidungsproblem.