Software vs Humans
A running to-do list of all the stuff software has to do really well in order to be better than us at all the things we consider ourselves to be pretty good at. In our humble opinion.
On March 15th, 2016, AlphaGo beat Lee Sedol 4–1 in a 5-game world championship Go tournament, re-sparking the ongoing conversation about how quickly software is catching up to humans in many surprising areas.
As we’ve done many other times when displays of software’s skills emerge in our collective imagination, we immediately leapt to a half-joking conclusion that Terminator-esque robots are going to soon destroy us all.
It’s fairly obvious to most that being good at Go is not the same as being better than us at everything, but I feel like we as a species haven’t really done a great job of enumerating the list of “everything” in an easy to skim listicle. And that got me thinking:
✋ Is there a super high level to-do list of all the things a computer would have to do in order to truly replace us?
My cursory internet search didn’t turn anything up, hence this post. It’s crude and incomplete (which is why I’d love help from others — see below) but the hope is that there’s a single, maintained, to-do list tracking software’s progress towards being truly autonomous and intelligent in a way that is on par with humanity itself.
(I’m also taking bets on how long it’ll take for software to complete this to-do list. Some super optimistic futurists believe it could be essentially done by 2030. Others think it’ll never be complete. I’m personally in that safe non-committal place in the middle... let’s say 2100ish.)
Help maintain this page:
If you can identify core categories missing from this scorecard, or have information about software’s ability to excel at any particular item in the list (see “Play strategic games really well” for an example of a timeline), please respond to this post or leave a note on it at the appropriate point.
- Bold = software is as good or better than humans at this
- Italics = humans are still better than software at this
- Normal = not sure yet, or not researched yet (help with these!)
94 total items in to-do list. 4 are done (4.3% complete)
The to-do list by category
1. Receiving sensory input:
How well can software process information from its current environment relative to our own senses?
- Sight (visual): Based on the % of the electromagnetic spectrum that software can see compared to the visual spectrum that we can see.
- Sound (auditory): Based on the range of sound that can be recorded based on Hz and volume.
- Touch (tactile)
- Smell (olfactory)
- Taste (gustatory)
- Movement (kinesthetic)
- Balance (vestibulatory)
- Temperature (thermoreception)
- Pain (nociception)
- Position and movement (proprioception)
- Tension and pressure (mechanoceptors)
2. Creating meaning from sensory inputs:
Given sensory input, how well can software figure out what the identify objects and text in the data?
- Identifying facial expressions and emotions: 2014: Computers can categorize facial expressions as well as humans. 2015: FaceReader outperforms humans when rating neutral facial expressions by 31%.
- Identifying people by face: 2015: Facebook’s DeepFace can recognize people with 97.35% accuracy, closely approaching human-level performance.
- Identifying text: 2016: Optical character recognition (OCR) is still quite a ways off from being at a human level. Some tests show it can correctly identify 80% of handwritten text, whereas humans perform at above a 99% level.
- Identifying everyday objects: 2014: At the ImageNet Large Scale Visual Recognition Challenge, GoogleLeNet’s winning submission for the classification task achieved a 6.7% error rate (humans scored around 5%).
3. Processing, connecting, and transforming information:
After identifying other entities, how well can software use that information to conduct 2nd order inquiries into the data?
- Translating text to other languages
- Searching and finding information about something it doesn’t know
- Making a prediction based on limited information
- Summarizing information
- Identifying a pattern
- Identifying inconsistencies in data
- Judging the likelihood of a statement being true
- Judging the importance of a given statement to a particular context
- Judging the value of everyday objects
- Judging the value of an interaction / relationship
- Adapting information for a specific audience
- Making decisions with incomplete information
4. Creating new useful information:
How well can software take what it knowns and come up with new, useful, information in a creative way?
- Hold a regular conversation
- Solve unsolved math problems
- Solve unsolved science problems
- Play strategic games really well: 1951: The first Checkers and Chess programs were written. 1968: MacHack, a knowledge-based chess-playing program from MIT, that was good enough to achieve a class-C rating in tournament play. 1997: IBM’s Deep Blue defeats the world chess champion, Garry Kasparov. 1997: Logistello defeats the world Othello champion, Takeshi Murakami, with a score of 6–0. 2010: IBM’s Watson defeats Jeopardy! champion, Ken Jennings. 2016: Google’s DeepMind defeats world Go champion, Lee Sedol, 4–1 out of 5 games.
- Write a good story
- Tell a funny joke
- Write software
- Daydream, or play out simulations or random combinations of possibilities
- Lying (i.e., asserting falsehoods when the truth is known) to achieve an aim
5. Remembering what is known:
How well can software store information, entities, and 2nd order inferences about its understanding of the world for later use?
- Remembering facts
- Synthesizing facts to build an accurate model of reality
- Remembering where things are
- Remembering who knows what
- Remembering what is not known (or is unknowable)
- Forgetting useless or misleading information
6. Getting around:
How well can software explore the physical universe?
- Walking: 2016: Boston Dynamics, showcases a robot named Atlas that seems to be making good progress in achieving human-like walking and balancing skills. Not quite there yet, though.
- Climbing ladders
7. Manipulating physical objects:
How well can software manipulate the physical universe?
- Picking up small objects
- Picking up irregular objects
- Picking up large objects
- Opening doors
- Moving obstacles
- Mining from earth, air, and water
8. Managing a supply chain:
How well can software manage the various steps in acquiring raw materials, steps in manufacturing, and assembly of parts into useful end products?
- Identifying end products to build
- Identifying raw materials that it needs
- Acquiring raw materials
- Manufacturing parts
- Assembling parts
- Distribute end product to sellers and/or buyers
9. Storing resources:
Similar to storing useful information, how well can software store useful resources and other valuables for later use?
- Storing raw materials and unused parts
- Storing end products
- Storing excess food / energy sources
10. Building recipe book of useful end products it can make:
How well can software build use its supply chain and manufacturing operations to build some of these common day-to-day useful objects (at least, from the human perspective)?
- Making cars
- Making computers
- Making buildings
- Making apps
11. Generating an income:
How well can software produce and sell products and goods (on its own) in order to provide money that can be used to purchase other products or services that it can’t otherwise obtain?
- Selling products for a profit
- Selling services for a profit
- Saving and investing money
12. General survival:
How well can software establish itself in a stable habitat with all the resources it needs for ongoing survival, as well as defense from changes in the environment and other threats?
- Identifying requirements for sustenance
- Finding sustenance
- Acquiring sustenance
- Ingesting sustenance
- Identifying hospitable environments
- Inhabiting hospitable environments
- Defense from periods of low sustenance
- Defense from periods in inhospitable environmental conditions
- Defense from competitive pressure
13. Building trust and a social net:
How well can software exist in the universe of other autonomous beings (like humans) in a friendly way?
- Sharing information with others
- Sharing resources with others
- Making friends
- Establishing allies
14. Health, repair, and reproduction:
How well can software repair itself when it is damaged, and reproduce itself when it needs to expand its presence for whatever reason?
- Identify needed repairs
- Make needed repairs
- Identify need for reproduction
- Assemble new copies
15. Evolution and self-improvement:
How well can software improve itself over time?
- Improve its coverage of sensory inputs
- Improve ability to make meaning from sensory inputs
- Improve processing, connection, and transformation of information
- Improve ability to create new useful information
- Improve ability to remember what it knows
- Improve ability to get around
- Improve ability to manipulate physical objects
- Improve efficiency of its supply chain
- Improve ability to store valuable resources
- Improve recipe book of known end products it can create
- Improve ability to generate an income
- Improve general survival skills
- Improve relationships with other autonomous entities (like humans)
- Improve ability to repair and reproduce itself when needed
- Improve ability to evolve and self-improve
I’ll keep track of changes to the Changelog page here.
Some interesting reading on this topic:
- The AI Revolution: The Road To Superintelligence Part 1, and Part 2, by Tim Urban. (My favorite intro to the topic.)
- Superintelligence: Paths, Dangers, and Strategies, by Nick Bostrum.
- The Singularity, and How to Create a Mind: The Secret of Human Thought Revealed, by Ray Kurzweil.
- Our Final Invention: Artificial Intelligence and the End of the Human Era, by James Barrat.
- Paperclip Maximizer (thought experiment)