Feeds:
Posts
Comments

Archive for the ‘Technology’ Category

I thought I’ll study something recently and I decided to explore Artificial Intelligence, because it seems to be in the limelight these days. I did a course in Artificial Intelligence when I was in college. At that time no one cared about Artificial Intelligence. Many of my classmates who are promoting it now, didn’t care about it then. I did that course because I had dipped into Roger Penrose’sThe Emperor’s New Mind‘ and Douglas Hofstadter’sGodel Escher Bach : An Eternal Golden Braid‘ at that time and was inspired by them and so I was excited by this field. The course wasn’t as interesting as I’d expected and it didn’t capture any of the excitement that I’d felt while reading Penrose’s and Hofstadter’s books. After passing out of college, I went to work in a tech company. The company that I went to work for was one of the biggest companies around but no one there cared about Artificial Intelligence. The company didn’t care about exciting new technology, none of the top management or the managers had any vision on how the technology universe was unfolding and the company just went with current fashion and fads and wanted to make more and more money and improve its profit margins. From a technology perspective it was a junk company. I tried talking to my boss and other people there about exciting new technology, but I was treated like a disrupter who refused to keep his head down and do grunt work and count his dollars. One of my bosses was so upset with me that he even exiled me to the cubicle next to the toilet. So I gave up after a while.

Enough of that sad story. Time to contemplate on Artificial Intelligence now. So I decided to study Artificial Intelligence properly now. I thought I’ll do it the hard way and got a textbook and started reading it. It went well for around 60 pages or so. (The book is around 1200 pages.) After that things got complex, but not with the complexity I liked. I could have ploughed on with it till I reached a place where things got better, but I thought it might be a better idea to read a simpler book on the subject first. I did some research and discovered Melanie Mitchell’s book.

Melanie Mitchell’s book is around 400 pages long. But you don’t feel that because it flies like the breeze. Her writing style is conversational and reading the book is like attending the class of your favourite teacher. Melanie Mitchell has got a Ph.D in Artificial Intelligence, she worked with Douglas Hofstadter while researching for her Ph.D, and she has worked in the field for more than thirty years. She also seems to be a great teacher. All that shows in the book. She wears her learning lightly, she starts from the basics and takes the reader to a reasonably advanced level, and she gives a survey of the field historically and describes all the important happenings today. She also covers all the important developments and technologies that are part of AI. She doesn’t shy away from the important and difficult questions (like can a computer or a software program really think, is a computer sentient), she handles all the tricky questions with aplomb, she separates the hype from the facts, and she states her point of view strongly whenever she disagrees with the hype. Her affection for her field is infectious. The book is brilliant and so is Melanie Mitchell.

As the oft-repeated maxim goes, if you want to read just one book on Artificial Intelligence, this is that book. It is exceptional.

I’m sharing one of my favourite passages from the book. Hope you like it. It is about how computers still cannot think like humans.

Beginning of Quote

“I want to describe one additional question-answering task that is specifically designed to test whether an AI (NLP) system (Artificial Intelligence (Natural Language Processing) system) has genuinely understood what it has ‘read’. Consider the following sentences, each followed by a question :

Sentence 1: ‘The city council refused the demonstrators a permit because they feared violence.’

Question: Who feared violence?

A. The city council
B. The demonstrators

Sentence 2: ‘The city council refused the demonstrators a permit because they advocated violence.’

Question: Who advocated violence?

A. The city council
B. The demonstrators

Sentences 1 and 2 differ by only one word (feared / advocated), but that single word determines the answer to the question. In sentence 1 the pronoun they refers to the city council, and in sentence 2 they refers to the demonstrators. How do we humans know this? We rely on our background knowledge about how society works: we know that demonstrators are the ones with a grievance and that they sometimes advocate or instigate violence at a protest.

Here are a few more examples :

Example 1

Sentence 1: ‘Joe’s uncle can still beat him at tennis, even though he is 30 years older.’

Question: Who is older?

A. Joe
B. Joe’s uncle

Sentence 2: ‘Joe’s uncle can still beat him at tennis, even though he is 30 years younger.’

Question: Who is younger?

A. Joe
B. Joe’s uncle

Example 2

Sentence 1: ‘I poured water from the bottle into the cup until it was full.’

Question: What was full?

A. The bottle
B. The cup

Sentence 2: ‘I poured water from the bottle into the cup until it was empty.’

Question: What was empty?

A. The bottle
B. The cup

Example 3

Sentence 1: ‘The table won’t fit through the doorway because it is too wide.’

Question: What is too wide?

A. The table
B. The doorway

Sentence 2: ‘The table won’t fit through the doorway because it is too narrow.’

Question: What is too narrow?

A. The table
B. The doorway

I’m sure you get the idea: the two sentences in each pair are identical except for one word, but that word changes which thing or person is referenced by pronouns such as they, he or it. To answer the questions correctly, a machine needs to be able not only to process sentences but also to understand them, at least to a point. In general, understanding these sentences requires what we might call commonsense knowledge. For example, an uncle is usually older than his nephew; pouring water from one container to another means that the first container will become empty while the other one becomes full; and if something won’t fit through a space, it is because the thing is too wide rather than too narrow.

These miniature language-understanding tests are called Winograd schemas, named for the pioneering NLP researcher Terry Winograd, who first came up with the idea. The Winograd schemas are designed precisely to be easy for humans but tricky for computers…

Several natural-language processing research groups have experimented with different methods for answering Winograd schema questions. At the time I write this, the program reporting the best performance had about 61 per cent accuracy on a set of about 250 Winograd schemas. This is better than random guessing, which would yield 50 per cent accuracy, but it is still far from presumed human accuracy on this task (100 per cent, if the human is paying attention)…

Maybe that’s a good thing. As Oren Etzioni, director of the Allen Institute for AI, quipped, ‘When AI can’t determine what “it” refers to in a sentence, it’s hard to believe that it will take over the world.’”

End of Quote

Have you read Melanie Mitchell’s book? What do you think about it?

Read Full Post »

I discovered Ellen Ullman’sClose to the Machine : Technophilia and its Discontents‘ a few years back. It was about how Silicon Valley looked like to a person who worked at the ground level. This was probably one of the first books to describe this. I finally got around to reading it.

In the book, Ellen Ullman describes her experiences working as a programmer in Silicon Valley. Most of the book is set in the middle and late 1990s at the dawn of the Internet era. But Ullman also goes back in time and describes her experiences in the ’80s and the ’70s, and we get a ringside view of how technology and how computer culture evolved.

If you have worked in the tech industry in any capacity, but particularly as a computer programmer (I don’t know exactly what this is called these days. From ‘computer programmer’ it became ‘software engineer’, and it used to be called derisively as ‘coder’ by non-technical people in the tech industry. These days it is probably called ‘App developer’, but I’m not sure.), you’ll be able to relate to most of the things described in the book. I could. Some parts of the book made me smile, and nod in acknowledgement, while others triggered some unpleasant memories.

My favourite chapter in the book was called ‘New, Old, and Middle Age’. It is about how software technology keeps changing rapidly and how it is hard to keep up, and at some point a person gives up. It happens to everyone, and it happened to me. I still remember the heady early days, when I sat with two of my teammates while we analyzed and debugged a program and I identified the main source of a particular nasty problem and my teammates looked at me with admiration. Years later, one of my teammates taught me a new technology and asked me to hold the fort while he was away for a day, and when a customer came up with a simple request, I couldn’t handle that. That simple thing was beyond me. I knew that day that my programming days were over, and that the technology had changed to a point where I couldn’t keep up with it, and I had become obsolete as a programmer. When I read a whole chapter about it in the book, it made me smile.

I went into the tech industry because I loved programming, and I thought I’ll be on a high all the time, because I’ll be working on computer programs all the time. But reality didn’t turn out that way. There were meetings and interruptions and phone calls and this and that, and in addition to that one had to deal with the contempt that non-technical employees had for programmers, and soon, at some point, all the romance went out of the work, and I pottered around like a zombie and tried to get through the day. Ellen Ullman talks about all this in the book when she describes how when a new project starts, everyone is enthusiastic and positive, but before long things go awry, and it all goes to hell after that.

There are many other interesting things, fascinating things that Ellen Ullman talks about in the book. I’ll let you read the book yourself and experience its pleasures.

I loved Ellen Ullman’s book. As one of the first books on this theme, it is pioneering and fascinating. I wish I had read it when I was younger.

I’ll leave you with two of my favourite excerpts from the book. Hope you like them.

First Excerpt

“I once worked on a mainframe computer system where the fan-folded listing of my COBOL program stood as high as a person. My program was sixteen years old when I inherited it. According to the library logs, ninety-six programmers had worked on it before I had. I spent a year wandering its subroutines and service modules, but there were still mysterious places I did not dare touch. There were bugs on this system no one had been able to fix for ten years. There were sections where adding a single line of code created odd and puzzling outcomes programmers call “side effects”: bugs that come not directly from the added code but from some later, known permutation further down in the process. My program was near the end of its “life cycle.” It was close to death.

Yet the system could not be thrown away. By the time a computer system becomes old, no one completely understands it. A system made out of old junky technology becomes, paradoxically, precious. It is kept running but as if in a velvet box : open it carefully, just look, don’t touch.

The preciousness of an old system is axiomatic. The longer the system has been running, the greater the number of programmers who have worked on it, the less any one person understands it. As years pass and untold numbers of programmers and analysts come and go, the system takes on a life of its own. It runs. That is its claim to existence : it does useful work. However badly, however buggy, however obsolete – it runs. And no one individual completely understands how. Its very functioning demands we stop treating it as some mechanism we’ve created like, say, a toaster, and start to recognize it as a being with a life of its own. We have little choice anyway : we no longer control it. We have two choices: respect it or kill it.

Old systems have a name. They are called “legacy systems.” In the regular world, “legacy” has an aura of beneficence, Parents leave a child a legacy : fortunate child. A brother gets into a fraternity because of his older brother’s earlier membership : a legacy admission. A gift. An enrichment. The patina of age, but good age-venerability, the passing on from generation to generation. A gift of time.

In computing, however, “legacy” is a curse. A legacy system is a lingering piece of old junk that no one has yet figured out how to throw away. It’s something to be lived with and suffered. The system is unmodifiable, full of bugs, no longer understood. We say it’s “brain dead.” Yet it lives. Yet it runs. Drain on our time and money. Vampire of our happiness. Legacy.”

Second Excerpt

“I’ve managed to stay in a perpetual state of learning only by maintaining what I think of as a posture of ignorant humility. This humility is as mandatory as arrogance. Knowing an IBM mainframe – knowing it as you would a person, with all its good qualities and deficiencies, knowledge gained in years of slow anxious probing – is no use at all when you sit down for the first time in front of a UNIX machine. It is sobering to be a senior programmer and not know how to log on.

There is only one way to deal with this humiliation : bow your head, let go of the idea that you know anything, and ask politely of this new machine, “How do you wish to be operated?” If you accept your ignorance, if you really admit to yourself that everything you know is now useless, the new machine will be good to you and tell here is how to operate me.

Once it tells you, your single days are over. You are involved again. Now you can be arrogant again. Now you must be arrogant : you must believe you can come to know this new place as well as the old – no, better. You must now dedicate yourself to that deep slow probing, that patience and frustration, the anxious intimacy of a new technical relationship. You must give yourself over wholly to this : you must believe this is your last lover.”

Have you read ‘Close to the Machine : Technophilia and its Discontents‘? What do you think about it?

Read Full Post »